HII Architecture Overview
Knowledge map tổng quan về HII, VFR, IFR, VarStore, callback và flow lưu BIOS Setup.
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.
VFR + UNI
Developer viết form, question, string và condition.
IFR + Packages
VFR compile thành IFR, UNI thành string package.
HII Database
Driver install package list và Config Access.
User interaction
Browser render UI, gọi callback, route config.
NVRAM / VarStore
Dữ liệu được lưu và boot phase sau consume.
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
User thao tác trên question
Ví dụ chọn `SATA Mode = RAID` trong một `oneof`.
Browser update browser storage
Giá trị mới được ghi vào buffer tạm tương ứng VarStore.
Callback nếu có
Driver có thể validate, refresh UI, hoặc request reset.
Save & Exit
Browser route config về driver sở hữu FormSet.
RouteConfig / SetVariable
Driver lưu dữ liệu vào NVRAM hoặc storage nội bộ.
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.
HII Save, Callback và Reset Flow
Giải thích cách Setup Browser gọi callback, route config, lưu NVRAM và áp dụng sau reset.
HII VFR Element Cheat Sheet
Bảng tổng hợp các element VFR như checkbox, oneof, numeric, string, date, time và ordered list.
VFR là gì?
VFR là source mô tả form, question, condition và VarStore trước khi compile thành IFR.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.