Message ID | 20240826060411.3532105-2-avkrasnov@salutedevices.com |
---|---|
State | Superseded |
Delegated to: | Dario Binacchi |
Headers | show |
Series | Meson: R/W support for pages used by boot ROM | expand |
Hi On Mon, Aug 26, 2024 at 8:17 AM Arseniy Krasnov <avkrasnov@salutedevices.com> wrote: > > 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> > --- > Changelog: > v1 -> v2: > * Place 'NAND_IS_BOOT_MEDIUM' according its numerical value. > > drivers/mtd/nand/raw/nand_base.c | 3 +++ > include/linux/mtd/rawnand.h | 5 +++++ > 2 files changed, 8 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..61690e816f 100644 > --- a/include/linux/mtd/rawnand.h > +++ b/include/linux/mtd/rawnand.h > @@ -248,6 +248,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 > > /* Options set by nand scan */ > /* bbt has already been read */ > -- I will then backport this from linux kernel dd6ed5c9890b759ba1b56697b9f3f50e71909e43 Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com> > 2.30.1 > -- Michael Nazzareno Trimarchi Co-Founder & Chief Executive Officer M. +39 347 913 2170 michael@amarulasolutions.com
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..61690e816f 100644 --- a/include/linux/mtd/rawnand.h +++ b/include/linux/mtd/rawnand.h @@ -248,6 +248,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 /* Options set by nand scan */ /* bbt has already been read */
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> --- Changelog: v1 -> v2: * Place 'NAND_IS_BOOT_MEDIUM' according its numerical value. drivers/mtd/nand/raw/nand_base.c | 3 +++ include/linux/mtd/rawnand.h | 5 +++++ 2 files changed, 8 insertions(+)