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

EVMK2X开发板linux启动问题

开发板型号是TCIEVMK2X REV11,通过TFTP启动内核的时候停止在mon_install 0x0c5f0000这一步,原因不明。

具体的操作步骤如下:

在windows主机上运行TFTP Server,windows主机IP地址为192.168.2.3

使用CCS下载UBOOT运行,然后设置Uboot的环境变量如下:( uImage-k2hk-evm.dtb、arago-console-image-k2hk-evm.cpio.gz、skern-k2hk-evm.bin、uImage-keystone-evm这四个文件是从官网下载的mcsdk_3_01_00_03.tar.gz文件中解压得到)

K2HK EVM # printenv

baudrate=115200

bootargs=console=ttyS0,115200n8 rootwait=1 earlyprintk rdinit=/sbin/init rw root=/dev/ram0 initrd=0x80200000,9M

bootcmd=tftp 0x87000000 uImage-k2hk-evm.dtb; tftp 0x82000000 arago-console-image-k2hk-evm.cpio.gz; tftp 0xc5f0000 skern-k2hk-evm.bin; tftp 0x88000000 uImage-keystone-evm; mon_install 0x0c5f0000; bootm 0x88000000 – 0x87000000

bootdelay=3

bootfile=uImage

ethact=K2HK_EMAC

ethaddr=00:17:ea:f7:a6:87

ipaddr=192.168.2.10

mtdids=nand0=davinci_nand.0

no_post=1

serverip=192.168.2.3

stderr=serial

stdin=serial

stdout=serial

ver=U-Boot 2013.01 (Aug 05 2014 – 11:28:59)

Environment size: 606/262140 bytes

设置完环境变量后运行boot命令,UBOOT能成功从TFTP Server下载文件,文件下载完成后就停止在mon_install这一步了。

K2HK EVM # boot

Using K2HK_EMAC device

TFTP from server 192.168.2.3; our IP address is 192.168.2.10

Filename 'uImage-k2hk-evm.dtb'.

Load address: 0x87000000

Loading: ####

         1.5 MiB/s

done

Bytes transferred = 50892 (c6cc hex)

Using K2HK_EMAC device

TFTP from server 192.168.2.3; our IP address is 192.168.2.10

Filename 'arago-console-image-k2hk-evm.cpio.gz'.

Load address: 0x82000000

Loading: #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         ################################################################

         1.8 MiB/s

done

Bytes transferred = 9514378 (912d8a hex)

Using K2HK_EMAC device

TFTP from server 192.168.2.3; our IP address is 192.168.2.10

Filename 'skern-k2hk-evm.bin'.

Load address: 0xc5f0000

Loading: ####

         1.5 MiB/s

done

Bytes transferred = 45056 (b000 hex)

Using K2HK_EMAC device

TFTP from server 192.168.2.3; our IP address is 192.168.2.10

Filename 'uImage-keystone-evm'.

Load address: 0x88000000

Loading: #################################################################

         #################################################################

         #################################################################

         #################################################################

         ####

         1.8 MiB/s

done

Bytes transferred = 3866448 (3aff50 hex)

执行到这里后终端上就没有反应了,看起来是在执行mon_install 0x0c5f0000时卡住了。

Vincent Han:

您好:

不知您是如何配置U-Boot的环境变量的,您打印的环境变量和我们标准默认的不一样,建议您恢复默认环境变量,您可以使用U-Boot命令‘nand erase.chip’ 来擦除所有环境变量、存储参数以及UBI的image。

在您打印的环境变量里,可能有问题的主要有3点:

1)bootargs中的initrd=0x80200000,这个值应该是0x802000000,因为我们默认启用了36Bit物理地址寻址,所以这个地址是36位的

2)bootargs中的initrd=0x80200000,9M,其中“9M”应该是实际根文件系统大小,9M只是样例里面的值,需要作相应修改

3)bootargs中的bootcmd还少了初始化参数的一部分,应该还需要加 init_ramfs/ubi/net这些宏,会调用默认环境变量里面的command来做参数初始化。

建议您参考论坛里面的操作手册,里面有使用RAMFS和UBIFS启动的详细指导,链接请见下。

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/23812/136232.aspx#136232

yy zz1:

回复 Vincent Han:

将bootargs中的initrd=0x80200000修改成0x802000000结果还是一样。

后来发现从git.ti.com/keystone-linux/boot-monitor 网站上下载的boot monitor源码只有K2_BM_13.11版本的能执行完install mon。其他版本都在uboot执行install mon的时候卡死。

Vincent Han:

回复 yy zz1:

您好:

目前我们使用的链接是如下:

Linux kernel: http://git.ti.com/cgit/cgit.cgi/keystone-linux/linux.git/

U-Boot: http://git.ti.com/cgit/cgit.cgi/keystone-linux/u-boot.git/

Boot Monitor: http://git.ti.com/cgit/cgit.cgi/keystone-linux/boot-monitor.git/

目前最新版本是14.07的版本,请您Git下来版本后reset到对应的这几个版本的14.07版本上,多谢!

yy zz1:

回复 Vincent Han:

比较了一下从

    http://git.ti.com/cgit/cgit.cgi/keystone-linux/boot-monitor.git/   

    

下载的Boot Monitor代码,完全相同。

   参照13.11版的Boot Monitor做了一些改动,编译后mon_install不再卡死。

   改动如下:

        skern.c 文件

        1、在skern_poweron_cpu 函数

        

if (((val & PD_ACTUAL_STATE_MASK) >> PD_ACTUAL_STATE_SHIFT) == PD_ON)      return PSCI_ALREADY_ON;

参照13.11版修改成

if (((val & PD_ACTUAL_STATE_MASK) >> PD_ACTUAL_STATE_SHIFT) == PD_ON){    /* Get the PSM state in the last 5 bits of ret value */    val &= MACHINE_PSM_STATE_MASK;    val >>= PD_PSM_STATE_SHIFT;    /* make it negative */    val |= (BIT(31));    return (int)val; }

2、*skern_init 函数

          if (from == PRIMARY_ENTRY) {                    skern_puts("ffffddddffffddddfff\n\r");  //此处添加一行打印语句,打印至少19个字符,如果少于19个字符,mon_install执行的时候将卡死,有些莫名奇妙

yy zz1:

回复 yy zz1:

另外还发现一处存在疑问的地方:

    在Uboot源码中,传递给内核的machine-arch-type为4011,而在内核代码中,对应的这个值却是4390;

    这两个值不匹配导致系统在启动的时候就卡死在starting kernel…这一步;

    我将uboot源码中的4011改成4390以后,启动过程现在执行到Unpacking initramfs…    

Vincent Han:

回复 yy zz1:

您好:

首先,不知您git完源码后有没有reset到相同版本上(形如:XXXXX14.06或XXXXX14.07),需要确保U-Boot,Linux kernel和Boot monitor都是基于同一个版本。

其次,您在编译K2HK的U-Boot和Linux Kernel时的make config和defconfig需要保持一致,否则默认target的配置不是TI Keystone II device。 

赞(0)
未经允许不得转载:TI中文支持网 » EVMK2X开发板linux启动问题
分享到: 更多 (0)