You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2023/05/31 02:44:16 UTC

[nuttx] 02/03: boards/nrf52832-dk: add MCUboot configurations

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 3c0ce99c01161e28ec94d43cc4786cc8abc6d515
Author: raiden00pl <ra...@railab.me>
AuthorDate: Tue May 30 12:22:11 2023 +0200

    boards/nrf52832-dk: add MCUboot configurations
    
    Added configurations:
    - mcuboot_loader - MCUboot loader
    - mcuboot_loader_minimal - MCUboot loader optimised for FLASH usage.
      Further optimization can be achieved by CONFIG_LTO_FULL=y.
    - mcuboot_app - MCUboot compatible application.
      Needs to be signed manually:
      imgtool.py sign nuttx.hex nuttx_img.hex --align 8 -v 1.0.0 -H 0x200 -S 0x30000 --pad-header --pad
---
 .../nrf52832-dk/configs/mcuboot_app/defconfig      | 49 ++++++++++++++++++++++
 .../nrf52832-dk/configs/mcuboot_loader/defconfig   | 39 +++++++++++++++++
 .../configs/mcuboot_loader_minimal/defconfig       | 47 +++++++++++++++++++++
 boards/arm/nrf52/nrf52832-dk/scripts/Make.defs     |  7 +++-
 boards/arm/nrf52/nrf52832-dk/src/nrf52_bringup.c   | 12 ++++++
 5 files changed, 152 insertions(+), 2 deletions(-)

diff --git a/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_app/defconfig b/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_app/defconfig
new file mode 100644
index 0000000000..7c183bbf9c
--- /dev/null
+++ b/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_app/defconfig
@@ -0,0 +1,49 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed .config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that includes your
+# modifications.
+#
+# CONFIG_ARCH_FPU is not set
+# CONFIG_NSH_DISABLE_IFCONFIG is not set
+# CONFIG_NSH_DISABLE_PS is not set
+CONFIG_ALLOW_BSD_COMPONENTS=y
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="nrf52832-dk"
+CONFIG_ARCH_BOARD_COMMON=y
+CONFIG_ARCH_BOARD_NRF52832_DK=y
+CONFIG_ARCH_CHIP="nrf52"
+CONFIG_ARCH_CHIP_NRF52832=y
+CONFIG_ARCH_CHIP_NRF52=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARCH_STDARG_H=y
+CONFIG_BOARD_LOOPSPERMSEC=5500
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_EXAMPLES_HELLO=y
+CONFIG_EXAMPLES_MCUBOOT_SLOT_CONFIRM=y
+CONFIG_EXAMPLES_MCUBOOT_SWAP_TEST=y
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INTELHEX_BINARY=y
+CONFIG_MM_REGIONS=2
+CONFIG_NRF52_APP_FORMAT_MCUBOOT=y
+CONFIG_NRF52_PROGMEM_OTA_PARTITION=y
+CONFIG_NRF52_UART0=y
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_FILEIOSIZE=512
+CONFIG_NSH_LINELEN=64
+CONFIG_NSH_READLINE=y
+CONFIG_PREALLOC_TIMERS=4
+CONFIG_RAM_SIZE=65535
+CONFIG_RAM_START=0x20000000
+CONFIG_RAW_BINARY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=26
+CONFIG_START_MONTH=3
+CONFIG_SYMTAB_ORDEREDBYNAME=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TASK_NAME_SIZE=0
+CONFIG_UART0_SERIAL_CONSOLE=y
diff --git a/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_loader/defconfig b/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_loader/defconfig
new file mode 100644
index 0000000000..d16b83d31f
--- /dev/null
+++ b/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_loader/defconfig
@@ -0,0 +1,39 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed .config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that includes your
+# modifications.
+#
+# CONFIG_ARCH_FPU is not set
+CONFIG_ALLOW_BSD_COMPONENTS=y
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="nrf52832-dk"
+CONFIG_ARCH_BOARD_COMMON=y
+CONFIG_ARCH_BOARD_NRF52832_DK=y
+CONFIG_ARCH_CHIP="nrf52"
+CONFIG_ARCH_CHIP_NRF52832=y
+CONFIG_ARCH_CHIP_NRF52=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARCH_STDARG_H=y
+CONFIG_BOARD_LOOPSPERMSEC=5500
+CONFIG_BOOT_MCUBOOT=y
+CONFIG_INIT_ENTRYPOINT="mcuboot_loader_main"
+CONFIG_INTELHEX_BINARY=y
+CONFIG_MCUBOOT_BOOTLOADER=y
+CONFIG_MCUBOOT_VERSION="414ac87cfd8d9cedeb781f812ad6f5072e6d8a39"
+CONFIG_MM_REGIONS=2
+CONFIG_NRF52_APP_FORMAT_MCUBOOT=y
+CONFIG_NRF52_PROGMEM_OTA_PARTITION=y
+CONFIG_NRF52_UART0=y
+CONFIG_PREALLOC_TIMERS=4
+CONFIG_RAM_SIZE=65535
+CONFIG_RAM_START=0x20000000
+CONFIG_RAW_BINARY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=26
+CONFIG_START_MONTH=3
+CONFIG_SYMTAB_ORDEREDBYNAME=y
+CONFIG_TASK_NAME_SIZE=0
+CONFIG_UART0_SERIAL_CONSOLE=y
diff --git a/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_loader_minimal/defconfig b/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_loader_minimal/defconfig
new file mode 100644
index 0000000000..b14e5c8bdc
--- /dev/null
+++ b/boards/arm/nrf52/nrf52832-dk/configs/mcuboot_loader_minimal/defconfig
@@ -0,0 +1,47 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed .config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that includes your
+# modifications.
+#
+# CONFIG_ARCH_FPU is not set
+# CONFIG_DEV_CONSOLE is not set
+# CONFIG_FS_ANONMAP is not set
+# CONFIG_SERIAL is not set
+# CONFIG_SYSLOG_DEFAULT is not set
+CONFIG_ALLOW_BSD_COMPONENTS=y
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="nrf52832-dk"
+CONFIG_ARCH_BOARD_COMMON=y
+CONFIG_ARCH_BOARD_NRF52832_DK=y
+CONFIG_ARCH_CHIP="nrf52"
+CONFIG_ARCH_CHIP_NRF52832=y
+CONFIG_ARCH_CHIP_NRF52=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARCH_STDARG_H=y
+CONFIG_BOARD_LOOPSPERMSEC=5500
+CONFIG_BOOT_MCUBOOT=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DISABLE_ENVIRON=y
+CONFIG_DISABLE_MQUEUE=y
+CONFIG_DISABLE_POSIX_TIMERS=y
+CONFIG_DISABLE_PTHREAD=y
+CONFIG_INIT_ENTRYPOINT="mcuboot_loader_main"
+CONFIG_INTELHEX_BINARY=y
+CONFIG_MCUBOOT_BOOTLOADER=y
+CONFIG_MCUBOOT_VERSION="414ac87cfd8d9cedeb781f812ad6f5072e6d8a39"
+CONFIG_MM_REGIONS=2
+CONFIG_NRF52_APP_FORMAT_MCUBOOT=y
+CONFIG_NRF52_MCUBOOT_HAVE_SCRACH=y
+CONFIG_NRF52_PROGMEM_OTA_PARTITION=y
+CONFIG_RAM_SIZE=65535
+CONFIG_RAM_START=0x20000000
+CONFIG_RAW_BINARY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=26
+CONFIG_START_MONTH=3
+CONFIG_SYMTAB_ORDEREDBYNAME=y
+CONFIG_TASK_NAME_SIZE=0
diff --git a/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs b/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs
index fc25f458ed..bdd9e7cc46 100644
--- a/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs
@@ -22,8 +22,11 @@ include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
 include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
 
-LDSCRIPT = flash_config.ld
-ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
+ifeq ($(CONFIG_ARCH_BOARD_COMMON),y)
+  ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)flash_config.ld
+else
+  ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)flash_config.ld
+endif
 
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 
diff --git a/boards/arm/nrf52/nrf52832-dk/src/nrf52_bringup.c b/boards/arm/nrf52/nrf52832-dk/src/nrf52_bringup.c
index a4327b7035..2b1ead1645 100644
--- a/boards/arm/nrf52/nrf52832-dk/src/nrf52_bringup.c
+++ b/boards/arm/nrf52/nrf52832-dk/src/nrf52_bringup.c
@@ -41,6 +41,10 @@
 #  include <nuttx/input/buttons.h>
 #endif
 
+#ifdef CONFIG_NRF52_PROGMEM
+#  include "nrf52_progmem.h"
+#endif
+
 #ifdef CONFIG_NRF52_SOFTDEVICE_CONTROLLER
 #  include "nrf52_sdc.h"
 #endif
@@ -119,6 +123,14 @@ int nrf52_bringup(void)
     }
 #endif
 
+#ifdef CONFIG_NRF52_PROGMEM
+  ret = nrf52_progmem_init();
+  if (ret < 0)
+    {
+      syslog(LOG_ERR, "ERROR: Failed to initialize MTD progmem: %d\n", ret);
+    }
+#endif /* CONFIG_MTD */
+
   UNUSED(ret);
   return OK;
 }