
Hello Arseniy,
Am Sun, Jun 02, 2024 at 11:08:34PM +0300 schrieb Arseniy Krasnov:
Based on Linux kernel: commit f922bd798bb9 ("mtd: rawnand: add an option to specify NAND chip as a boot device")
Allow to define a NAND chip as a boot device. This can be helpful for the selection of the ECC algorithm and strength in case the boot ROM supports only a subset of controller provided options.
Signed-off-by: Arseniy Krasnov avkrasnov@salutedevices.com
drivers/mtd/nand/raw/nand_base.c | 3 +++ include/linux/mtd/rawnand.h | 6 ++++++ 2 files changed, 9 insertions(+)
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index c40a0f23d7..ed605b4af5 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c @@ -4458,6 +4458,9 @@ static int nand_dt_init(struct mtd_info *mtd, struct nand_chip *chip, ofnode nod if (ret == 16) chip->options |= NAND_BUSWIDTH_16;
- if (ofnode_read_bool(node, "nand-is-boot-medium"))
chip->options |= NAND_IS_BOOT_MEDIUM;
- if (ofnode_read_bool(node, "nand-on-flash-bbt")) chip->bbt_options |= NAND_BBT_USE_FLASH;
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h index fb002ae641..4eb880d8fb 100644 --- a/include/linux/mtd/rawnand.h +++ b/include/linux/mtd/rawnand.h @@ -218,6 +218,12 @@ enum nand_ecc_algo { /* Device needs 3rd row address cycle */ #define NAND_ROW_ADDR_3 0x00004000
+/*
- Whether the NAND chip is a boot medium. Drivers might use this information
- to select ECC algorithms supported by the boot ROM or similar restrictions.
- */
+#define NAND_IS_BOOT_MEDIUM 0x00400000
/* Options valid for Samsung large page devices */ #define NAND_SAMSUNG_LP_OPTIONS NAND_CACHEPRG
The entries in that file are ordered numerically. Comparing with the same file in Linux this should go before NAND_KEEP_TIMINGS, not anywhere in between. Makes later diffs and ports from Linux easier.
Greets Alex
-- 2.35.0