-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[NXP] Update k32w0 folder structure (#34772)
* [platform][common] Add old nxp/k32w/common files Moving these files here since they are used by multiple platforms. K32W1 will be updated in the future and the old nxp/k32w/common will be removed. Keep it for now (duplicated files) to ease the synchronization of changes. Signed-off-by: marius-alex-tache <[email protected]> * [NXP][k32w0] Remove k32w parent folder - examples/*/nxp/k32w/k32w0 becomes examples/*/nxp/k32w0 - src/platform/nxp/k32w/k32w0 becomes src/platform/nxp/k32w0 - third_party/openthread/platforms/nxp/k32w/k32w0 becomes third_party/openthread/platforms/nxp/k32w0 Signed-off-by: marius-alex-tache <[email protected]> * [NXP][common][k32w0] Update some files after k32w parent removal Signed-off-by: marius-alex-tache <[email protected]> (cherry picked from commit 039c51d1731de3acc583da906583d8fc0f482b8d) * [NXP][examples][k32w0] Remove examples/platform/nxp/k32w0 folder except docs examples/platform/nxp/k32w0/doc will remain in Matter repo. The other folders were moved to nxp_matter_support submodule. Signed-off-by: marius-alex-tache <[email protected]> * [NXP][doc][k32w0] Updating path to update_nxp_sdk.py script Signed-off-by: Gatien Chapon <[email protected]> (cherry picked from commit c729b5c6f8ac3b21345482d5f1585d1df1032770) * [NXP][examples][k32w0] Update paths after nxp_matter_support switch Signed-off-by: marius-alex-tache <[email protected]> (cherry picked from commit 871ea893b3ad1f7d6d7b6943827a666b89f50b8f) * [NXP][examples][k32w0] Enable chip_generate_link_map_file by default Signed-off-by: marius-alex-tache <[email protected]> * [NXP][examples][k32w0] Add OTA encryption info in contact sensor README Signed-off-by: marius-alex-tache <[email protected]> * [NXP][docs] Fix spellcheck errors Signed-off-by: marius-alex-tache <[email protected]> * [NXP] Bump nxp_matter_support repo Signed-off-by: marius-alex-tache <[email protected]> * [k32w0][doc] Remove obsolete python dependency --------- Signed-off-by: marius-alex-tache <[email protected]> Co-authored-by: Mihai Ignat <[email protected]>
- Loading branch information
1 parent
e58e16e
commit 83dc1c8
Showing
147 changed files
with
5,306 additions
and
2,329 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,232 @@ | ||
# NXP K32W0x1 OTA guide | ||
|
||
## The Secondary Stage Bootloader (SSBL) | ||
|
||
There are multiple SSBL binaries provided by the SDK: | ||
|
||
| description | github SDK path | package SDK path | | ||
| ------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | | ||
| Default SSBL | NA | `boards/k32w061dk6/wireless_examples/framework/ssbl/binary/ssbl.bin` | | ||
| SSBL with PDM in external flash | `examples/k32w061dk6/wireless_examples/framework/ssbl/binary/ssbl_ext_flash_pdm_support.bin` | `boards/k32w061dk6/wireless_examples/framework/ssbl/binary/ssbl_ext_flash_pdm_support.bin` | | ||
|
||
The SSBL is also built alongside the reference application and it can be | ||
configured according to the following table: | ||
|
||
| gn arg | default | description | | ||
| --------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------- | | ||
| `ssbl_pdm_external_flash` | true | Enable/disable PDM in external flash | | ||
| `ssbl_multi_image_support` | true | Enable/disable multi-image OTA feature | | ||
| `ssbl_ota_entry_storage` | "OTACustomStorage_ExtFlash" | Configure custom OTA entry storage type | | ||
| `ssbl_simple_hash_verification` | false | Enable/disable simple hash verification alternative to secure boot | | ||
| `ssbl_optimize_spifi_flash` | false | Optimize `SPIFI` flash driver size | | ||
| `ssbl_spifi_dual_mode` | false | Enable/disable `SPIFI` dual mode support (e.g. used by K32W041AM variant) | | ||
| `ssbl_version` | 0 | Set SSBL version | | ||
| `ssbl_use_redlib` | false | Enable/disable usage of `redlib` NXP library. If false, the build will use `newlib` nano | | ||
| `ssbl_ota_data_in_external_flash` | false | Enable/disable OTA support for application with sections stored in external flash | | ||
|
||
## Simple hash verification | ||
|
||
When secure boot is not used, a simple hash can be appended at the end of the | ||
image for integrity check. Applications should be built with | ||
`chip_simple_hash_verification=1`. | ||
|
||
## Writing the SSBL | ||
|
||
Before writing the SSBL, it it recommanded to fully erase the internal flash. | ||
|
||
Using DK6Programmer utility from Windows: | ||
|
||
``` | ||
DK6Programmer.exe -V 5 -P 1000000 -s <COM_PORT> -e Flash | ||
``` | ||
|
||
Using `dk6prog` from `SPSDK`: | ||
|
||
``` | ||
$ dk6prog listdev | ||
This is an experimental utility. Use with caution! | ||
List of available devices: | ||
DEVICE ID: DN038ZH3, VID: 0x403, PID: 0x6015, Serial number: DN038ZH3, Description: DK6 Carrier Board, Address: 9, Backend: Backend.PYFTDI | ||
$ dk6prog -d DN038ZH3 erase 0 0x9de00 | ||
This is an experimental utility. Use with caution! | ||
Erasing memory [####################################] 100% | ||
``` | ||
|
||
`chip-k32w0x-ssbl.bin` must be written at address 0 in the internal flash: | ||
|
||
Using DK6Programmer utility from Windows: | ||
|
||
``` | ||
DK6Programmer.exe -V2 -s <COM_PORT> -P 1000000 -Y -p FLASH@0x00="chip-k32w0x-ssbl.bin" | ||
``` | ||
|
||
Using `dk6prog` from `SPSDK`: | ||
|
||
``` | ||
$ dk6prog -d DN038ZH3 write 0 ~/path/to/bin/chip-k32w0x-ssbl.bin | ||
This is an experimental utility. Use with caution! | ||
Writing memory [####################################] 100% | ||
Written 7890 bytes to memory ID 0 at address 0x0 | ||
``` | ||
|
||
### Writing the PSECT | ||
|
||
This is the list of all supported partitions: | ||
|
||
``` | ||
0000000010000000 : SSBL partition | ||
00000000 -----------> Start Address | ||
1000 ---------------> 0x0010 Number of 512-bytes pages | ||
00 -----------------> 0x00 Bootable flag | ||
00 -----------------> 0x00 Image type (0x00 = SSBL) | ||
00400000c9040101: Application partition | ||
00400000 -----------> 0x00004000 Start Address | ||
c904 ---------------> 0x04c9 Number of 512-bytes pages | ||
01 -----------------> 0x01 Bootable flag | ||
01 -----------------> 0x01 Image type (0x01 = Application) | ||
00000010800000fe: Ext Flash text partition | ||
00000010 -----------> 0x10000000 Start Address (external flash) | ||
8000 ---------------> 0x0080 Number of 512-bytes pages | ||
00 -----------------> 0x00 Bootable flag | ||
fe -----------------> 0xFE Image type (0xFE = Ext Flash text) | ||
00000110300200fc : OTA Image partition | ||
00000110 -----------> 0x10010000 Start Address | ||
3002----------------> 0x0230 Number of 512-bytes pages | ||
00 -----------------> 0x00 Bootable flag | ||
fc -----------------> 0xFC Image type (0xFC = OTA partition) | ||
00000510100000fd: NVM partition | ||
00000510 -----------> 0x10050000 Start Address | ||
1000 ---------------> 0x0010 Number of 512-bytes pages | ||
00 -----------------> 0x00 Bootable flag | ||
fd -----------------> 0xFD Image type (0xFD = NVM partition) | ||
``` | ||
|
||
First, image directory 0 (SSBL partition) must be written: | ||
|
||
Using DK6Programmer utility from Windows: | ||
|
||
``` | ||
DK6Programmer.exe -V5 -s <COM port> -P 1000000 -w image_dir_0=0000000010000000 | ||
``` | ||
|
||
Using `dk6prog` from `SPSDK`: | ||
|
||
``` | ||
$ dk6prog -d DN038ZH3 write 0x160 [[0000000010000000]] 8 PSECT | ||
This is an experimental utility. Use with caution! | ||
Writing memory [####################################] 100% | ||
Written 8 bytes to memory ID PSECT at address 0x160 | ||
``` | ||
|
||
Here is the interpretation of the fields: | ||
|
||
``` | ||
00000000 -> start address 0x00000000 | ||
1000 -> size = 0x0010 pages of 512-bytes (= 8kB) | ||
00 -> not bootable (only used by the SSBL to support SSBL update) | ||
00 -> SSBL Image Type | ||
``` | ||
|
||
Second, image directory 1 (application partition) must be written: | ||
|
||
Using DK6Programmer utility from Windows: | ||
|
||
``` | ||
DK6Programmer.exe -V5 -s <COM port> -P 1000000 -w image_dir_1=00400000C9040101 | ||
``` | ||
|
||
Using `dk6prog` from `SPSDK`: | ||
|
||
``` | ||
$ dk6prog -d DN038ZH3 write 0x168 [[00400000C9040101]] 8 PSECT | ||
This is an experimental utility. Use with caution! | ||
Writing memory [####################################] 100% | ||
Written 8 bytes to memory ID PSECT at address 0x168 | ||
``` | ||
|
||
Here is the interpretation of the fields: | ||
|
||
``` | ||
00400000 -> start address 0x00004000 | ||
C904 -> 0x4C9 pages of 512-bytes (= 612.5kB) | ||
01 -> bootable flag | ||
01 -> image type for the application | ||
``` | ||
|
||
Please note the user can write additional partitions by writing | ||
`image_dir_2/3/4` with the wanted configuration. In case of using the `SPSDK` | ||
tool, the appropriate offset must be calculated | ||
|
||
## Removing SSBL Upgrade Region | ||
|
||
The example also offers the possibility to remove SSBL upgrade region, for | ||
reserving more space for application level. | ||
|
||
A new flag `chip_reduce_ssbl_size` is introduced. In order to remove the SSBL | ||
upgrade region, `chip_reduce_ssbl_size=true` must be provided to the build | ||
system | ||
|
||
The programming method will change: | ||
|
||
- Writing image directory 1 should change to Using DK6Programmer utility from | ||
Windows: | ||
|
||
``` | ||
DK6Programmer.exe -V5 -s <COM port> -P 1000000 -w image_dir_1=00200000D9040101 | ||
``` | ||
Using `dk6prog` from `SPSDK`: | ||
``` | ||
$ dk6prog -d DN038ZH3 write 0x168 [[00200000D9040101]] 8 PSECT | ||
This is an experimental utility. Use with caution! | ||
Writing memory [####################################] 100% | ||
Written 8 bytes to memory ID PSECT at address 0x168 | ||
``` | ||
Here is the interpretation of the fields: | ||
``` | ||
00200000 -> start address 0x00002000 | ||
D904 -> 0x4D9 pages of 512-bytes (= 620.5kB) | ||
01 -> bootable flag | ||
01 -> image type for the application | ||
``` | ||
- Matter application offset address should change to Using DK6Programmer | ||
utility from Windows: | ||
``` | ||
DK6Programmer.exe -V2 -s <COM_PORT> -P 1000000 -Y -p FLASH@0x2000="chip-k32w0x-contact-example.bin" | ||
``` | ||
Using `dk6prog` from `SPSDK`: | ||
``` | ||
$ dk6prog -d DN038ZH3 write 0x2000 ~/path/to/bin/chip-k32w0x-contact-example.bin | ||
This is an experimental utility. Use with caution! | ||
Writing memory [####################################] 100% | ||
Written 596450 bytes to memory ID 0 at address 0x2000 | ||
``` |
Oops, something went wrong.