Software banner on mcuboot still remains not banned.

Hi.

When I made a application with mcuboot on nRF54L15DK.

In order to reduce power consumption, I want to disable serial log(UART).

I added these configuration in the prj.conf like below.

#
# Copyright (c) 2024 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

# Step 1 - Enable nrfx drivers #
CONFIG_NRFX_GRTC=y
#CONFIG_NRFX_SAADC=y
#CONFIG_NRFX_GPPI=y
#CONFIG_NRFX_TIMER2=y
CONFIG_NRFX_TIMER22=y

CONFIG_GPIO=y
CONFIG_I2C=y


CONFIG_COMPILER_OPT="-DARM_TABLE_TWIDDLECOEF_F32_64 -DARM_TABLE_BITREVIDX_FLT_64 -DARM_TABLE_TWIDDLECOEF_F32_64 -DARM_TABLE_TWIDDLECOEF_RFFT_F32_128 -DARM_MATH_CM4"
CONFIG_CMSIS_DSP=y
CONFIG_DSP=y
CONFIG_CMSIS_DSP_FASTMATH=y
CONFIG_CMSIS_DSP_STATISTICS=y
CONFIG_CMSIS_DSP_MATRIX=y
#CONFIG_NEWLIB_LIBC=y
#CONFIG_CMSIS_DSP_BAYES=y
CONFIG_CMSIS_DSP_TRANSFORM=y
CONFIG_CMSIS_DSP_SUPPORT=y
CONFIG_CMSIS_DSP_COMPLEXMATH=y
CONFIG_CMSIS_DSP_CONTROLLER=y
CONFIG_DSP_BACKEND_CMSIS=y
CONFIG_FPU=y

#https://docs.nordicsemi.com/bundle/ncs-3.1.0-preview1/page/nrf/test_and_optimize/optimizing/power_general.html

CONFIG_LOG=n
#CONFIG_PM_DEVICE=y
#CONFIG_POWEROFF=y
#CONFIG_HWINFO=y
#CONFIG_GRTC_WAKEUP_ENABLE=y
#CONFIG_GPIO_WAKEUP_ENABLE=n

#https://docs.nordicsemi.com/bundle/zephyr-apis-latest/page/group_sys_poweroff.html
#CONFIG_POWEROFF=y

#added in order to get the thread name printed in the assertion log.
CONFIG_THREAD_NAME=y
CONFIG_MAIN_STACK_SIZE=2048

CONFIG_ADC=y

# Step 2 - Enable Bluetooth #
CONFIG_BT=y
CONFIG_BT_DEVICE_NAME="WN21_009"
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_BROADCASTER=y
CONFIG_BT_OBSERVER=y

# Step 3 - Enable Coded PHY for Bluetooth LE #
CONFIG_BT_USER_PHY_UPDATE=y
CONFIG_BT_CTLR_PHY_CODED=y

# Step 4 - Enable Bluetooth LE Extended Advertising #
CONFIG_BT_EXT_ADV=y
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_EXT_ADV_MAX_ADV_SET=2
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=251

# STEP 2.2 - Enable FOTA over Bluetooth LE
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_MCUBOOT_BOOTUTIL_LIB=y

CONFIG_WATCHDOG=n
CONFIG_FLASH=n
CONFIG_PM=n
CONFIG_DYNAMIC_INTERRUPTS=n
CONFIG_IRQ_OFFLOAD=n
CONFIG_THREAD_STACK_INFO=n
CONFIG_THREAD_CUSTOM_DATA=n
CONFIG_BOOT_BANNER=n
CONFIG_BOOT_DELAY=0
#CONFIG_CONSOLE=n
#CONFIG_UART_CONSOLE=n
#CONFIG_STDOUT_CONSOLE=n
#CONFIG_PRINTK=n
CONFIG_EARLY_CONSOLE=n
CONFIG_SIZE_OPTIMIZATIONS=y
#CONFIG_SINGLE_APPLICATION_SLOT=y

#CONFIG_PM_PARTITION_SIZE_MCUBOOT_SECONDARY=0xC8000  # 800KB
#CONFIG_PM_PARTITION_SIZE_MCUBOOT_SECONDARY=0xB0000

# Step 5 - Enable RTC for low power operation #
#CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y #for enable P0.01 GPIO

CONFIG_BT_HCI_CORE_LOG_LEVEL_OFF=y

CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=n
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
CONFIG_MPSL_HFCLK_LATENCY=1650

CONFIG_NFCT_PINS_AS_GPIOS=y


# Disable unused features to reduce power consumption
CONFIG_PRINTK=n
CONFIG_STDOUT_CONSOLE=n
CONFIG_LOG_PRINTK=n
CONFIG_LOG_PROCESS_THREAD=n

I also show the configuration in the prj.conf in mcuboot.

CONFIG_PM=n

CONFIG_MAIN_STACK_SIZE=10240

CONFIG_BOOT_SWAP_SAVE_ENCTLV=n
CONFIG_BOOT_ENCRYPT_IMAGE=n

CONFIG_BOOT_UPGRADE_ONLY=n
CONFIG_BOOT_BOOTSTRAP=n

### mbedTLS has its own heap
# CONFIG_HEAP_MEM_POOL_SIZE is not set

### We never want Zephyr's copy of tinycrypt.  If tinycrypt is needed,
### MCUboot has its own copy in tree.
# CONFIG_TINYCRYPT is not set
# CONFIG_TINYCRYPT_ECC_DSA is not set
# CONFIG_TINYCRYPT_SHA256 is not set

CONFIG_FLASH=y

### Various Zephyr boards enable features that we don't want.
# CONFIG_BT is not set
# CONFIG_BT_CTLR is not set
# CONFIG_I2C is not set

CONFIG_LOG=n
CONFIG_LOG_MODE_MINIMAL=n # former CONFIG_MODE_MINIMAL
### Ensure Zephyr logging changes don't use more resources
CONFIG_LOG_DEFAULT_LEVEL=0
### Use info log level by default
CONFIG_MCUBOOT_LOG_LEVEL_INF=n
### Decrease footprint by ~4 KB in comparison to CBPRINTF_COMPLETE=y
CONFIG_CBPRINTF_NANO=n
### Use picolibc to reduce flash usage
CONFIG_PICOLIBC=y
### Disable malloc arena because we don't need it
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=0
CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0

# NCS boot banner
CONFIG_NCS_APPLICATION_BOOT_BANNER_STRING="MCUboot"

CONFIG_BOOT_BANNER=n
CONFIG_PRINTK=n
CONFIG_STDOUT_CONSOLE=n
CONFIG_LOG_PRINTK=n
CONFIG_LOG_PROCESS_THREAD=n
CONFIG_BOOT_BANNER=n
CONFIG_LOG=n

Nordic AI said, "there is no more configuration to add in the prj.conf."

But, I confirmed this software banner when the board reset.

*** Booting MCUboot v2.1.0-dev-2b69d93e75bc ***
*** Using nRF Connect SDK v3.1.0-6c6e5b32496e ***
*** Using Zephyr OS v4.1.99-1612683d4010 ***
*** Booting My Application v0.1.6-debug-01cdfea88343 ***
*** Using nRF Connect SDK v3.1.0-6c6e5b32496e ***
*** Using Zephyr OS v4.1.99-1612683d4010 ***

So, how should I add any configuration without this banner?

Best regards.

Parents
  • Hello,

    I recommend checking the generated .config file inside the build folder for MCUboot to see which configurations are being enabled after the build.

    You mentioned the prj.conf file for MCUboot , just to clarify, I assume you are configuring MCUboot by creating an mcuboot.conf file under the sysbuild folder, as shown in my screenshot below



    mcuboot.conf

    # No banners
    CONFIG_BOOT_BANNER=n
    CONFIG_NCS_BOOT_BANNER=n
    
    # Logging ON, but NO backends
    CONFIG_LOG=y
    CONFIG_PRINTK=n
    CONFIG_CONSOLE=n
    CONFIG_UART_CONSOLE=n
    CONFIG_LOG_BACKEND_UART=n
    CONFIG_LOG_BACKEND_RTT=n
    CONFIG_SERIAL=n
    
    CONFIG_MCUBOOT_SERIAL=n # 
    CONFIG_BOOT_SERIAL_UART=n #

    prj.conf

    CONFIG_BOOT_BANNER=n
    CONFIG_NCS_BOOT_BANNER=n #to remove banners
    
    
    CONFIG_PRINTK=n
    CONFIG_CONSOLE=n
    CONFIG_UART_CONSOLE=n
    
    
    CONFIG_LOG=y
    CONFIG_LOG_DEFAULT_LEVEL=0 #Logging is not activated
    CONFIG_LOG_MODE_MINIMAL=n          
    CONFIG_LOG_BACKEND_UART=n
    CONFIG_LOG_BACKEND_RTT=n
    
    
    CONFIG_SERIAL=n

    Try the above configuration for both your MCUboot (mcuboot.conf) and the application (prj.conf). Then, check the generated .config file for MCUboot and share it here.

    Kind Regards,

    Abhijith

Reply
  • Hello,

    I recommend checking the generated .config file inside the build folder for MCUboot to see which configurations are being enabled after the build.

    You mentioned the prj.conf file for MCUboot , just to clarify, I assume you are configuring MCUboot by creating an mcuboot.conf file under the sysbuild folder, as shown in my screenshot below



    mcuboot.conf

    # No banners
    CONFIG_BOOT_BANNER=n
    CONFIG_NCS_BOOT_BANNER=n
    
    # Logging ON, but NO backends
    CONFIG_LOG=y
    CONFIG_PRINTK=n
    CONFIG_CONSOLE=n
    CONFIG_UART_CONSOLE=n
    CONFIG_LOG_BACKEND_UART=n
    CONFIG_LOG_BACKEND_RTT=n
    CONFIG_SERIAL=n
    
    CONFIG_MCUBOOT_SERIAL=n # 
    CONFIG_BOOT_SERIAL_UART=n #

    prj.conf

    CONFIG_BOOT_BANNER=n
    CONFIG_NCS_BOOT_BANNER=n #to remove banners
    
    
    CONFIG_PRINTK=n
    CONFIG_CONSOLE=n
    CONFIG_UART_CONSOLE=n
    
    
    CONFIG_LOG=y
    CONFIG_LOG_DEFAULT_LEVEL=0 #Logging is not activated
    CONFIG_LOG_MODE_MINIMAL=n          
    CONFIG_LOG_BACKEND_UART=n
    CONFIG_LOG_BACKEND_RTT=n
    
    
    CONFIG_SERIAL=n

    Try the above configuration for both your MCUboot (mcuboot.conf) and the application (prj.conf). Then, check the generated .config file for MCUboot and share it here.

    Kind Regards,

    Abhijith

Children
No Data
Related