EDK II Platform là gì?
Quicknote giải thích platform trong EDK II.
Trong EDK II, Platform là cấu hình firmware cụ thể cho một board/máy/sản phẩm. Nó gom package, module, library instance, PCD, flash layout và policy thành một firmware image có thể build/flash.
Nếu package là “bộ linh kiện”, thì platform là “thiết kế hoàn chỉnh” chọn linh kiện nào, cấu hình ra sao và đóng vào ROM thế nào.
Một platform thường có
Platform/MyBoard/
├─ MyBoard.dsc # build policy: module/library/PCD
├─ MyBoard.fdf # flash/FV layout
├─ Include/
├─ Library/
├─ Drivers/
└─ BoardConfig/ Platform quyết định những gì?
| Mục | Giá trị | Ghi chú |
|---|---|---|
| Module set | Driver/app nào được build | Thông qua DSC [Components]. |
| Library policy | Dùng implementation nào | Ví dụ DebugLib serial hay null. |
| PCD policy | Feature/config nào bật tắt | Giống build option theo board. |
| Flash layout | FV/FD/NVRAM đặt ở đâu | Thông qua FDF. |
| Boot policy | BDS/boot option/default variable | Liên quan BootOrder, Boot####, Secure Boot... |
Một ví dụ thực tế
Cùng một DXE driver có thể được dùng ở hai platform:
Board A: PcdEnableVerboseLog = TRUE, DebugLib = SerialPort
Board B: PcdEnableVerboseLog = FALSE, DebugLib = Null
Source driver không đổi, nhưng hành vi log khác nhau vì platform DSC khác nhau.
Platform và lỗi “trên board A chạy, board B không chạy”
Đây là lỗi rất thực tế. Khi cùng module chạy trên platform này nhưng fail trên platform khác, đừng vội nghi code. Hãy so sánh:
- DSC: module có được build ở cả hai platform không?
- Library mapping: có dùng cùng library instance không?
- PCD: policy có bị override khác không?
- FDF: module có nằm trong cùng FV không?
- NVRAM/default variable: boot policy có khác không?
Package/module chung
Code có thể dùng lại.
Build policy
Chọn module, library, PCD.
Image layout
Đóng FV/FD/NVRAM.
Firmware chạy trên máy thật
Policy trở thành hành vi thực tế.
Checklist khi port module sang platform khác
Ghi nhớ nhanh
EDK II Platform là nơi mọi thứ hội tụ: source, build config, flash layout và policy. Khi lỗi chỉ xảy ra trên một board, hãy đọc platform DSC/FDF/PCD như đọc schematic của firmware.
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.