[PATCH] mtd: rawnand: fsl_elbc: Remove NAND_NO_SUBPAGE_WRITE flag

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;

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 Trimarchimichael@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 Trimarchimichael@amarulasolutions.com
I will send pull request tomorrow to Tom
Applied thanks
Michael
Michael
-- 2.20.1
participants (2)
-
Michael Nazzareno Trimarchi
-
Pali Rohár