女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UEFI探索

進迭時空 ? 2025-06-06 16:55 ? 次閱讀

傳統BIOS(Basic Input/Output System)由IBM 1981年在其第一代 IBM PC[1]中引入,負責啟動時的硬件檢測和初始化,并為操作系統提供硬件抽象層。這一設計被廣泛模仿,成為PC行業的標準。但其局限性(如開發效率低、啟動速度慢和MBR分區表缺陷)在新時代硬件面前愈發明顯。


為解決BIOS的不足,并提升安全性,UEFI[2](Unified Extensible Firmware Interface)標準被引入。作為取代BIOS的現代化解決方案,UEFI不僅解決了BIOS的瓶頸,還引入了:


模塊化設計

安全啟動機制

更好的大容量存儲支持

更多的啟動設備支持


本文將簡單介紹UEFI的背景、核心組件及基于spacemit K1[3]平臺的解決方案。



歷史與演進


起源


UEFI的前身是Intel于1998年提出的EFI (Extensible Firmware Interface),旨在為Itanium服務器提供更高效的啟動環境。2005年,UEFI論壇成立,由Intel、微軟、AMD等廠商共同推動標準化。



版本


UEFI 2.0(2006):UEFI論壇制定的首版規范,64位架構支持,奠定模塊化驅動和網絡協議基礎。

UEFI 2.4(2013):強化安全啟動(Secure Boot)和ACPI集成。

UEFI 2.8(2022):新增RISC-V架構支持。

UEFI 2.11(2024):內存管理增強,錯誤處理改進,新增龍芯LoongArch架構的支持,新增國密算法(SM2, SM3)支持。



演進


UEFI標準未來會繼續關注如下幾個方向:


新的硬件標準支持,如PCIe 6.0,DDR6等;

安全性持續增加,加密算法和安全機制更新;

啟動速度提升,優化啟動流程,減少啟動時間;

多架構兼容(x86/ARM/RISCV)



核心組件


UEFI通過規范定義了一整套完整的標準化接口和服務,對上屏蔽硬件細節;在硬件平臺發生變更后,通過UEFI固件提供服務,確保操作系統不受影響。


0ae65e86-42b4-11f0-986f-92fbcf53809c.png

UEFI組件總覽[4]


啟動服務


啟動服務(Boot Service)的主要功能是為操作系統加載前的系統初始化提供支持,啟動服務在操作系統加載完成后會被終止,操作系統接管系統資源。這一過程通過調用 ExitBootServices 函數實現:


ExitBootServices:通知 UEFI 固件操作系統已準備好接管系統資源,啟動服務將被禁用。


啟動服務提供的service羅列如下。


內存管理


分配和釋放內存,支持不同類型的物理內存(如常規內存和保留內存)。


事件處理


UEFI中只有timer中斷,利用timer來創建和管理事件,支持異步操作和定時器功能。


協議管理


安裝、卸載和查找協議(Protocol),用于驅動程序和應用程序之間的通信


鏡像加載


加載和啟動操作系統內核或其他可執行鏡像。


設備管理


提供對硬件設備的訪問和控制。



運行時服務


運行時服務(Runtime Services) 在操作系統運行期間提供一系列關鍵功能,包括時間管理、變量服務和系統重置等。與啟動服務不同,運行時服務在操作系統加載完成后仍然可用,為操作系統和應用程序提供與固件的交互接口。


時間管理


獲取和設置系統時間。


變量服務


讀寫 UEFI 變量(如啟動順序、硬件配置等)。UEFI 變量通常用于存儲系統配置信息,例如:


啟動順序(BootOrder):定義系統的啟動設備順序。


硬件配置:存儲硬件相關的設置(如網絡配置、安全設置等)。


系統重置


支持系統重啟或關機(RISC-V架構下,系統重啟和關機通過openSBI實現)。


虛擬內存管理


在操作系統運行期間管理虛擬內存映射。



SMBIOS


SMBIOS(System Management BIOS) 是由 DMTF(分布式管理任務組)制定的一項標準,旨在為操作系統和管理工具提供系統硬件信息的標準化接口。通過一種結構化的方式,將系統的硬件配置、固件版本、主板信息等數據傳遞給操作系統或管理工具。


SMBIOS 數據表由UEFI生成,存儲在系統內存中,操作系統可以通過system table訪問這些數據。


硬件信息描述:提供系統硬件配置的詳細信息,例如處理器、內存、主板、存儲設備等。

固件信息傳遞:傳遞固件版本、制造商信息等數據。

系統管理支持:為系統管理工具(如 IPMI、Redfish)提供硬件信息支持。


SMBIOS 表的訪問


操作系統或管理工具可以通過以下方式訪問 SMBIOS 表:

System table:kernel下通過EFI_SYSTEM_TABLE獲取EFI_CONFIGURATION_TABLE,進而定位SMBIOS表的地址

操作系統:用戶可以通過工具(如 dmidecode)查詢 SMBIOS 數據,獲取系統的硬件信息。

系統管理工具:IPMI、Redfish標準中使用 SMBIOS 數據監控硬件狀態、診斷故障和管理系統資源。



ACPI


ACPI(Advanced Configuration and Power Interface,高級配置與電源接口)是由 Intel、Microsoft、Toshiba 等公司聯合制定的一項標準,旨在取代傳統的 BIOS 電源管理接口(如APM,Advanced Power Management)。


ACPI用于定義操作系統與硬件之間的電源管理和硬件配置接口。ACPI 提供了一種標準化的方式,使操作系統能夠管理硬件資源、控制電源狀態,并支持即插即用功能。其不僅定義了電源管理功能,還提供了硬件資源的描述和配置接口。


ACPI 表


ACPI 表是 ACPI 的核心數據結構,用于描述硬件資源和電源管理信息。ACPI 表通常在 UEFI 的 DXE(Driver Execution Environment)階段生成,并由 UEFI 傳遞給操作系統。


0afb7f0a-42b4-11f0-986f-92fbcf53809c.png

ACPI框架[5]


ACPI table以二進制格式存儲,操作系統通過解析這些表獲取硬件信息。常見的 ACPI 表包括:


DSDT(Differentiated System Description Table):包含系統的硬件描述和電源管理信息。

FADT(Fixed ACPI Description Table):描述固定的硬件資源和電源管理寄存器

SSDT(Secondary System Description Table):提供額外的硬件描述信息。

MADT(Multiple APIC Description Table):描述多處理器系統的中斷控制器配置。

SRAT(System Resource Affinity Table):描述系統資源的親和性(例如 NUMA 架構中的內存和 CPU 關系)。

RHCT(RISC-V Hart Capabilities Table):描述RISC-V CPU核心(HARTs)的能力和配置信息,如 CPU ID、支持的 ISA 擴展等。


ACPI 電源管理


ACPI 定義了多種電源狀態,用于管理系統的功耗和性能。

0b101302-42b4-11f0-986f-92fbcf53809c.png

全局電源狀態轉換[5]


全局電源狀態(Global System States)


G0(Working State):系統處于正常工作狀態。

G1(Sleeping State):系統處于睡眠狀態,分為多個子狀態(S1-S4)。

S1:CPU 停止執行指令,但內存保持供電。

S2:CPU 斷電,內存保持供電。

S3(Suspend to RAM):CPU 和大部分硬件斷電,內存保持供電。

S4(Suspend to Disk):系統狀態保存到磁盤,內存斷電。


G2(Soft Off):系統處于軟關機狀態,部分硬件(如網絡接口)可能保持供電。


G3(Mechanical Off):系統完全斷電。


設備電源狀態(Device Power States)


D0:設備處于正常工作狀態。

D1/D2:設備處于低功耗狀態。

D3:設備處于關閉狀態。



Protocol


Protocol(協議) 是 UEFI中的一個核心概念,用于定義驅動程序、應用程序和固件之間的交互接口,通過 Protocol,UEFI 能夠實現模塊化設計和動態綁定,提供強大的硬件管理和擴展能力。


0b28edbe-42b4-11f0-986f-92fbcf53809c.png

protocol的組成[4]


Protocol 類似于面向對象編程中的接口或抽象類,提供了一種標準化的方式,使不同組件能夠相互通信和協作。


每個 Protocol 包含一組函數指針和數據字段,用于實現特定的功能。


標準化接口:Protocol 定義了統一的接口規范,使不同組件能夠相互兼容。

動態綁定:Protocol 通過句柄(Handle)綁定到特定設備或服務,支持動態加載和卸載。

模塊化設計:Protocol 支持模塊化設計,便于擴展和維護。



OS LOADER


OS Loader(操作系統加載器) 是 UEFI 啟動流程的一部分,依賴于 UEFI 的啟動服務(Boot Services)和運行時服務(Runtime Services),從啟動設備(如硬盤、光盤或網絡)加載操作系統內核,并為其準備執行環境,將控制權從 UEFI 固件轉移到操作系統。


OS Loader 的實現通常由操作系統開發者完成,以下是一些常見的 OS Loader 實現:


Windows Boot Manager


Windows的OS Loader是bootmgfw.efi,其主要功能包括:


加載Windows內核

準備 Windows 啟動環境


GRUB(Grand Unified Bootloader)


GRUB 是 Linux 系統中常用的 OS Loader,其主要功能包括:


加載 Linux 內核(vmlinuz)和ramdisk(initrd)

支持多操作系統啟動

提供命令行界面,用于調試和配置



UEFI on Spacemit K1


Spacemit K1是一顆8核64位RISC-V AI CPU,基于開源Tianocore EDK2解決方案,完成了K1上的UEFI適配。



啟動流程


K1上UFEI解決方案啟動流程如下圖。


0b399ef2-42b4-11f0-986f-92fbcf53809c.jpg


基于RISC-V當前的firmware標準和開源實現:

1

簡化EDK2中啟動階段實現,并將部分功能實現挪至FSBL中實現

2

部分runtime service由openSBI實現



bootloader


bootloader存儲于spi nor flash上,包含如下圖3個主要模塊。

0b499ac8-42b4-11f0-986f-92fbcf53809c.jpg


FSBL


FSBL基于uboot工程編譯而來,實現UEFI PEI階段的:


DDR初始化

加載opensbi與EDK2

更新memory信息,并通過dtb傳遞給EDK2


openSBI


基于開源openSBI解決方案,提供machine態的基礎服務:

Cache管理

TLB管理

suspend/resume管理


EDK2


基于開源tianocore EDK2開源解決方案,提供:

EFI boot service,提供系統啟動相關服務

存儲驅動(emmc,sd,nvme)和USB驅動,支持從卡、emmc、NVME、U盤中啟動

GOP(Graphic Output Protocol),支持通過HDMI顯示啟動菜單

Variable service,實現啟動選項的配置,如啟動順序、啟動時間等



grub


OS loader選擇基于開源grub2的解決方案。


grub作為一個EFI application,存儲于ESP分區,經EDK2加載和運行;

通過/boot/grub/grub.cfg配置文件,完成多系統識別與引導,并配置啟動菜單;

加載內核鏡像和init ramdisk,完成系統加載和控制權切換;


kernel鏡像與rootfs存儲于emmc或nvme等存儲器上。


0b5c1fcc-42b4-11f0-986f-92fbcf53809c.jpg


通過上述提供的解決方案,實現在K1方案板上,支持從多種啟動介質上,完成linux系統的加載和啟動;并能通過EDK2啟動菜單,完成啟動優先級的配置和修改。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 核心
    +關注

    關注

    0

    文章

    45

    瀏覽量

    15175
  • BIOS
    +關注

    關注

    5

    文章

    471

    瀏覽量

    46754
  • UEFI
    +關注

    關注

    0

    文章

    54

    瀏覽量

    12043
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何制作適用于Visionfive 2的Debian + UEFI固件系統?

    制作適用于Visionfive 2的Debian + UEFI固件系統
    發表于 03-10 07:51

    ARM系統預引導固件的新機遇-UEFI

    產品可在有限的工程資源條件下實現更快推上市場,并同時添加創新功能。  統一可擴展固件接口(UEFI)對ARM系統的預引導固件是一個新機遇。 UEFI負責定義操作系統和系統固件之間以及固件驅動程序和系統
    發表于 08-23 09:06

    uefi的標準哪里可以下載呀?

    uefi的標準哪里可以下載呀?
    發表于 11-06 16:49

    BOXNUC7I3BNK將EVO 970視為Legacy而非UEFI

    有一個新的BOXNUC7I3BNK NUC套件。僅使用三星EVO 970 M.2 ssd。 BIOS將驅動器識別為M.2 ssd,但是在啟動面板中,不會將其識別為UEFI驅動器,僅作為Legacy
    發表于 11-07 11:08

    UEFI有什么定義?

     EFI的出現第一次被正式提出,是在2000年的Intel春季IDF上,經過幾次修訂,現在已經到了EFI 1.10版,而2.0版正由UEFI這個組織制定中(故EFI也現稱為UEFI)。
    發表于 10-30 09:12

    如何切換BIOS啟動與UEFI啟動 bios與uefi切換方法

    1.首先進入BIOS,電腦開機時按你電腦對應的鍵進入BIOS,不知道按鍵可以看下表查詢。或者在電腦開機時有屏幕有短暫的提示按鍵,看下自己的電腦按鍵是哪個就行。2.開啟UEFI方法以下的設置項有的
    發表于 06-05 11:54

    Embedded SIG | 樹莓派的UEFI支持和網絡啟動

    混合部署的從核啟停依賴 UEFI 第三方固件支持 PSCI 標準實現,本文介紹如何使樹莓派 4B 支持 UEFI,并可通過 SD 卡或網絡啟動 openEuler Embedded
    發表于 09-07 15:22

    使用VisionFive 2適配UEFI有哪些資料可以參考?

    使用VisionFive 2適配UEFI,有哪些資料可以參考?
    發表于 09-12 06:52

    簡化安全、基于 UEFI 的物聯網 固件更新

    簡化安全、基于 UEFI 的物聯網 固件更新
    發表于 09-04 17:22 ?8次下載
    簡化安全、基于 <b class='flag-5'>UEFI</b> 的物聯網 固件更新

    如何安裝UEFI系統詳細教程說明

    UEFI Boot與GPT分區表已經不算是新生事物了,不過長期以來感覺不到Legacy+MBR有何不便,很多人還在守舊。隨著AMD第三代銳龍的問世,學會安裝UEFI系統引導將成為必備技能!
    的頭像 發表于 01-31 13:52 ?1.2w次閱讀

    uefi 嵌入式Linux,面向嵌入式平臺的高級UEFI開發環境.PDF

    面向嵌入式平臺的高級UEFI開發環境面向嵌入式平臺的高級 UEFI 開發環境晉磊, 技術市場工程師, 英特爾周鵬程, 開發經理, 百敖軟件*姜波, 首席技術官, 盛博科技*PTAS003議程? 面向
    發表于 11-02 13:06 ?14次下載
    <b class='flag-5'>uefi</b> 嵌入式Linux,面向嵌入式平臺的高級<b class='flag-5'>UEFI</b>開發環境.PDF

    BIOS+UEFI引導修復工具

    BIOS+UEFI引導修復工具
    發表于 11-19 14:54 ?5次下載

    如何使樹莓派 4B 支持 UEFI

    混合部署的從核啟停依賴 UEFI 第三方固件支持 PSCI 標準實現,本文介紹如何使樹莓派 4B 支持 UEFI,并可通過 SD 卡或網絡啟動 openEuler Embedded。
    的頭像 發表于 09-07 11:26 ?2985次閱讀

    P7固件 FCODE BIOS UEFI

    電子發燒友網站提供《P7固件 FCODE BIOS UEFI.zip》資料免費下載
    發表于 08-08 11:24 ?1次下載
    P7固件 FCODE BIOS <b class='flag-5'>UEFI</b>

    Rufus 4.5.2180穩定版發布,應用MD5校驗UEFI啟動引導

    UEFI技術層面,該版本搭載UEFI:NTFS通用bootloader(適用于NTFS或exFAT分區的UEFI啟動),并且GRUB也已升級至2.12版本。
    的頭像 發表于 05-23 10:43 ?2834次閱讀