I have an issue with using partitions created by PM in external flash. I can create a partition in my prj.conf file and use that and everything works. But I need to put some data into the external NOR memory. PM creates the partitions correctly as far as I can see. But I have not found a way to make the FatFS driver correctly find those partitions. Basically I have the exact same issue as in this ticket: How to reference PM generated partitions from device tree?
I need to create a disk like this for FatFS driver to find.
/ { msc_disk0 { compatible = "zephyr,flash-disk"; partition = <&external_flash>; disk-name = "NAND"; cache-size = <4096>; }; };
If I have the partition in internal memory I can at least make this compile (the partition is tiny so it won't work for my application)
&flash0 { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { label = "mcuboot"; reg = <0x0 0xc000>; }; slot0_partition: partition@c000 { label = "image-0"; reg = <0xc000 0x72000>; }; slot1_partition: partition@7e000 { label = "image-1"; reg = <0x7e000 0x72000>; }; scratch_partition: partition@f0000 { label = "image-scratch"; reg = <0xf0000 0xa000>; }; storage_partition: partition@fa000 { label = "storage"; reg = <0xfa000 0x5f00>; }; external_flash: partition@fff00 { label = "external_flash"; reg = <0xfff00 0x100>; }; }; };
The external memory itself is fine and I can read/write it with flash_area_read() and flash_area_write() functions.
Is there a way to reference the PM created partitions from within the devicetree file of my main application?