Hi,
I'm trying to get the DFU over USB sample (zephyr\samples\subsys\usb\dfu) on a particle_argon board up and running and get the following linker error:
undefined reference to `__device_dts_ord_102'
If I disable the KConfig CONFIG_BOOTLOADER_MCUBOOT then the error is gone and the build works.
I've already checked the Troubleshooting Guide (https://docs.zephyrproject.org/latest/build/dts/troubleshooting.html) and the both devicetree_generated.h files (the mcuboot and the application). These are the following entries with 102:
- build_argon\mcuboot\zephyr\include\generated\devicetree_generated.h
102 /soc/spi@40023000 - build_argon\zephyr\include\generated\devicetree_generated.h
102 /soc/radio@40001000/ieee802154
If I check these peripherals in the device tree (zephyr.dts), both are enabled with status = "okay";
I really don't know where that error comes from, I hope you guys can help me:
The same sample works fine with a nrf52840_dk board.
Thanks and Best Regrads,
Phobios
P.S.: I've added the build output and the zephyr.dts from the application:
Build_Output (was not possible to add it as code)
https://drive.google.com/file/d/1-hA4r95GLm78oiTzMrDskGiw8AcXbx7x/view
build_argon\zephyr\zephyr.dts
/dts-v1/; / { #address-cells = < 0x1 >; #size-cells = < 0x1 >; model = "Particle Argon"; compatible = "particle,argon", "particle,feather"; chosen { zephyr,entropy = &cryptocell; zephyr,flash-controller = &flash_controller; zephyr,console = &uart0; zephyr,uart-mcumgr = &uart0; zephyr,shell-uart = &uart0; zephyr,sram = &sram0; zephyr,flash = &flash0; zephyr,code-partition = &slot0_partition; zephyr,ieee802154 = &ieee802154; }; aliases { led0 = &user_led; led1 = &status_red; led2 = &status_green; led3 = &status_blue; sw0 = &mode_button; sw1 = &reset_button; spi-flash0 = &mx25l32; watchdog0 = &wdt0; }; soc { #address-cells = < 0x1 >; #size-cells = < 0x1 >; compatible = "nordic,nrf52840-qiaa", "nordic,nrf52840", "nordic,nrf52", "simple-bus"; interrupt-parent = < &nvic >; ranges; nvic: interrupt-controller@e000e100 { #address-cells = < 0x1 >; compatible = "arm,v7m-nvic"; reg = < 0xe000e100 0xc00 >; interrupt-controller; #interrupt-cells = < 0x2 >; arm,num-irq-priority-bits = < 0x3 >; phandle = < 0x1 >; }; systick: timer@e000e010 { compatible = "arm,armv7m-systick"; reg = < 0xe000e010 0x10 >; status = "disabled"; }; ficr: ficr@10000000 { compatible = "nordic,nrf-ficr"; reg = < 0x10000000 0x1000 >; status = "okay"; }; uicr: uicr@10001000 { compatible = "nordic,nrf-uicr"; reg = < 0x10001000 0x1000 >; status = "okay"; gpio-as-nreset; }; sram0: memory@20000000 { compatible = "mmio-sram"; reg = < 0x20000000 0x40000 >; }; clock: clock@40000000 { compatible = "nordic,nrf-clock"; reg = < 0x40000000 0x1000 >; interrupts = < 0x0 0x1 >; status = "okay"; }; power: power@40000000 { compatible = "nordic,nrf-power"; reg = < 0x40000000 0x1000 >; interrupts = < 0x0 0x1 >; status = "okay"; #address-cells = < 0x1 >; #size-cells = < 0x1 >; gpregret1: gpregret1@4000051c { #address-cells = < 0x1 >; #size-cells = < 0x1 >; compatible = "nordic,nrf-gpregret"; reg = < 0x4000051c 0x1 >; status = "okay"; }; gpregret2: gpregret2@40000520 { #address-cells = < 0x1 >; #size-cells = < 0x1 >; compatible = "nordic,nrf-gpregret"; reg = < 0x40000520 0x1 >; status = "okay"; }; }; radio: radio@40001000 { compatible = "nordic,nrf-radio"; reg = < 0x40001000 0x1000 >; interrupts = < 0x1 0x1 >; status = "okay"; ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; tx-high-power-supported; ieee802154: ieee802154 { compatible = "nordic,nrf-ieee802154"; status = "okay"; }; }; uart0: feather_serial: uart@40002000 { compatible = "nordic,nrf-uarte"; reg = < 0x40002000 0x1000 >; interrupts = < 0x2 0x1 >; status = "okay"; current-speed = < 0x1c200 >; pinctrl-0 = < &uart0_default >; pinctrl-1 = < &uart0_sleep >; pinctrl-names = "default", "sleep"; }; i2c0: arduino_i2c: feather_i2c: i2c@40003000 { compatible = "nordic,nrf-twi"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40003000 0x1000 >; clock-frequency = < 0x61a80 >; interrupts = < 0x3 0x1 >; status = "okay"; pinctrl-0 = < &i2c0_default >; pinctrl-1 = < &i2c0_sleep >; pinctrl-names = "default", "sleep"; }; spi0: spi@40003000 { compatible = "nordic,nrf-spim"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40003000 0x1000 >; interrupts = < 0x3 0x1 >; max-frequency = < 0x7a1200 >; easydma-maxcnt-bits = < 0x10 >; status = "disabled"; }; i2c1: i2c@40004000 { compatible = "nordic,nrf-twim"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40004000 0x1000 >; clock-frequency = < 0x186a0 >; interrupts = < 0x4 0x1 >; status = "disabled"; }; spi1: spi@40004000 { compatible = "nordic,nrf-spim"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40004000 0x1000 >; interrupts = < 0x4 0x1 >; max-frequency = < 0x7a1200 >; easydma-maxcnt-bits = < 0x10 >; status = "disabled"; }; nfct: nfct@40005000 { compatible = "nordic,nrf-nfct"; reg = < 0x40005000 0x1000 >; interrupts = < 0x5 0x1 >; status = "okay"; }; gpiote: gpiote@40006000 { compatible = "nordic,nrf-gpiote"; reg = < 0x40006000 0x1000 >; interrupts = < 0x6 0x5 >; status = "okay"; }; adc: feather_adc: adc@40007000 { compatible = "nordic,nrf-saadc"; reg = < 0x40007000 0x1000 >; interrupts = < 0x7 0x1 >; status = "okay"; #io-channel-cells = < 0x1 >; phandle = < 0xd >; }; timer0: timer@40008000 { compatible = "nordic,nrf-timer"; status = "disabled"; reg = < 0x40008000 0x1000 >; cc-num = < 0x4 >; max-bit-width = < 0x20 >; interrupts = < 0x8 0x1 >; prescaler = < 0x0 >; }; timer1: timer@40009000 { compatible = "nordic,nrf-timer"; status = "disabled"; reg = < 0x40009000 0x1000 >; cc-num = < 0x4 >; max-bit-width = < 0x20 >; interrupts = < 0x9 0x1 >; prescaler = < 0x0 >; phandle = < 0xb >; }; timer2: timer@4000a000 { compatible = "nordic,nrf-timer"; status = "disabled"; reg = < 0x4000a000 0x1000 >; cc-num = < 0x4 >; max-bit-width = < 0x20 >; interrupts = < 0xa 0x1 >; prescaler = < 0x0 >; }; rtc0: rtc@4000b000 { compatible = "nordic,nrf-rtc"; reg = < 0x4000b000 0x1000 >; cc-num = < 0x3 >; interrupts = < 0xb 0x1 >; status = "disabled"; clock-frequency = < 0x8000 >; prescaler = < 0x1 >; }; temp: temp@4000c000 { compatible = "nordic,nrf-temp"; reg = < 0x4000c000 0x1000 >; interrupts = < 0xc 0x1 >; status = "okay"; }; rng: random@4000d000 { compatible = "nordic,nrf-rng"; reg = < 0x4000d000 0x1000 >; interrupts = < 0xd 0x1 >; status = "okay"; }; ecb: ecb@4000e000 { compatible = "nordic,nrf-ecb"; reg = < 0x4000e000 0x1000 >; interrupts = < 0xe 0x1 >; status = "okay"; }; ccm: ccm@4000f000 { compatible = "nordic,nrf-ccm"; reg = < 0x4000f000 0x1000 >; interrupts = < 0xf 0x1 >; length-field-length-8-bits; status = "okay"; }; wdt: wdt0: watchdog@40010000 { compatible = "nordic,nrf-wdt"; reg = < 0x40010000 0x1000 >; interrupts = < 0x10 0x1 >; status = "okay"; }; rtc1: rtc@40011000 { compatible = "nordic,nrf-rtc"; reg = < 0x40011000 0x1000 >; cc-num = < 0x4 >; interrupts = < 0x11 0x1 >; status = "disabled"; clock-frequency = < 0x8000 >; prescaler = < 0x1 >; }; qdec: qdec0: qdec@40012000 { compatible = "nordic,nrf-qdec"; reg = < 0x40012000 0x1000 >; interrupts = < 0x12 0x1 >; status = "disabled"; }; comp: comparator@40013000 { compatible = "nordic,nrf-comp"; reg = < 0x40013000 0x1000 >; interrupts = < 0x13 0x1 >; status = "disabled"; #io-channel-cells = < 0x1 >; }; egu0: swi0: egu@40014000 { compatible = "nordic,nrf-egu", "nordic,nrf-swi"; reg = < 0x40014000 0x1000 >; interrupts = < 0x14 0x1 >; status = "okay"; }; egu1: swi1: egu@40015000 { compatible = "nordic,nrf-egu", "nordic,nrf-swi"; reg = < 0x40015000 0x1000 >; interrupts = < 0x15 0x1 >; status = "okay"; }; egu2: swi2: egu@40016000 { compatible = "nordic,nrf-egu", "nordic,nrf-swi"; reg = < 0x40016000 0x1000 >; interrupts = < 0x16 0x1 >; status = "okay"; }; egu3: swi3: egu@40017000 { compatible = "nordic,nrf-egu", "nordic,nrf-swi"; reg = < 0x40017000 0x1000 >; interrupts = < 0x17 0x1 >; status = "okay"; }; egu4: swi4: egu@40018000 { compatible = "nordic,nrf-egu", "nordic,nrf-swi"; reg = < 0x40018000 0x1000 >; interrupts = < 0x18 0x1 >; status = "okay"; }; egu5: swi5: egu@40019000 { compatible = "nordic,nrf-egu", "nordic,nrf-swi"; reg = < 0x40019000 0x1000 >; interrupts = < 0x19 0x1 >; status = "okay"; }; timer3: timer@4001a000 { compatible = "nordic,nrf-timer"; status = "disabled"; reg = < 0x4001a000 0x1000 >; cc-num = < 0x6 >; max-bit-width = < 0x20 >; interrupts = < 0x1a 0x1 >; prescaler = < 0x0 >; }; timer4: timer@4001b000 { compatible = "nordic,nrf-timer"; status = "disabled"; reg = < 0x4001b000 0x1000 >; cc-num = < 0x6 >; max-bit-width = < 0x20 >; interrupts = < 0x1b 0x1 >; prescaler = < 0x0 >; }; pwm0: pwm@4001c000 { compatible = "nordic,nrf-pwm"; reg = < 0x4001c000 0x1000 >; interrupts = < 0x1c 0x1 >; status = "disabled"; #pwm-cells = < 0x3 >; }; pdm0: pdm@4001d000 { compatible = "nordic,nrf-pdm"; reg = < 0x4001d000 0x1000 >; interrupts = < 0x1d 0x1 >; status = "disabled"; }; acl: acl@4001e000 { compatible = "nordic,nrf-acl"; reg = < 0x4001e000 0x1000 >; status = "okay"; }; flash_controller: flash-controller@4001e000 { compatible = "nordic,nrf52-flash-controller"; reg = < 0x4001e000 0x1000 >; partial-erase; #address-cells = < 0x1 >; #size-cells = < 0x1 >; flash0: flash@0 { compatible = "soc-nv-flash"; erase-block-size = < 0x1000 >; write-block-size = < 0x4 >; reg = < 0x0 0x100000 >; partitions { compatible = "fixed-partitions"; #address-cells = < 0x1 >; #size-cells = < 0x1 >; boot_partition: partition@0 { label = "mcuboot"; reg = < 0x0 0xc000 >; }; slot0_partition: partition@c000 { label = "image-0"; reg = < 0xc000 0x67000 >; }; slot1_partition: partition@73000 { label = "image-1"; reg = < 0x73000 0x67000 >; }; scratch_partition: partition@da000 { label = "image-scratch"; reg = < 0xda000 0x1e000 >; }; storage_partition: partition@f8000 { label = "storage"; reg = < 0xf8000 0x8000 >; }; }; }; }; ppi: ppi@4001f000 { compatible = "nordic,nrf-ppi"; reg = < 0x4001f000 0x1000 >; status = "okay"; }; mwu: mwu@40020000 { compatible = "nordic,nrf-mwu"; reg = < 0x40020000 0x1000 >; status = "okay"; }; pwm1: pwm@40021000 { compatible = "nordic,nrf-pwm"; reg = < 0x40021000 0x1000 >; interrupts = < 0x21 0x1 >; status = "disabled"; #pwm-cells = < 0x3 >; }; pwm2: pwm@40022000 { compatible = "nordic,nrf-pwm"; reg = < 0x40022000 0x1000 >; interrupts = < 0x22 0x1 >; status = "disabled"; #pwm-cells = < 0x3 >; }; spi2: spi@40023000 { compatible = "nordic,nrf-spi"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40023000 0x1000 >; interrupts = < 0x23 0x1 >; max-frequency = < 0x7a1200 >; easydma-maxcnt-bits = < 0x10 >; status = "okay"; cs-gpios = < &gpio0 0x11 0x1 >; pinctrl-0 = < &spi2_default >; pinctrl-1 = < &spi2_sleep >; pinctrl-names = "default", "sleep"; mx25l32: mx25l3233f@0 { compatible = "jedec,spi-nor"; reg = < 0x0 >; spi-max-frequency = < 0x4c4b400 >; wp-gpios = < &gpio0 0x16 0x1 >; hold-gpios = < &gpio0 0x17 0x1 >; size = < 0x2000000 >; has-dpd; t-enter-dpd = < 0x2710 >; t-exit-dpd = < 0x186a0 >; jedec-id = [ C2 20 16 ]; sfdp-bfp = [ E5 20 F1 FF FF FF FF 01 44 EB 08 6B 08 3B 04 BB EE FF FF FF FF FF 00 FF FF FF 00 FF 0C 20 0F 52 10 D8 00 FF ]; }; }; rtc2: rtc@40024000 { compatible = "nordic,nrf-rtc"; reg = < 0x40024000 0x1000 >; cc-num = < 0x4 >; interrupts = < 0x24 0x1 >; status = "disabled"; clock-frequency = < 0x8000 >; prescaler = < 0x1 >; }; i2s0: i2s@40025000 { compatible = "nordic,nrf-i2s"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40025000 0x1000 >; interrupts = < 0x25 0x1 >; status = "disabled"; }; usbd: zephyr_udc0: usbd@40027000 { compatible = "nordic,nrf-usbd"; reg = < 0x40027000 0x1000 >; interrupts = < 0x27 0x1 >; num-bidir-endpoints = < 0x1 >; num-in-endpoints = < 0x7 >; num-out-endpoints = < 0x7 >; num-isoin-endpoints = < 0x1 >; num-isoout-endpoints = < 0x1 >; status = "okay"; }; uart1: uart@40028000 { compatible = "nordic,nrf-uarte"; reg = < 0x40028000 0x1000 >; interrupts = < 0x28 0x1 >; status = "okay"; current-speed = < 0xe1000 >; pinctrl-0 = < &uart1_default >; pinctrl-1 = < &uart1_sleep >; pinctrl-names = "default", "sleep"; }; qspi: qspi@40029000 { compatible = "nordic,nrf-qspi"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x40029000 0x1000 >, < 0x12000000 0x8000000 >; reg-names = "qspi", "qspi_mm"; interrupts = < 0x29 0x1 >; status = "disabled"; }; pwm3: pwm@4002d000 { compatible = "nordic,nrf-pwm"; reg = < 0x4002d000 0x1000 >; interrupts = < 0x2d 0x1 >; status = "disabled"; #pwm-cells = < 0x3 >; }; spi3: spi@4002f000 { compatible = "nordic,nrf-spim"; #address-cells = < 0x1 >; #size-cells = < 0x0 >; reg = < 0x4002f000 0x1000 >; interrupts = < 0x2f 0x1 >; max-frequency = < 0x1e84800 >; easydma-maxcnt-bits = < 0x10 >; rx-delay-supported; rx-delay = < 0x2 >; status = "disabled"; }; gpio0: gpio@50000000 { compatible = "nordic,nrf-gpio"; gpio-controller; reg = < 0x50000000 0x200 0x50000500 0x300 >; #gpio-cells = < 0x2 >; status = "okay"; port = < 0x0 >; phandle = < 0x6 >; }; gpio1: gpio@50000300 { compatible = "nordic,nrf-gpio"; gpio-controller; reg = < 0x50000300 0x200 0x50000800 0x300 >; #gpio-cells = < 0x2 >; ngpios = < 0x10 >; status = "okay"; port = < 0x1 >; phandle = < 0xc >; }; cryptocell: crypto@5002a000 { compatible = "nordic,nrf-cc310"; reg = < 0x5002a000 0x1000 >; status = "okay"; #address-cells = < 0x1 >; #size-cells = < 0x1 >; cryptocell310: crypto@5002b000 { compatible = "arm,cryptocell-310"; reg = < 0x5002b000 0x1000 >; interrupts = < 0x2a 0x1 >; }; }; }; pinctrl: pin-controller { compatible = "nordic,nrf-pinctrl"; i2c0_default: i2c0_default { phandle = < 0x4 >; group1 { psels = < 0xc001a >, < 0xb001b >; }; }; i2c0_sleep: i2c0_sleep { phandle = < 0x5 >; group1 { psels = < 0xc001a >, < 0xb001b >; low-power-enable; }; }; spi2_default: spi2_default { phandle = < 0x7 >; group1 { psels = < 0x40013 >, < 0x50014 >, < 0x60015 >; }; }; spi2_sleep: spi2_sleep { phandle = < 0x8 >; group1 { psels = < 0x40013 >, < 0x50014 >, < 0x60015 >; low-power-enable; }; }; uart0_default: uart0_default { phandle = < 0x2 >; group1 { psels = < 0x6 >, < 0x10008 >; }; }; uart0_sleep: uart0_sleep { phandle = < 0x3 >; group1 { psels = < 0x6 >, < 0x10008 >; low-power-enable; }; }; uart1_default: uart1_default { phandle = < 0x9 >; group1 { psels = < 0x25 >, < 0x10024 >, < 0x20027 >, < 0x30026 >; }; }; uart1_sleep: uart1_sleep { phandle = < 0xa >; group1 { psels = < 0x25 >, < 0x10024 >, < 0x20027 >, < 0x30026 >; low-power-enable; }; }; }; rng_hci: entropy_bt_hci { compatible = "zephyr,bt-hci-entropy"; status = "okay"; }; sw_pwm: sw-pwm { compatible = "nordic,nrf-sw-pwm"; status = "disabled"; generator = < &timer1 >; clock-prescaler = < 0x0 >; #pwm-cells = < 0x3 >; }; cpus { #address-cells = < 0x1 >; #size-cells = < 0x0 >; cpu@0 { device_type = "cpu"; compatible = "arm,cortex-m4f"; reg = < 0x0 >; #address-cells = < 0x1 >; #size-cells = < 0x1 >; itm: itm@e0000000 { compatible = "arm,armv7m-itm"; reg = < 0xe0000000 0x1000 >; swo-ref-frequency = < 0x1e84800 >; }; }; }; leds { compatible = "gpio-leds"; user_led: led_0 { gpios = < &gpio1 0xc 0x0 >; label = "User LED"; }; status_red: led_1 { gpios = < &gpio0 0xd 0x1 >; label = "Red LED"; }; status_green: led_2 { gpios = < &gpio0 0xe 0x1 >; label = "Green LED"; }; status_blue: led_3 { gpios = < &gpio0 0xf 0x1 >; label = "Blue LED"; }; }; gpio_keys { compatible = "gpio-keys"; mode_button: button_0 { gpios = < &gpio0 0xb 0x11 >; label = "Mode Button"; zephyr,code = < 0x13c >; }; reset_button: button_1 { gpios = < &gpio0 0x12 0x11 >; label = "Reset Button"; zephyr,code = < 0xb >; }; }; mesh_header: connector { compatible = "particle-gen3-header"; #gpio-cells = < 0x2 >; gpio-map-mask = < 0xffffffff 0xffffffc0 >; gpio-map-pass-thru = < 0x0 0x3f >; gpio-map = < 0x0 0x0 &gpio0 0x1a 0x0 >, < 0x1 0x0 &gpio0 0x1b 0x0 >, < 0x2 0x0 &gpio1 0x1 0x0 >, < 0x3 0x0 &gpio1 0x2 0x0 >, < 0x4 0x0 &gpio1 0x8 0x0 >, < 0x5 0x0 &gpio1 0xa 0x0 >, < 0x6 0x0 &gpio1 0xb 0x0 >, < 0x7 0x0 &gpio1 0xc 0x0 >, < 0x8 0x0 &gpio1 0x3 0x0 >, < 0x9 0x0 &gpio0 0x6 0x0 >, < 0xa 0x0 &gpio0 0x8 0x0 >, < 0xb 0x0 &gpio1 0xe 0x0 >, < 0xc 0x0 &gpio1 0xd 0x0 >, < 0xd 0x0 &gpio1 0xf 0x0 >, < 0xe 0x0 &gpio0 0x1f 0x0 >, < 0xf 0x0 &gpio0 0x1e 0x0 >, < 0x10 0x0 &gpio0 0x1d 0x0 >, < 0x11 0x0 &gpio0 0x1c 0x0 >, < 0x12 0x0 &gpio0 0x4 0x0 >, < 0x13 0x0 &gpio0 0x3 0x0 >, < 0x14 0x0 &gpio0 0xb 0x0 >, < 0x15 0x0 &gpio0 0x12 0x0 >; }; feather_header: feather_connector { compatible = "adafruit-feather-header"; #gpio-cells = < 0x2 >; gpio-map-mask = < 0xffffffff 0xffffffc0 >; gpio-map-pass-thru = < 0x0 0x3f >; gpio-map = < 0xc 0x0 &gpio0 0x1a 0x0 >, < 0xd 0x0 &gpio0 0x1b 0x0 >, < 0xe 0x0 &gpio1 0x1 0x0 >, < 0xf 0x0 &gpio1 0x2 0x0 >, < 0x10 0x0 &gpio1 0x8 0x0 >, < 0x11 0x0 &gpio1 0xa 0x0 >, < 0x12 0x0 &gpio1 0xb 0x0 >, < 0x13 0x0 &gpio1 0xc 0x0 >, < 0x14 0x0 &gpio1 0x3 0x0 >, < 0xa 0x0 &gpio0 0x6 0x0 >, < 0x9 0x0 &gpio0 0x8 0x0 >, < 0x8 0x0 &gpio1 0xe 0x0 >, < 0x7 0x0 &gpio1 0xd 0x0 >, < 0x6 0x0 &gpio1 0xf 0x0 >, < 0x5 0x0 &gpio0 0x1f 0x0 >, < 0x4 0x0 &gpio0 0x1e 0x0 >, < 0x3 0x0 &gpio0 0x1d 0x0 >, < 0x2 0x0 &gpio0 0x1c 0x0 >, < 0x1 0x0 &gpio0 0x4 0x0 >, < 0x0 0x0 &gpio0 0x3 0x0 >; }; sky13351: sky13351 { compatible = "skyworks,sky13351"; vctl1-gpios = < &gpio0 0x19 0x1 >; vctl2-gpios = < &gpio0 0x2 0x1 >; }; vbatt { compatible = "voltage-divider"; io-channels = < &adc 0x3 >; output-ohms = < 0x200b20 >; full-ohms = < 0x2c5790 >; }; };