平台信息: Link to heading
板子:imx8dx-mek bsp:linux-4.1.26
问题1:uImage的头解析的不对 Link to heading
1U-Boot 2016.01 (May 13 2016 - 19:24:15 +0800)
2CPU: Freescale Treerunner S32V234 at 1000 MHz
3Reset cause: External reset
4Board: s32v234evb
5I2C: ready
6DRAM: 256 MiB
7All (4) cores are up.
8MMC: FSL_SDHC: 0
9In: serial
10Out: serial
11Err: serial
12Net: FEC
13Hit any key to stop autoboot: 0
14switch to partitions #0, OK
15mmc0 is current device
16reading uImage
176536576 bytes read in 558 ms (11.2 MiB/s)
18Booting from mmc ...
19reading s32v234-evb.dtb
2018399 bytes read in 15 ms (1.2 MiB/s)
21## Booting kernel from Legacy Image at 8007ffc0 ... # 这个是在/common/bootm.c
22 Image Name: Linux test s32v234-evb # 这个是在/common/image.c
23 Image Type: ARM Linux Kernel Image (uncompressed)
24 Data Size: 6536512 Bytes = 6.2 MiB
25 Load Address: 80080000
26 Entry Point: 80080000
27 Verifying Checksum ... OK # 这个是在/common/image.c:image_get_ramdisk()
28Unsupported Architecture 0x2 # 这个是在/common/bootm.c中报出的
29ERROR: can't get kernel image! # 这个是在/common/bootm.c中报出的
30=> pri
问题分析:这个问题是在建立uImage的时候选择的不对,那么64K的头正确解析出来L了,但是这个头信息不匹配,所以紧接着报错:ERROR: can’t get kernel image!
问题2:内核启动卡在Starting kernel ..
Link to heading
1U-Boot 2016.01 (May 13 2016 - 19:24:15 +0800)
2CPU: Freescale Treerunner S32V234 at 1000 MHz
3Reset cause: External reset
4Board: s32v234evb
5I2C: ready
6DRAM: 256 MiB
7All (4) cores are up.
8MMC: FSL_SDHC: 0
9In: serial
10Out: serial
11Err: serial
12Net: FEC
13Hit any key to stop autoboot: 0
14switch to partitions #0, OK
15mmc0 is current device
16reading uImage
176318520 bytes read in 538 ms (11.2 MiB/s)
18Booting from mmc ...
19reading s32v234-evb.dtb
2018399 bytes read in 15 ms (1.2 MiB/s)
21## Booting kernel from Legacy Image at 8007ffc0 ...
22 Image Name: Linux
23 Image Type: AArch64 Linux Kernel Image (uncompressed)
24 Data Size: 6318456 Bytes = 6 MiB
25 Load Address: 80080000
26 Entry Point: 80080000
27 Verifying Checksum ... OK
28## Flattened Device Tree blob at 82000000 # /common/image-fdt.c:boot_get_fdt
29 Booting using the fdt blob at 0x82000000 # /common/image-fdt.c:boot_get_fdt
30 XIP Kernel Image ... OK
31 reserving fdt memory region: addr=80000000 size=10000 # /common/image.c::image_setup_linux:boot_fdt_add_mem_rsv_regions
32 Loading Device Tree to 000000008fd6a000, end 000000008fd717de ... OK # /common/image.c::image_setup_linux:boot_relocate_fdt
33
34Starting kernel ...
问题分析:设备树发生错误造成的!