Board: nRF52840Dk
ncs: v2.3.0.
Hi, I am working on a project in which i need to update bootloader itself and application from the external flash. I also need to make partition where i can store my files using FatFs file system.
My project configuration and overlay setting are below:
CONFIG_STDOUT_CONSOLE=y #USB related configs CONFIG_USB_DEVICE_STACK=y CONFIG_USB_DEVICE_PRODUCT="Zephyr MSC sample" CONFIG_LOG=y CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y CONFIG_USB_MASS_STORAGE=y CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y CONFIG_USB_MASS_STORAGE_LOG_LEVEL_ERR=y CONFIG_MAIN_STACK_SIZE=4096 #CONFIG_APP_MSC_STORAGE_FLASH_LITTLEFS=y CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n CONFIG_APP_MSC_STORAGE_FLASH_FATFS=y CONFIG_FS_FATFS_LFN=y # External partitions #CONFIG_PM_PARTITION_REGION_LITTLEFS_EXTERNAL=y #CONFIG_PM_PARTITION_REGION_SETTINGS_STORAGE_EXTERNAL=y #CONFIG_PM_PARTITION_REGION_NVS_STORAGE_EXTERNAL=y CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y #memory related configs CONFIG_NVS=y CONFIG_FLASH=y CONFIG_FLASH_MAP=y CONFIG_STREAM_FLASH=y CONFIG_REBOOT=y CONFIG_HWINFO=y CONFIG_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y #immutable boot CONFIG_SECURE_BOOT=y CONFIG_SB_SIGNING_KEY_FILE="nsib_priv.pem" CONFIG_BUILD_S1_VARIANT=y # Need to lower the number of counter slots to be able to update several times. Do not know the best number yet. CONFIG_SB_NUM_VER_COUNTER_SLOTS=120 CONFIG_FW_INFO_FIRMWARE_VERSION=1 CONFIG_MCUBOOT_IMAGE_VERSION="1.1.1"
/delete-node/ &boot_partition; /delete-node/ &slot0_partition; /delete-node/ &slot1_partition; &flash0 { partitions { boot_partition: partition@0 { label = "mcuboot"; reg = <0x000000000 0x00010000>; }; slot0_partition: partition@10000 { label = "image-0"; reg = <0x000010000 0x0000e8000>; }; }; }; &mx25r64 { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; slot1_partition: partition@0 { label = "image-1"; reg = <0x000000000 0x0000e8000>; }; external_flash: partition@e8000 { label = "external flash"; reg = <0x0000e8000 0x000718000>; }; }; }; / { chosen { nordic,pm-ext-flash = &mx25r64; }; msc_disk0 { compatible = "zephyr,flash-disk"; partition = <&external_flash>; disk-name = "NAND"; cache-size = <4096>; }; };
When i am running the code then getting error of msc init:
Attempting to boot slot 0. Attempting to boot from address 0x9200. Verifying signature against key 0. Hash: 0x8f...3b Firmware signature verified. Firmware version 5 Setting monotonic counter (version: 5, slot: 0) *** Booting Zephyr OS build v3.2.99-ncs2-3159-g1e1697d881a9 *** [00:00:00.376,220] <inf> mcuboot: Starting bootloader [00:00:00.376,983] <inf> mcuboot: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3 [00:00:00.377,349] <inf> mcuboot: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3 [00:00:00.377,349] <inf> mcuboot: Boot source: none [00:00:00.377,838] <inf> mcuboot: Swap type: none [00:00:00.378,295] <inf> mcuboot: Primary image: magic=bad, swap_type=0x1, copy_done=0x2, image_ok=0x2 [00:00:00.378,662] <inf> mcuboot: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3 [00:00:00.378,692] <inf> mcuboot: Boot source: none [00:00:00.379,150] <inf> mcuboot: Swap type: none *** Booting Zephyr OS build v3.2.99-ncs2-3159-g1e1697d881a9 *** [00:00:00.000,396] <inf> flashdisk: Initialize device NAND [00:00:00.000,427] <inf> flashdisk: offset e8000, sector size 512, page size 4096, volume size 7438336 [00:00:00.000,488] <err> flashdisk: Error -22 getting page info at offset 100000 [00:00:00.000,488] <err> usb_msc: Storage init ERROR !!!! - Aborting USB init [00:00:00.000,518] <wrn> main: Image build time: Jul 10 2023 09:44:53 [00:00:00.000,579] <inf> main: Image is confirmed OK
Please help me, what I am doing wrong.
Thanks.