TI中文支持网
TI专业的中文技术问题搜集分享网站

am3358 卡在kernel starting.

主机:vmware ubuntu16.04

SDK:ti-sdk-am335x-evm-08.00.00.00-Linux-x86-Install

调试串口:UART3

启动方式:SD卡启动

SD卡制作工具:ti-processor-sdk-linux-am335x-evm-03下的create-sdcard.sh

编译kernel方式:在顶层目录make linux。

制作完成后,从SD卡启动,到如下消息,卡住不动了。

Environment size: 4702/131068 bytes
U-Boot# run bootcmd
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
20 bytes read in 8 ms (2 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc …
4274280 bytes read in 287 ms (14.2 MiB/s)
39132 bytes read in 32 ms (1.2 MiB/s)
Kernel image @ 0x82000000 [ 0x000000 – 0x413868 ]
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Device Tree to 8fff3000, end 8ffff8db … OK

Starting kernel …

出现以上情况有可能是什么原因?

Jian Zhou:

自己的板子还是TI的demo板?

为什么不用SDK08自带的create-sdcard.sh脚本

zizhen hu:

回复 Jian Zhou:

是自己的板子,根据EVM和EVM-SK修改的。

8.0自带的create-sdcard.sh会提示错误。

zizhen hu:

回复 Jian Zhou:

include/configs/am335x_evm.h 中已经设置了
"console=ttyO3,115200n8\0" \

Jian Zhou:

回复 zizhen hu:

你这个卡会不会有问题,换个卡试试。

我用脚本烧卡没发现这样的问题。

zizhen hu:

回复 Jian Zhou:

我这个问题和做卡工具应该没问题吧?

我的问题是从串口上看卡在kernel starting.

我们跳线到UART0,然后在配置里设置成UART0作为调试串口,然后可以看到有串口输出。。

这样的话问题应该是为什么无法在kernel阶段从UART3输出打印信息。

## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Loading Device Tree to 8fff3000, end 8ffff8df … OK

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0x0[ 0.000000] Linux version 3.14.26 (grst-hu@ubuntu) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 – Linaro GCC 2013.03) ) #6 Wed Dec 7 16:46:52 CST 2016

Steven Liu1:

回复 zizhen hu:

看你的现象描述,原因应该是没配置好UART3作为串口信息输出方式。

印象中在uboot和kernel都要做相关的重配置的工作,才会让UART3可以正常的完整输出信息的。

很久之前的时候好像做过,如果只是设置了一下UBOOT下面的环境变量,你是看不到starting kernel之后的信息的,然后一直要到root登录了之后才能切换过来,并且,要看到root登录的时候,也是要在FS中做些配置的。

不确定现在你已经进行了哪些改动,还是说kernel和FS中都没做过?

zizhen hu:

回复 Steven Liu1:

kernel中需要配置吗?uboot中的boards.cfg中可以配置uboot的串口信息打印,这个已经配置了。我看代码的话好像是从uboot中传递参数到kernel。

只需要配只console=ttyO0,115200n8,FS中还没配置。

Steven Liu1:

回复 zizhen hu:

下面这个是改到UART2的,UART3类似。

If you wish to change the user-space console as well, you need to change the following line inside /etc/inittab in your rootfs partition:

S:2345:respawn:/sbin/getty 115200 ttyO0

from:https://e2e.ti.com/support/arm/sitara_arm/f/791/t/310418

zizhen hu:

回复 Steven Liu1:

你好:

       你给的这个是文件系统里的控制台输出,现在我遇到的问题是调试串口从uart0修改到uart3,在uboot阶段可以输出信息,但是进入kernel之后无法从uart3输出信息,但是这个时候从示波器测量uart0,可以看到kernel的信息依旧从uart0输出。kernel的控制台的UART口,不是应该是Bootargs来设置的吗?我已经设置成了console =ttyO3,115200n8。

你给的网页上也是这么说的,这个变量我已经设置成ttyO3.

The kernel serial console can be changed by the U-Boot "console" env var:

setenv console ttyO2,115200n8

Eggsy Pang:

回复 zizhen hu:

你的方法和修改步骤似乎都是正确的,可以在Uboot的时候输入命令# Uboot:pri console,看一下你的修改没有成功,方便的话,可以截个图给我们看看嘛?

赞(0)
未经允许不得转载:TI中文支持网 » am3358 卡在kernel starting.
分享到: 更多 (0)