HII Architecture Overview

Knowledge map tổng quan về HII, VFR, IFR, VarStore, callback và flow lưu BIOS Setup.

3 phút đọc
HII / BIOS Setup Terms cover

HII là nơi BIOS Setup chuyển từ “màn hình cấu hình” thành một pipeline có cấu trúc. Một option người dùng nhìn thấy trên UI thường đi qua VFR, IFR, HII Database, Browser, VarStore, Config Access và cuối cùng là NVRAM hoặc policy runtime.

01 Author

VFR + UNI

Developer viết form, question, string và condition.

02 Build

IFR + Packages

VFR compile thành IFR, UNI thành string package.

03 DXE

HII Database

Driver install package list và Config Access.

04 Browser

User interaction

Browser render UI, gọi callback, route config.

05 Storage

NVRAM / VarStore

Dữ liệu được lưu và boot phase sau consume.

Luồng tổng quát từ source Setup đến dữ liệu được firmware dùng.

Bản đồ các thành phần chính

Mục Giá trị Ghi chú
VFR Source mô tả Setup UI Nơi khai báo formset, form, question, condition, varstore.
IFR Opcode nhị phân sau compile Setup Browser parse IFR chứ không đọc VFR source.
.UNI String token đa ngôn ngữ Prompt/help/option text nằm ở đây.
HII Database Database package list Driver install form/string package vào đây.
Setup Browser Renderer + controller Render UI, xử lý input, gọi callback, save config.
VarStore Backing storage của question Map tới struct buffer, EFI variable hoặc name/value store.
Config Access Protocol driver cung cấp ExtractConfig, RouteConfig, Callback.

Flow khi user đổi một setting

1

User thao tác trên question

Ví dụ chọn `SATA Mode = RAID` trong một `oneof`.

2

Browser update browser storage

Giá trị mới được ghi vào buffer tạm tương ứng VarStore.

3

Callback nếu có

Driver có thể validate, refresh UI, hoặc request reset.

4

Save & Exit

Browser route config về driver sở hữu FormSet.

5

RouteConfig / SetVariable

Driver lưu dữ liệu vào NVRAM hoặc storage nội bộ.

6

Boot sau consume

PEI/DXE/BDS/SMM đọc policy đã lưu.

Ví dụ thực tế: Fast Boot

Checkbox: Fast Boot

QuestionId = 0x1201
VarStore = Setup
Offset = 0x20

User chọn Enabled

Callback request reset

Save & Exit ghi SetVariable("Setup", SETUP_GUID, ...)

Boot sau PEI/BDS đọc Setup.FastBoot để chọn fast path

Nếu Fast Boot bật trên UI nhưng boot sau không đổi hành vi, hãy debug theo flow trên thay vì chỉ nhìn form.

Firmware Engineer Notes

HII bug thường bị hiểu nhầm thành bug UI. Thực tế nó có thể là bug build, bug IFR condition, bug VarStore offset, bug callback, bug NVRAM write, hoặc bug consumer. Cách debug tốt nhất là đi từ IFR dump → VarStore layout → callback log → NVRAM dump → consumer code.

Checklist audit một Setup option

Bài liên quan

Thấy nội dung này hữu ích?

Lưu lại hoặc chia sẻ cho người cũng đang học firmware, BIOS/UEFI và embedded systems.

Nội dung liên quan

Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.