请问,刚接触omapL138几个月,对底层不是很熟,一块是开发板,一块时自己做的板子;
对比,自己做的板子ubl从spiflash 搬运 uboot到内存mddr中时,会漏掉开头的一些uboot的相关信息,如uboot的起始地址等,但rbl是能从flash搬运ubl的,这时怎回事啊,有没有可能在烧写时的握手出了问题?
对spiwriter.out有些疑问,这个烧写程序是怎样实现和spiflash握手烧写的?
Gary Wu:
对于spi writer,可参考其源代码,其中有针对spi flash的读写函数,在load spiwrite.out之后,会提示输入要少些的类型,是armubl还是u-boot,选择之后,再输入文件所在的路径,之后就可以烧写了
Tony Tang:
RBL(ROM bootloader)搬AIS格式UBL(User Bootloader)格式,跳转到UBL运行,此时芯片的启动过程完成。
UBL运行,从约定好的位置按照约定好的格式搬过UBOOT,跳转到UBOOT运行。
用SPIwriter要选烧UBL,还烧UBOOT。
其实UBL可以不用,将编译好的uboot(不是uboot.bin),通AISgen.exe工具转换成AIS格式文件,直接烧转换后的AIS格式的uboot即可直接启动。
注:要在AISgen里将PLL,DDR,PINMUX, PSC等配置上。
zhihua xie zhihua xie:
请问bootloader搞好了没,我也正要做OMAP-L138 的bootloader.
RBL–>bootloader–>RTOS/DSPBIOS.
是这的,我们要做一个BOOTLOADER,支持从串口下载更新ARM 端的RTOS,或DSPBIOS。有自启动模式也有更新模式等功能。
1. RBL从NOR FLASH读取BOOTLOADER加载到相应的内存里去。因为是AIS格式,所以RBL会把代BOOTLOADER的代码由加载域COPY去运行域。但是,BOOTLOADER加载RTOS的时候,怎么样把RTOS加载到DDR的相应的位置?
RTOS的代码,有部分是放在RAM,有部分是放在DDR里。烧写进FLASH的是BIN文件。如何实现分散式加域?
( a section –>shareram1, b setction –>shareram2, c section –> DDR1…..)?
Tony Tang:
回复 zhihua xie zhihua xie:
你可以SDK里PSP目录下提供的UBL源码,流程序是RBL->UBL,UBL加载Uboot。当然UBL的功能简单,用户可以丰富其功能。
Gary Wu:
王工,你好!
uboot的起始地址等开头信息在flash-writer代码的main.c里面,请查看详细代码
yucui wang:
回复 Gary Wu:
问题已经解决,谢谢各位的帮助,只是一直忙,没来的及查看。
其实在ubl中,对spiflash的读取时,会判断其回复的是否为高电平0xff,ti的开发板默认是带上拉电阻,即高阻状态,ubl通过这个判断会确定对spiflash按照16地址读取;一旦少了这个上拉电阻,就变成8位进行读取了,搬运uboot自然会出问题的,所以是自己做的板子出了点问题而已。
Jockey:
回复 yucui wang:
各位大虾,我最近在弄AM1808 , 是从 SPI_flash 启动 Uboot 的,当时 我的内核文件和文件系统文件 怎么烧进 SPI_flash 呢? 在是网上查的资料都是 烧进 NAND Flash的
Tony Tang:
回复 Jockey:
参考:
processors.wiki.ti.com/…/GSG:_OMAP-L138_DVEVM_Additional_Procedures
Jockey:
回复 Tony Tang:
看了下 感觉还是不怎么全
可以 给推荐些 从 Uboot 到 烧写 内核 文件系统 比较全的资料吗?
谢了
我是个初学者…