加入收藏
 免費(fèi)注冊(cè)
 用戶登陸
首頁(yè) 展示 供求 職場(chǎng) 技術(shù) 智造 職業(yè) 活動(dòng) 視點(diǎn) 品牌 鐠社區(qū)
今天是:2026年3月17日 星期二   您現(xiàn)在位于: 首頁(yè) →  智造 → 白皮書(shū)店(安全電子)
《龍芯CPU開(kāi)發(fā)系統(tǒng)固件與內(nèi)核接口規(guī)范》引領(lǐng)IT設(shè)備國(guó)產(chǎn)化
日期:2014/7/6 10:27:42   作者:

《龍芯CPU開(kāi)發(fā)系統(tǒng)固件與內(nèi)核接口規(guī)范》于2014年6月正式作為企業(yè)規(guī)范發(fā)布了,龍芯在產(chǎn)業(yè)化進(jìn)程中又邁出標(biāo)志性的一步。這個(gè)規(guī)范能保證龍芯2號(hào)個(gè)人電腦系列和3號(hào)服務(wù)器系列產(chǎn)品在今后系統(tǒng)升級(jí)過(guò)程中的兼容性,大大提高了龍芯各類硬件產(chǎn)品的可維護(hù)性,同時(shí)間接減少因兼容性帶來(lái)的個(gè)各種負(fù)面影響和維護(hù)開(kāi)發(fā)成本。據(jù)悉此規(guī)范自2010年底就開(kāi)始醞釀,由龍芯中科、昆侖固件、中科夢(mèng)蘭、中標(biāo)麒麟等多家單位經(jīng)過(guò)3年多的不斷論證并在實(shí)踐中反復(fù)驗(yàn)證可行的一個(gè)工程規(guī)范。此規(guī)范及相關(guān)信息可從龍芯的wiki首頁(yè)http://www.loongnix.org/dev/wiki/的“標(biāo)準(zhǔn)與規(guī)范”部分獲得。以下內(nèi)容的部分圖表和文字摘自該規(guī)范,不再另行說(shuō)明。

此規(guī)范產(chǎn)生的背景是多方面的,原有龍芯上使用的PMON(龍芯產(chǎn)品上使用的一種開(kāi)源的固件/BIOS)和操作系統(tǒng)內(nèi)核(Kernel)之間耦合性較強(qiáng),且沒(méi)有規(guī)范的接口,這造成不同板卡之間的內(nèi)核不能互通,同一板卡之間不同版本的PMON和內(nèi)核需要嚴(yán)格對(duì)應(yīng),否則可能會(huì)導(dǎo)致更新了內(nèi)核和PMON后系統(tǒng)無(wú)法啟動(dòng);2010年后,商用的昆侖固件開(kāi)始支持龍芯,昆侖固件是遵循UEFI規(guī)范的,這也產(chǎn)生了新的問(wèn)題,如何保證同一個(gè)內(nèi)核可以同時(shí)支持昆侖固件和PMON的板卡而無(wú)需特殊設(shè)置?如何保證板卡上的固件可同時(shí)支持嵌入式系統(tǒng)如Vxworks內(nèi)核和Linux內(nèi)核而無(wú)需定制固件;而操作系統(tǒng)廠商需要一套系統(tǒng)可在不同龍芯機(jī)器上安裝運(yùn)行,而不是每種機(jī)器都需要制作一個(gè)安裝系統(tǒng),應(yīng)用軟件廠商和用戶需要可單獨(dú)升級(jí)固件和內(nèi)核,而不是必須同時(shí)升級(jí)。隨著龍芯芯片和板卡種類不斷增多,這種矛盾表現(xiàn)的日益突出,亟需要一個(gè)統(tǒng)一的規(guī)范來(lái)定義固件和內(nèi)核之間的接口。同時(shí)我們看到國(guó)際上針對(duì)固件設(shè)計(jì)也有不同規(guī)范或標(biāo)準(zhǔn),比如由Intel倡導(dǎo)的UEFI規(guī)范,由IBM的PowerPC上使用的FDT標(biāo)準(zhǔn)等,所以這套規(guī)范并不是一個(gè)如何設(shè)計(jì)固件的規(guī)范,而是側(cè)重于固件和內(nèi)核之間的接口,只要符合這個(gè)接口,無(wú)論你的固件采用何種設(shè)計(jì)方式,遵循何種規(guī)范都可保證能夠啟動(dòng)系統(tǒng)。其和固件及操作系統(tǒng)間的層次關(guān)系如圖1所示:

圖1:接口規(guī)范與內(nèi)核及固件的層次關(guān)系圖

這個(gè)接口規(guī)范規(guī)定了龍芯CPU開(kāi)發(fā)系統(tǒng)的地址空間、中斷配置、固件與內(nèi)核接口傳參實(shí)現(xiàn)及SMBIOS實(shí)現(xiàn)約定的要求。本規(guī)范適用于龍芯2號(hào)和3號(hào)系列CPU開(kāi)發(fā)系統(tǒng),龍芯和龍夢(mèng)等廠商對(duì)外提供的開(kāi)發(fā)板會(huì)默認(rèn)支持此規(guī)范,同時(shí)這個(gè)規(guī)范也在多個(gè)使用龍芯的項(xiàng)目作為工程規(guī)范被采用。作為規(guī)范的參與者之一,我嘗試解釋下規(guī)范中需要注意的問(wèn)題。

對(duì)于系統(tǒng)來(lái)說(shuō),首先是地址空間的劃分,規(guī)范中對(duì)地址空間劃分如圖2所示:

圖2 地址空間分布圖

上圖中的兩點(diǎn)這里需要解釋下,一個(gè)是0x0F00_0000~0x0FFF_FFFF,規(guī)范約定0x0000_0000~0x0FFF_FFFF的低256MB空間為內(nèi)存空間,其中0x0F00_0000~0x0FFF_FFFF為固件保留的16M地址空間,操作系統(tǒng)內(nèi)核不得使用。另一個(gè)是高端內(nèi)存基址,這個(gè)基址是可以根據(jù)需要調(diào)整的,可在固件中通過(guò)結(jié)構(gòu)emap傳遞給內(nèi)核,目前默認(rèn)建議設(shè)置有兩種一種是0x9000_0000,另一種是0x11000_0000,建議設(shè)置為0x11000_0000,這個(gè)地址確定后,其向下的0x1000_0000作為保留區(qū),也就是括號(hào)中的(0x80000_0000)的含義。

規(guī)范的第二部分是關(guān)于中斷配置的規(guī)則。對(duì)于一個(gè)計(jì)算機(jī)系統(tǒng)來(lái)說(shuō),中斷的處理至關(guān)重要,龍芯芯片系統(tǒng)的中斷控制較為復(fù)雜,龍芯芯片內(nèi)部集成了中斷控制器用于處理自帶串口、PCI總線等中斷,又可以通過(guò)PCI、HT接口所連接橋片上的中斷控制器來(lái)處理外接設(shè)備中斷。這里對(duì)固件與內(nèi)核在中斷部分做了分工,中斷配置規(guī)范的目的是劃清固件和操作系統(tǒng)關(guān)于中斷的配置范圍,統(tǒng)一龍芯芯片操作系統(tǒng)的中斷分配。為此,規(guī)范進(jìn)行如下約定:
 a) 橋片的中斷路由由固件來(lái)做,其他的中斷分配和路由由內(nèi)核來(lái)做;
 b) 固件負(fù)責(zé)完成橋片上的PCI/PCIE設(shè)備和插槽的中斷號(hào)申請(qǐng)和路由,操作系統(tǒng)內(nèi)核完成中斷號(hào)的分配和芯片內(nèi)部的中斷路由,好處是固件只和具體的板卡相關(guān),內(nèi)核負(fù)責(zé)CPU相關(guān)的初始化(包括CPU核間中斷),這樣一個(gè)內(nèi)核可以適配不同板卡的固件;
 c) 固件完成PCI設(shè)備掃描和配置后,根據(jù)橋片手冊(cè)、設(shè)備類型及硬件原理圖,向每一個(gè)PCI設(shè)備或PCI/PCIE插槽上可能的設(shè)備的中斷線寄存器寫(xiě)入申請(qǐng)的中斷線號(hào),同時(shí)需要對(duì)橋片上的中斷控制器進(jìn)行配置,保證它能路由到HT的0-16位中斷向量的相應(yīng)位置;
 d) 操作系統(tǒng)內(nèi)核在分配中斷號(hào)時(shí),根據(jù)中斷線寄存器的值進(jìn)行分配。此外,操作系統(tǒng)內(nèi)核還負(fù)責(zé)對(duì)芯片內(nèi)部的中斷控制器進(jìn)行設(shè)置;
 e) 內(nèi)核不再管CPU,板卡相關(guān)中斷的具體配置,所有信息均由固件傳遞過(guò)來(lái),并通過(guò)cpu_type的類型選擇不同的平臺(tái)支持,這樣可以做到一個(gè)內(nèi)核二進(jìn)制在不同平臺(tái)和CPU上都適用;
 f) 如果使用MSI/MSI-X,由內(nèi)核根據(jù)橋片的特性來(lái)分配中斷,固件不再負(fù)責(zé)。

需要注意的還有0-15號(hào)中斷說(shuō)明,這個(gè)是約定俗成的。

表1 0-15號(hào)中斷說(shuō)明
 

15號(hào)以后的中斷號(hào)及芯片內(nèi)部中斷路由針對(duì)不同開(kāi)發(fā)系統(tǒng)有不同約定,3A/B+780E開(kāi)發(fā)系統(tǒng)可3A/B+2H開(kāi)發(fā)系統(tǒng)可參見(jiàn)規(guī)范中各自的附錄。

規(guī)定了地址空間和中斷后,如何在固件和內(nèi)核間傳遞這些信息呢?龍芯這個(gè)規(guī)范制訂了一套數(shù)據(jù)結(jié)構(gòu)用于固件和內(nèi)核間傳遞信息,通過(guò)這個(gè)結(jié)構(gòu)固件向內(nèi)核提供CPU類型、中斷號(hào)、總線信息、內(nèi)存大小、pci-mem地址、video_bios地址、busclock等信息,規(guī)范中提供了一個(gè)頭文件方便大家在具體編程中使用。下表是相關(guān)的數(shù)據(jù)結(jié)構(gòu)概覽。

表2 傳參結(jié)構(gòu)一覽表

各板卡可根據(jù)需要選擇必須實(shí)現(xiàn)的結(jié)構(gòu)體,但如果選用,需按照本章約定的結(jié)構(gòu)體進(jìn)行傳參,不能自行重新設(shè)計(jì)結(jié)構(gòu)體,為保證可擴(kuò)展性,如需要擴(kuò)充規(guī)范沒(méi)有的結(jié)構(gòu)體,可加在結(jié)構(gòu)體boot_params的最后添加。

另外一部分就是龍芯機(jī)器現(xiàn)在支持SMBIOS規(guī)范,SMBIOS是主板或系統(tǒng)制造者以標(biāo)準(zhǔn)格式顯示產(chǎn)品管理信息所需遵循的統(tǒng)一規(guī)范。DMI(Desktop Management Interfacece, DMI)就是幫助收集電腦系統(tǒng)信息的管理系統(tǒng),DMI信息的收集必須在嚴(yán)格遵照SMBIOS規(guī)范的前提下進(jìn)行。SMBIOS和DMI是由行業(yè)指導(dǎo)機(jī)構(gòu)Desktop Management Task Force(DMTF)起草的開(kāi)放性的技術(shù)標(biāo)準(zhǔn),其中,DMI設(shè)計(jì)適用于任何的平臺(tái)和操作系統(tǒng)。DMI充當(dāng)了管理工具和系統(tǒng)層之間接口的角色。它建立了標(biāo)準(zhǔn)的可管理系統(tǒng)更加方便了電腦廠商和用戶對(duì)系統(tǒng)的了解。DMI的主要組成部分是Management Information Format(MIF)數(shù)據(jù)庫(kù)。這個(gè)數(shù)據(jù)庫(kù)包括了所有有關(guān)電腦系統(tǒng)和配件的信息。通過(guò)DMI,用戶可以獲取序列號(hào)、電腦廠商、串口信息以及其它系統(tǒng)配件信息。但目前由于各家固件在實(shí)現(xiàn)上的不同,目前規(guī)范里給出了必須實(shí)現(xiàn)的幾個(gè)類別,比如CPU信息、內(nèi)存信息等。在龍芯的Linux系統(tǒng)下輸入dmidecode命令就可看到相關(guān)的硬件信息。

目前此規(guī)范已在或正在龍芯各類芯片板卡及已經(jīng)開(kāi)始使用,隨著實(shí)踐的深入,難免規(guī)范中有些部分考慮不周,需要修改和進(jìn)一步擴(kuò)充,后續(xù)的技術(shù)問(wèn)題會(huì)在每周三下午的例會(huì)上探討,會(huì)議采取網(wǎng)絡(luò)IRC會(huì)議方式,IRC channel是#loongson,會(huì)議時(shí)間:每周三下午15:00-17:00,感興趣的可參加這個(gè)討論。

最后回顧一下規(guī)范制訂中的重要事件:
 • 2010年12月:?jiǎn)?dòng)
 • 2011年3月:龍芯和昆侖固件開(kāi)始聯(lián)合預(yù)演
 • 2011年5月10日:基于PMON實(shí)現(xiàn)的第一個(gè)版本
 • 2011年5月20日:龍芯、昆侖固件、龍夢(mèng)、中標(biāo)麒麟組成聯(lián)合工作組,共同推進(jìn)規(guī)范的實(shí)現(xiàn)
 • 2011年6月16日:規(guī)范結(jié)構(gòu)體定稿
 • 2011年7月16日:完成在3A上的交叉驗(yàn)證實(shí)驗(yàn)
 • 2011年8月31日:完成規(guī)范的定稿
 • 2011年9月30日:PMON和昆侖固件完全按照標(biāo)準(zhǔn)實(shí)現(xiàn)開(kāi)始在龍芯3A780E主板上預(yù)裝
 • 2012年3月:成為長(zhǎng)期項(xiàng)目,進(jìn)行后期的規(guī)范發(fā)布及方向的探討
 • 2014年4月15日:正式成為龍芯企業(yè)規(guī)范

查詢進(jìn)一步信息,請(qǐng)?jiān)L問(wèn)官方網(wǎng)站http://www.loongson.cn/news_info.php?id=267。

→ 『關(guān)閉窗口』
 發(fā)布人:pr_room
 [ → 我要發(fā)表 ]
上篇文章:高密度級(jí)LED技術(shù)引領(lǐng)照明市場(chǎng)
下篇文章:GreenPeak白皮書(shū):小數(shù)據(jù)叫板大數(shù)據(jù)
→ 主題所屬分類:  白皮書(shū)店 → 安全電子
 熱門文章
 中航光電(158廠)電連接器產(chǎn)品選型指南 (64375)
 國(guó)巨(Yageo)片式電阻電容產(chǎn)品規(guī)格書(shū) (57637)
 下一代前傳網(wǎng)絡(luò)接口(NGFI)白皮書(shū) (49839)
 2013年移動(dòng)經(jīng)濟(jì)(The Mobile Economy 2013… (48115)
 鐳射二極管 (46552)
 使用NFC進(jìn)行藍(lán)牙配對(duì)(Using NFC for Bluet… (45343)
 為濾波電路選擇合適的運(yùn)算放大器 (42189)
 mirasol顯示器與競(jìng)爭(zhēng)性顯示技術(shù)的比較 - Qualco… (41850)
 CodeWarrior Development Studio (41014)
 u-blox產(chǎn)品目錄(Product Catalog 16… (40722)
 最近更新
 風(fēng)華高科中高壓MLCC解決方案多領(lǐng)域全場(chǎng)景滲透 (8月29日)
 用樹(shù)莓派Pico W和Lora Hat構(gòu)建網(wǎng)格節(jié)點(diǎn) (5月8日)
 用Pulsus PLD系統(tǒng)實(shí)現(xiàn)突破性piezoMEMS器件 (1月21日)
 復(fù)旦芯片實(shí)現(xiàn)感存算一體化:像人眼一樣智能 (9月29日)
 增強(qiáng)型人工智能為Meteor Lake處理器的設(shè)計(jì)提速 (5月15日)
 教育行業(yè)數(shù)字化自主創(chuàng)新飛騰生態(tài)解決方案白皮書(shū) (4月2日)
 人形機(jī)器人設(shè)計(jì)原則及人類智能和內(nèi)部身體系統(tǒng)仿真 (2月2日)
 用傳感器讓中央空調(diào)更節(jié)能環(huán)保,精確測(cè)量溫濕度、… (1月30日)
 不干膠標(biāo)簽印刷UL認(rèn)證 (11月22日)
 基于廣芯微UM3242F-RET6主控芯片的DC-AC逆… (11月9日)
 文章搜索
搜索選項(xiàng):            
  → 評(píng)論內(nèi)容 (點(diǎn)擊查看)
您是否還沒(méi)有 注冊(cè) 或還沒(méi)有 登陸 本站?!
關(guān)于我們 ┋ 免責(zé)聲明 ┋ 產(chǎn)品與服務(wù) ┋ 聯(lián)系我們 ┋ About 365PR ┋ Join 365PR
Copyright @ 2005-2008 365pr.net Ltd. All Rights Reserved. 深圳市產(chǎn)通互聯(lián)網(wǎng)有限公司 版權(quán)所有
E-mail:postmaster@365pr.net 不良信息舉報(bào) 備案號(hào):粵ICP備06070889號(hào)