Memory Protection for Silicon Labs

Configuration options in this section are separated by a prefix:

  • The SL prefix limits the effect of these options to EFM32, EFR32, and SiM3 MCUs.

  • The SL_EM prefix limits the effect of these options to “EM3xxx” MCUs.

1. “SL_MemoryProtSource”

This configuration option specifies whether the configuration file should be used as the source of memory protection bit values, or if the code file should be used as the source. The options specified in the main GUI are the same ones saved in the configuration file (User-defined option). If the code file is used as the source, the protection bits must be specified at the correct address within the code file. Correct addresses can be obtained from device manuals. The GUI provides an option to inspect memory protection bits as read from the code file (From File option).

If the FILE_SOURCE value is chosen for this parameter, the only parameters in this section that will also be read are "SL_USER_PLW_WrEn", "SL_USER_DBG_WrEn", and "SL_USER_ALW_WrEn".

  • USER_SOURCE (0) : Protection settings from the configuration file will be used (can be user defined in GUI).

  • FILE_SOURCE (1) : Protection settings from code file will be used (code file must include protection bits at proper addresses). (default)

2. "SL_USER_PLW_WrEn"

This configuration parameter enables writes to the register that controls communication debug access.

Logically grouped together with "SL-CLW", "SL-ULW", "SL-MLW", and “SL-PLW0”-“SL-PLW15”.

  • 1 : enabled

  • 0 : disabled (default)

2.1. “SL-CLW”

Value that will be written to the CLW location on the protection page if "SL_USER_PLW_WrEn" is enabled, and “SL_MemoryProtSource” is set to USER_SOURCE. Ignored otherwise.

2.2. “SL-ULW”

Value that will be written to the ULW location on the protection page if "SL_USER_PLW_WrEn" is enabled, and “SL_MemoryProtSource” is set to USER_SOURCE. Ignored otherwise.

2.3. “SL-MLW”

Value that will be written to the MLW location on the protection page if "SL_USER_PLW_WrEn" is enabled, and “SL_MemoryProtSource” is set to USER_SOURCE. Ignored otherwise.

2.4. “SL-PLW0”-“SL-PLW15”

Value that will be written to the PLW0-PLW15 locations on the protection page if "SL_USER_PLW_WrEn" is enabled, and “SL_MemoryProtSource” is set to USER_SOURCE. Ignored otherwise.

3. "SL_USER_DBG_WrEn"

This configuration parameter enables writes to the register that controls communication debug access.

Logically grouped together with “SL-DLW”.

  • 1 : enabled

  • 0 : disabled (default)

3.1. “SL-DLW”

Value that will be written to the DLW location on the protection page if "SL_USER_DBG_WrEn" is enabled, and “SL_MemoryProtSource” is set to USER_SOURCE. Ignored otherwise.

4. "SL_USER_ALW_WrEn"

This configuration parameter enables writes to the register that controls the authentication access port.

Logically grouped together with "SL-ALW".

  • 1 : enabled

  • 0 : disabled (default)

4.1. “SL-ALW”

Value that will be written to the ALW location on the protection page if "SL_USER_ALW_WrEn" is enabled, and “SL_MemoryProtSource” is set to USER_SOURCE. Ignored otherwise.

5. "SL_EM_MemoryProtSource"

This configuration option specifies whether the configuration file should be used as the source of memory protection bit values, or if the code file should be used as the source. The options specified in the main GUI are the same ones saved in the configuration file (User-defined option). If the code file is used as the source, the protection bits must be specified at the correct address within the code file. Correct addresses can be obtained from device manuals. The GUI provides an option to inspect memory protection bits as read from the code file (From File option).

If the FILE_SOURCE value is chosen for this parameter, the only parameters in this section that will also be read are "SL_EM_RDP_WrEn", "SL_EM_USER_WrEn", and "SL_EM_PROT_WrEn".

  • USER_SOURCE (0) : Protection settings from the configuration file will be used (can be user defined in GUI).

  • FILE_SOURCE (1) : Protection settings from code file will be used (code file must include protection bits at proper addresses). (default)

6. "SL_EM_RDP_WrEn"

This configuration parameter enables writes to the register that controls the read debug access port.

Logically grouped together with "SL-EM-RDP-OPT0".

  • 1 : enabled

  • 0 : disabled (default)

6.1. "SL-EM-RDP-OPT0"

Value that will be written to the RDP location on the protection page if "SL_EM_RDP_WrEn" is enabled, and "SL_EM_MemoryProtSource" is set to USER_SOURCE. Ignored otherwise.

7. "SL_EM_USER_WrEn"

This configuration parameter enables writes to user registers.

Logically grouped together with "SL-EM-UserData-OPT2", and "SL-EM-UserData-OPT3".

  • 1 : enabled

  • 0 : disabled (default)

7.1. "SL-EM-UserData-OPT2" - "SL-EM-UserData-OPT3"

Value that will be written to the User Data register locations OPT2 and OPT3 on the protection page if "SL_EM_USER_WrEn" is enabled, and "SL_EM_MemoryProtSource" is set to USER_SOURCE. Ignored otherwise.

8. "SL_EM_PROT_WrEn"

This configuration parameter enables writes to Write-Protection Registers that control erase/write access to flash pages.

Logically grouped together with "SL-EM-WRP-OPT4", "SL-EM-WRP-OPT5", "SL-EM-WRP-OPT6", and "SL-EM-WRP-OPT7".

  • 1 : enabled

  • 0 : disabled (default)

8.1. "SL-EM-WRP-OPT4" - "SL-EM-WRP-OPT7"

Value that will be written to the WRP register in locations OPT4 to OPT7 on the protection page if "SL_EM_PROT_WrEn" is enabled, and "SL_EM_MemoryProtSource" is set to USER_SOURCE. Ignored otherwise.