I've tried to use the state framework with an SPI eeprom as described here:
https://www.barebox.org/doc/latest/user/state.html#eeprom
The eeprom uses a "partition" for the state data:
------------------------8<---------------------------
eeprom@50 {
partitions {
compatible = "fixed-partitions";
#size-cells = <1>;
#address-cells = <1>;
backend_state_eeprom: eeprom_state_memory@400 {
reg = <0x400 0x100>;
label = "state-eeprom";
};
};
};
------------------------>8---------------------------
It looks like there a 2 different concepts of having partitions in flashes:
1. As direct subnodes to the eeprom/flash
2. As subnodes within a "fixed-partition" subnode (as in the example above)
>From linux/Documentation/devicetree/bindings/mtd/partition.txt:
"For backwards compatibility partitions as direct subnodes of the flash device
are supported. This use is discouraged."
So using the 2nd approach is right, isn't it?
Trying to use this with the at25 nvmem driver in Linux, I get the following
error:
nvmem spi0.00: nvmem: invalid reg on /soc/aips-bus@2000000/spba-bus@2000000/
spi@2008000/fram@0/partitions
Looking into nvmem_add_cells_from_of() in the linux sources, the NVMEM code
seems to differ from the MTD core. It only expects the partitions as direct
subnodes (without "fixed-partitions").
In Barebox, of_partition_fixup() can be configured using the
global.of_partition_bindingof_partition_binding variable. But I couldn't find
any user of this and this would probably affect both, NVMEM and MTD.
>From the barebox point of view it seems best to add "fixed-partitions" support
to Linux NVMEM. Any other suggests?
regards
Christian
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox