]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mtd: rawnand: nand_base: support for 'NAND_IS_BOOT_MEDIUM' flag
authorArseniy Krasnov <avkrasnov@salutedevices.com>
Mon, 26 Aug 2024 13:17:08 +0000 (16:17 +0300)
committerNeil Armstrong <neil.armstrong@linaro.org>
Wed, 28 Aug 2024 14:05:45 +0000 (16:05 +0200)
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>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Link: https://lore.kernel.org/r/20240826131710.29746-2-avkrasnov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
drivers/mtd/nand/raw/nand_base.c
include/linux/mtd/rawnand.h

index 4401bdcdb90c3c4337eaa7916b3b5c084fa65dff..0545c23e26896bed1f2872686000e7555ba4150b 100644 (file)
@@ -4454,6 +4454,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;
 
index 537c62424a1731a7f3f799eafb5b5a17ff017f2c..2d85b392465c9680a94d28f7af85b33d5cad0e00 100644 (file)
@@ -247,6 +247,11 @@ enum nand_ecc_algo {
  * kmap'ed, vmalloc'ed highmem buffers being passed from upper layers
  */
 #define NAND_USE_BOUNCE_BUFFER 0x00100000
+/*
+ * 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
 
 /*
  * Do not try to tweak the timings at runtime. This is needed when the