[STM32H7] Provisioning fs reformat#957
Conversation
pennam
left a comment
There was a problem hiding this comment.
There is no need to erase the whole flash before repartitioning; you only need to erase the MBR.
root.init();
root.erase(0x0, root.get_erase_size());
Furthermore if you keep the KVstorage in partition 3 for both schemes you should be able switch between them without erase the MBR at all
mbed::MBRBlockDevice::partition(&root, 1, 0x0B, 0, 1024 * 1024);
if(default_scheme) {
mbed::MBRBlockDevice::partition(&root, 4, 0x0B, 14 * 1024 * 1024, 14 * 1024 * 1024);
mbed::MBRBlockDevice::partition(&root, 3, 0x0B, 13 * 1024 * 1024, 14 * 1024 * 1024);
mbed::MBRBlockDevice::partition(&root, 2, 0x0B, 1024 * 1024, 13 * 1024 * 1024);
// use space from 15.5MB to 16 MB for another fw, memory mapped
} else {
mbed::MBRBlockDevice::partition(&root, 2, 0x0B, 1024 * 1024, 6 * 1024 * 1024);
mbed::MBRBlockDevice::partition(&root, 3, 0x0B, 6 * 1024 * 1024, 7 * 1024 * 1024);
mbed::MBRBlockDevice::partition(&root, 4, 0x0B, 7 * 1024 * 1024, 14 * 1024 * 1024);
// use space from 15.5MB to 16 MB for another fw, memory mapped
}
I tried switching from this scheme to the older one and something bad happened and the only way to make it work properly was to erase the partitions. I am double checking this. |
|
I confirm that without the MBR erase I cannot use the old partitioning scheme. |
0416f6b to
9400dab
Compare
1d22ce2 to
6a309b7
Compare
What do you think about the way I wrote the MBR table clean?
Now partition 3 is being used for user data, this would mean that we need either to switch user data partition to 4, or distinguish between the two cases when using kvstore. I prefer to keep it to partition number 4. |
6a309b7 to
392cc64
Compare
|
@andreagilardoni @pennam Hi, a couple of us have tried, unsuccessfully, to scrub the MBR in order to change the partition layout. Detail here https://forum.arduino.cc/t/how-to-partition-giga-flash-similar-to-original-factory-defaults/1349759. I'm sure we were doing something wrong but it may be worth double-double-checking that the erase in this commit is doing what's expected. |
|
I would like to point out that when repartitioning, for the user or ota block devices some files can be corrupted if they lie in the area that will be used for partition 4. |
41d9a90 to
9e05f2b
Compare
|
superseded by #1058 |
Changing flash partitioning scheme in order to make room for a KV store