HII là gì?
HII là hạ tầng UEFI kết nối Setup UI, string package, VarStore và policy firmware.
HII không chỉ là phần “vẽ giao diện BIOS Setup”. Trong UEFI, HII là hạ tầng để firmware đóng gói form, chuỗi đa ngôn ngữ, font, image và dữ liệu cấu hình rồi đưa chúng vào một database chung để Setup Browser có thể hiển thị và xử lý.
Nếu nhìn từ phía người dùng, HII tạo ra menu Setup. Nếu nhìn từ phía firmware engineer, HII là cầu nối giữa ba thứ: UI, biến cấu hình, và policy dùng trong boot/runtime.
Source
Developer viết form, question, string token.
IFR + String Package
Build tool compile thành package nhị phân.
HII Database
Driver install package list vào database.
Browser
Browser render UI, đọc/ghi VarStore, gọi callback.
Vì sao HII quan trọng?
Một option trong BIOS Setup thường không phải là một biến đứng riêng. Nó đi qua cả một chuỗi:
VFR question
↓
IFR opcode
↓
HII Database
↓
Setup Browser
↓
VarStore field
↓
NVRAM variable hoặc buffer driver quản lý
↓
Policy được PEI/DXE/BDS/SMM dùng
Vì vậy khi một setting “không lưu”, “bị ẩn”, “bị gray”, hoặc “reboot xong mất”, debug chỉ nhìn UI là chưa đủ.
| Mục | Giá trị | Ghi chú |
|---|---|---|
| Form Package | Cấu trúc form sau khi compile từ VFR | Setup Browser đọc package này để dựng UI. |
| String Package | Chuỗi đa ngôn ngữ từ .UNI | Prompt/help text thường nằm ở đây. |
| VarStore | Vùng dữ liệu mà question map tới | Có thể là buffer, EFI variable, name/value. |
| Config Access | Callback ExtractConfig/RouteConfig/Callback | Dùng khi cần validate, update động, hoặc sync dữ liệu. |
Ví dụ thực tế
Bạn thấy trong Setup có option Fast Boot. Khi người dùng đổi từ Disabled sang Enabled, phía sau có thể xảy ra:
oneof FastBoot
↓ user chọn Enabled
Browser cập nhật field Setup.FastBoot
↓
Callback được gọi với Action = CHANGING hoặc CHANGED
↓
RouteConfig/SetVariable lưu vào NVRAM khi Save & Exit
↓
BDS/PEI đọc biến này ở boot sau để bỏ qua một số bước init
Nếu sau reboot option quay lại giá trị cũ, có thể lỗi nằm ở VarStore mapping, default store, RouteConfig, hoặc NVRAM write path chứ không nhất thiết là lỗi Browser.
Khi debug HII
Checklist debug HII
Firmware Engineer Notes
HII là một trong những phần dễ tạo bug “không thấy ngay”. UI hiển thị đúng chưa chắc dữ liệu lưu đúng. Dữ liệu lưu đúng chưa chắc policy boot dùng đúng. Vì vậy khi debug Setup, tôi luôn tách ba tầng: hiển thị, lưu trữ, consumer.
Bài liên quan
Nguồn tham khảo public
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 Architecture Overview
Knowledge map tổng quan về HII, VFR, IFR, VarStore, callback và flow lưu BIOS Setup.
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.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.