1 DEVSTAT寄存器
1.1 DSP上電復位后,DEVSTAT寄存器自動鎖存16個GPIO的值、PACLKSEL引腳值、PCIESSEN引腳值到寄存器內,直到下次上電復位前均保持不變;
DEVSTAT寄存器由硬件設置,輔助Rom Bootloader初始化配置;
1.2 DEVSTAT寄存器邏輯如下:
1.3 spi nor的boot模式下,boot mode [ 12:0 ]引腳代表的的邏輯如下表:
1.3.1 無自啟動、SPI 啟動或者 I2C 方式啟動,主 PLL 會被配置為bypass旁路模式;
其他方式啟動時,RBL使用bootmode[12:10]去配置主 PLL,(詳見數據手冊2.5.4 PLL Boot Configuration Settings小節表格);
1.3.2 rom bootloader根據以下參數配置2級bootloader;
2級bootloader根據配置,將存儲在flash中table格式的程序搬運進共享內存;
2 boot sequence
2.1 手冊說boot sequence是內部存儲加載后自動運行的過程;十有八九就是百度上許多論文里說的2級bootloader程序;
boot sequence是RBL向SRAM搬運過程中,在SRAM中用到的一部分地址,用來存儲配置以及配置過程中的參數;
Boot magic address就在這里;
3 Rom Bootloader 只讀存儲器引導加載程序
3.1 Rom Bootloader簡稱RBL,是通過一系列表格來攜帶處理信息的程序,程序可以概括為三種表格類型;
3.1.1 可以被RBL處理的三種表格:boot parameter table, boot table, boot configuration table;
存儲在外部需要自啟動的程序,需要將程序.out文件通過一系列TI提供的轉化工具,轉化為能被RBL讀取.dat或.bin文件;
如何使用工具進行轉化的文檔:(文檔網址,轉換工具)
3.1.2 RBL位於L3 ROM內0x20B00000到0x20B1FFFF的地址內,一共128k字節,
DSP上電復位后,首先會進入到ROM中執行bootloader,
然后RBL讀取boot parameter table后搬運boot table格式的程序到SRAM中,然后跳轉到SRAM中執行程序,
在這個過程中會涉及到配置boot sequence地址中的寄存器;
3.1.3 只有核心0支持RBL的自啟動;
其他核心的代碼由主內核復制給從內核,然后將從內核的入口地址存入boot_magic_address寄存器,然后向從內核發送一個IPC中斷來喚醒從內核;
3.1.3.1 boot loader作用
固化在 ROM 上的代碼段會讓所有支持重啟隔離功能的外設使能重啟隔離功能。
固化在 ROM 上的代碼段會使能 boot 過程中所有可能需要用到的外設的時鍾。
固化在 ROM 上的代碼段會利用從 DEVSTAT 寄存器三個 PLL 比特中讀取的信息配置系統 PLL。
RBL會在L2緩存中為每個核心預留出程序代碼的存儲空間,EMIF16模式則不會預留;
3.2 boot parameter table
3.2.1 作用:上電復位的時候初始化PLL配置或者選擇bypass模式;配置RBL的不同模式下的工作參數;
告訴RBL怎么搬運程序到內存中;搬運后的程序是boot table格式的,還要繼續解析;
3.2.2 對於spi nor的boot模式而言,剩下的參數是在轉化.out文件的時候由romparse.exe的輔助文件nysh.spi.map補充的;
3.3 boot table
3.3.1 作用:將程序拆分成可以被RBL識別的程序段,
3.3.2 格式:如下所示為boot table的格式
第一個header里存儲了程序搬運到SRAM共享內存后的入口地址;當RBL搬運到段的length為0字節的段時,完成搬運,跳轉到入口地址_c_int00執行程序代碼;
3.4 boot configuration table
3.4.1 作用:當需要外設的配置與復位狀態不同時,可以通過boot configration table來配置;
比如可以用boot configration table來初始化配置DDR,然后就可以將程序加載進DDR中了;
(spi nor的程序是搬運到4M共享內存中的,不是DDR3中的,所以沒有用到boot configuration table)
3.4.2 格式:boot configuration table可以有許多項(entry),每個項有3個元素如下所示,當項的三個元素都為0的時候,表示結束;
DSP的GEL文件介紹 https://blog.csdn.net/wordwarwordwar/article/details/83653611
具體生成的工具鏈使用創龍提供的批處理文件鏈接;創龍提供批處理的boot parameter table的SPI參數與默認配置不同;