Amlogic's boot ROM code needs that some pages on NAND must be written in special "short" ECC mode with scrambling enabled. Such pages: 1) Contain some metadata about hardware. 2) Located with some interval starting from 0 offset, until some specified offset. Interval and second offset are set in the device tree. This patchset adds R/W support for such pages. To enable it we can setup it in dts: nand-is-boot-medium; amlogic,boot-page-last = <1024>; amlogic,boot-page-step = <128>; It means that each 128th page in range 0 to 1024 pages will be accessed in special mode ("short" ECC + scrambling). In practice this feature is needed when we want to update first block of NAND - driver will enable required mode by itself using value from device tree. Changelog: v1 -> v2: * Rename 'meson,boot-page-XXX' -> 'amlogic,boot-page-XXX'. * Add words that 'amlogic,boot-page-step' is measured in pages. * Remove words that 'amlogic,boot-page-XXX' depends on 'nand-is-boot-medium'. * Make both 'amlogic,boot-page-XXX' depend on each other also, in addition to 'nand-is-boot-medium' dependency. v2 -> v3: * Add quotes to 0001 in dependencies. This fixes 'make dt_binding_check' warning. v3 -> v4: * Rename 'amlogic,boot-page-last' to 'amlogic,boot-pages'. Arseniy Krasnov (2): dt-bindings: mtd: amlogic,meson-nand: support fields for boot ROM code mtd: rawnand: meson: support R/W mode for boot ROM .../bindings/mtd/amlogic,meson-nand.yaml | 14 +++ drivers/mtd/nand/raw/meson_nand.c | 88 +++++++++++++------ 2 files changed, 73 insertions(+), 29 deletions(-) -- 2.35.0