iMX6Q Freescale 프로세서를 사용하는 마더보드에서 커널을 버전 3.17.0-rc4에서 최신 커널 버전으로 업그레이드하려고 하는데 마더보드가 부팅을 완료하지 않습니다.
Debian 10을 사용하여 크로스 컴파일하기 위해 다음 단계를 수행했습니다.
cp arch/arm/configs/imx_v6_v7_defconfig .config
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- menuconfig
make -j`nproc` ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -k zImage modules
그런 다음 zImage와 모듈을 부팅 및 루트 파티션에 복사합니다.
내 uEnv.txt 파일은 다음과 같습니다.
loadaddr=0x10008000
fdtaddr=0x18000000
fdtfile=imx6q-CIO100X50V01.dtb
console=ttymxc1,115200n8
optargs=console=ttyS0 quiet systemd.show_status=false
ethaddr=70:B3:D5:16:20:00
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait fixrtc
loadkernel=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage
loadinitrd=load mmc ${mmcdev}:${mmcpart} 0x12A00000 initrd.img; setenv initrd_size ${filesize}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /${fdtfile}
#zImage/initrd.img:
#boot_fdt=run loadkernel; run loadinitrd; run loadfdt
#zImage:
boot_fdt=run loadkernel; run loadfdt
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype} video=${video} ethaddr=${ethaddr}
#zImage:
uenvcmd=run boot_fdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
커널 버전 5.13.12를 사용하려고 하면 다음 메시지가 표시되고 부팅이 중단됩니다.
U-Boot 2016.07-rc1-g0b9fdb5-dirty (Oct 20 2016 - 15:57:37 +0200)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: SABRE Lite
I2C: ready
DRAM: 512 MiB
force_idle_bus: sda=0 scl=0 sda.gp=0xcb scl.gp=0x5
force_idle_bus: failed to clear bus, sda=0 scl=0
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0(part 0) is current device
280 bytes read in 32 ms (7.8 KiB/s)
Running bootscript from mmc ...
## Executing script at 12000000
6x_bootscript -> uEnv.txt wrapper...
787 bytes read in 49 ms (15.6 KiB/s)
10801304 bytes read in 38345 ms (274.4 KiB/s)
33124 bytes read in 52 ms (622.1 KiB/s)
Kernel image @ 0x10008000 [ 0x000000 - 0xa4d098 ]
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Using Device Tree in place at 18000000, end 1800b163
Starting kernel ...
[ 0.224790] debugfs: Directory 'dummy-iomuxc-gpr@20e0000' with parent 'regmap' already present!
다른 커널 버전을 문제 없이 사용해 보았지만(예: 4.19 또는 5.9) 어떤 이유로 커널 버전이 5.10 동결 부팅보다 크거나 같습니다.
그냥 5.9 커널 버전을 사용할까도 생각했지만, 무슨 일이 일어나고 있는지, 무슨 일이 일어나고 있는지, 어떻게 디버그해야 할지 전혀 모르기 때문에 좀 짠합니다. 이것이 무슨 일이 일어나고 있는지 디버깅하기 위해 할 수 있는 일인가요, 아니면 시도해 볼 수 있는 일인가요?
어떤 이유로 iMX6Q가 5.10 이전 커널과 호환되지 않을까요? 검색했지만 아무것도 찾을 수 없습니다.