2020-05-18 19:31:25

by Daniel Walker (danielwa)

[permalink] [raw]
Subject: [PATCH 2/2] mtd: spi-nor: intel-spi: fix forced writable option

This option currently doesn't work as expected. If the BIOS has this
flash as read-only there is no way to change this thru the driver.
There is a parameter which allows the flash to become writable with the
"writable" option to the module, but it does nothing if the BIOS has it
set to read-only.

I would expect this option would make the flash writable regardless of
the BIOS settings. This patch changes this option so the BIOS setting
doesn't stop the writable option from enabling read write on the flash.

Original patch by Jinhua Wu <[email protected]>

Cc: Jinhua Wu <[email protected]>
Cc: [email protected]
Signed-off-by: Daniel Walker <[email protected]>
---
drivers/mtd/spi-nor/controllers/intel-spi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
index e5a3d51a2e4d..68a5877bfc0b 100644
--- a/drivers/mtd/spi-nor/controllers/intel-spi.c
+++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
@@ -954,7 +954,7 @@ struct intel_spi *intel_spi_probe(struct device *dev,
intel_spi_fill_partition(ispi, &part);

/* Prevent writes if not explicitly enabled */
- if (!ispi->writeable || !writeable)
+ if (!ispi->writeable && !writeable)
ispi->nor.mtd.flags &= ~MTD_WRITEABLE;

ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
--
2.17.1


2020-05-28 11:05:21

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH 2/2] mtd: spi-nor: intel-spi: fix forced writable option



On 18/05/20 11:29 pm, Daniel Walker wrote:
> This option currently doesn't work as expected. If the BIOS has this
> flash as read-only there is no way to change this thru the driver.
> There is a parameter which allows the flash to become writable with the
> "writable" option to the module, but it does nothing if the BIOS has it
> set to read-only.
>
> I would expect this option would make the flash writable regardless of
> the BIOS settings. This patch changes this option so the BIOS setting
> doesn't stop the writable option from enabling read write on the flash.
>

I am confused you say "If the BIOS has this flash as read-only there is
no way to change this thru the driver", so is it possible to override
BIOS setting? If yes, where is the code in the driver?

What happens if BIOS is set to allow writes but writeable is set to 0?

Also please send patch series as thread (2/2 in reply to 1/2). You can
use tool like git send-email

> Original patch by Jinhua Wu <[email protected]>
>
> Cc: Jinhua Wu <[email protected]>
> Cc: [email protected]
> Signed-off-by: Daniel Walker <[email protected]>
> ---
> drivers/mtd/spi-nor/controllers/intel-spi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
> index e5a3d51a2e4d..68a5877bfc0b 100644
> --- a/drivers/mtd/spi-nor/controllers/intel-spi.c
> +++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
> @@ -954,7 +954,7 @@ struct intel_spi *intel_spi_probe(struct device *dev,
> intel_spi_fill_partition(ispi, &part);
>
> /* Prevent writes if not explicitly enabled */
> - if (!ispi->writeable || !writeable)
> + if (!ispi->writeable && !writeable)
> ispi->nor.mtd.flags &= ~MTD_WRITEABLE;
>
> ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
>

2020-05-28 16:05:04

by Jinhua Wu (jinhwu)

[permalink] [raw]
Subject: Re: [PATCH 2/2] mtd: spi-nor: intel-spi: fix forced writable option

On 2020/5/28, 11:48 PM, "Jinhua Wu" <[email protected]> wrote:
Hi Vignesh,
BIOS just locked down parts of flash (such as, code region), others are still
writeable. Once the SPI locked down,it can't be override unless platfrom reset
and set WPD (write protect disable) will fail, so ispi->writeable will always
be 0, then the driver will always make the whole flash read only, even if we
have set the parameter writable = 1.
Now the flash is totally not writeable, just part of it is read only. Why not making
'writeable' working when explicitly enabled?

>On 2020/5/28, 7:02 PM, "Vignesh Raghavendra" <[email protected]> wrote:
> On 18/05/20 11:29 pm, Daniel Walker wrote:
> > This option currently doesn't work as expected. If the BIOS has this
> > flash as read-only there is no way to change this thru the driver.
> > There is a parameter which allows the flash to become writable with the
> > "writable" option to the module, but it does nothing if the BIOS has it
> > set to read-only.
> >
> > I would expect this option would make the flash writable regardless of
> > the BIOS settings. This patch changes this option so the BIOS setting
> > doesn't stop the writable option from enabling read write on the flash.
> >
>
> I am confused you say "If the BIOS has this flash as read-only there is
> no way to change this thru the driver", so is it possible to override
> BIOS setting? If yes, where is the code in the driver?
>
> What happens if BIOS is set to allow writes but writeable is set to 0?
>
> Also please send patch series as thread (2/2 in reply to 1/2). You can
> use tool like git send-email
>
> > Original patch by Jinhua Wu <[email protected]>
> >
> > Cc: Jinhua Wu <[email protected]>
> > Cc: [email protected]
> > Signed-off-by: Daniel Walker <[email protected]>
> > ---
> > drivers/mtd/spi-nor/controllers/intel-spi.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
> > index e5a3d51a2e4d..68a5877bfc0b 100644
> > --- a/drivers/mtd/spi-nor/controllers/intel-spi.c
> > +++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
> > @@ -954,7 +954,7 @@ struct intel_spi *intel_spi_probe(struct device *dev,
> > intel_spi_fill_partition(ispi, &part);
> >
> > /* Prevent writes if not explicitly enabled */
> > - if (!ispi->writeable || !writeable)
> > + if (!ispi->writeable && !writeable)
> > ispi->nor.mtd.flags &= ~MTD_WRITEABLE;
> >
> > ret = mtd_device_register(&ispi->nor.mtd, &part, 1);
> >

2020-06-02 16:38:50

by Daniel Walker (danielwa)

[permalink] [raw]
Subject: Re: [PATCH 2/2] mtd: spi-nor: intel-spi: fix forced writable option

On Thu, May 28, 2020 at 03:55:21PM +0000, Jinhua Wu (jinhwu) wrote:
> On 2020/5/28, 11:48 PM, "Jinhua Wu" <[email protected]> wrote:
> Hi Vignesh,
> BIOS just locked down parts of flash (such as, code region), others are still
> writeable. Once the SPI locked down,it can't be override unless platfrom reset
> and set WPD (write protect disable) will fail, so ispi->writeable will always
> be 0, then the driver will always make the whole flash read only, even if we
> have set the parameter writable = 1.
> Now the flash is totally not writeable, just part of it is read only. Why not making
> 'writeable' working when explicitly enabled?
>
> >On 2020/5/28, 7:02 PM, "Vignesh Raghavendra" <[email protected]> wrote:
> > On 18/05/20 11:29 pm, Daniel Walker wrote:
> > > This option currently doesn't work as expected. If the BIOS has this
> > > flash as read-only there is no way to change this thru the driver.
> > > There is a parameter which allows the flash to become writable with the
> > > "writable" option to the module, but it does nothing if the BIOS has it
> > > set to read-only.
> > >
> > > I would expect this option would make the flash writable regardless of
> > > the BIOS settings. This patch changes this option so the BIOS setting
> > > doesn't stop the writable option from enabling read write on the flash.
> > >
> >
> > I am confused you say "If the BIOS has this flash as read-only there is
> > no way to change this thru the driver", so is it possible to override
> > BIOS setting? If yes, where is the code in the driver?
> >
> > What happens if BIOS is set to allow writes but writeable is set to 0?
> >
> > Also please send patch series as thread (2/2 in reply to 1/2). You can
> > use tool like git send-email
> >



Vignesh, do you still have concerns about this change ?


Daniel