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.

Waiting for SFT on the OMAP-L138,erase NAND flash

Other Parts Discussed in Thread: OMAP-L138, AM1808, PCF8574

    您好!我们在目前学习UBL烧写这块出现了一点小问题,希望能够得到指教,具体情形如下。在使用sfh_OMAP-L138.exe擦除NAND flash时候出现Waiting for SFT on the OMAP-L138,然后一直在等待SFT,不进行下一步。在网上查找资料后得到一个解决方法是修改device.c,重新编译sfh_OMAP-L138.exe,但是我再修改重新编译后仍然出现同样的问题,现在情况有点紧急,希望能够得到尽快的解决,谢谢!

  • 是在自己的板子上,还是在开发板上?要是自己的板子上,先用仿真器调试确定修改的配置可以正常工作再更新到device.c里,同时确认一下sft目录下的内容也是更改后编译生成的。

  • 试试改改TARGETTYPE

  • 我在使用sfh_OMAP-L138.exe擦除SPIflash时候出现Waiting for SFT on the OMAP-L138,然后一直在等待SFT

    我之前是用 默认的调试口 UART2做的时候没出现情况,现在我是想用UART0作为调试口时出现了问题

    现在情况有点紧急,希望能够得到尽快的解决,谢谢!

    TKS

  • 参考下面链接:

    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.

  • 我去试试看

    谢谢了啊

    貌似你和你们TI的代理商 张坤 技术支持很熟啊~~

  • 你好:

    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的片子。

     

  • 还有就是

    AM1808 和 OMAPL138 linux 和 uboot ,默认的调试口是 UART2 ,我们现在因为硬件的需求 需要换为 UART0作为调试口

    像这种变换 是不是可行的?

    谢谢!

  • 附件是改成UART1的,曾经验证成功的,你可以比较一下原文件,自己改一个UART0的。

    SDK.zip
  • 先谢了  ,最近忙于弄 在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_app
    Autorun /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

    附件.rar
  • 关于

    如何将开发板的应用程序设置为开机自动启动, ramdisk 中如何修改?

    已经解决了,  可以查看下 如下网址:

    blog.csdn.net/.../7210551

    blog.csdn.net/.../7445093

    blog.csdn.net/.../6426350

    希望对遇到这种问题的同学有用

    TKS

  • 关于

    如何将开发板的应用程序设置为开机自动启动, ramdisk 中如何修改?

    已经解决了,  可以查看下 如下网址:

    blog.csdn.net/.../7210551

    blog.csdn.net/.../7445093

    blog.csdn.net/.../6426350

    希望对遇到这种问题的同学有用

    TKS

  • Tony Tang:

    你好!

    关于将UART2调试口改为 UART0 ,u-boot 阶段我已经改好了,不过启动内核的时候 死在:

    1f05          131072 mtdblock5  (driver?)

    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

    Backtrace:

    [<c0035730>] (dump_backtrace+0x0/0x114) from [<c03b6bb4>] (dump_stack+0x18/0x1c)

    r7:00008000 r6:c7bd8000 r5:c00295bc r4:c0504c90

    [<c03b6b9c>] (dump_stack+0x0/0x1c) from [<c03b6c30>] (panic+0x78/0x19c)

    [<c03b6bb8>] (panic+0x0/0x19c) from [<c0008fd4>] (mount_block_root+0x1e0/0x220)

    r3:00000000 r2:00000000 r1:c7829f58 r0:c04631fc

    [<c0008df4>] (mount_block_root+0x0/0x220) from [<c00090c0>] (mount_root+0xac/0xd0)

    r8:00000000 r7:00000013 r6:c0049d18 r5:c00295bc r4:00200000

    [<c0009014>] (mount_root+0x0/0xd0) from [<c0009254>] (prepare_namespace+0x170/0x1c8)

    r4:c0504724

    [<c00090e4>] (prepare_namespace+0x0/0x1c8) from [<c00084c0>] (kernel_init+0x114/0x154)

    r5:c00083ac r4:c05046c0

    [<c00083ac>] (kernel_init+0x0/0x154) from [<c0049d18>] (do_exit+0x0/0x6e0)

    r5:c00083ac r4:00000000

    下不去

    bootargs 设置:

    noinitrd mem=128M console=ttyS0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=192.168.1.196:/usr/local/ti-sdk-am180x-evm/targstNFS,nolock,rsize=1024,wsize=1024 ip=dhcp

    内核修改函数:

    linux-2.6.37-psp03.21.00.04.sdk\arch\arm\mach-davinci\board-da850-evm.c:

    #ifdef CONFIG_SERIAL_8250_CONSOLE

    static int __init da850_evm_console_init(void)

    {

    if (!machine_is_davinci_da850_evm())

    return 0;

    /*

    *

    * Modified by chenlong  in 2012.09.18

    *

    * enable the console UART0

    *

    * // 暂时不需要 用 UART0 作调试口

    */

    // return add_preferred_console("ttyS", 2, "115200");

    return add_preferred_console("ttyS", 0, "115200");

    ///////////////////// END ///////////////////////////

    }

    我想请问下 还有什么地方 和 内核配置精简的时候,还需要哪些修改的呢?

    TKS

  • 学习楼上所有的回答, 这个问题是去年的时候遇到的,早已经解决了,但是忘了回来说明了,不好意思,也欢迎大家就讨论