This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EVMK2X开发板linux启动问题

Other Parts Discussed in Thread: TCIEVMK2X

开发板型号是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时卡住了。

  • 您好:

    不知您是如何配置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

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

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

  • 您好:

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

    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版本上,多谢!

  • 比较了一下从

        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执行的时候将卡死,有些莫名奇妙




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

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

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

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

  • 您好:

    首先,不知您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。