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

关于CORTEX-A8的SD卡启动问题

你好!

        问题比较纠结,还请大家耐点心看看

        首先,说下我手头上有的东西:

        1.  evmskam335x 开发板一块;

        2. mmc卡1:由ti提供的,被分为两个区,一个为/boot, 另外一个为/rootfs. 在/boot里面的MLO和u-boot.img都是把U-BOOT设定为由mmc启动,编译出来的镜像。

        3. mmc卡2:由自己编译,被分为两个区,一个为/boot, 另外一个为/rootfs. 在/boot里面的MLO和u-boot.img都是把U-BOOT设定为NFS启动(uImage由tftp下载,根文件   系统由NFS挂载),编译出来的镜像。

         现在说下我做的试验:

         插入 mmc卡1,上电,待内核引导完成以后,拔出mmc卡1,插入mmc卡2,按复位按键(板上SW7按键,注意,这里不是重新上电),系统可以引导。

         接着,我把系统断电(拔出5V供电),再重新上电,这次系统无法引导,一直卡在“boot mode – FAT,reading u-boot.img”这里。每次都是这样。

         以下是从mmc卡2重新上电,无法加载u-boot.img的打印信息。

U-Boot SPL 2013.01.01 (Apr 21 2014 – 22:33:43)                              >>spl:board_init_r()                                                        musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0                                            musb-hdrc: setup fifo_mode 4           musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0       musb-hdrc: setup fifo_mode 4           musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
boot device – 8
Now , load the u-boot.img from mmc
OMAP SD/MMC: 0
boot mode – FAT
reading u-boot.img

我更改am335x_evm.h(/include/configs/am335x_evm.h)的内容如下:

增加:

 "ipaddr=192.168.1.2\0" \
 "serverip=192.168.1.1\0" \
 "gatewayip=192.168.1.255\0" \
 "netmask=255.255.255.0\0" \
 "rootpath=/home/xiehaolin/sitara/ti-sdk-am335x-evm-06.00.00.00/targetNFS\0" \

屏蔽掉

 "mmc dev ${mmcdev}; if mmc rescan; then " \
  "echo SD/MMC found on device ${mmcdev};" \
  "if run loadbootenv; then " \
   "echo Loaded environment from ${bootenv};" \
   "run importbootenv;" \
  "fi;" \
  "if test -n $uenvcmd; then " \
   "echo Running uenvcmd …;" \
   "run uenvcmd;" \
  "fi;" \
  "if run loaduimagefat; then " \
   "run mmcboot;" \
  "elif run loaduimage; then " \
   "run mmcboot;" \
  "else " \
   "echo Could not find ${bootfile} ;" \
  "fi;" \
 "else " \
   "run nandboot;" \
 "fi;"
更改为: "run netboot;" \

还有一个问题补充:

对于mmc卡启动,有时我已经把MLO拷贝进/boot了,但是系统启动时候,还是无法找到MLO(一直打印CCCCC),这是什么问题?

kooking:

按键复位候 ,部分寄存器初始化,有些则没有被初始化,如IO等,而且有时找不到MLO
卡2里面的MLO和卡1里面的MLO是否相同,还有boot.img

haolin xie:

回复 kooking:

两个卡里面的MLO和u-boot.img都不一样.

Jian Feng1:

    3. mmc卡2:

你这个卡是怎么分区的?

haolin xie:

回复 Jian Feng1:

用sdk里面的工具,creat-sd.sh

kooking:

回复 haolin xie:

haolin xie

两个卡里面的MLO和u-boot.img都不一样.

haolin xie:

回复 kooking:

对比了,MLO前面启动打印都是一样的,就是卡2打印到reading u-boot.img就卡住了;

但是如果是MLO的问题,那么,为什么在用mmc卡1启动完系统以后,拔出mmc卡1,再插上mmc卡2,按复位按键,内核就能引导呢?

赞(0)
未经允许不得转载:TI中文支持网 » 关于CORTEX-A8的SD卡启动问题
分享到: 更多 (0)