diff mbox series

mtd: rawnand: fsl_elbc: Remove NAND_NO_SUBPAGE_WRITE flag

Message ID 20220815080140.4048-1-pali@kernel.org
State Accepted
Commit 080b7d89aeb4339e09029b7fd7e365f9ee37b4b6
Delegated to: Marek Behun
Headers show
Series mtd: rawnand: fsl_elbc: Remove NAND_NO_SUBPAGE_WRITE flag | expand

Commit Message

Pali Rohár Aug. 15, 2022, 8:01 a.m. UTC
Subpage write support for freescale eLBC NAND controller driver is
implemented in U-Boot and was fixes in the commit d3963721d93f ("nand: Sync
with Linux v4.1").

So remove NAND_NO_SUBPAGE_WRITE flag from the fsl_elbc_nand.c driver. This
partially revert commit cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE
to eLBC and IFC drivers"), only eLBC driver part.

With this change U-Boot with default settings can read from NAND UBIFS
image created on Linux with Linux default settings. Prior this change
U-Boot was unable to read from NAND UBIFS images created with Linux default
settings due to differnet UBI geometry.

Linux kernel fsl_elbc_nand.c driver also does not set NAND_NO_SUBPAGE_WRITE
flag and has implemented subpage write support.

Fixes: cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE to eLBC and IFC drivers")
Fixes: d3963721d93f ("nand: Sync with Linux v4.1")
Signed-off-by: Pali Rohár <pali@kernel.org>
---
See also email thread:
https://lore.kernel.org/u-boot/20220807120027.2zz43afbqtqljhul@pali/t/#u
---
 drivers/mtd/nand/raw/fsl_elbc_nand.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Michael Nazzareno Trimarchi Aug. 15, 2022, 9:49 p.m. UTC | #1
Hi

Il lun 15 ago 2022, 10:01 Pali Rohár <pali@kernel.org> ha scritto:

> Subpage write support for freescale eLBC NAND controller driver is
> implemented in U-Boot and was fixes in the commit d3963721d93f ("nand: Sync
> with Linux v4.1").
>
> So remove NAND_NO_SUBPAGE_WRITE flag from the fsl_elbc_nand.c driver. This
> partially revert commit cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE
> to eLBC and IFC drivers"), only eLBC driver part.
>
> With this change U-Boot with default settings can read from NAND UBIFS
> image created on Linux with Linux default settings. Prior this change
> U-Boot was unable to read from NAND UBIFS images created with Linux default
> settings due to differnet UBI geometry.
>
> Linux kernel fsl_elbc_nand.c driver also does not set NAND_NO_SUBPAGE_WRITE
> flag and has implemented subpage write support.
>
> Fixes: cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE to eLBC and IFC
> drivers")
> Fixes: d3963721d93f ("nand: Sync with Linux v4.1")
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
> See also email thread:
> https://lore.kernel.org/u-boot/20220807120027.2zz43afbqtqljhul@pali/t/#u
> ---
>  drivers/mtd/nand/raw/fsl_elbc_nand.c | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> index 48a3687f2728..e28670a4724a 100644
> --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> @@ -732,7 +732,6 @@ static int fsl_elbc_chip_init(int devnum, u8 *addr,
> struct udevice *dev)
>         nand->bbt_md = &bbt_mirror_descr;
>
>         /* set up nand options */
> -       nand->options = NAND_NO_SUBPAGE_WRITE;
>         nand->bbt_options = NAND_BBT_USE_FLASH;
>
>         nand->controller = &elbc_ctrl->controller;
>

Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>

I was following the thread. Please confirm that you was able to test

Michael

> --
> 2.20.1
>
>
Pali Rohár Aug. 15, 2022, 9:55 p.m. UTC | #2
On Monday 15 August 2022 23:49:17 Michael Nazzareno Trimarchi wrote:
> Hi
> 
> Il lun 15 ago 2022, 10:01 Pali Rohár <pali@kernel.org> ha scritto:
> 
> > Subpage write support for freescale eLBC NAND controller driver is
> > implemented in U-Boot and was fixes in the commit d3963721d93f ("nand: Sync
> > with Linux v4.1").
> >
> > So remove NAND_NO_SUBPAGE_WRITE flag from the fsl_elbc_nand.c driver. This
> > partially revert commit cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE
> > to eLBC and IFC drivers"), only eLBC driver part.
> >
> > With this change U-Boot with default settings can read from NAND UBIFS
> > image created on Linux with Linux default settings. Prior this change
> > U-Boot was unable to read from NAND UBIFS images created with Linux default
> > settings due to differnet UBI geometry.
> >
> > Linux kernel fsl_elbc_nand.c driver also does not set NAND_NO_SUBPAGE_WRITE
> > flag and has implemented subpage write support.
> >
> > Fixes: cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE to eLBC and IFC
> > drivers")
> > Fixes: d3963721d93f ("nand: Sync with Linux v4.1")
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > ---
> > See also email thread:
> > https://lore.kernel.org/u-boot/20220807120027.2zz43afbqtqljhul@pali/t/#u
> > ---
> >  drivers/mtd/nand/raw/fsl_elbc_nand.c | 1 -
> >  1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > index 48a3687f2728..e28670a4724a 100644
> > --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > @@ -732,7 +732,6 @@ static int fsl_elbc_chip_init(int devnum, u8 *addr,
> > struct udevice *dev)
> >         nand->bbt_md = &bbt_mirror_descr;
> >
> >         /* set up nand options */
> > -       nand->options = NAND_NO_SUBPAGE_WRITE;
> >         nand->bbt_options = NAND_BBT_USE_FLASH;
> >
> >         nand->controller = &elbc_ctrl->controller;
> >
> 
> Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
> 
> I was following the thread. Please confirm that you was able to test

Yes, I have tested this change on P2020 based board Turris 1.1. And
finally U-Boot by default was able to access UBI created by mainline
Linux with default parameters, just by calling 'ubi part rootfs'.
UBI created by sub-page of size 2048 can be still also read by U-Boot by
calling 'ubi part rootfs 2048'. For this purpose I already provided
distroboot patch to easily specify UBI header offset (which is by
default sub-page size):
https://lore.kernel.org/u-boot/20220807190422.20157-1-pali@kernel.org/

> Michael
> 
> > --
> > 2.20.1
> >
> >
Michael Nazzareno Trimarchi Aug. 16, 2022, 8:33 a.m. UTC | #3
Hi

Il lun 15 ago 2022, 23:55 Pali Rohár <pali@kernel.org> ha scritto:

> On Monday 15 August 2022 23:49:17 Michael Nazzareno Trimarchi wrote:
> > Hi
> >
> > Il lun 15 ago 2022, 10:01 Pali Rohár <pali@kernel.org> ha scritto:
> >
> > > Subpage write support for freescale eLBC NAND controller driver is
> > > implemented in U-Boot and was fixes in the commit d3963721d93f ("nand:
> Sync
> > > with Linux v4.1").
> > >
> > > So remove NAND_NO_SUBPAGE_WRITE flag from the fsl_elbc_nand.c driver.
> This
> > > partially revert commit cb04c7723429 ("nand/fsl: add
> NAND_NO_SUBPAGE_WRITE
> > > to eLBC and IFC drivers"), only eLBC driver part.
> > >
> > > With this change U-Boot with default settings can read from NAND UBIFS
> > > image created on Linux with Linux default settings. Prior this change
> > > U-Boot was unable to read from NAND UBIFS images created with Linux
> default
> > > settings due to differnet UBI geometry.
> > >
> > > Linux kernel fsl_elbc_nand.c driver also does not set
> NAND_NO_SUBPAGE_WRITE
> > > flag and has implemented subpage write support.
> > >
> > > Fixes: cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE to eLBC and
> IFC
> > > drivers")
> > > Fixes: d3963721d93f ("nand: Sync with Linux v4.1")
> > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > ---
> > > See also email thread:
> > >
> https://lore.kernel.org/u-boot/20220807120027.2zz43afbqtqljhul@pali/t/#u
> > > ---
> > >  drivers/mtd/nand/raw/fsl_elbc_nand.c | 1 -
> > >  1 file changed, 1 deletion(-)
> > >
> > > diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > > b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > > index 48a3687f2728..e28670a4724a 100644
> > > --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > > +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> > > @@ -732,7 +732,6 @@ static int fsl_elbc_chip_init(int devnum, u8 *addr,
> > > struct udevice *dev)
> > >         nand->bbt_md = &bbt_mirror_descr;
> > >
> > >         /* set up nand options */
> > > -       nand->options = NAND_NO_SUBPAGE_WRITE;
> > >         nand->bbt_options = NAND_BBT_USE_FLASH;
> > >
> > >         nand->controller = &elbc_ctrl->controller;
> > >
> >
> > Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
> >
> > I was following the thread. Please confirm that you was able to test
>
> Yes, I have tested this change on P2020 based board Turris 1.1. And
> finally U-Boot by default was able to access UBI created by mainline
> Linux with default parameters, just by calling 'ubi part rootfs'.
> UBI created by sub-page of size 2048 can be still also read by U-Boot by
> calling 'ubi part rootfs 2048'. For this purpose I already provided
> distroboot patch to easily specify UBI header offset (which is by
> default sub-page size):
> https://lore.kernel.org/u-boot/20220807190422.20157-1-pali@kernel.org/



Acked-By: Michael Trimarchi<michael@amarulasolutions.com>

I will send pull request tomorrow to Tom

Michael

>
>
> > Michael
> >
> > > --
> > > 2.20.1
> > >
> > >
>
Michael Nazzareno Trimarchi Aug. 22, 2022, 9:55 a.m. UTC | #4
On Tue, Aug 16, 2022 at 10:33 AM Michael Nazzareno Trimarchi
<michael@amarulasolutions.com> wrote:
>
> Hi
>
> Il lun 15 ago 2022, 23:55 Pali Rohár <pali@kernel.org> ha scritto:
>>
>> On Monday 15 August 2022 23:49:17 Michael Nazzareno Trimarchi wrote:
>> > Hi
>> >
>> > Il lun 15 ago 2022, 10:01 Pali Rohár <pali@kernel.org> ha scritto:
>> >
>> > > Subpage write support for freescale eLBC NAND controller driver is
>> > > implemented in U-Boot and was fixes in the commit d3963721d93f ("nand: Sync
>> > > with Linux v4.1").
>> > >
>> > > So remove NAND_NO_SUBPAGE_WRITE flag from the fsl_elbc_nand.c driver. This
>> > > partially revert commit cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE
>> > > to eLBC and IFC drivers"), only eLBC driver part.
>> > >
>> > > With this change U-Boot with default settings can read from NAND UBIFS
>> > > image created on Linux with Linux default settings. Prior this change
>> > > U-Boot was unable to read from NAND UBIFS images created with Linux default
>> > > settings due to differnet UBI geometry.
>> > >
>> > > Linux kernel fsl_elbc_nand.c driver also does not set NAND_NO_SUBPAGE_WRITE
>> > > flag and has implemented subpage write support.
>> > >
>> > > Fixes: cb04c7723429 ("nand/fsl: add NAND_NO_SUBPAGE_WRITE to eLBC and IFC
>> > > drivers")
>> > > Fixes: d3963721d93f ("nand: Sync with Linux v4.1")
>> > > Signed-off-by: Pali Rohár <pali@kernel.org>
>> > > ---
>> > > See also email thread:
>> > > https://lore.kernel.org/u-boot/20220807120027.2zz43afbqtqljhul@pali/t/#u
>> > > ---
>> > >  drivers/mtd/nand/raw/fsl_elbc_nand.c | 1 -
>> > >  1 file changed, 1 deletion(-)
>> > >
>> > > diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c
>> > > b/drivers/mtd/nand/raw/fsl_elbc_nand.c
>> > > index 48a3687f2728..e28670a4724a 100644
>> > > --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
>> > > +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
>> > > @@ -732,7 +732,6 @@ static int fsl_elbc_chip_init(int devnum, u8 *addr,
>> > > struct udevice *dev)
>> > >         nand->bbt_md = &bbt_mirror_descr;
>> > >
>> > >         /* set up nand options */
>> > > -       nand->options = NAND_NO_SUBPAGE_WRITE;
>> > >         nand->bbt_options = NAND_BBT_USE_FLASH;
>> > >
>> > >         nand->controller = &elbc_ctrl->controller;
>> > >
>> >
>> > Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
>> >
>> > I was following the thread. Please confirm that you was able to test
>>
>> Yes, I have tested this change on P2020 based board Turris 1.1. And
>> finally U-Boot by default was able to access UBI created by mainline
>> Linux with default parameters, just by calling 'ubi part rootfs'.
>> UBI created by sub-page of size 2048 can be still also read by U-Boot by
>> calling 'ubi part rootfs 2048'. For this purpose I already provided
>> distroboot patch to easily specify UBI header offset (which is by
>> default sub-page size):
>> https://lore.kernel.org/u-boot/20220807190422.20157-1-pali@kernel.org/
>
>
>
> Acked-By: Michael Trimarchi<michael@amarulasolutions.com>
>
> I will send pull request tomorrow to Tom
>

Applied thanks

> Michael
>>
>>
>>
>> > Michael
>> >
>> > > --
>> > > 2.20.1
>> > >
>> > >
diff mbox series

Patch

diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c
index 48a3687f2728..e28670a4724a 100644
--- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
@@ -732,7 +732,6 @@  static int fsl_elbc_chip_init(int devnum, u8 *addr, struct udevice *dev)
 	nand->bbt_md = &bbt_mirror_descr;
 
 	/* set up nand options */
-	nand->options = NAND_NO_SUBPAGE_WRITE;
 	nand->bbt_options = NAND_BBT_USE_FLASH;
 
 	nand->controller = &elbc_ctrl->controller;