On Wed, Mar 03, 2021 at 11:01:55AM +0100, Rafał Miłecki wrote:
> [Rob: please advise]
> 
> On 16.02.2021 22:26, Ansuel Smith wrote:
> > Document nvmem-partitions compatible used to treat mtd partitions as a
> > nvmem provider.
> 
> Until now we were using "compatible" string in partition node only for
> parsers (looking for subpartitions). We need to think if this change can
> break anything from DT / Linux perspective.
> 
> Compatible strings should be unique, so there is no risk of conflict
> between NVMEM and parsers.
> 
> Now: can we ever need mtd partition to:
> 1. Contain subpartitions
> 2. Provide NVMEM
> at the same time?
> 
> Let's say:
> 
> partition@0 {
>       compatible = "vendor,dynamic-firmware-partitions", "nvmem-partitions";

I think you'd want the "vendor,dynamic-firmware-partitions" parser/code 
to serve up any nvmem regions. Whether you have a fallback here depends 
if an OS could make use of the regions knowing nothing about 
"vendor,dynamic-firmware-partitions".

>       label = "firmware";
>       reg = <0x0 0x100000>;
>       #address-cells = <1>;
>       #size-cells = <1>;
>       ranges = <0 0x0 0x100000>;
> 
>       firmware-version@10 {
>               reg = <0x10 0x4>;
>       };
> 
>       firmware-date@10 {
>               reg = <0x20 0x4>;
>       };
> };
> 
> Is that allowed to respect both "compatible" strings and have:
> 1. Linux parser parse "firmware" for subpartitions
> 2. Linux MTD register "firmware" as NVMEM device
> ?
> 
> If not, what other options do we have? Is that allowed to have a
> dangling MTD NVMEM node with phandle to MTD partition?
> 
> firmware: partition@0 {
>       compatible = "vendor,dynamic-firmware-partitions";
>       label = "firmware";
>       reg = <0x0 0x100000>;
> };
> 
> (...)
> 
> firmware-version@10 {
>       compatible = "mtd-nvmem";
>       reg = <0x10 0x4>;
>       mtd = <&firmware>;
> };
> 
> firmware-date@10 {
>       compatible = "mtd-nvmem";
>       reg = <0x20 0x4>;
>       mtd = <&firmware>;
> };

This, I would not like to see.

Rob

Reply via email to