Skip to content

Commit af5f7c9

Browse files
selissiakowsisoundhar12carol-applebzbarsky-appleDamian-Nordic
authored
[EFR32] Bump the silabs submodule pointer, update documentation (#20847)
* Test added march 8 (#15957) * Added new manual scripts * Added Auto generated File * [OTA] Fix OTARequestorDriverImpl inclusion (#15981) * Regen to fix CI failures (#15990) * [ota] Store Default OTA Providers in flash (#15970) * [ota] Store Default OTA Providers in flash Store Default OTA Providers in flash each time the attribute is modified and load it back on the application startup. * Restyled by clang-format * Fix build and reduce flash usage Co-authored-by: Restyled.io <commits@restyled.io> * Update silabs submodule to include booltoader binaries; update documentation * Remove merge artifacts * Restyled by prettier-markdown * Update dictionary Co-authored-by: kowsisoundhar12 <57476670+kowsisoundhar12@users.noreply.github.com> Co-authored-by: Carol Yang <clyang@apple.com> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> Co-authored-by: Damian Królik <66667989+Damian-Nordic@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io>
1 parent 21490a2 commit af5f7c9

File tree

3 files changed

+65
-16
lines changed

3 files changed

+65
-16
lines changed

.github/.wordlist.txt

+2
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,7 @@ LTE
761761
LTS
762762
LwIP
763763
LwIP's
764+
LZMA
764765
macaddr
765766
machineType
766767
MacOS
@@ -884,6 +885,7 @@ NodeId
884885
nongnu
885886
nordicsemi
886887
NotAvailable
888+
NotifyUpdateApplied
887889
notValue
888890
npm
889891
nRF

docs/guides/silabs_efr32_software_update.md

+62-15
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,15 @@ all of the EFR32 example applications.
1919
scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false
2020
```
2121

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
3028

3129
```
32-
third_party/efr32_sdk/repo/platform/bootloader/sample-apps/bootloader-storage-spiflash-single
30+
third_party/silabs/matter_support/matter/efr32/bootloader_binaries
3331
```
3432

3533
- Using the commander tool upload the bootloader to the device running the
@@ -45,7 +43,7 @@ all of the EFR32 example applications.
4543
- Create the Matter OTA file from the bootable image file:
4644

4745
```
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
4947
```
5048

5149
- 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.
8482
download. Once the image is downloaded the device will reboot into the
8583
downloaded image.
8684

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
88134

89135
Starting the ota-provider-app with the --otaImageList command line option allows
90136
the user to supply a JSON file specifying the Software Version, Vendor and
@@ -102,7 +148,8 @@ Example provider configuration file:
102148
}
103149
```
104150

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+
.

third_party/silabs/matter_support

Submodule matter_support updated 19 files

0 commit comments

Comments
 (0)