我们实验室现在使用AM5728这个款CPU,目前自己做了主机板,同时也买了am57xx-beagle-x15的demo板进行参考
一开始就遇到了设备树的问题,因为之前实验室用的2.x的内核,设备树这部分还没有独立出来
现在的问题是:按照官方的SD卡制作方式,做 了个启动SD卡,放在demo板上是可以正常启动的,但是放在我们自己做的主机板上则提示 没有找到合适的设备树:(SD的镜像使用的是 prebuilt-images 目录下的镜像制作的)
No matching DT out of these options:
am57xx-beagle-x15
am572x-idk
am571x-idk
Failed to mount ext2 filesystem...
spl_load_image_ext_os: ext4fs mount err - 0
Failed to mount ext2 filesystem...
spl_load_image_ext: ext4fs mount err – 0
第1个问题:为什么在demo板上可以正常启动,而在我们自己做的主机板上不可以,设备树的信息不是跟镜像一起的么,难道demo板上还存有设备树的核对信息?很是奇怪,想知道设备树在启动过程中核对信息的机制/具体过程是什么。
第2个问题
既然因为设备树起不来,我们进行了首先不使用设备树,先让uboot跑起来,编译时候用没有设备树的参数进行配置,uboot跑起来了,但是系统内核没有跑起来,提示如下:
[ 1.929016] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.941589] omap_hwmod: mcasp3: _wait_target_ready failed: -16
[ 1.947458] Unhandled fault: asynchronous external abort (0x1211) at 0x00000000
[ 1.947465] ------------[ cut here ]------------
[ 1.947478] WARNING: CPU: 0 PID: 6 at /home/gtbldadm/processor-sdk-linux-krogoth-build/build-CORTEX_1/arago-tmp-exte)
[ 1.947483] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER2_P3 (Read): Data Access in User mode during Functs
[ 1.947488] Modules linked in:
[ 1.947494] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.4.19-gdb0b54cdad #1
[ 1.947497] Hardware name: Generic DRA74X (Flattened Device Tree)
[ 1.947508] Workqueue: kmmcd mmc_rescan
[ 1.947512] Backtrace:
中间省略很多行
[ 3.063309] [<c06630d0>] (rest_init) from [<c08d3d88>] (start_kernel+0x400/0x40c)
[ 3.070819] r5:c0981000 r4:c0981040
[ 3.074428] [<c08d3988>] (start_kernel) from [<80008090>] (0x80008090)
[ 3.080980] r10:00000000 r9:412fc0f2 r8:80007000 r7:c092cb20 r6:c0913a24 r5:c0928484
[ 3.088879] r4:c0981214
[ 3.091432] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 3.091432]
搞了一周没法解决内核启动崩溃的问题(具体log见附件)
于是怀疑是不是设备树的问题,因为细看一下好象是设备树没配置好的问题,于是回到设备树,使用设备树配置文件编译uboot:
ARCH=arm am57xx_evm_defconfig
生成了一下文件:
api drivers LOG snapshot.commit u-boot.dtb
arch dts MAINTAINERS spl u-boot-dtb.bin
board examples MAKEALL System.map u-boot-dtb.img
cmd fs Makefile test u-boot.img
common include MLO TISDK-README u-boot.lds
config.mk Kbuild net tools u-boot.map
configs Kconfig post u-boot u-boot-nodtb.bin
disk lib README u-boot.bin u-boot.srec
doc Licenses scripts u-boot.cfg u-boot.sym
问题3:特别关注红色字体文件,所生成的文件需要可不可以直接考到已制作好的SD卡中,还是需要重新制作一边SD卡?
问题4:所生成的文件和 prebuilt-images 目录下的用法有什么区别,demo板上的设备树能不能直接用在我们主机板上,因为我们主机板是参照demo板做的。
希望工程师们能百忙中解答一下,谢谢。