HII là gì?

HII là hạ tầng UEFI kết nối Setup UI, string package, VarStore và policy firmware.

3 phút đọc
Đọc bằng Tiếng Việt English 日本語
HII / BIOS Setup Terms cover

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.

01 VFR/UNI

Source

Developer viết form, question, string token.

02 Build

IFR + String Package

Build tool compile thành package nhị phân.

03 DXE

HII Database

Driver install package list vào database.

04 Setup

Browser

Browser render UI, đọc/ghi VarStore, gọi callback.

Mental model của HII trong firmware.

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.

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

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