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

关于ti-processor-sdk-linux-am335x-evm-03.02.00.05编译后u-boot无法启动的问题

大家好,我最近刚着手使用AM3352开发自己的设备,下载的SDK包版本为ti-processor-sdk-linux-am335x-evm-03.02.00.05,我将u-boot编译完成后把MLO和u-boot.img文件下载到SD卡拿到板子运行后发现就打印了几个CCCC字符,然后就停住了!但是我使用01.00版本的u-boot就可以正常运行,最起码能够打印uboot的版本等信息,为什么03.02版本就不行呢?是需要什么特殊配置么?

我使用了下面两种编译方式:

1、在ti-processor-sdk-linux-am335x-evm-03.02.00.05执行make u-boot_clean、make u-boot

2、在u-boot目录执行:make CROSS_COMPILE=arm-linux-gnueabihf- O=am335x_evm am335x_evm_config all

然而都不能运行,请问问题出在哪里?

我看下面这两位工程师(http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/p/120329/357475.aspx#357475和https://e2e.ti.com/support/arm/sitara_arm/f/791/p/541204/1974457#pi316653=1)都遇到了同样的问题,但是在论坛里没看到最终解决方案

Zhihua Zhang:

说明一下:sdk包自带的prebuild下的MLO和u-boot也同样无法运行,但是老版本的就运行正常

Eggsy Pang:

回复 Zhihua Zhang:

我的就是从这个版本编译的,加了一些调试信息,你下载后解压,里面有MLO和u-boot.img,把他们放在你的SD卡的boot分区,看一下会有什么打印出来

Zhihua Zhang:

回复 Eggsy Pang:

谢谢Eggsy Pang !你的镜像我下载后可以启动并有打印信息输出,输出如下:但是为什么我自己编译的就没反应呢?就连SDK包自带的prebuild下面的MLO和u-boot.img也不能运行!编译的时候需要先进行什么配置或者修改么?

CONFIG_BAUDRATE: 1c200

U-Boot SPL 2016.05-00118-gabc6b2a-dirty (Mar 07 2017 – 02:25:03)void s_init(void) DEFAULT_UART_BASE in 0x44e09000reading uart1 rx address = 0x00000037reading uart1 tx address = 0x00000037gd in 40303880  CONFIG_SYS_INIT_SP_ADDR in 0x4030ff20rtc32k_enable();reading core clksel address = 0x0003e817reading MPU clksel address = 0x0003e817reading DDR clksel address = 0x00000000reading Per clksel address = 0x0403c017CONFIG_BAUDRATE: 1c200

U-Boot SPL 2016.05-00118-gabc6b2a-dirty (Mar 07 2017 – 02:25:03)CONFIG_SYS_INIT_SP_ADDR in 0x4030ff20,gd in 4030fa40  CONFIG_SYS_INIT_SP_ADDR in 0x4030ff20CONFIG_BAUDRATE: 1c200

U-Boot SPL 2016.05-00118-gabc6b2a-dirty (Mar 07 2017 – 02:25:03)core frequency :50 eeprom test No ready ,TI_DEAD_EEPROM_MAGIC is 0xadead12cCould not get board ID.reading core clksel address = 0x00003217reading MPU clksel address = 0x00012c17reading DDR clksel address = 0x00010a17reading Per clksel address = 0x0403c017 eeprom test No ready ,TI_DEAD_EEPROM_MAGIC is 0xadead12cCould not get board ID.

Zhihua Zhang:

回复 Eggsy Pang:

我的连U-Boot SPL 2016.05-00118-gabc6b2a-dirty (Mar 07 2017 – 02:25:03)这一步都没跑到

Eggsy Pang:

回复 Zhihua Zhang:

不用什么配置,

No ready ,TI_DEAD_EEPROM_MAGIC is 0xadead12cCould not get board ID.

从打印信息可以看到你的板子EEPROM有问题,不知道你的板子是否有EEPROM,MLO 和uboot是根据EEPROM读出板子内容来初始化板子的外设,时钟PLL DDR的,如果没有EEPROM要修改代码:

在uboot下board/ti/am335x/board.c 找到read_eeprom这个函数,获取你的板子信息

Zhihua Zhang:

回复 Eggsy Pang:

我的板子没有EEPROM,这个问题我倒是知道怎么解决,但是现在关键的问题是我的MLO放进去之后没有任何打印信息,连U-Boot版本相关的信息(U-Boot SPL 2014.07-gfb6ab76 (Jul 06 2015 – 16:00:22))这句话都没打印,看样子就是串口初始化都没初始化起来,我自己在里面加了点打印信息也打印不出来,或者根本就没执行到打印U-Boot版本这个地方!!!

我用ti-processor-sdk-linux-am335x-evm-01.00.00.03-Linux-x86-Install.bin安装后可以打印“U-Boot SPL 2014.07-gfb6ab76 (Jul 06 2015 – 16:00:22)”,如下:

U-Boot SPL 2014.07-gfb6ab76 (Jul 06 2015 – 16:00:22)Incorrect magic number (0xffffffff) in EEPROMCould not get board ID.Incorrect magic number (0xffffffff) in EEPROMCould not get board ID.Unknown board, cannot configure pinmux.### ERROR ### Please RESET the board ###

Zhihua Zhang:

回复 Eggsy Pang:

而且只有ti-processor-sdk-linux-am335x-evm-01.00.00.03-Linux-x86-Install在32位Ubuntu下安装后prebuid下的镜像可以运行,试了ti-processor-sdk-linux-am335x-evm-02.00.00.00-Linux-x86-Install、ti-processor-sdk-linux-am335x-evm-03.00.00.04-Linux-x86-Install在64位Ubuntu下安装后也都不行!!!

Eggsy Pang:

回复 Zhihua Zhang:

我上传的MLO和Uboot就是从ti-processor-sdk-linux-am335x-evm-03.00.00.04-Linux-x86-Install编译的啊,只不过我自己加了一点调试信息,改了一些代码,很早初始化Uart,所以MLO很早就可以打印信息

Zhihua Zhang:

回复 Eggsy Pang:

OK了!多谢!

新版本中把board/ti/am335x/board.c 里面read_eeprom这个函数去掉了,换成了do_board_detect,而相关函数是在comm/board_detect.c里实现!

赞(0)
未经允许不得转载:TI中文支持网 » 关于ti-processor-sdk-linux-am335x-evm-03.02.00.05编译后u-boot无法启动的问题
分享到: 更多 (0)