### Linux System Update and Setup Script Execution Source: https://docs.silabs.com/simplicity-studio-5-users-guide/5.5.0/ss-5-users-guide-getting-started/install-ss-5-and-software This command sequence updates the package list, upgrades existing packages, navigates to the Simplicity Studio installation directory, and executes the setup script. Ensure you have the necessary permissions and that the directory is writable by the user. ```bash sudo apt-get update sudo apt-get upgrade cd SimplicityStudio_v5 sudo ./setup.sh ``` -------------------------------- ### Matter over Thread Quick-Start Guide Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-protocol-specific This section references the Matter over Thread Quick-Start Guide, facilitating the integration of Matter devices using Thread as the underlying network protocol. It guides users through the initial setup and configuration for Matter-enabled IoT products. -------------------------------- ### Matter over Thread Quick-Start Guide Reference (Link) Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-cpms Provides a link to the Silicon Labs Matter Artifacts, which contains the latest version of the Matter over Thread Quick-Start Guide. This is a starting point for developers looking to integrate Matter devices using Thread. ```text https://docs.silabs.com/matter/latest/matter-over-thread ``` -------------------------------- ### Matter over Thread Quick-Start Guide (Silicon Labs) Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-pki-recommendations This guide provides instructions for Matter over Thread implementation on Silicon Labs devices. It is a starting point for developers looking to integrate the Matter standard with Thread networking. Information on obtaining the latest version of Silicon Labs Matter Artifacts is provided. ```text Matter over Thread Quick-Start Guide | Matter over Thread | Silicon Labs Matter | v2.0.0 | Silicon Labs https://docs.silabs.com/.... Training ... You are viewing documentation for version: 2.0.0 Matter over Thread Quick-Start Guide# ... You can obtain a copy of the latest version here: Silicon Labs Matter Artifacts. ``` -------------------------------- ### GDB Server: Open User Guide Wiki Instead of PDF Source: https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html This snippet demonstrates the change in the GDB Server's behavior when accessing help. The 'Action Help -> J-Link User Guide' command now opens the User Guide Wiki page in a web browser instead of the local PDF manual. This provides access to the most up-to-date documentation. ```bash monitor help J-Link User Guide ``` -------------------------------- ### SE Manager Key Provisioning Example Output in C Source: https://context7_llms Demonstrates the console output from the SE Manager Key Provisioning example application, showing initialization steps, firmware version retrieval, OTP configuration reading, and encryption operations with their respective status codes and execution metrics. ```C SE Manager Key Provisioning Example - Core running at 38000 kHz. . SE manager initialization... SL_STATUS_OK (cycles: 9 time: 0 us) . Get current SE firmware version... SL_STATUS_OK (cycles: 3578 time: 94 us) + Current SE firmware version (MSB..LSB): 00010209 . Read SE OTP configuration... SL_STATUS_COMMAND_IS_INVALID (cycles: 3908 time: 102 us) . Press ENTER to program 128-bit AES key in SE OTP or press SPACE to skip. . Encrypt 16 bytes plaintext with 128-bit AES OTP key... SL_STATUS_FAIL (cycles: 4627 time: 121 us) . Press ENTER to program public sign key in SE OTP or press SPACE to skip. ``` -------------------------------- ### ARM MPU Configuration Example Source: https://arm-software.github.io/CMSIS_5/Core/html/group__mpu8__functions.html Example demonstrating how to configure memory attributes and regions using ARM MPU functions, followed by enabling and disabling the MPU. This allows for access-controlled execution of application code. ```c int main() { // Set Region 0 using Attr 0 ARM_MPU_SetMemAttr(0UL, ARM_MPU_ATTR( /* Normal memory */ ARM_MPU_ATTR_MEMORY_(0UL, 1UL, 1UL, 1UL), /* Outer Write-Back transient with read and write allocate */ ARM_MPU_ATTR_MEMORY_(0UL, 0UL, 1UL, 1UL) /* Inner Write-Through transient with read and write allocate */ )); ARM_MPU_SetRegion(0UL, ARM_MPU_RBAR(0x08000000UL, ARM_MPU_SH_NON, 0UL, 1UL, 1UL), /* Non-shareable, read/write, non-privileged, execute-never */ ARM_MPU_RLAR(0x080FFFFFUL, 0UL) /* 1MB memory block using Attr 0 */ ); ARM_MPU_Enable(0); // Execute application code that is access protected by the MPU ARM_MPU_Disable(); } ``` -------------------------------- ### Matter over Thread Quick-Start Guide API Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-pki-recommendations Quick-start guide and API information for Matter over Thread, a connectivity standard for smart home devices. ```APIDOC ## Matter over Thread Quick-Start Guide API ### Description Provides a quick-start guide and relevant API information for implementing Matter over Thread on Silicon Labs devices. Links to the latest version of Silicon Labs Matter Artifacts. ### Method N/A (Documentation reference) ### Endpoint N/A (Documentation reference) ### Parameters N/A ### Request Example N/A ### Response #### Success Response (N/A) N/A #### Response Example N/A ``` -------------------------------- ### Secure Key Storage Implementation Example (C) Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-cpms Example demonstrating the implementation of secure key storage within an OpenThread environment. This snippet is relevant for developers working with embedded security features on Silicon Labs devices. It focuses on the Secure Key Storage module within the OpenThread framework. ```c #include "sl_se_manager.h" #include "sl_psa_crypto.h" // Example function for secure key storage operations void example_secure_key_storage() { sl_se_context_t se_ctx; if (sl_se_init(&se_ctx) == SL_SE_SUCCESS) { // Key storage operations can be performed here using PSA Crypto API // For example, generating or loading a key securely. // ... sl_se_free(&se_ctx); } } ``` -------------------------------- ### Installer Renaming Convention for J-Link and Flasher Windows Installers Source: https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html Updated the naming convention for J-Link and Flasher installers on Windows to include architecture-specific identifiers (i386 or x86_64). This clarifies the target architecture for each installer file. ```text 1. Installer: Windows: Renamed J-Link i386 installer from "JLink_Windows_Vxxxx.exe" to "JLink_Windows_Vxxxx_i386.exe" 2. Installer: Windows: Renamed J-Link x86_64 installer from "JLink_Windows_x86_64_Vxxxx.exe" to "JLink_Windows_Vxxxx_x86_64.exe" 3. Installer: Windows: Renamed Flasher i386 installer from "Flasher_Windows_Vxxxx.exe" to "Flasher_Windows_Vxxxx_i386.exe" 4. Installer: Windows: Renamed Flasher x86_64 installer from "Flasher_Windows_x86_64_Vxxxx.exe" to "Flasher_Windows_Vxxxx_x86_64.exe" ``` -------------------------------- ### Matter over Thread Quick-Start Guide Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/series2-trustzone Quick-start guide and related resources for implementing Matter over Thread on Silicon Labs devices. ```APIDOC ## Matter over Thread Quick-Start Guide ### Description Provides a quick-start guide and necessary information for integrating the Matter protocol over Thread using Silicon Labs devices. ### Method GET ### Endpoint /llmstxt/silabs_iot-security_llms-full_txt/matter-over-thread ### Parameters #### Path Parameters - **version** (string) - v2.0.0 - The version of the Matter over Thread documentation. #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **documentation_link** (string) - Link to the Matter over Thread Quick-Start Guide. - **version** (string) - The version of the documentation. - **artifacts_link** (string) - Link to obtain the latest Silicon Labs Matter artifacts. #### Response Example { "documentation_link": "https://docs.silabs.com/matter/v2.0.0/matter-over-thread/", "version": "2.0.0", "artifacts_link": "Silicon Labs Matter Artifacts" } ``` -------------------------------- ### J-Flash SPI: Update Interface Speed Input to Combobox Source: https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html This snippet describes the UI change in J-Flash SPI for configuring interface speed. In 'Project Settings --> Setup', the input field for interface speed has been replaced with a combobox. This provides a more user-friendly way to select common interface speeds for SPI connections. ```xml 1000 kHz 4000 kHz 10000 kHz ``` -------------------------------- ### Matter over Thread Quick-Start Guide Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-getting-started A guide to getting started with Matter over Thread integration using Silicon Labs devices. Provides information on obtaining the latest artifacts. ```APIDOC ## Matter over Thread Quick-Start Guide ### Description Guide to implementing Matter over Thread with Silicon Labs devices. ### Method N/A (Documentation Reference) ### Endpoint N/A (Documentation Reference) ### Parameters N/A ### Request Example N/A ### Response #### Success Response (N/A) N/A #### Response Example N/A ``` -------------------------------- ### Machine Learning (AI/ML) Development Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-getting-started Information on developing with Machine Learning (AI/ML) on Silicon Labs platforms. Directs users to the 'Getting Started' section for example applications. ```APIDOC ## Machine Learning (AI/ML) Development ### Description Guidance for developing with Machine Learning (AI/ML) on Silicon Labs devices. ### Method N/A (Documentation Reference) ### Endpoint N/A (Documentation Reference) ### Parameters N/A ### Request Example N/A ### Response #### Success Response (N/A) N/A #### Response Example N/A ``` -------------------------------- ### Launching Simplicity Studio with Wayland Source: https://docs.silabs.com/simplicity-studio-5-users-guide/5.5.0/ss-5-users-guide-getting-started/install-ss-5-and-software If you are using the Wayland display protocol, launch Simplicity Studio using the specific 'studiowayland.sh' script from the terminal. This ensures proper rendering and functionality within the Wayland environment. ```bash ./studiowayland.sh ``` -------------------------------- ### Simplicity Commander keytotoken Command Output Source: https://context7_llms Sample output from the util keytotoken command showing successful conversion of public key to EC tokens format. Confirms token file generation completion. ```text Writing EC tokens to sign_pubkey.txt... DONE ``` -------------------------------- ### Load MPU Regions from Table (C) Source: https://arm-software.github.io/CMSIS_5/Core/html/group__mpu8__functions.html Loads a specified number of MPU regions from a configuration table. It takes the starting region number, a pointer to the table, and the count of regions. An example demonstrates its usage with a predefined MPU configuration. ```c __STATIC_INLINE void ARM_MPU_Load ( uint32_t _rnr_ , ARM_MPU_Region_t const * _table_ , uint32_t _cnt_ ) ``` ```c **Example:** const ARM_MPU_Region_t mpuTable[1][4] = { { /* ... configuration ... */ } }; void UpdateMpu(uint32_t idx) { ARM_MPU_Load(0, mpuTable[idx], 4); } ``` ```c __STATIC_INLINE void ARM_MPU_Load_NS ( uint32_t _rnr_ , ARM_MPU_Region_t const * _table_ , uint32_t _cnt_ ) ``` ```c __STATIC_INLINE void ARM_MPU_LoadEx ( MPU_Type * _mpu_ , uint32_t _rnr_ , ARM_MPU_Region_t const * _table_ , uint32_t _cnt_ ) ``` -------------------------------- ### Secure Key Storage Implementation Example Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/iot-security-getting-started This snippet demonstrates the implementation of secure key storage within the OpenThread framework. It details the usage of specific functions for managing cryptographic keys securely. This documentation is part of the OpenThread Developer's Guide. ```plaintext 05 R Securekeystorageimplementation | Secure Key Storage | OpenThread | latest | Silicon Labs https://docs.silabs.com/.../05-r-securekeystorageimplementat... Software Documentation//OpenThread//Version 2.7.2 (latest) //OpenThread Developer's Guide //Security //Secure Key Storage ... ``` -------------------------------- ### Simplicity Commander genkey Command Output Source: https://context7_llms Sample output from the util genkey command showing successful generation of ECC P256 key pair and token file. Confirms creation of private key in PEM format, public key in PEM format, and EC tokens. ```text Generating ECC P256 key pair... Writing private key file in PEM format to sign_key.pem Writing public key file in PEM format to sign_pubkey.pem Writing EC tokens to sign_pubkey.txt... DONE ``` -------------------------------- ### Get Device Security Status with Commander Source: https://context7_llms Retrieves the security status of a specific EFR32 device, including its serial number, debug lock status, tamper status, and command key installation status. This command is essential for obtaining device-specific information required for certificate generation. ```shell commander security status --device EFR32MG21B010F1024 --serialno 440030580 ``` -------------------------------- ### SE Manager Key Provisioning Console Log (Success) Source: https://context7_llms Logs from the SE Manager key provisioning process indicating successful initialization and verification steps. Shows status messages like SL_STATUS_OK for AES key initialization, encryption, and ciphertext comparison. ```C SE Manager Key Provisioning Example - Core running at 38000 kHz. . SE manager initialization... SL_STATUS_OK (cycles: 9 time: 0 us) . Get current SE firmware version... SL_STATUS_OK (cycles: 3578 time: 94 us) + Current SE firmware version (MSB..LSB): 00010209 . Read SE OTP configuration... SL_STATUS_COMMAND_IS_INVALID (cycles: 3908 time: 102 us) . Press ENTER to program 128-bit AES key in SE OTP or press SPACE to skip. + Warning: The 128-bit AES key in SE OTP cannot be changed once written! + Press ENTER to confirm or press SPACE to skip if you are not sure. . Initialize 128-bit AES key... SL_STATUS_OK (cycles: 39059 time: 1027 us) . Encrypt 16 bytes plaintext with 128-bit AES OTP key... SL_STATUS_OK (cycles: 11013 time: 289 us) + Compare encrypted message with expected ciphertext... OK . Press ENTER to program public sign key in SE OTP or press SPACE to skip. ``` -------------------------------- ### Get Security Store Path (Shell) Source: https://context7_llms Retrieves the path to the Simplicity Commander Security Store. This command can be used without arguments to get the default path or with a device serial number to get the path for a specific device. ```sh commander security getpath ``` ```sh commander security getpath --deviceserialno 0000000000000000588e81fffe70350d ``` -------------------------------- ### Sign External Bootloader Image with OpenSSL Source: https://context7_llms This command simulates the signing process using OpenSSL, taking an externally prepared bootloader image file (`.extsign`) and a private sign key to generate a signature file (`.der`). This signature is then used by Simplicity Commander to create the final signed bootloader image. ```bash openssl dgst -sha256 -binary -sign sign_key.pem -out bl_signature.der bootloader-uart-xmodem.extsign ``` -------------------------------- ### C Address Range Check Intrinsic: cmse_check_address_range Source: https://www.keil.com/support/man/docs/armclang_ref/armclang_ref_pge1446715440722.htm The `cmse_check_address_range` intrinsic is used in C programming to perform permission checks on C objects by validating an address range. It requires a pointer to the start of the range, the size of the range, and a flag indicating the type of check. The intrinsic returns a pointer to the validated range on success or NULL on failure, ensuring data dependency for subsequent memory accesses. ```c void *cmse_check_address_range(void *ptr, size_t size, int flags); ``` -------------------------------- ### Sign Bootloader Image with Simplicity Commander Source: https://context7_llms This command uses Simplicity Commander to sign a bootloader image file (`.s37`). It takes the input bootloader image, a private sign key, and a public key for verification, then outputs a signed bootloader image. This method is suitable when not using an external signing mechanism. ```bash commander convert bootloader-uart-xmodem.s37 --secureboot --keyfile sign_key.pem --verify sign_pubkey.pem \ --outfile bootloader-uart-xmodem.s37 ``` -------------------------------- ### Configure Secure Boot Settings in C Source: https://context7_llms Configures SE OTP (One-Time Programmable) initialization settings within the init_se_otp_conf() function in app_se_manager_key_provisioning.c. Enables secure boot, anti-rollback protection, and optionally certificate verification. Note: enabling secure boot is required for other options to take effect. ```C // Overwrite secure boot options in SL_SE_OTP_INIT_DEFAULT if necessary. otp_init.enable_secure_boot = true; otp_init.verify_secure_boot_certificate = false; otp_init.enable_anti_rollback = true; otp_init.secure_boot_page_lock_narrow = false; otp_init.secure_boot_page_lock_full = false; ``` -------------------------------- ### Sign GBL File with Commander Source: https://context7_llms Signs a GBL (Gecko Bootloader) file using a specified private key and verifies it with a public key, outputting a signed GBL file. Requires the '.extsign' file, signature file, and public key for verification. ```bash commander gbl sign blink_baremetal.extsign --signature gbl_signature.der --verify sign_pubkey.pem \ --outfile blink_baremetal.gbl ``` ```bash commander gbl sign blink_baremetal.extsign --signature gbl_signature.der --verify bl_cert_pubkey.pem \ --outfile blink_baremetal.gbl ``` -------------------------------- ### Machine Learning Development Guide Source: https://docs.silabs.com/iot-security/latest/iot-security/1.2.1/series2-secure-debug Guides users on developing with Machine Learning (AI/ML) on Silicon Labs platforms. This section provides resources and information for integrating ML capabilities into IoT devices. ```text Developing with Silicon Labs Machine Learning (AI/ML) | Developing with Machine Learning | Machine Learning | v2.1.1 | Silicon Labs https://docs.silabs.com/.... Support ... Software Documentation//Machine Learning//Version 2.1.1 ... You are viewing documentation for version: 2.1.1 (latest) PDF Developing with Silicon Labs Machine Learning (AI/ML) ``` -------------------------------- ### Check OpenSSL Version Source: https://context7_llms This command checks the installed version of OpenSSL. It is a simple utility command to verify the OpenSSL installation and version number. No specific inputs or outputs are defined beyond the version string. ```sh openssl version ``` ```sh OpenSSL 1.1.1h 22 Sep 2020 ```