You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+68-2Lines changed: 68 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,12 +90,43 @@ In order for the cloud client to recognise this struct and obtain the informatio
90
90
User **may** set in `mbed_app.json`:
91
91
1.`mbed-bootloader.max-copy-retries`, The number of retries after a failed copy attempt.
92
92
1.`mbed-bootloader.max-boot-retries`, The number of retries after a failed forward to application.
93
+
1.`mbed-bootloader.show-serial-output`, Set to 0 to disable all serial output. Useful for reducing size on headless devices.
93
94
1.`mbed-bootloader.show-progress-bar`, Set to 1 to print a progress bar for various processes.
94
95
1.`mbed-bootloader.max-application-size`, Maximum size of the active application. The default value is `FLASH_START_ADDRESS + FLASH_SIZE - APPLICATION_START_ADDRESS`. Bootloader uses this value to reject candidate image that are too large.
95
96
96
97
## Flash Layout
97
98
98
-
### The flash layout for K64F with KVStore and firmware storage on internal flash
99
+
### Default configuration using flash layout with KVStore and firmware storage on external storage
### Notes on Flash Layout of non PSA tagets with external storage
124
+
125
+
- This is the default implementation at the default mbed_app.json
126
+
- The default flash layout is tested with GCC_ARM compiler and tiny.json compiler profile only. If a different compiler is used, the bootloader binary size will be larger and the offsets needs to be adjusted.
127
+
- The KVSTORE regions require even number of flash erase sectors.
128
+
129
+
### The flash layout for non PSA targets with KVStore and firmware storage on internal flash
99
130
100
131
```
101
132
+--------------------------+
@@ -127,13 +158,48 @@ User **may** set in `mbed_app.json`:
127
158
+--------------------------+ <-+ 0
128
159
```
129
160
130
-
### Notes on Flash Layout
161
+
### Notes on Flash Layout of non PSA targets
131
162
132
163
- Internal Flash Only layout can be enabled by compiling the bootloader with the configuration file `--app-config configs/internal_flash_no_rot.json`. By default the firmware storage region and filesystem is on [external sd card](#external-storage).
133
164
- The default flash layout is tested with GCC_ARM compiler and tiny.json compiler profile only. If a different compiler is used, the bootloader binary size will be larger and the offsets needs to be adjusted.
134
165
- The KVSTORE regions require even number of flash erase sectors. If the firmware candidate is stored on internal flash, the bootloader does not access the KVStore. But it still needs to be there for the benefit of the Pelion Device Management Client.
135
166
- Some micro-controller chips are designed with 2 banks of flash that can be read from and written to independently from each other. Hence it is a good idea to put your bootloader and active application on bank 1, your kvstore and firmware candidate storage on bank 2. This way when the application writes data to flash, it doesn't need to halt the processor execution to do it.
136
167
168
+
169
+
### PSA configuration using flash layout with KVStore and firmware storage on external storage
- This is the PSA default implementation using the default mbed_app.json
200
+
- The default flash layout is tested with GCC_ARM compiler and tiny.json compiler profile only. If a different compiler is used, the bootloader binary size will be larger and the offsets needs to be adjusted.
201
+
- The KVSTORE regions require even number of flash erase sectors. For PSA targets the KVStore is located at the ends of the flash.
202
+
137
203
### Alignment
138
204
139
205
**Flash Erase Boundary**: Flash can usually only be erased in blocks of specific sizes, this is platform specific and hence many regions need to align to this boundary.
0 commit comments