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 |
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 > >
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 > > > >
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 > > > > > > >
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 --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;
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(-)