UEFI Memory Map là gì?
Quicknote giải thích UEFI Memory Map và cách đọc nhanh.
UEFI Memory Map mô tả cách firmware đang sử dụng các vùng physical memory trước khi chuyển quyền cho OS. OS loader cần memory map để biết vùng nào dùng được, vùng nào dành cho firmware/runtime.
Vai trò chính
- Phân loại memory theo type.
- Cho OS biết vùng nào available/reserved/runtime.
- Là dữ liệu quan trọng trước
ExitBootServices(). - Giúp debug lỗi memory overlap hoặc runtime mapping.
Ví dụ debug nhanh
Với lỗi ExitBootServices(), một pattern hay gặp là memory map thay đổi sau khi OS loader đã gọi GetMemoryMap(). Khi đó Memory Map Key cũ không còn hợp lệ và cần lấy lại memory map mới.
Checklist nhanh
Ghi nhớ nhanh
Memory Map = bản đồ sở hữu memory giữa firmware và OS loader.
Góc nhìn khi debug
Khi học UEFI Memory Map, mình không muốn chỉ dừng ở định nghĩa. Mình thường tự hỏi ba câu: nó được tạo ra ở đâu, ai sẽ đọc nó, và nếu nó sai thì lỗi sẽ biểu hiện ở tầng nào. Cách nhìn này giúp biến một thuật ngữ khô khan thành một điểm kiểm tra cụ thể trong flow debug.
Ví dụ dễ gặp
Trong debug thật, điều quan trọng không phải là có thật nhiều log, mà là biết log nào xác nhận được trạng thái nào. Khi gặp UEFI Memory Map, mình thường đánh dấu điểm cuối cùng còn chắc chắn đúng, sau đó mới khoanh vùng sang bước kế tiếp thay vì đọc log từ đầu đến cuối một cách mơ hồ.
Khi gặp trong thực tế
UEFI Memory Map thường hữu ích nhất khi dùng như một điểm kiểm tra trong log. Thay vì chỉ hỏi “nó nghĩa là gì?”, hãy hỏi thêm: điều kiện nào tạo ra nó, module nào trả về nó, và sau lỗi đó firmware có retry, fallback hay dừng hẳn không.
Khi debug firmware, một log ngắn nhưng đặt đúng vị trí thường giá trị hơn rất nhiều log rải lung tung. Hãy log input, trạng thái trước khi gọi API, return status và nhánh xử lý sau đó.
Bài liên quan
- EFI_MEMORY_TYPE là gì?
- Memory Map Key là gì?
- ExitBootServices là gì?
- EfiBootServicesData là gì?
- UEFI Shell Commands cần biết
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.
ExitBootServices là gì?
ExitBootServices là ranh giới chuyển giao từ firmware sang OS. Sau lời gọi này Boot Services bị tắt, OS nhận quyền kiểm soát memory và platform.
Firmware Execution Flow Overview
Knowledge map về luồng thực thi firmware từ SEC, PEI, DXE, BDS tới TSL và Runtime.
Runtime sau ExitBootServices là gì?
Giải thích firmware còn lại gì sau khi OS gọi ExitBootServices và vì sao Runtime Services vẫn quan trọng.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.