Проблема сброса IMX8QXPC0 во время загрузки
Наша команда разработала специальную плату на основе IMX8QXP Mek, но с кремнием C0 (MIMX8QX6AVLFZAC). Мы используем те же PMIC и SD-карту, соединения памяти eMMC и т. Д., Но с увеличенным объемом оперативной памяти (4 ГБ: Micron MT53D1024M32D4DT-053).
После получения платы все выглядело нормально, напряжения в норме и т. Д. Для быстрого теста я попытался запустить наш образ на основе Yocto для MEK (созданный для IMX8QXPC0 mek). К сожалению, вскоре после "Запуск ядра" процесс загрузки перезагружается.
Затем мы решили перенести SCFW (комплект для переноса 1.7.0) для поддержки 4 ГБ ОЗУ. Кроме того, мы добавили imx-seco версии 3.7.5 для поддержки нового кремния (монитор отладки SCU жаловался на использование старой версии 3.7.1). При этом мы получили точно такое же поведение в одно и то же время. После этого мы сделали чистую u-boot и дерево устройств ядра, чтобы в основном поддерживать uart0 только для консольных целей, и снова - тот же результат одновременно. Вот наш журнал загрузки:
U-Boot 2020.04-5.4.47-2.2.0+ga02bdde0 (Apr 09 2021 - 13:23:18 +0000)
CPU: NXP i.MX8QXP RevC A35 at 1200 MHz at 35C
Model: NXP i.MX8QXP TEST
Board: iMX8QXP TEST
BuildInfo:
- SCFW 0d54291f, SECO-FW 640b5efb, IMX-MKIMAGE 8da5cd23, ATF c949a88
- U-Boot 2020.04-5.4.47-2.2.0+ga02bdde0
Boot: SD1
DRAM: 4 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... Run CMD11 1.8V switch
*** Warning - bad CRC, using default environment
Fail to setup video link
In: serial
Out: serial
Err: serial
Run CMD11 1.8V switch
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Run CMD11 1.8V switch
Net: No ethernet found.
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
Run CMD11 1.8V switch
switch to partitions #0, OK
mmc1 is current device
Run CMD11 1.8V switch
27941376 bytes read in 353 ms (75.5 MiB/s)
Booting from mmc ...
84591 bytes read in 14 ms (5.8 MiB/s)
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 0000000083000000, end 0000000083017a6e
Disable clock-controller@5a4d0000 rsrc 62 not owned
Disable clock-controller@5ac90000 rsrc 102 not owned
Disable clock-controller@5b260000 rsrc 253 not owned
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd042]
[ 0.000000] Linux version 5.4.47-2.2.0+g276151221 (oe-user@oe-host) (gcc ver1
[ 0.000000] Machine model: i.MX8QXP TEST
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x0000000096000000, B
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id sharl
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090000000, B
[ 0.000000] OF: reserved mem: initialized node vdev0vring0@90000000, compatil
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090008000, B
[ 0.000000] OF: reserved mem: initialized node vdev0vring1@90008000, compatil
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090010000, B
[ 0.000000] OF: reserved mem: initialized node vdev1vring0@90010000, compatil
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090018000, B
[ 0.000000] OF: reserved mem: initialized node vdev1vring1@90018000, compatil
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090400000, B
[ 0.000000] OF: reserved mem: initialized node vdevbuffer, compatible id shal
[ 0.000000] earlycon: lpuart32 at MMIO 0x000000005a060000 (options '')
[ 0.000000] printk: bootconsole [lpuart32] enabled
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000080200000-0x00000008fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x8ff807500-0x8ff808fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000ffffffff]
[ 0.000000] Normal [mem 0x0000000100000000-0x00000008ffffffff]
[ 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 0x0000000086200000-0x0000000087ffffff]
[ 0.000000] node 0: [mem 0x0000000090020000-0x00000000901fffff]
[ 0.000000] node 0: [mem 0x0000000090500000-0x0000000091ffffff]
[ 0.000000] node 0: [mem 0x0000000094c00000-0x00000000ffffffff]
[ 0.000000] node 0: [mem 0x0000000880000000-0x00000008ffffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000008ffffffff]
[ 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.1
[ 0.000000] percpu: Embedded 24 pages/cpu s58904 r8192 d31208 u98304
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] Speculative Store Bypass Disable mitigation not required
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 978988
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: console=ttyLP0,115200 earlycon root=/dev/mmw
[ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 byte)
[ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes,)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] software IO TLB: mapped [mem 0xfbfff000-0xfffff000] (64MB)
[ 0.000000] Memory: 2820512K/3978112K available (16508K kernel code, 1238K r)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 ji.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 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] GICv3: Distributor has no Range Selector support
[ 0.000000] GICv3: 16 PPIs implemented
[ 0.000000] GICv3: no VLPI support, no direct LPI support
[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000051b00000
[ 0.000000] random: get_random_bytes called from start_kernel+0x2b8/0x44c wi0
[ 0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycless
[ 0.000004] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199s
[ 0.008779] Console: colour dummy device 80x25
[ 0.012968] Calibrating delay loop (skipped), value calculated using timer f)
[ 0.023134] pid_max: default: 32768 minimum: 301
[ 0.027827] LSM: Security Framework initializing
[ 0.032408] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, lin)
[ 0.039738] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.071642] ASID allocator initialised with 32768 entries
[ 0.084738] rcu: Hierarchical SRCU implementation.
[ 0.099245] EFI services will not be available.
[ 0.111476] smp: Bringing up secondary CPUs ...
[ 0.148074] Detected VIPT I-cache on CPU1
[ 0.148105] GICv3: CPU1: found redistributor 1 region 0:0x0000000051b20000
[ 0.148143] CPU1: Booted secondary processor 0x0000000001 [0x410fd042]
[ 0.180118] Detected VIPT I-cache on CPU2
[ 0.180139] GICv3: CPU2: found redistributor 2 region 0:0x0000000051b40000
[ 0.180162] CPU2: Booted secondary processor 0x0000000002 [0x410fd042]
[ 0.212186] Detected VIPT I-cache on CPU3
[ 0.212205] GICv3: CPU3: found redistributor 3 region 0:0x0000000051b60000
[ 0.212225] CPU3: Booted secondary processor 0x0000000003 [0x410fd042]
[ 0.212294] smp: Brought up 1 node, 4 CPUs
[ 0.268189] SMP: Total of 4 processors activated.
[ 0.272877] CPU features: detected: 32-bit EL0 Support
[ 0.278011] CPU features: detected: CRC32 instructions
[ 0.290138] CPU: All CPU(s) started at EL2
[ 0.293933] alternatives: patching kernel code
[ 0.299588] devtmpfs: initialized
[ 0.316780] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ms
[ 0.326201] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.364934] pinctrl core: initialized pinctrl subsystem
[ 0.370871] DMI not present or invalid.
[ 0.374691] NET: Registered protocol family 16
[ 0.387399] DMA: preallocated 256 KiB pool for atomic allocations
[ 0.393190] audit: initializing netlink subsys (disabled)
[ 0.398822] audit: type=2000 audit(0.340:1): state=initialized audit_enabled1
[ 0.406594] cpuidle: using governor menu
[ 0.411115] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.419322] Serial: AMBA PL011 UART driver
[ 0.423158] imx mu driver is registered.
[ 0.427000] imx rpmsg driver is registered.
[ 0.480255] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.486633] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.493309] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.499998] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.507734] cryptd: max_cpu_qlen set to 1000
[ 0.515899] ACPI: Interpreter disabled.
[ 0.520828] iommu: Default domain type: Translated
[ 0.525570] vgaarb: loaded
[ 0.528462] SCSI subsystem initialized
[ 0.532293] usbcore: registered new interface driver usbfs
[ 0.537499] usbcore: registered new interface driver hub
[ 0.542804] usbcore: registered new device driver usb
[ 0.549420] mc: Linux media interface: v0.10
[ 0.553565] videodev: Linux video capture interface: v2.00
[ 0.558907] pps_core: LinuxPPS API ver. 1 registered
[ 0.563773] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giom>
[ 0.572906] PTP clock support registered
[ 0.577106] EDAC MC: Ver: 3.0.0
[ 0.581345] No BMan portals available!
[ 0.585128] QMan: Allocated lookup table at (____ptrval____), entry count 657
[ 0.592729] No QMan portals available!
[ 0.597067] No USDPAA memory, no 'fsl,usdpaa-mem' in device-tree
[ 0.603541] FPGA manager framework
[ 0.606701] Advanced Linux Sound Architecture Driver Initialized.
[ 0.613215] Bluetooth: Core ver 2.22
[ 0.616474] NET: Registered protocol family 31
[ 0.620890] Bluetooth: HCI device and connection manager initialized
[ 0.627230] Bluetooth: HCI socket layer initialized
[ 0.632094] Bluetooth: L2CAP socket layer initialized
[ 0.637141] Bluetooth: SCO socket layer initialized
[ 0.643070] imx-scu scu: NXP i.MX SCU Initialized
[ 0.653174] random: fast init done
Независимо от того, какую систему мы ставим на плату (с помощью SD-карты), процесс загрузки идет до строки «random: fast init done», а затем выполняется сброс.
Мы используем слои imx для проекта Yocto с веткой Zeus (не можем использовать последнюю версию из-за некоторых зависимостей внешних слоев, которые еще не поддерживаются слоем Gatesgarth или Dunfell).
Кто-нибудь сталкивался с подобной проблемой и мог бы нам помочь? Как мы можем отладить проблему, возможно, она вызвана конфигурацией ядра? Мы используем немодифицированный imx_v8_defconfig. Вдобавок мы удалили optee из нашей среды сборки.
Заранее спасибо. BR
РЕДАКТИРОВАТЬ
Мы выяснили, что процессор утверждает вывод SCU_WDOG_OUT. Что могло быть причиной этого? Это чисто аппаратная проблема, стоит ли исследовать прошивку?