IFR là gì?

IFR là opcode nhị phân được compile từ VFR và được Setup Browser parse khi render UI.

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

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.

01 VFR

Source

Developer viết form/question/condition.

02 VfrCompile

Compile

Build tool sinh IFR opcode.

03 HII DB

Install

DXE driver install form package.

04 Browser

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 suppressif khô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.

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

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