您好!
我们有一个基于 J721e 的定制板、我们能够从 eMMC 引导该板。 但是,引导加载程序(即 tidoot3.bin、 sysfw.itb、tispl.bin 和 u-boot.img)在尝试加载 Linux 内核时工作良好,它会在“启动内核...”时挂起。
我在 UART 中进行了更改、其中 EVM uart0 (SERIAL2)用于主调试日志、在我们的电路板上、uart7 (serial9)用于主调试日志。 我还启用了其他 UART0、1、2、3、4、 6、7和8。 这些更改在 u-boot 和内核器件树中进行。
由于 Linux 内核在'Starting Kernel ..."挂起 我在 u-boot 中添加了一些调试跟踪、即 /arch/arm/lib/bootm.c 以检查其故障的确切位置(请参阅附带的文件)。 下面是它卡住的位置。 检查所附"bootm.c"文件中的第380行。
在添加这些日志后、这里是我的终端日志。
MMC:sdhci@4f80000:0、sdhci@4fb0000:1 正在从 MMC 加载环境... 确定输入:串行@2870000 输出:串行@2870000 错误:串行@2870000 在0x50读取板载 EEPROM 失败1 网络:无法解析 phy-handle 端口1 (-2) 找不到 cpsw-phy-SEL 找不到以太网。 按任意键停止自动引导:0 切换到分区#0,OK mmc0 (第0部分)是 当前设备 SD/MMC,在设备0 上找到**无法识别的文件系统类型** 16654344字节在51 ms (311.4 MIB/s)内读取 88989字节在2 ms (42.4 MIB/s)内读取 ###在82000000处展开设备树 blob 使用0x82000000处的 FDT blob 启动 正在将设备树加载到00000000fdda1000,结束位置00000000fb9fff... 确定 IVP 硬件调试:BOOT_JUTER_Linux:##正在将控制传输到 Linux (地址80080000)... 正在启动内核... ivp 硬件调试:Announce_and_cleanup:虚拟 val =0 ivp 硬件调试:Announce_and_cleanup:0 ivp 硬件调试:Announce_and_clean1 ivP 硬件调试:BOOT_UBOOD_Linux:0 ivP 硬件调试:BOOT_JUTO_Linux:2 ivP 硬件调试:BOOT_JUK_Linux:3 ivp 硬件调试:引导_UTOP_Linux :0x800p= 0x800fue_linux-0x4.3>ue_ve= 0x800fue_linux-0x800fue_images= 0x800fue_linux-800fd= 0x4.3>uel_3
我已使用 u-boot 中的以下命令来加载内核-
setenv bootargs console=ttyS2,115200n8 armeycon=ns16550a, mmio32,0x02800000 vm.overcommit_ratio=5 vm.overcommit_memory=2 root=/dev/mmcblk0p1
setenv bootcmd "setenv autoload no;ext4load MMC 0:1 0x82000000 /boot/Image;ext4load MMC 0:1 0x81200000 /boot/k3-j721e-common-proc-board.dtb;booti 0x82000000 - 0x81200000"
请告诉我调试和修复此问题吗?
谢谢、
Satish
