999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ZYNQ 芯片的基板管理控制器設計與實現

2024-02-28 01:26:10馬柯帆李寶峰周悅錦武園園余永蘭多瑞華
計算機工程與科學 2024年2期
關鍵詞:功能設備設計

馬柯帆,李寶峰,周悅錦,武園園,余永蘭,多瑞華

(國防科技大學計算機學院,湖南 長沙 410073)

1 引言

基板管理控制器BMC(Board Management Controller)通常用于管理含有多個大型處理器的服務器主板。主流的BMC可以運行嵌入式Linux系統,其Linux后臺運行有ipmi、redfish、web、sol等BMC常用軟件,能與遠程管理計算機進行網絡通信,以便遠程管理計算機控制和管理服務器的硬件。各主流服務器的BMC軟件棧均是閉源的,彼此兼容性差,影響了數據中心設備的統一管理[1]。OpenBMC是BMC的Linux發行版,該項目是由Microsoft、Intel、IBM、Google和Facebook等數據中心公司組織創立并開源的,且已轉入Linux基金會。OpenBMC使用Yocto Project作為設計編譯工具,并集成OpenEmbedded、systemd、D-Bus等技術來定制管理平臺。OpenBMC可以自由地添加ipmi、sol、web等BMC常用軟件包,且已自動集成了RedFish,支持主板狀態查看和控制,以及主板固件更新等功能。RedFish是下一代數據中心管理標準,由DMTF(Distributed Management Task Force)標準組織制定,用于替代當前的ipmi。ipmi的缺點是功能較少、可擴展性差,只適用于中小規模的數據中心管理。RedFish可擴展性好、功能豐富,針對不同供應商的種類多樣的基礎設施能夠提供規范化易集成的管理接口,除了服務器外,RedFish也在逐漸擴展對存儲、網絡交換機方面的支持,可以滿足超大規模數據中心的復雜管理需求。

主流的BMC芯片一般是采用Nuvoton的NPCM7xxR系列、Aspeed的ASPxxx系列服務器。主板除了BMC之外,還有一塊FPGA芯片用于控制CPU的電源、復位時序。本文實現了將OpenBMC移植到Zynq-7000 All Programmable SoC芯片上,并通過擴展UART(Universal Asynchronous Receiver/Transmitter)、IIC(Inter- Integrated Circuit)等常用接口,使得芯片既可以實現BMC的功能,又可以實現FPGA的相應功能。

2 總體設計

2.1 基本架構設計

基本架構設計如圖1所示,ZYNQ芯片通過AXI總線與AXI Uartlite、AXI IIC、AXI Quad SPI、AXI GPIO(General-Purpose Input/Output)等IP核相連。AXI Uartlite用于SOL(Serial Over LAN),AXI IIC用于監控主板溫度以及電源芯片狀態,AXI Quad SPI用于主板固件(BIOS、flash)更新,AXI GPIO用于控制主板加切電。ZYNQ芯片的ARM部分運行OpenBMC Linux,添加ipmi、web、redfish等軟件,FPGA部分仍執行相應邏輯功能。

Figure 1 Basic architecture design圖1 基本架構設計

2.2 核心芯片簡介

ZYNQ系列異構應用處理器是XILINX在2010年發布的,該處理器將ARM Cortex-A9硬核IP與FPGA的可編程邏輯資源集成在一起,并通過ARM處理器的配置方式來啟動FPGA。利用嵌入式資源同時完成圖形界面、DDR3控制、用戶輸入等任務,可以通過FPGA資源實現并行處理,可以同時執行多個計算單元,提供高性能的解決方案。ZYNQ芯片的體系結構主要分為2部分:處理系統PS(Processing System)和可編程邏輯PL(Progarmmable Logic)。PS部分與ARM芯片架構類似,主要包括一個雙核的ARM Cortex-A9處理器、片上存儲器、外部存儲器接口和大量的外圍接口。PL部分是可編程邏輯資源,它基于XILINX 7系列FPGA,由28 mm高k金屬柵極半導體技術制成。PS是系統中的主要部分,可以只使用PS,但是不可只用PL,因為PL的配置下載需要PS進行輔助。ZYNQ芯片的ARM處理器內部帶有MMU(Memory Management Unit),可以運行Linux。PL和PS之間的通信主要利用AXI片上總線,XILINX提供了很多帶AXI接口的IP核,可以靈活地應用于各種應用[2,3]。

2.3 開發軟件介紹與選擇

Vivado是XILINX公司推出的一套FPGA開發工具,集成了FPGA設計和嵌入式設計等功能,它是一個基于AMBA AXI4 互聯規范、IP-XACT IP封裝元數據、工具命令語言TCL(Tool Command Language)、Synopsys 系統約束SDC(Synopsys Design Constraints)的開放式開發環境[4]。

一般來說,OpenBMC Linux的UBOOT、內核、文件系統的生成以及設備樹的構建有2種常規方法,即使用Petalinux或Yocto Project工具,這2種方法都可以一鍵得到所需文件。

Petalinux是XILINX公司推出的嵌入式Linux開發套件,包括了Linux內核、UBOOT、設備樹、根文件系統、源碼、庫和Yocto recipes等[5],也可以讓客戶很方便地生成各種配置、編譯及自定義Linux發行版。PetaLinux工具支持的芯片系列有Zynq UltraScale+、MPSOC(Multi-Processor System On Chip)、Zynq 7000和MicroBlaze,可與Vivado協同工作,簡化了Linux系統的開發工作。

Yocto Project是一個開源協作項目,能幫助開發者為不同硬件架構的嵌入式產品制作基于Linux的定制系統。它提供了靈活的工具集和開發環境,使嵌入式設備開發人員能通過開源的軟件堆棧、配置文件來定制 Linux 映像,并在多個開發者一起協作上具有優勢。Yocto Project 在系統和應用程序開發、存檔和管理以及系統占用和內存利用等方面都具有優勢。Yocto使用BitBake工具來執行Linux構建任務。Yocto的優點有:應用廣泛、支持架構多、靈活性高、軟件可裁減、更新穩定以及生態系統豐富。但是,缺點是初始構建時間長、項目工作流程繁鎖、技術入門難、且各版本之間存在兼容性問題等。ZYNQ芯片支持使用Yocto Project構建Linux系統,XILINX官方已經把相關代碼開源到github,并且OpenBMC官方推薦的開發工具也是Yocto Project。

3 ZYNQ相關設計

3.1 ZYNQ芯片邏輯設計

ZYNQ芯片的邏輯設計主要是在Vivado開發工具上完成的。系統頂層設計如圖2所示,主要包括Processor System Reset、AXI Interconnect、AXI Interrupt Controller、AXI IIC、AXI Uartlite、AXI Quad SPI、AXI GPIO、Concat等模塊。

Processor System Reset是一種軟IP,它提供了一種用來處理其他IP核復位信號的機制,該IP核輸入端信號處理大量的復位需求,并在輸出端生成適當的復位信號送給處理器,本文設計中用它來處理ZYNQ7 Processing System和帶AXI接口IP核的復位信號。

AXI Interconnect用其將AXI內存映射主設備連接到AXI內存映射從設備,可配置為多個主設備接口和多個從設備接口,這些AXI設備在數據寬度、時鐘域和AXI子協議(AXI4、AXI3或AXI4-Lite)方面可以不同,Vivado會執行自動推斷并轉換。在本文設計中,AXI Interconnect負責將ZYNQ7 Processing System主設備與各個AXI IP從設備互連起來,只需連好時鐘、復位、AXI信號即可,Vivado已經將AXI信號并成一組,連接時會自動識別。

AXI Interrupt Controller用于接收來自外圍設備的多個中斷輸入,并通過AXI總線將中斷信息送入到ZYNQ7 Processing System中進行處理,可通過AXI接口訪問該IP核的各個寄存器(如使能中斷,應答、校驗等)。當ARM端的中斷資源不夠用時,可用它來擴展中斷。

Concat IP核可以實現位拼接功能,本文設計中用其將各個外設IP的中斷信號拼接起來送到AXI Interrupt Controller。

3.2 電源時序控制模塊設計

電源時序控制模塊用于控制高性能服務器CPU的上電時序,此類CPU的供電需要多路電源芯片轉換得到,每路電源輸出都要按CPU廠商的要求進行延時。其電源時序控制模塊設計及各信號定義如圖3所示,POWER_ON由AXI GPIO輸出的高低電平控制,當POWER_ON由高電平控制時,服務器電源使能信號CRPS_EN置為1’b1,CRPS電源就緒后會將CRPS_OK置為1’b1供FPGA判斷,其余各路電源按上電時序要求進行使能和延時。

3.3 BOOT.bin文件設計

ZYNQ啟動流程如圖4所示。ARM加載BootROM內部程序,這個程序固化在ZYNQ內部ROM,BootROM用于將第一階段啟動程序FSBL(First Stage Boot Loader)加載到OCM(On Chip Memory),并啟動FSBL。

Figure 4 Start process of ZYNQ圖4 ZYNQ啟動流程

頂層設計完成后可導出一個硬件描述文件。Vivado SDK工具通過解析該硬件描述文件生成FSBL代碼和可執行文件。UBOOT用于加載PL bitstream和啟動Linux。PL bitstream的作用是配置FPGA。編譯完整個OpenBMC工程可生成u-boot.elf文件,通過Vivado SDK將u-boot.elf和FSBL,合并生成BOOT.bin文件[6],如圖5所示。

Figure 5 Merging and producing BOOT.bin file圖5 合并生成BOOT.bin文件

3.4 設備樹源碼設計及編譯

設備樹源碼的設計需要借助Vivado SDK,編譯設備樹則要用到OpenBMC配套的設備樹編譯程序。Vivado SDK根據XILINX提供的設備樹倉庫來生成本文設計需要用到的設備樹源碼,倉庫已經在XILINX的Github上開源。創建設備樹版本的板級支持包后,Vivado SDK將自動構建生成pcw.dtsi、pl.dtsi、skeleton.dtsi、system-top.dts、zynq-7000.dtsi這幾個設備樹源碼文件。其中,在system-top.dts末尾添加溫度傳感器lm75節點并掛在axi_iic_0下。OpenBMC整個工程構建完成后會生成設備樹編譯器可執行文件dtc,利用dtc可以將設備樹源碼編譯為二進制可加載dtb格式文件。

4 OpenBMC Linux部分設計

首先是開發環境的準備。OpenBMC Linux部分設計要在Ubuntu環境下進行,并要安裝好編譯用到的基本工具,例如:Ubuntu 20.04、GCC version 9.4.0、Python 3.8.10。涉及到ARM的交叉編譯工具不需要手動安裝,Yocto Project工具會自動根據配置文件執行安裝程序。

OpenBMC Linux的設計是基于官方提供的開源倉庫進行修改的,其大概流程如圖6所示。

Figure 6 Design flow of OpenBMC Linux圖6 OpenBMC Linux設計流程

meta-xilinx里面包含了很多與硬件相關的內容,需要手動從XILINX的github倉庫拉取下來,放到openbmc目錄里,并確保與meta-phosphor在同一個目錄。元數據包含了recipe、配置文件、構建指令的信息以及自動控制構建的方法、也包含軟件版本信息及其來源、一系列補丁文件等。

添加machine之前要建立一個自己專用的層,文件名稱如圖7所示。其中的evb-zynq-zhou.conf就是machine配置,配置里面指定了使用的芯片的相關參數,如:機器特征、UBOOT、串行控制臺、內核設備樹、固件引導文件,除此之外的配置文件寫法可以參考meta-evb。

本文設計需要添加ipmitool、webui-vue這2個軟件包。ipmitool是一種命令行方式的 IPMI平臺管理工具,通過它可以實現獲取傳感器的信息、顯示系統日志內容、網絡遠程開關機等功能[7]。webui是網站用戶界面(Website User Interface),可以在網頁上顯示服務器的各種物理特征,如溫度、電壓、風扇工作狀態及報警信息等。

SOL是指通過網絡會話來重新定向服務器CPU串口I/O的一種機制。SOL可以很好地幫助運維人員找出服務器CPU啟動失敗的原因,是BMC必不可少的一個功能[8]。OpenBMC中的SOL可以支持多個獨立CPU串口同時工作,其主要實現原理如圖8所示。配置傳感器建立的文件夾、文件、文件名及結構如圖9所示。

Figure 8 Implementation principle of SOL圖8 SOL實現原理

Figure 9 Schematic diagram of sensor configuration files圖9 傳感器配置文件示意圖

配置內核的目的是打開一些功能選項和增加Linux驅動,如增加ZNYQ頂層設計連接的AXI相關IP核驅動,需在內核配置片段文件(.cfg)添加以下指令:

CONFIG_XILINX_INTC=y

CONFIG_IRQCHIP_XILINX_INTC_MODULE_ SUPPORT_EXPERIMENTAL=y

CONFIG_I2C_XILINX=y

CONFIG_SERIAL_UARTLITE=y

CONFIG_SERIAL_UARTLITE_CONSOLE=y

CONFIG_SENSORS_LM75=y

為了使引導加載Linux的過程變得更靈活,需設計UBOOT可運行的scr腳本文件。新建文本文件boot_zhou.script,往文件中添加以下代碼:

fatload mmc 0 0x100000 bmc_zhou.bit

fpga loadb 0 0x100000 MYMfilesize

fatload mmc 0 0x00200000 uImage

fatload mmc 0 0x00900000 zynq-zybo-z7.dtb

fatload mmc 0 0x04000000 rootfs.cpio.gz.u-boot

bootm 0x00200000 0x04000000 0x00900000

命令表示從FAT格式的SD卡的0分區加載對應的文件到相應的內存地址,再轉到相應的地址啟動系統。fpga loadb命令用于配置FPGA。

5 構建及運行測試

使用以下命令構建OpenBMC工程:

.setup evb-zynq-zhou

bitbake -v -DDD obmc-phosphor-image

構建完成后可在工程路徑下看到生成的各個固件文件。將BOOT.bin、rootfs.cpio.gz.u-boot、uImage、zynq-zybo-z7.dtb、boot.scr復制到FAT格式的SD卡。

硬件測試平臺如圖10所示。加電并連接串口后的顯示如圖11所示,出現登錄命令行表明OpenBMC Linux系統已經啟動完畢,輸入ipmitool sdr可以看到lm75溫度傳感器在正常工作。

Figure 10 Hardware test platform圖10 硬件測試平臺

將ZYNQ主板網線連至電腦,在電腦端的瀏覽器輸入網址https://BMC IP。可以發現,Web網頁能正常顯示,掛在AXI IIC下的lm75溫度傳感器狀態正常,如圖12所示。

Figure 12 Web page function test圖12 Web網頁功能測試

為了驗證SOL功能,將ZYNQ板子上已經綁定AXI Uartlite IP核的RX 引腳連到TX,保證電腦網絡與ZYNQ板子相通。串口回環測試如圖13所示,終端每發送一個字符都會接收到一個相同的字符。

為方便測試加電信號,將POWOR_ON信號賦值給測試點POWOR_ON_TP,ZYNQ上執行ipmi加電命令,測量POWOR_ON_TP信號引腳發現電平為高,說明電源控制正常,FPGA功能測試示意圖如圖14所示。

Figure 14 Schematic diagram of FPGA function test圖14 FPGA功能測試示意圖

6 結束語

本文提出了一種在ZYNQ芯片上實現OpenBMC的方法,介紹了從FPGA設計到OpenBMC Linux設計的整個流程。設計的OpenBMC Linux能成功編譯并運行在ZYNQ芯片上,實現了溫度監控、Web網頁顯示和 SOL等功能,可以根據不同的邏輯設計方案靈活地添加多路IIC、UART等接口,具有較高的可擴展性。本文提出的設計方案,不僅實現了傳統的BMC監控管理功能,同時也具有FPGA的高并行性和可擴展性,可以一芯兩用,能夠極大地節省主板面積和物料成本,為高性能服務器、超算、交換機等日益嚴苛的設計環境提供一個理想的設計方案。

猜你喜歡
功能設備設計
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
諧響應分析在設備減振中的應用
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
關于非首都功能疏解的幾點思考
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 久久伊人久久亚洲综合| 一本二本三本不卡无码| 精品国产三级在线观看| 久久综合AV免费观看| 国产在线观看成人91| 露脸真实国语乱在线观看| 国产va在线观看免费| 伊人婷婷色香五月综合缴缴情| 免费播放毛片| 国产精品嫩草影院av| 欧美视频在线不卡| 凹凸精品免费精品视频| 欧美高清日韩| 久久精品中文字幕免费| 亚洲成AV人手机在线观看网站| 精品超清无码视频在线观看| 大陆精大陆国产国语精品1024| 视频二区国产精品职场同事| 72种姿势欧美久久久大黄蕉| 亚洲人妖在线| 中文天堂在线视频| 青青操国产| 亚洲男女在线| 波多野结衣视频一区二区| 午夜不卡福利| 国产毛片基地| 成人在线观看不卡| 亚洲人成网站观看在线观看| 亚洲精品无码久久久久苍井空| 久久亚洲欧美综合| 国产在线专区| 无码精油按摩潮喷在线播放| 亚洲水蜜桃久久综合网站 | 日韩黄色精品| 麻豆国产在线观看一区二区| 中文成人无码国产亚洲| 狠狠色婷婷丁香综合久久韩国| 中文字幕2区| 久久这里只精品国产99热8| 国产精品亚洲一区二区三区z | 91久久国产综合精品女同我| 欧美在线中文字幕| 久久久久亚洲精品成人网| 成年人久久黄色网站| 欧美黄网在线| 中文字幕亚洲综久久2021| 欧美人与牲动交a欧美精品| 亚洲专区一区二区在线观看| 在线观看亚洲精品福利片| 久久网欧美| 99伊人精品| 久久人妻xunleige无码| 精品无码视频在线观看| 国产黄网站在线观看| 98精品全国免费观看视频| 亚洲人成影院在线观看| 久久久久久国产精品mv| 午夜日本永久乱码免费播放片| 午夜啪啪福利| 99久久精品视香蕉蕉| 亚洲一区第一页| 久久动漫精品| 在线欧美一区| 99精品久久精品| 国产精品福利一区二区久久| 欧美啪啪网| 亚洲va欧美va国产综合下载| 天堂网亚洲系列亚洲系列| 精品伊人久久久久7777人| 国产精品三级av及在线观看| 国产亚洲视频免费播放| 久久综合亚洲色一区二区三区| 亚洲无码熟妇人妻AV在线| 国产日本一线在线观看免费| 久久夜色精品| 国产欧美视频在线| 99久久亚洲综合精品TS| 91精品国产91久无码网站| 亚洲精品在线观看91| 91年精品国产福利线观看久久 | 国产69精品久久久久妇女| 免费a级毛片18以上观看精品|