I am trying to get MCU Boot working with sysbuild using DFU with SPI external flash for FOTA over BLE with 2.9.1. I added the setting CONFIG_SPI_NOR_SFDP_DEVICETREE=y per the directions in the Dev Academy lesson on Exercise 3 – DFU with external flash but when I do that my build fails. I expect I need something in the devicetree. I have spi working with my external flash but I guess I need a partition for the secondary mcuboot sector.
I get an error:
error: static assertion failed: "jedec,spi-nor sfdp-bfp required for devicetree SFDP" 1613 | BUILD_ASSERT(DT_INST_NODE_HAS_PROP(idx, sfdp_bfp),
But where is it described how to set this up in the device tree? I have this in my dts and the external flash is working:
&spi3 {
status = "okay";
compatible = "nordic,nrf-spim";
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep";
cs-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
w25q128: w25q128@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <8000000>;
jedec-id = [ef 40 18]; // Could be 18 40 ef also. You will see in error printout if wrong ID is detected (ID missmatch)
size = <DT_SIZE_M(16*8)>;
wp-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
has-dpd;
t-enter-dpd = <3000>;
t-exit-dpd = <3000>;
};
};
I have this in my this in my mcuboot.overlay:
&w25q128 {
status = "okay";
};
/ {
chosen {
nordic,pm-ext-flash = &w25q128;
};
};