SPRAB41E – January 2014
http://www.deyisupport.com/question_answer/dsp_arm/omap_l1x/f/54/t/69959.aspx
http://download.csdn.net/detail/safedf/8420601
1.根据指导我通过ccs和仿真器在广州创龙的开发板上实现了arm启动dsp并运行编写的dsp代码,由于我们制定的方案是在 arm端跑linux而dsp端裸跑,根据论坛的how to boot dsp文档中的指导,我想实现arm和dsp的同时启动,通过aisgen工具去处理uboot.bin 时我发现mcsdk_1_01_00_02下提供的u-boot-2012.04.01-psp03.22.00.06.sdk 编译生成的u-boot.bin的入口地址是0x80000000,根据我从创龙得到的一些信息0x80000000是ubl 的入口地址,我想请问一下这是什么原因?请看附件截图。
由于我需要同时启动arm与dsp,我需要用aisgen工具处理uboot.bin和编写的coff格式的可运行在dsp的.out文件同时配置bootmode为nand_flash,所以
需要uboot.bin的入口地址在DDR其实地址0xC1080000。
2.我使用问题1当中描述的u-boot.bin生成 u-boot.ais试图验证是否可以在开发板上运行时,发现生成的u-boot.ais文件头中magicword之后的第一个命令字0x58595301会把一段长为0x02EC的代码加载到未知地址0xFFFF0B20中,之后才会执行0x5859530d调用rom bootloader中函数初始化芯片配置,并且把该ais文件烧写到开发板中 的nand_flash时不能启动,这个请问一下是什么原因?请看附件截图.
3.能否提供一下通过aisgen.exe工具配置以nand_flash启动方式同时启动arm与dsp生成合并ais文件的正确配置说明。
4.根据问题1-3的描述,如果我成功生成 uboot.bin和dsp.out 合并的u-boot.ais文件后在开发板上能正确执行,那么根据how to boot dsp 的描述我在u-boot的代码中要实现对dsp的初始化;我想问omapl138在执行rom bootloader去解析执行合并的u-boot.ais文件时是怎么处理文件中的coff格式dsp.out内容的,是不是会根据文件中的链接信息把相关代码加载到对应位置,比如用来合并的dsp.out根据链接配置是放在0x80000000 sharedram 中,那么rom bootloader在处理时是不是会把dsp.out代码拷贝到shared ram相应位置?如果是的话就可以在u-boot中初始化并唤醒dsp,不过我在u-boot源码da850sdi.c 中找到初始化dsp的代码,代码路径为board_init_r->misc_init_r->dspwake(),我想知道这个dspwake()中的代码是否能完整实现我所需要的唤醒dsp去执行shared memory中代码的功能,我需要做哪些修改?
你好,在上次给的链接等资料中,有专门的说明,对于omapl138的u-boot启动时候,使用aisgen工具时,已经不再需要使用UBL等二次bootloader.
Do I need a secondary bootloader (UBL)?
A secondary bootloader, AKA User Bootloader (UBL), was required on older devices, where the bootloader could not parse AIS files. By using the AISgen tool with the OMAP-L138 bootloader, most of the functions previously performed by the UBL can be done instead by the bootloader.
For a typical Linux application, the old flow looked something like this:
- UBL (sets up DDR, PSC, and copies U-Boot to memory)
- U-Boot (loads Linux and file system)
- Linux
The flow for the OMAP-L138 would look like this:
- AIS-signed U-boot (sets up DDR, PSC, and loads Linux and file system)
- Linux
So in general, there is not a need for a separate UBL, as the AIS functions can perform most of the same tasks.