Hello,
I noticed that slighly incresed amount of printk output in the B0 bootloader leads to the corrupted debug output.
1st case - I added two printk lines starting with "Hello B0 ..."
*** Booting Zephyr OS build v2.7.0-ncs1-rc2 *** Hello B0: s0_addr=0x0000c000, s1_addr=0x0001c000, s0_info=0xc400, s1_info=(nil) Hello B0: s0_info->version=14, s1_info->version=0 Attempting to boot slot 0. Attempting to boot from addreFirmware signature verified. Firmware version 14 Booting (0xc200).
Notice that on the last line two printks clash. One prints "Attempting to boot from address ..." and the other one "Firmware signature verified".
The former is from main.c and the latter is from bl_validation.c
2nd case happens when I load an update image into slot 1 (my printks removed)
*** Booting Zephyr OS build v2.7.0-ncs1-rc2 *** Attempting to boot slot 1. Attempting to boot from address 0x1c200. Could not find valid firmware validation info. Failed to validate, permanently invalidating, version 16! Attempting to bootFirmware signature verified. Firmware version 15
Look at the clash on the last line.
I tried increasing the serial speed from 115200 to 1000000; the output is still corrupted.
I'm not sure that CONFIG_LOG_BUFFER_SIZE is applicable to this situation, but I doubled it to 2048. That gave no improvement.
I used peripheral_hr_coded demo project and enabled bootloaders using
CONFIG_SECURE_BOOT=y
CONFIG_BOOTLOADER_MCUBOOT=y
Is there a way to avoid output corruption?
Thanks.