@@ -19,17 +19,15 @@ all of the EFR32 example applications.
19
19
scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false
20
20
```
21
21
22
- - Build or download the Gecko Bootloader binary. Bootloader should be built
23
- with the Gecko SDK version 3.2.1 or earlier. For the bootloader using the
24
- external flash select the "external SPI" bootloader type configured with a
25
- single slot of at least 1000 KB. For the bootloader using the internal flash
26
- (supported on MG24 boards only) select the "internal storage" bootloader
27
- type. Follow the instructions in "UG266: Silicon Labs Gecko Bootloader
28
- User’s Guide". Pre-built binaries for some configurations should be
29
- available in
22
+ - Build or download the Gecko Bootloader binary. Follow the instructions in
23
+ "UG266: Silicon Labs Gecko Bootloader User’s Guide". For the bootloader
24
+ using the external flash select the "external SPI" bootloader type
25
+ configured with a single slot of at least 1000 KB. For the bootloader using
26
+ the internal flash see the Internal Storage Bootloader section below.
27
+ Pre-built binaries for some configurations should be available in
30
28
31
29
```
32
- third_party/efr32_sdk/repo/platform/bootloader/sample-apps/bootloader-storage-spiflash-single
30
+ third_party/silabs/matter_support/matter/efr32/bootloader_binaries
33
31
```
34
32
35
33
- Using the commander tool upload the bootloader to the device running the
@@ -45,7 +43,7 @@ all of the EFR32 example applications.
45
43
- Create the Matter OTA file from the bootable image file:
46
44
47
45
```
48
- ./src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8005 -vn 1 -vs "1 .0" -da sha256 chip-efr32-lighting-example.gbl chip-efr32-lighting-example.ota
46
+ ./src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8005 -vn 2 -vs "2 .0" -da sha256 chip-efr32-lighting-example.gbl chip-efr32-lighting-example.ota
49
47
```
50
48
51
49
- In a terminal start the Provider app passing to it the path to the Matter
@@ -84,7 +82,55 @@ where operationalDataset is obtained from the OpenThread Border Router.
84
82
download. Once the image is downloaded the device will reboot into the
85
83
downloaded image.
86
84
87
- ## Managing the Software Version, Vendor and Product ID
85
+ ## Internal Storage Bootloader
86
+
87
+ Internal storage bootloader for Matter OTA software update is supported on MG24
88
+ boards only. In this use case both the running image and the downloadable update
89
+ image must fit on the internal flash at the same time. This in turn requires
90
+ that both images are built with a reduced feature set such as disabled logging
91
+ and Matter shell. The following set of compile flags leaves out all the optional
92
+ features and results in the minimal image size:
93
+
94
+ ```
95
+ chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false is_debug=false show_qr_code=false chip_build_libshell=false enable_openthread_cli=false chip_openthread_ftd=true
96
+ ```
97
+
98
+ Using LZMA compression when building the .gbl file ( passing ` --compress lzma `
99
+ parameter to the ` commander gbl create ` command) further reduces the downloaded
100
+ image size.
101
+
102
+ When building an internal storage bootloader the two key configuration
103
+ parameters are the Slot Start Address and Slot Size in the Bootloader Storage
104
+ Slot component. The storage slot must not overlap with the running image and the
105
+ NVM section of the flash. In other words, the slot start address must be greater
106
+ than the end of the running image address and the sum of the start address and
107
+ the slot size must be less than the address of the NVM section. The simplest way
108
+ to get the relevant addresses for the running image and NVM would be by using
109
+ the Silicon Labs ` commander ` tool (Device Info->Main Flash->Flash Map).
110
+
111
+ The pre-built bootloader binaries are configured with slot start address of
112
+ 0x080EC000 and slot size of 548864
113
+
114
+ ## Managing the Software Version
115
+
116
+ In order for the Provider to successfully serve the image to a device during the
117
+ OTA Software Update process the Software Version parameter that the .ota file
118
+ was built with must be greater than the
119
+ CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION parameter set in the application's
120
+ ` CHIPProjectConfig.h ` file. The Software Version parameter is set by the ` -vn `
121
+ parameter passed to the ` ota_image_tool.py create ` command. For example, if the
122
+ application's running image was built with
123
+ CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION set to 1 and if the ` .ota ` file is
124
+ built with ` -vn 2 ` then the Provider will serve the update image when requested.
125
+
126
+ In order for the OTA Software Update subsystem to consider an update to be
127
+ successful and for the NotifyUpdateApplied command to be transmitted the
128
+ CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION in the updated image must exceed the
129
+ software version of the running image (continuing the above example, the image
130
+ for the update must be built with CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION set
131
+ to 2).
132
+
133
+ ## Managing the Vendor and Product ID
88
134
89
135
Starting the ota-provider-app with the --otaImageList command line option allows
90
136
the user to supply a JSON file specifying the Software Version, Vendor and
@@ -102,7 +148,8 @@ Example provider configuration file:
102
148
}
103
149
```
104
150
105
- In order for the Provider to successfully serve the image to a device during the
106
- OTA Software Update process the softwareVersion parameter in the Provider config
107
- file must be greater than the CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION
108
- parameter set in the application's CHIPProjectConfig.h file.
151
+ ## Additional Info
152
+
153
+ Developers can find more resources on
154
+ [ Silicon Labs Matter Community Page] ( https://community.silabs.com/s/article/connected-home-over-ip-chip-faq?language=en_US )
155
+ .
0 commit comments