I have been working to get the secure_bootloader examples to run on the NRF52832_XXAB (QFAB with 32kB RAM and 256kB Flash).
Apart from the fact that I had to change the RAM and FLASH sizes and bootloader_settings_page and mbr_params_page locations in the linker script:
FLASH (rx) : ORIGIN = 0x38000, LENGTH = 0x6000
RAM (rwx) : ORIGIN = 0x20003278, LENGTH = 0x4d88
mbr_params_page (r) : ORIGIN = 0x0003E000, LENGTH = 0x1000
bootloader_settings_page (r) : ORIGIN = 0x0003F000, LENGTH = 0x1000
The definitions of BOOTLOADER_SETTINGS_ADDRESS and NRF_MBR_PARAMS_PAGE_ADDRESS in the SDK are missing for NRF52832_XXAB, i needed to add the following patch:
diff -Nurb nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_types.h nRF5_SDK_15.3.0_59ac345-mod/components/libraries/bootloader/dfu/nrf_dfu_types.h
--- nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_types.h 2019-02-14 17:24:58.000000000 +0000
+++ nRF5_SDK_15.3.0_59ac345-mod/components/libraries/bootloader/dfu/nrf_dfu_types.h 2019-04-23 15:54:10.523901768 +0100
@@ -65,7 +65,6 @@
extern "C" {
#endif
-
#define INIT_COMMAND_MAX_SIZE 512 /**< Maximum size of the init command stored in dfu_settings. */
#define INIT_COMMAND_MAX_SIZE_v1 256 /**< Maximum size of the init command in settings version 1. */
@@ -99,6 +98,8 @@
#define BOOTLOADER_SETTINGS_ADDRESS (0x0002F000UL)
#elif defined( NRF52832_XXAA )
#define BOOTLOADER_SETTINGS_ADDRESS (0x0007F000UL)
+#elif defined( NRF52832_XXAB )
+ #define BOOTLOADER_SETTINGS_ADDRESS (0x0003F000UL)
#elif defined(NRF52840_XXAA)
#define BOOTLOADER_SETTINGS_ADDRESS (0x000FF000UL)
#else
@@ -121,6 +122,8 @@
#define NRF_MBR_PARAMS_PAGE_ADDRESS (0x000FE000UL)
#elif defined(NRF52832_XXAA)
#define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0007E000UL)
+#elif defined(NRF52832_XXAB)
+ #define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0003E000UL)
#elif defined(NRF52810_XXAA)
#define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0002E000UL)
#elif defined(NRF52811_XXAA)
diff -Nurb nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_types.h nRF5_SDK_15.3.0_59ac345-mod/components/libraries/bootloader/dfu/nrf_dfu_types.h
--- nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_types.h 2019-02-14 17:24:58.000000000 +0000
+++ nRF5_SDK_15.3.0_59ac345-mod/components/libraries/bootloader/dfu/nrf_dfu_types.h 2019-04-23 15:54:10.523901768 +0100
@@ -65,7 +65,6 @@
extern "C" {
#endif
-
#define INIT_COMMAND_MAX_SIZE 512 /**< Maximum size of the init command stored in dfu_settings. */
#define INIT_COMMAND_MAX_SIZE_v1 256 /**< Maximum size of the init command in settings version 1. */
@@ -99,6 +98,8 @@
#define BOOTLOADER_SETTINGS_ADDRESS (0x0002F000UL)
#elif defined( NRF52832_XXAA )
#define BOOTLOADER_SETTINGS_ADDRESS (0x0007F000UL)
+#elif defined( NRF52832_XXAB )
+ #define BOOTLOADER_SETTINGS_ADDRESS (0x0003F000UL)
#elif defined(NRF52840_XXAA)
#define BOOTLOADER_SETTINGS_ADDRESS (0x000FF000UL)
#else
@@ -121,6 +122,8 @@
#define NRF_MBR_PARAMS_PAGE_ADDRESS (0x000FE000UL)
#elif defined(NRF52832_XXAA)
#define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0007E000UL)
+#elif defined(NRF52832_XXAB)
+ #define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0003E000UL)
#elif defined(NRF52810_XXAA)
#define NRF_MBR_PARAMS_PAGE_ADDRESS (0x0002E000UL)
#elif defined(NRF52811_XXAA)