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

dm368 spiflash

        你好,我用dvsrdk_dm368_4_02_00_06的软件包,以前是用的nandflash存储,现在想改为spi norflash启动,芯片MX25L51245G,我现在内核做的移植测试,可以挂载mount挂载jffs2。

      1   但是当我移植uboot时,发现我用的uboot-2010.12,我发现davinci_dm365evm.c没有提供SPI的支持,请问你们有那个uboot版本支持SPI吗?

      2  还有我发现ubl源码,没有看到支持SPI启动相关源码,请问UBL如何将UBOOT从SPI启动

      3  请问有什么工具可以支持我将UBL uboot kernel等拷贝到SPI norflash

     谢谢!!!

    

Shine:

请看下面的wiki网站关于如何从SPI flash启动。
processors.wiki.ti.com/…/SPI_flash_boot_and_flashing_tool_for_DM36x

可以用serail flash utility烧写工具。
processors.wiki.ti.com/…/DM36x_Software_Design_Guide

user4722282:

回复 Shine:

你好 

      根据第一篇文档只讲述了内核如何修改为SPIflash,我现在关于UBL和UBoot出现问题如下

      1   但是当我移植uboot时,发现我用的uboot-2010.12,我发现davinci_dm365evm.c没有提供SPI的支持,请问你们有那个uboot版本支持SPI吗?

      2  还有我发现ubl源码,没有看到支持SPI启动相关源码,请问UBL如何将UBOOT从SPI启动

      3 将UBL uboot kernel等拷贝到什么地址,尤其是UBL

Chris Meng:

回复 user4722282:

user4722282 还有我发现ubl源码,没有看到支持SPI启动相关源码,请问UBL如何将UBOOT从SPI启动

你可以参考nand启动的代码,把读取nand的操作更换为读取spi flash的操作。

user4722282  3 将UBL uboot kernel等拷贝到什么地址,尤其是UBL

建议你看看ARM subsystem guide里面关于ROM启动的相关部分。下面的帖子也可以参考:

user4722282:

回复 Chris Meng:

         感谢您的回答,我还有一个问题想问一下,目前dm368的性能再启动速度是用nandflash快还是SPI norflash快(CS CLIK SIMO SOMI),因为我发现在SPI norflash存储文件系统的情况内核挂载文件系统速度极慢?

       谢谢!!!

Chris Meng:

回复 user4722282:

你好,

你是否有把spi的时钟在ubl里面配置硬件可以支持的最快时钟速率(spi flash也需要支持)。使用DMA模式读取数据,速度还可以提升。

user4722282:

回复 Chris Meng:

你好,我看过ARM subsystem guide里面关于ROM启动的关于SPI启动,并把UBL用objdump反汇编分析,我发现有的资料说RBL默认从0x02000000读取,而反汇编时发现这个地址是selfcopy函数,而根据ARM subsystem guide里面关于ROM启动关于SPI部分,第一个字节决定16bit还是24bit,然后读取文件描述,然后加载UBL到SRAM。

我现在不清楚RBL启动UBL流程,推测

配置SPI启动-》读取第一个字节-》读取描述-》拷贝-》移交进入点执行UBL

请问是上述流程吗,如果是

1 描述文件放置地址

2 拷贝如何实现,是RBL实现拷贝,还是RBL读取selfcopy执行拷贝,同时selfcopy函数地址,

3 拷贝流程是RBL拷贝UBLselfcopy 函数并执行吗

4 拷贝完成后是执行的boot()还是start.s

5 SPI norflash DM368有移植成功案例吗,能否提供相关文档参考,谢谢

Chris Meng:

回复 user4722282:

你好,

在spi里面00地址存放的就是magic number,具体请参考arm subsystem guide里面的Table 122. User Bootloader (UBL) Descriptor for SPI Mode。
RBL会先以24bit地址的方式读取SPI的值,如果发现是magic number,那就认定使用的spi地址是24位的。如果发现不是magic number,会尝试使用16 bit地址读取00地址的值,看是否是magic number的值。

user4722282:

回复 Chris Meng:

你好,

        关于这里我看到了,但是第一个字节确认魔鬼字,其后字节存放相关描述,那么slefcopy函数放在那里,我看到GNU目录下ubl.lds代码如下

   .selfcopy : AT(0x0)

 {

*(.selfcopy)

 . = 0xe0

}

.=0x100

.boot

。。。。。。。

这里的含义是将selfcopy函数存储地址制定为ox0,也就是绝对地址0x02000000,还是说这段代码无用,?

user4722282:

回复 user4722282:

你好,

      上面问题是我理解错了,现已明白。

     我现在在用的的spi norflash芯片是MX25L51245G,大小为512Mb,我看到关于nandflash启动,有这样的说明"RBL读取nand ID 相关消息根据自己的列表进行配置,所以硬件选型选择nand ID列表支持的芯片",那么SPI norflash是否有相关要求,如何确认我这款芯片是否被RBL支持?

Chris Meng:

回复 user4722282:

你好,

就我的理解,SPI Flash没有像nand flash有各种各样不同的page size,block数量,所以一般都不看id的。只要满足下面的条件的spi flash,应该是可以使用的。下面的信息也是在ARM subsystem guide里面可以找到。

• Support for 16-bit and 24-bit addressable EEPROMs through the UBL descriptor• Support for 4-pin SPI (CS, CLK, serial input, serial output)

赞(0)
未经允许不得转载:TI中文支持网 » dm368 spiflash
分享到: 更多 (0)