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.

DM8168 DVRRDK SD卡启动



由于CCS无法使用,想使用SD卡来启动板子,SD卡已经分区为两部分:fat32和ext3格式(已在评估板中试过,正确。并在自己的板子上试过SD卡能够识别)

DVRRDK版本是DVRRDK_04.00.00.03,在其dvrrdk目录下,使用make uboot_all编译形成MLO、u-boot_dvr.bin、uboot_NAND_DM816X_UD_DVR,并将其复制到SD卡的fat32分区(uboot源码修改为DDR3、796)

拨码已经拨到SD启动模式,板子上电后串口无反应,无法从SD卡中启动

另外,RDK中自带的SD卡分区脚本 mksd-ti81xx.sh 也试过了,也是无法启动

请问是什么原因,或者跟什么有关

  • 你好,

    已在评估板中试过,正确

    你的意思是这张SD卡可以在DM8168 评估板上用SD卡启动?

    并在自己的板子上试过SD卡能够识别

    你自己的板子之前用什么方式正常启动过?

    拨码已经拨到SD启动模式,板子上电后串口无反应,无法从SD卡中启动

    你是否有测量过bootmode的相关硬件,看实际电压是否和预先设想的一样?

  • 如果你是用 mksd-ti816x.sh 制作sd卡,基本卡是没有问题的

    那么问题可能在你启动文件上面,确定一下 boot.src  , MLO  , u-boot.bin 

     

  • 你的意思是这张SD卡可以在DM8168 评估板上用SD卡启动?“

    对,可以启动。DVRRDK中编译uboot有evm和dvr两种方式,我用evm方式编译出来的MLO、u-boot.bin在评估板上可以正常启动,但是换位dvr编译,在我的板子上却起不来,我也用evm的在我自己的板子上试过,也是没反应。

    ”你自己的板子之前用什么方式正常启动过?“

    之前CCS能用时,已经用CCS烧写过uboo到nand中,nand中有uboot,从nand中启动时SD卡能被识别,读写也正常,只是现在CCS无法使用了,想从SD卡启动,烧写

    ”你是否有测量过bootmode的相关硬件,看实际电压是否和预先设想的一样?“

    相关硬件有哪些?跳线测试了,正常,还有哪些?

  • 你好,

    之前CCS能用时,已经用CCS烧写过uboo到nand中

    请问这时候使用的UBL/uboot是和DM8168 EVM一样的么?如果有不一样,请关注Ternence提到的相关文件。

  • 没有boot.src这个文件啊,boot.src相关内容不是应该都已经编译到MLO中了吗?

  • 是一样的,都是用DVRRDK中的uboo源码编译出来的

    还有,对于uboot,DVRRDK中evm和dvr两个编译方式,编译出的uboot有什么不一样?

  • 你好,

      关于SD卡的UBOOT启动,请参考\ti_tools\linux_lsp\collaterals\collaterals\docs\TI81XX_PSP_UBOOT_User_Guide.pdf文档。需要确认你的宏定义在Rules.make 是EVM还是DVR,对于uboot的编译选项在build_uboot.mk里面是不同的。SD卡启动的MLO应该是u-boot.min.sd。

    ifeq ($(DVR_RDK_BOARD_TYPE),DM816X_UD_DVR)
    $(MAKE) -fbuild_uboot.mk uboot_clean
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=ti8168_dvr_config
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=u-boot.ti
    cp $(UBOOTDIR)/u-boot.bin $(TFTP_HOME)/u-boot_dvr.bin
    cp $(UBOOTDIR)/u-boot.noxip.bin $(TFTP_HOME)/uboot_NAND_$(DVR_RDK_BOARD_TYPE)
    $(MAKE) -fbuild_uboot.mk uboot_clean
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=ti8168_dvr_min_sd
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=u-boot.ti
    cp $(UBOOTDIR)/u-boot.noxip.bin $(TFTP_HOME)/MLO
    endif
    ifeq ($(DVR_RDK_BOARD_TYPE),DM816X_TI_EVM)
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=ti8168_evm_config
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=u-boot.ti
    cp $(UBOOTDIR)/u-boot.noxip.bin $(TFTP_HOME)/uboot_NAND_$(DVR_RDK_BOARD_TYPE)
    $(MAKE) -fbuild_uboot.mk uboot_clean
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=ti8168_evm_min_sd
    $(MAKE) -fbuild_uboot.mk uboot_build UBOOT_TARGET=u-boot.ti
    cp $(UBOOTDIR)/u-boot.min.sd $(TFTP_HOME)/MLO
    endif

  • 你好,

      关于DVR与EVM中uboot的区别,可以比较一下uboot\u-boot-dvr-rdk\include\configs下面的ti8168_dvr.h与ti8168_evm.h的配置。

  • 文档中主要介绍的是评估板,我在评估板时用的是EVM这个是正常的,但是现在我自己的板子是DVR的,我也是按照你说的这个用DM816X_UD_DVR编译形成的MLO,但是在我的板子上是起不来的,终端没任何信息输出。

    还有你说的“SD卡启动的MLO应该是u-boot.min.sd”是什么意思?是指DVR的u-boot.noxip.bin不适应于SD吗?还是说只能用u-boot.min.sd,也就是说只能用EVM

  • 您好!

                  我现在也在做8168基于SD卡的自启动,由于我们学校买的开发平台是合众公司的SEED-DVS8168DVR,他提供配套的软件包是DVRRDK_02.00.00.23,这个软件包缺失了很多的软件工具包,不知您能不能帮个忙,把您的\host-tools文件夹下的软件打包发给我,小弟感激不尽!!谢谢啦。。。。

    邮箱:334747204@qq.com

  • +----host-tools 文件夹下的:

    |-nand-flash-writer.out | |----norflash-writer.out | |----spi-flash-writer.out | |----mksd-ti816x.sh | |----DM816x.gel |

    +----src 文件夹下的:

    ----nandflash-MM.mm.pp.bb.tar.gz | | |----norflash-MM.mm.pp.bb.tar.gz | | |----spiflash-MM.mm.pp.bb.tar.gz

    谢谢啦!

    334747204@qq.com

  • yinjiliang 您好!不知您的问题有什么进展吗?我目前也遇到这样的问题,编译的mlo,uboot放到sd卡中,启动时无任何反应。生成的nand中用的uboot烧写到nand中启动时,串口也没有显示。

    但是用别人做好的一张sd 卡是可以启动板子的,自己编译的mlo就是不行。不知是否方便,留个联系方式。5056755@qq.com


  • hi, wang xiaoguo

    你自己编译的MLO 和 uboot  ,你的DDR时序是否和板子上面的芯片相匹配呢 ?

    已经做好的SD卡可以启动,这个mlo 和uboot  是怎么编译出来的呢 ?

    把这个编译好的文件,放到你制作的SD卡里面,系统可以运行起来吗 ?

  • 现象是这样的:

    1、网上找了个MLO,配合自己编译的 uboot, SD启动,串口显示启动过程。OK,后续可以通过tftp加载内核及nfs文件系统。

    2、自己编译的MLO,配合自己编译的uboot,SD启动,串口无任何提示。

    3、自己编译的nand启动uboot,通过sd卡烧写到nand中,nand启动,串口无任何提示。

    回复:

    1、可以启动的MLO是网上下载的,不知是怎么编译出来(或者是修改了哪些内容)。

    2、ddr时序也应该没有问题,因为别人的MLO配合自己编译的uboot,sd启动是没有问题的,内核和文件系统都能加载。

    3、自己编译的支持nand的uboot,通过sd卡烧写到nand中,nand启动时,串口也是没有任何提示。

    问题分析:

    1、感觉硬件没有问题。

    2、编译生成的mlo以及nand启动的uboot,在sd启动和nand启动时,都没有任何提示,是不是软件上有什么问题? 8168内部的boot执行mlo或者nand的uboot时不能正常跳转?

  • 你好;

           应对是你的DDR时序没有配置正确;

           你下载的mlo可以启动,ddr 时序是正确的,在mlo初始化ddr 后,再加载第二阶段的uboot ,uboot 可以正常的ddr里面运行;

           你自己编译的mlo文件ddr 时序应对是不对的,硬件没有问题

  • ddr配置可能有问题,目前已进行了更改,但是问题依旧,但是从现象上来看,好像程序还没有执行到ddr配置的代码处config_ti816x_sdram_ddr()
    从程序流程上看,首选执行的start.S ,lowlevel_init.s,在lowlevel_init.s中会调用dvr.C中的的s_init函数。

    在s_init中点灯:
    /* my add*/
    __raw_writel(0xfe7fffff, 0x4804c13c);
    __raw_writel(0xfe7fffff, 0x4804c134);
    发现灯并没有点亮。led灯控制脚是gp1[23],gp1[24],低电平灯亮。
    void s_init(u32 in_ddr)
    {
    /*
     * Disable Write Allocate on miss to avoid starvation of other masters
     * (than A8).
     *
     * Ref DM816x Erratum: TODO
     */
    l2_disable_wa();
    l2_cache_enable(); /* Can be removed as A8 comes up with L2 enabled */
    #ifdef CONFIG_SETUP_1V
    __raw_writel(0x102, 0x4818155c);
    while((__raw_readl(0x4818155c) & 0x3) != 0x2);
    __raw_writel(0x102, 0x48181560);
    while((__raw_readl(0x48181560) & 0x3) != 0x2);
    __raw_writel(0x00000001, 0x4803213c);
    __raw_writel(0xfffffff0, 0x48032134);
    #endif
    prcm_init(in_ddr); /* Setup the PLLs and the clocks for the peripherals */
    set_muxconf_regs();
    /* my add*/
    __raw_writel(0xfe7fffff, 0x4804c13c);
    __raw_writel(0xfe7fffff, 0x4804c134);
    if (!in_ddr)
    config_ti816x_sdram_ddr(); /* Do DDR settings */
    #ifdef CONFIG_TI816X_VOLT_SCALE
    voltage_scale_init();
    #endif
    }
  • 非常非常感谢!!!

  • 问下,你们这个问题解决了吗?