IFR là gì?
IFR là opcode nhị phân được compile từ VFR và được Setup Browser parse khi render UI.
IFR, viết tắt của Internal Forms Representation, là dạng opcode nhị phân được compile từ VFR. Setup Browser không đọc VFR source; nó đọc IFR package trong HII Database.
Nếu VFR là source code, thì IFR giống bytecode của BIOS Setup.
Source
Developer viết form/question/condition.
Compile
Build tool sinh IFR opcode.
Install
DXE driver install form package.
Render
Browser parse opcode để vẽ UI.
IFR giúp debug gì?
Khi một option không xuất hiện, sai default hoặc gray ngoài dự kiến, dump IFR thường nhanh hơn đọc UI. Bạn có thể thấy:
| Mục | Giá trị | Ghi chú |
|---|---|---|
| QuestionId | ID của question | Dùng trong callback để biết user đang đổi option nào. |
| VarStoreId | ID của VarStore | Cho biết question map vào vùng dữ liệu nào. |
| VarOffset | Offset trong buffer VarStore | Sai offset là lỗi rất khó thấy bằng mắt. |
| Opcode | ONE_OF, CHECKBOX, NUMERIC, SUPPRESS_IF... | Cho biết Browser sẽ xử lý element ra sao. |
Ví dụ dump IFR dạng đọc được
Form: Boot Configuration, FormId: 0x1000
One Of: Boot Mode, QuestionId: 0x2001, VarStoreId: 0x1, VarOffset: 0x10
Option: UEFI, Value: 0x1
Option: Legacy, Value: 0x0
Suppress If:
QuestionId 0x3001 == 0
One Of: PXE Boot, QuestionId: 0x2002, VarOffset: 0x11
Đọc dump này ta hiểu: PXE Boot không biến mất ngẫu nhiên; nó bị SuppressIf phụ thuộc vào question 0x3001.
Debug Diary
Case: QA báo “PXE Boot option không thấy trên một số máy”.
Thay vì debug PXE driver trước, hãy dump IFR và kiểm tra:
- option có tồn tại trong IFR không;
- có nằm trong
suppressifkhông; - condition phụ thuộc biến nào;
- biến đó lấy default từ đâu;
- platform policy có set biến đó trước khi mở Setup không.
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.