[PATCH v5 1/2] dt-bindings: mtd: amlogic,meson-nand: support fields for boot ROM code

Arseniy Krasnov avkrasnov at salutedevices.com
Mon May 6 23:53:06 PDT 2024



On 06.05.2024 16:48, Miquel Raynal wrote:
> Hi Arseniy,
> 
> avkrasnov at salutedevices.com wrote on Tue, 16 Apr 2024 11:51:00 +0300:
> 
>> Boot ROM code on Meson requires that some pages on NAND must be written
>> in special mode: "short" ECC mode where each block is 384 bytes and
>> scrambling mode is on.
> 
> Ok
> 
>> Such pages located with the specified interval within specified offset.
> 
> I'm sorry I don't get that sentence.

Sorry, I mean this (let me draw :) ) :

[ page 0 ][ page 1 ][ page 2 ][ page 3 ][ page 4 ][ page 5 ][ page 6 ][ page 7 ][ page 8 ][ page 9 ]

For example, we have 10 pages starting from the beginning of the chip - this is "within specified offset",
e.g. offset is 10. BootROM on axg needs that (for example) every third page must be written in "special"
mode: scrambling is on and ECC is 384 bytes. Such pages are 0, 2, 4, 6, 8. E.g. "specified interval" will
be 3.

So:

amlogic,boot-pages: 10
amlogic,boot-page-step: 3


> 
>> Both interval and offset are located in the
>> device tree and used by driver if 'nand-is-boot-medium' is set for
>> NAND chip.
> 
> This sentence is probably not needed.

Ok

> 
>>
>> Signed-off-by: Arseniy Krasnov <avkrasnov at salutedevices.com>
>> ---
>>  .../bindings/mtd/amlogic,meson-nand.yaml           | 14 ++++++++++++++
>>  1 file changed, 14 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml
>> index 57b6957c8415..67b2f7c1259c 100644
>> --- a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml
>> +++ b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml
>> @@ -64,11 +64,25 @@ patternProperties:
>>          items:
>>            maximum: 0
>>  
>> +      amlogic,boot-pages:
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        description:
>> +          Number of pages starting from 0, where special ECC
> 
> from *offset* 0 I guess?

Yes, or may be better "from beginning of the chip" ?

May be i can place here ascii picture from above, with reduced number of pages?
And also place this picture in the commit message ?

> 
>> +          algorithm will be used by the driver.
> 
> "where a special ECC configuration must be used because it is accessed
> by the ROM code"? Maybe you can even detail what are these values if
> they are fixed.
> 
> You should probably inform that scrambling shall be on as well.
>  
>> +
>> +      amlogic,boot-page-step:
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        description:
>> +          Interval between pages, read/written by the driver with
>> +          special ECC algorithm.
> 
> I'm not sure I fully get the description. What is the unit here? can
> you draw a small ascii-art diagram?

May be i can place here "please see diagram above" ? And in 'amlogic,boot-pages' there
will be diagram.


> 
>> +
>>      unevaluatedProperties: false
>>  
>>      dependencies:
>>        nand-ecc-strength: [nand-ecc-step-size]
>>        nand-ecc-step-size: [nand-ecc-strength]
>> +      amlogic,boot-pages: [nand-is-boot-medium, "amlogic,boot-page-step"]
>> +      amlogic,boot-page-step: [nand-is-boot-medium, "amlogic,boot-pages"]
>>  
>>  
>>  required:
> 
> 
> Thanks,
> Miquèl

Thanks, Arseniy



More information about the linux-arm-kernel mailing list