多核DSP Bootloader 代碼加載方法
引言
本文引用地址:http://cafeforensic.com/article/257752.htm無線通信產(chǎn)業(yè)不斷推進創(chuàng)新,像WCDMA、WiMAX、MIMO和4G都需要增強的性能.性能增強,提供更大通信帶寬的同時意味著越來越大的數(shù)據(jù)流量.多內(nèi)核DSP強大的處理能力,兼具FPGA的擴展特性和陣列優(yōu)點以及DSP的相似性和效率。提供了一種高效、易于開發(fā)的解決方案,倍受設(shè)備商的青睞.而無線協(xié)議標準從2G的GSM到3G的WCDMA,冉到4G的LTE,其協(xié)議標準的不斷更新,以及運營商、設(shè)備商對低硬件成本的要求,需要實現(xiàn)一種平滑的協(xié)議標準軟升級方案,即不改變硬件平臺就可實現(xiàn)協(xié)議標準的升級.TI公司推出的3內(nèi)核DSP芯片TCl6488以其強大的數(shù)據(jù)處理能力,同時支持多種代碼加載方式,在滿足數(shù)據(jù)處理要求的同時,支持網(wǎng)絡(luò)式代碼加載,正迎合了這種軟升級需求。
1 協(xié)議介紹
TI公司推出的DSP芯片TCl648718 (Faraday)具有3個內(nèi)核,每個內(nèi)核工作頻率均為1GHz.其支持的boot load模式有12C EEPROM、EMAC(以太網(wǎng)口)、SRIO(Serial Rapid IO.即串行快速10)i種模式[3].其中EMAC支持IOM/IOOM/I 000M bit/s傳輸速率,SRIO支持1.25G/2.5G/3.125G bit/s傳輸速率.以太網(wǎng)口EMAC支持IPV4,因此可以實現(xiàn)遠程、快速的加載代碼.SRIO支持內(nèi)存代碼的直接讀寫,外部主機可以將DSP內(nèi)存視為本地內(nèi)存進行直接的讀寫.SRIO boot load模式時,外部主機直接寫DSP本地內(nèi)存.其3.125G biffs的線上速率,可以達到2.5G bit/s的傳輸帶寬,效率高達80%,加載代碼速度極快.采用EMAC和SRIO相結(jié)合的方式可以實現(xiàn)一點到多點的快速代碼加載。
1.1 EMAC boot load傳輸協(xié)議
以太網(wǎng)口EMAC支持的拓撲結(jié)構(gòu)有星型、總線型、樹型、混合型.其boot load幀格式分為以下幾個部分分別討論:DIX Ethernet、IPV4、Boot Table Frame. Header、Boot Table Frame. Payload。如表1所示。
(1)DIX Ethenet:14 bytes
該部分占用14 bytes,分別為6 byte8的DMAC。目的MAC地址、6 bytes的SMAC.源MAC地址和2 bytes的類型參數(shù)Type.該部分固定為Ox0080.目的MAC地址(DMAC)為DSP芯片自身的MAC地址.源MAC地址(SMAC)為主機MAC地址。
(2)IPV4
支持的IP協(xié)議類型為IPV4,可選長度為20 bytes或84bytes.本文中采用20 bytes。
1.2 SRIO協(xié)議
TCl6488支持的SRIO協(xié)議1.2版本link rate速率為1x, 2x,4x。即1.25G,2.5G,3.125G bit/s.支持的拓撲結(jié)構(gòu)有星型、環(huán)型等。
SRIO協(xié)議規(guī)定有兩種傳輸方式:Direct IO與Message方式.當DSP處于SRIO boot load模式時,利用外部引腳進行配置其NODE ID,根據(jù)配置的不同,采用Direct IO方式對不同NODE ID的DSP內(nèi)存直接進行讀寫,將代碼直接寫入到DSP內(nèi)存.類似于外部主設(shè)備將DSP內(nèi)存視為自身內(nèi)存進行寫操作,以此完成boot load.當代碼加載完畢時發(fā)送Doorbell中斷到不同NODE ID的DSP主核(即核0).DSP立即從boot模式跳轉(zhuǎn)到正常模式。執(zhí)行加載的代碼。
2 現(xiàn)有方案分析
代碼加載主要依靠DSP芯片的各個接口實現(xiàn).TI公司C64x系列主要接口有12C、HPI、EMIF等接口,C64x+系列主要接口有12C、EMAC、SRIO等。
I2C傳輸速率為lOkbps到400kbps,外接EEPROM,常用于固化代碼的boot load,不利于升級.
HPI接口有效帶寬往往最多只能達到20~30Mbps.操作較復(fù)雜,且不易組網(wǎng).在多核DSP系列里已經(jīng)去掉HPI接口.
EMAC接口支持10M/100M/1000Mbps三種速率,支持總線形、星形拓撲組網(wǎng)結(jié)構(gòu).
SRIO接口支持1.25G12.5G/3.125G bps三種速率,支持星形、環(huán)形、U形菊花鏈等拓撲結(jié)構(gòu).
利用EMAC與SRIO結(jié)合的方式可以實現(xiàn)基于IP、可遠程控制的局部傳輸網(wǎng)絡(luò),組網(wǎng)靈活可控.
3 原理框圖
利用DSP EMAC接口支持IPV4的網(wǎng)絡(luò)特性,以及SRIO接口使DSP間可以形成的U形菊花鏈或星形拓撲結(jié)構(gòu),可以靈活組網(wǎng)。原理框圖如圖I所示。其中基帶處理板與主控板之間由背板連接,主控板通過網(wǎng)線與交換機或路由器連接。主控板與基帶板之間組建局域網(wǎng),由主控板分配IP。遠程PC可以通過主控板IP訪問到任何一塊基帶板的CPU。對CPU進行操作,可以對任意一塊基帶板上的DSP進行代碼加載。
4 加載流程
流程圖如圖2所示。CPU加載DSPl的詳細過程說明如下:基帶板上電后主控板為背板上各槽位上的基帶板的CPU分配IP地址.CPU通過EPLD加載自身程序,與主控板通過SGMII接口獲取自身IP地址。遠程PC機telnet登錄到CPU,下發(fā)命令加載CPU底層驅(qū)動程序;CPU底層驅(qū)動加載成功后,遠程Pc下發(fā)加載DSP程序命令.以加載DSP1為例,詳細說明加載DSP1的過程.CPU加載DSP1時首先給該DSP1復(fù)位獲取DSP1的MAC地址,成功獲取到DSP1的MAC地址后,利用ftp協(xié)議從遠程PC上獲取DSP1的代碼,將DSP1的代碼存到CPU的內(nèi)存.此時DSP1一直處于boot load的EMAC加載模式.CPU將DSP1的代碼根據(jù)EMAC加載協(xié)議往DSP1發(fā)送代碼.當發(fā)送完畢代碼后,向DSP1發(fā)送一包長度為0的加載代碼,作為結(jié)束包.DSP1根據(jù)EMAC加載協(xié)議,當收到該包后則從加載模式跳轉(zhuǎn)為正常模式,PC指針從OxOOS00000開始運行.因此對于DSP而言,Ox00800000地址開始的一段空間,必須存放中斷向量表.
否則程序?qū)⒉粫_運行.此時DSP的3個內(nèi)核同時從Ox00800000開始運行。
加載DSP2至加載DSPn時,首先由CPU根據(jù)ftp協(xié)議從PC端獲取DSPk(k=2?3.n)的代碼.根據(jù)EMAC發(fā)送協(xié)議,將DSPk代碼發(fā)送到DSP1.DSP1收到DSPk的代碼后,根據(jù)SRIO加載協(xié)議加載DSPk的代碼.DSPk代碼加載完畢后,DSP1向DSPk發(fā)送一個SRIO中斷。標志加載結(jié)束.DSPk響應(yīng)該SRIO中斷。從SRIO加載模式跳轉(zhuǎn)到正常模式,開始從Ox00800000地址開始運行.整個加載過程結(jié)束。
5 結(jié)束語
通過方案的比較,選擇了易于組網(wǎng),且可控、方便,利于軟升級的方案.很方便的設(shè)計了TI TCI6488 3內(nèi)核DSP的bootload程序.完成了DSP系統(tǒng)自舉加載.按照該設(shè)計思路編制的boot load程序已在WCDMA基站的基帶處理板中得到應(yīng)用,DSP系統(tǒng)能很好的復(fù)位及快速、方便的自舉加載,更換版本容易,系統(tǒng)運行穩(wěn)定可靠。
評論