您好!我们在目前学习UBL烧写这块出现了一点小问题,希望能够得到指教,具体情形如下。在使用sfh_OMAP-L138.exe擦除NAND flash时候出现Waiting for SFT on the OMAP-L138,然后一直在等待SFT,不进行下一步。在网上查找资料后得到一个解决方法是修改device.c,重新编译sfh_OMAP-L138.exe,但是我再修改重新编译后仍然出现同样的问题,现在情况有点紧急,希望能够得到尽快的解决,谢谢!
hippo liu:
试试改改TARGETTYPE
Jockey:
回复 hippo liu:
我在使用sfh_OMAP-L138.exe擦除SPIflash时候出现Waiting for SFT on the OMAP-L138,然后一直在等待SFT
我之前是用 默认的调试口 UART2做的时候没出现情况,现在我是想用UART0作为调试口时出现了问题
现在情况有点紧急,希望能够得到尽快的解决,谢谢!
TKS
Tony Tang:
回复 Jockey:
参考下面链接:
processors.wiki.ti.com/…/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138
修改:
UART Settings
OMAP-L138/Common/include/device_uart.h: Modify the #define DEVICE_UART_PERIPHNUM to set which UART is connected to the host PC.
Note that flow control is not used, so only the RX and TX lines need to be connected for boot and flashing purposes.
Jockey:
回复 Tony Tang:
哦
我去试试看
谢谢了啊
貌似你和你们TI的代理商 张坤 技术支持很熟啊~~
Jockey:
回复 Tony Tang:
你好:
Tong Tang!
我按照你的方法 擦除 和 烧写 U-boot 都已经成功 非常感谢!
可是打开串口 u-boot启动后 会死住
问题:
鶤M1808 initialization passed!
Booting TI User Boot Loader
UBL Version: 1.65
UBL Flashtype: SPI
Starting SPI Memory Copy…
Valid magicnum, 0x55424CBB, found at offset 0x00010000.
DONE
Jumping to entry point at 0xC1080000.
走不下去了
针对 UART2 调试口换做 UART0 做的修改:
1. 在擦除和烧写UBL 和 Uboot 的时候 ,拨码开关是拨到 UART0 启动位置
2. u-boot 代码的修改:
u-boot-2011.12\board\davinci\da8xxevm\da850evm.c:
static const struct pinmux_resource pinmuxes[] = {
…..
/*
*
* Modified by chenlong in 2012.09.04
*
* Add UART0 define, write off the UART2 console
*
*
*/
PINMUX_ITEM(uart0_pins_txrx), //add
PINMUX_ITEM(uart0_pins_rtscts), //add
// PINMUX_ITEM(uart2_pins_txrx),
// PINMUX_ITEM(uart2_pins_rtscts),
////////////////////////////// END ////////////////////////////////
…..
};
static const struct lpsc_resource lpsc[] = {
…..
/*
*
* Modified by chenlong in 2012.09.04
*
* enable the console UART0 , write off the UART2 console
*
*/
// { DAVINCI_LPSC_UART2 }, /* console */
{ DAVINCI_LPSC_UART0 }, /* console */ //add
////////////////////////////// END ////////////////////////////////
…..
};
int board_init(void)
{
……
/*
*
* Modified by chenlong in 2012.09.04
*
* enable the console UART0
*
* // 暂时不需要 用 UART0 作调试口
*/
/* setup the SUSPSRC for ARM to control emulation suspend */
/* writel(readl(&davinci_syscfg_regs->suspsrc) &
~(DAVINCI_SYSCFG_SUSPSRC_EMAC | DAVINCI_SYSCFG_SUSPSRC_I2C |
DAVINCI_SYSCFG_SUSPSRC_SPI1 | DAVINCI_SYSCFG_SUSPSRC_TIMER0 |
DAVINCI_SYSCFG_SUSPSRC_UART2),
&davinci_syscfg_regs->suspsrc);
*/
writel(readl(&davinci_syscfg_regs->suspsrc) &
~(DAVINCI_SYSCFG_SUSPSRC_EMAC | DAVINCI_SYSCFG_SUSPSRC_I2C |
DAVINCI_SYSCFG_SUSPSRC_SPI1 | DAVINCI_SYSCFG_SUSPSRC_TIMER0 |
DAVINCI_SYSCFG_SUSPSRC_UART0),
&davinci_syscfg_regs->suspsrc);
////////////////////////////// END ////////////////////////////////
…….
/*
*
* Modified by chenlong in 2012.09.04
*
* enable the console UART0
*
* // 暂时不需要 用 UART0 作调试口
*/
/* enable the console UART */
/* writel((DAVINCI_UART_PWREMU_MGMT_FREE | DAVINCI_UART_PWREMU_MGMT_URRST |
DAVINCI_UART_PWREMU_MGMT_UTRST),
&davinci_uart2_ctrl_regs->pwremu_mgmt);
*/
writel((DAVINCI_UART_PWREMU_MGMT_FREE | DAVINCI_UART_PWREMU_MGMT_URRST |
DAVINCI_UART_PWREMU_MGMT_UTRST),
&davinci_uart0_ctrl_regs->pwremu_mgmt);
////////////////////////////// END ////////////////////////////////
……
}
也就是把 UART2的都改成 UART0 了
原先在u-boot中 MII 和 UART0 管脚有复用的缘故 ,我们现在用 RMII的网卡 ,这一部分我已经修改了, 在原先用UART2调试的时候是可以用UART0的
我把代码页贴出来 麻烦你帮我看下 ,我现在是 AM1808 和 OMAPL138的片子。
Jockey:
回复 Jockey:
还有就是
AM1808 和 OMAPL138 linux 和 uboot ,默认的调试口是 UART2 ,我们现在因为硬件的需求 需要换为 UART0作为调试口
像这种变换 是不是可行的?
谢谢!
Tony Tang:
回复 Jockey:
附件是改成UART1的,曾经验证成功的,你可以比较一下原文件,自己改一个UART0的。
Jockey:
回复 Tony Tang:
哦
先谢了 ,最近忙于弄 在ramdisk文件系统中添加自动运行自己写的应用程序的相关内容,现在出现了错误,希望给点思路
我现在用的是TI的 AM1808 片子,开发板是我门自己画的,ramdisk文件系统是从TI网站下的。
内核启动后自动运行应用程序。 应用程序: PCF8574_app 【对 I2C-1 设备进行操作】 ,内核启动后手动运行此应用程序是可以的。根据网上查看的一些资料:对/etc/rc.d/rc.local 修改, 但是我的ramdisk文件系统中 没有此目录和文件,只有 /etc/init.d/rcS 文件。 修改如下: 在#Source defaults. . /etc/default/rcS 之后 ,添加: echo "start my progress*******************************" echo "Before PCF8574_app" echo "Autorun /home/api/PCF8574_app" ./home/api/PCF8574_app echo "**************** wait …. *********************" echo "Autorun /usr/sbin/PCF8574_app" ./usr/sbin/PCF8574_app echo "After PCF8574_app" echo "end ***************************************"
内核启动后, 打印: start my progress*******************************Before PCF8574_appAutorun /home/api/PCF8574_app Error on opening the device file ************ wait …. ************ Autorun /usr/sbin/PCF8574_app Error on opening the device file After PCF8574_app end ****************************
打印错误信息是我在应用程序中为打开I2C-1做的判断,这表明打开I2C-1 设备失败,也就是说在我运行应用程序之前,那些dev/目录下的设备还没建立,貌似还要写什么脚本程序,我之前没写过,因为事情比较急,所以再次麻烦下你了
请问下,我的这个问题该如何修改 ,希望你们可以给我个sample让我模仿下。
希望可以给点思路
【附件】:
ramdisk-base-new.rar : ramdisk 压缩包
loop.tar : ramdisk 挂载的目录
rcS : 修改后的 rcS文件
TKS
Jockey:
回复 Jockey:
关于
如何将开发板的应用程序设置为开机自动启动, ramdisk 中如何修改?
已经解决了, 可以查看下 如下网址:
blog.csdn.net/…/7210551
blog.csdn.net/…/7445093
blog.csdn.net/…/6426350
希望对遇到这种问题的同学有用
TKS
TI中文支持网


