Hi !
I am working on an application for the cortex M4 on my board. I’m dealing with a Colibri iMX8DX v1.0 E mounted on an Aster v1.1 B on which I flashed a Linux embedded v7.1 Minimal.
I rerouted the debug console of the Cortex M4 to the UARTB (or UART0) because the 144 and 146 SODIMM pins that would be connected to the tightly coupled UART of the M4 were not connected on the Aster Card. Following this, I was able to run some examples from the MCUXpresso SDK and see their result on my debug console.
Now, when I try to boot Linux after launching the m4boot_0 command in U-Boot, the kernel almost finishes its initialization before reset with “Reset cause: SCFW fault reset”.
Just so I avoid any weird interference with badly controlled pins, the firmware I am currently attempting to make work alongside Linux is the looped Hello World demo from the MCUXpresso SDK.
The boot log the following :
Colibri iMX8X # run m4boot_0
8720 bytes read in 3 ms (2.8 MiB/s)
Power on aux core 0
Copy image from 0x95c00000 to 0x34fe0000
Start M4
bootaux complete
Colibri iMX8X # boot
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1…
Found U-Boot script /boot.scr
5974 bytes read in 3 ms (1.9 MiB/s)
Executing script at 9d480000
Loading DeviceTree: imx8dx-colibri-aster.dtb
121065 bytes read in 6 ms (19.2 MiB/s)
86 bytes read in 2 ms (42 KiB/s)
Working FDT set to 9d400000
Applying Overlay: colibri-imx8x_disable-uart-b_overlay.dtbo
404 bytes read in 3 ms (130.9 KiB/s)
Applying Overlay: colibri-imx8x_hmp_overlay.dtbo
2065 bytes read in 3 ms (671.9 KiB/s)
8124461 bytes read in 189 ms (41 MiB/s)
Bootargs: root=PARTUUID=d87b1720-02 ro rootwait console=tty1 console=ttyLP3,115200
Uncompressing Kernel Image to 0
Flattened Device Tree blob at 9d400000
Booting using the fdt blob at 0x9d400000
Working FDT set to 9d400000
Loading Device Tree to 00000000bd632000, end 00000000bd672fff … OK
Working FDT set to bd632000
/bus@59000000/dma-controller@591f0000, 42728
/bus@59000000/dma-controller@599f0000, 43964
/bus@5a000000/dma-controller@5a1f0000, 59564
/bus@5a000000/dma-controller@5a1f0000, 59564
/bus@5a000000/dma-controller@5a9f0000, 60676Starting kernel …
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd042]
[ 0.000000] Linux version 6.6.54-7.1.0-g3493ccd66900 (oe-user@oe-host) (aarch64-tdx-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Tue Dec 17 21:04:41 UTC 2024
[ 0.000000] KASLR disabled due to lack of seed
[ 0.000000] Machine model: Toradex Colibri iMX8DX on Aster Board
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x00000000a3600000, size 416 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] OF: reserved mem: 0x00000000a3600000…0x00000000bd5fffff (425984 KiB) map reusable linux,cma
[ 0.000000] OF: reserved mem: 0x0000000084000000…0x0000000085ffffff (32768 KiB) nomap non-reusable decoder-boot@84000000
[ 0.000000] OF: reserved mem: 0x0000000086000000…0x00000000861fffff (2048 KiB) nomap non-reusable encoder-boot@86000000
[ 0.000000] OF: reserved mem: 0x0000000090000000…0x0000000090007fff (32 KiB) nomap non-reusable vdev0vring0@90000000
[ 0.000000] OF: reserved mem: 0x0000000090008000…0x000000009000ffff (32 KiB) nomap non-reusable vdev0vring1@90008000
[ 0.000000] OF: reserved mem: 0x0000000090010000…0x0000000090017fff (32 KiB) nomap non-reusable vdev1vring0@90010000
[ 0.000000] OF: reserved mem: 0x0000000090018000…0x000000009001ffff (32 KiB) nomap non-reusable vdev1vring1@90018000
[ 0.000000] OF: reserved mem: 0x00000000900ff000…0x00000000900fffff (4 KiB) nomap non-reusable rsctable@900ff000
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090400000, size 1 MiB
[ 0.000000] OF: reserved mem: initialized node vdevbuffer@90400000, compatible id shared-dma-pool
[ 0.000000] OF: reserved mem: 0x0000000090400000…0x00000000904fffff (1024 KiB) nomap non-reusable vdevbuffer@90400000
[ 0.000000] OF: reserved mem: 0x0000000092000000…0x00000000920fffff (1024 KiB) nomap non-reusable decoder-rpc@92000000
[ 0.000000] OF: reserved mem: 0x0000000094400000…0x0000000094afffff (7168 KiB) nomap non-reusable encoder-rpc@94400000
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000080200000-0x00000000bfffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080200000-0x0000000083ffffff]
[ 0.000000] node 0: [mem 0x0000000084000000-0x00000000861fffff]
[ 0.000000] node 0: [mem 0x0000000086200000-0x000000008fffffff]
[ 0.000000] node 0: [mem 0x0000000090000000-0x000000009001ffff]
[ 0.000000] node 0: [mem 0x0000000090020000-0x00000000900fefff]
[ 0.000000] node 0: [mem 0x00000000900ff000-0x00000000900fffff]
[ 0.000000] node 0: [mem 0x0000000090100000-0x00000000903fffff]
[ 0.000000] node 0: [mem 0x0000000090400000-0x00000000904fffff]
[ 0.000000] node 0: [mem 0x0000000090500000-0x0000000091ffffff]
[ 0.000000] node 0: [mem 0x0000000092000000-0x00000000920fffff]
[ 0.000000] node 0: [mem 0x0000000092100000-0x00000000943fffff]
[ 0.000000] node 0: [mem 0x0000000094400000-0x0000000094afffff]
[ 0.000000] node 0: [mem 0x0000000094b00000-0x00000000bfffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[ 0.000000] On node 0, zone DMA: 512 pages in unavailable ranges
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.4
[ 0.000000] percpu: Embedded 20 pages/cpu s42792 r8192 d30936 u81920
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] alternatives: applying boot alternatives
[ 0.000000] Kernel command line: root=PARTUUID=d87b1720-02 ro rootwait console=tty1 console=ttyLP3,115200
[ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 257544
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.000000] software IO TLB: area num 2.
[ 0.000000] software IO TLB: mapped [mem 0x000000009f600000-0x00000000a3600000] (64MB)
[ 0.000000] Memory: 338544K/1046528K available (11648K kernel code, 1238K rwdata, 3648K rodata, 2624K init, 465K bss, 282000K reserved, 425984K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[ 0.000000] GICv3: 512 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GICv3: GICv3 features: 16 PPIs
[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000051b00000
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[ 0.000001] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[ 0.000855] Console: colour dummy device 80x25
[ 0.000868] printk: console [tty1] enabled
[ 0.001773] Calibrating delay loop (skipped), value calculated using timer frequency… 16.00 BogoMIPS (lpj=32000)
[ 0.001803] pid_max: default: 32768 minimum: 301
[ 0.001996] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.002025] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.003982] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[ 0.004118] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[ 0.004353] rcu: Hierarchical SRCU implementation.
[ 0.004369] rcu: Max phase no-delay instances is 1000.
[ 0.005841] EFI services will not be available.
[ 0.006194] smp: Bringing up secondary CPUs …
[ 0.007052] Detected VIPT I-cache on CPU1
[ 0.007128] GICv3: CPU1: found redistributor 1 region 0:0x0000000051b20000
[ 0.007180] CPU1: Booted secondary processor 0x0000000001 [0x410fd042]
[ 0.007307] smp: Brought up 1 node, 2 CPUs
[ 0.007357] SMP: Total of 2 processors activated.
[ 0.007373] CPU features: detected: 32-bit EL0 Support
[ 0.007390] CPU features: detected: CRC32 instructions
[ 0.007474] CPU: All CPU(s) started at EL2
[ 0.007487] alternatives: applying system-wide alternatives
[ 0.008995] devtmpfs: initialized
[ 0.027595] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.027660] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.040667] pinctrl core: initialized pinctrl subsystem
[ 0.041479] DMI not present or invalid.
[ 0.042372] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.043383] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[ 0.043590] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.043798] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.044496] thermal_sys: Registered thermal governor ‘step_wise’
[ 0.044504] thermal_sys: Registered thermal governor ‘user_space’
[ 0.044522] thermal_sys: Registered thermal governor ‘power_allocator’
[ 0.044574] cpuidle: using governor menu
[ 0.044802] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.044876] ASID allocator initialised with 65536 entries
[ 0.045194] imx mu driver is registered.
[ 0.045231] imx rpmsg driver is registered.
[ 0.095106] Modules: 27824 pages in range for non-PLT usage
[ 0.095126] Modules: 519344 pages in range for PLT usage
[ 0.096035] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.096083] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.096100] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.096115] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 0.096133] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.096149] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.096169] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.096184] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 0.099822] iommu: Default domain type: Translated
[ 0.099858] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.100230] SCSI subsystem initialized
[ 0.100443] usbcore: registered new interface driver usbfs
[ 0.100549] usbcore: registered new interface driver hub
[ 0.100605] usbcore: registered new device driver usb
[ 0.103028] mc: Linux media interface: v0.10
[ 0.103109] videodev: Linux video capture interface: v2.00
[ 0.103194] pps_core: LinuxPPS API ver. 1 registered
[ 0.103209] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it
[ 0.103243] PTP clock support registered
[ 0.104120] Advanced Linux Sound Architecture Driver Initialized.
[ 0.105902] imx-scu system-controller: NXP i.MX SCU Initialized
[ 0.134622] platform system-controller:pinctrl: Fixed dependency cycle(s) with /system-controller/pinctrl/hog0grp
[ 0.135090] imx8qxp-pinctrl system-controller:pinctrl: initialized IMX pinctrl driver
[ 0.138742] clocksource: Switched to clocksource arch_sys_counter
[ 0.167487] NET: Registered PF_INET protocol family
[ 0.167707] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.169256] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[ 0.169297] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.169367] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.169456] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
[ 0.169749] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.169867] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.169912] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.170064] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.170550] RPC: Registered named UNIX socket transport module.
[ 0.170571] RPC: Registered udp transport module.
[ 0.170585] RPC: Registered tcp transport module.
[ 0.170597] RPC: Registered tcp-with-tls transport module.
[ 0.170611] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.170639] PCI: CLS 0 bytes, default 64
[ 0.171885] Initialise system trusted keyrings
[ 0.172144] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[ 0.172781] NFS: Registering the id_resolver key type
[ 0.172841] Key type id_resolver registered
[ 0.172858] Key type id_legacy registered
[ 0.172893] nfs4filelayout_init: NFSv4 File Layout Driver Registering…
[ 0.172913] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering…
[ 0.173119] Key type asymmetric registered
[ 0.173137] Asymmetric key parser ‘x509’ registered
[ 0.173207] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[ 0.173234] io scheduler mq-deadline registered
[ 0.173251] io scheduler kyber registered
[ 0.173294] io scheduler bfq registered
[ 0.305858] mxs-dma 5b810000.dma-apbh: initialized
[ 0.307846] Bus freq driver module loaded
[ 0.372203] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[ 0.379714] 5a080000.serial: ttyLP2 at MMIO 0x5a080010 (irq = 66, base_baud = 5000000) is a FSL_LPUART
[ 0.381316] 5a090000.serial: ttyLP3 at MMIO 0x5a090010 (irq = 67, base_baud = 5000000) is a FSL_LPUART
[ 0.381475] printk: console [ttyLP3] enabled
[ 1.540122] imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops 0xffffffc080c27370)
[ 1.549205] imx-drm display-subsystem: bound imx-dpu-crtc.0 (ops 0xffffffc080c26f78)
[ 1.557642] imx-drm display-subsystem: bound imx-dpu-crtc.1 (ops 0xffffffc080c26f78)
[ 1.566071] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 1.573971] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes
[ 1.581024] dpu-core 56180000.dpu: driver probed
[ 1.593328] pps pps0: new PPS source ptp0
[ 1.602443] fec 5b040000.ethernet eth0: registered PHC device 0
[ 1.612783] usbcore: registered new interface driver usb-storage
[ 1.619336] i2c_dev: i2c /dev entries driver
[ 1.623900] mxc-jpeg 58400000.jpegdec: choose slot 0
[ 1.630567] mxc-jpeg 58400000.jpegdec: decoder device registered as /dev/video0 (81,0)
[ 1.638825] mxc-jpeg 58450000.jpegenc: choose slot 0
[ 1.645319] mxc-jpeg 58450000.jpegenc: encoder device registered as /dev/video1 (81,1)
[ 1.661451] sdhci: Secure Digital Host Controller Interface driver
[ 1.667826] sdhci: Copyright(c) Pierre Ossman
[ 1.672849] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.681201] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping …
[ 1.688763] usbcore: registered new interface driver usbhid
[ 1.694392] usbhid: USB HID core driver
[ 1.699894] hw perfevents: enabled with armv8_cortex_a35 PMU driver, 7 counters available
[ 1.711400] mmc0: SDHCI controller on 5b010000.mmc [5b010000.mmc] using ADMA
[ 1.715691] NET: Registered PF_PACKET protocol family
[ 1.723702] Key type dns_resolver registered
[ 1.736772] Loading compiled-in X.509 certificates
[ 1.777048] gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.788050] gpio gpiochip2: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.798943] gpio gpiochip3: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.809832] gpio gpiochip4: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.820629] gpio gpiochip5: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.831679] gpio gpiochip6: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.842578] gpio gpiochip7: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.853571] gpio gpiochip8: Static allocation of GPIO base is deprecated, use dynamic allocation.
[ 1.865968] imx-lpi2c 5a800000.i2c: use pio mode
[ 1.872715] i2c i2c-0: LPI2C adapter registered
[ 1.878856] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[ 1.886464] mmcblk0: mmc0:0001 S40004 3.64 GiB
[ 1.893091] mmcblk0: p1 p2
[ 1.896844] mmcblk0boot0: mmc0:0001 S40004 4.00 MiB
[ 1.903423] mmcblk0boot1: mmc0:0001 S40004 4.00 MiB
[ 1.905362] sdhci-esdhc-imx 5b020000.mmc: Got CD GPIO
[ 1.911726] mmcblk0rpmb: mmc0:0001 S40004 4.00 MiB, chardev (241:0)
[ 1.926226] clk: Disabling unused clocks
[ 1.935995] ALSA device list:
[ 1.939013] mu_a1: failed to power off resource 214 ret -22
[ 1.942819] No soundcards found.
[ 1.960879] mmc1: SDHCI controller on 5b020000.mmc [5b020000.mmc] using ADMA
[ 1.977934] EXT4-fs (mmcblk0p2): mounted filesystem efbb7117-f979-4124-9a63-281259ca5ccf ro with ordered data mode. Quota mode: disabled.
[ 1.990421] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 2.000708] devtmpfs: mounted
[ 2.004715] Freeing unused kernel memory: 2624K
[ 2.009456] Run /sbin/init as init process
[ 2.150315] systemd[1]: System time before build time, advancing clock.
[ 2.173249] systemd[1]: Inserted module ‘autofs4’
[ 2.207882] NET: Registered PF_INET6 protocol family
[ 2.214700] Segment Routing with IPv6
[ 2.218584] In-situ OAM (IOAM) with IPv6
[ 2.253023] systemd[1]: systemd 255.13^ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
[ 2.285543] systemd[1]: Detected architecture arm64.Welcome to TDX Wayland with XWayland 7.1.0+build.3 (scarthgap)!
[ 2.311413] systemd[1]: Hostname set to .
U-Boot 2024.04-7.1.0+git.c03a484b2906 (Dec 18 2024 - 12:59:22 +0000)
CPU: NXP i.MX8QXP RevC A35 at 1200 MHz at 37C
DRAM: 1022 MiB
Core: 248 devices, 24 uclasses, devicetree: separate
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC… OK
In: serial
Out: serial
Err: serial
Model: Toradex 0052 Colibri iMX8DX 1GB V1.0E
Serial#: 15508241
Boot: MMC0
Reset cause: SCFW fault resetBuildInfo:
- SCFW 83624b99, SECO-FW c9de51c0, IMX-MKIMAGE 4622115c, ATF 7c64d4e
- U-Boot 2024.04-7.1.0+git.c03a484b2906
flash target is MMC:0
Net: eth0: ethernet@5b040000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
I have no idea what causes this error, any tips would be so welcome.
Thanks for the help !