S32V启动日志分析

平台信息: 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 ...

问题分析:设备树发生错误造成的!

See also in kernel Link to heading