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.

  • 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

Related