TSL là gì?

Giải thích Transient System Load phase trong UEFI boot flow và vai trò của OS loader trước ExitBootServices.

2 phút đọc
Firmware Flow cover

TSL, viết tắt của Transient System Load, là khoảng thời gian OS loader đã được firmware load và đang chạy, nhưng OS vẫn chưa hoàn toàn nắm quyền platform. Đây là vùng chuyển tiếp giữa BDS và OS.

Trong thực tế, TSL là nơi các lỗi ExitBootServices() thường xuất hiện. Bootloader phải lấy memory map, chuẩn bị page table/kernel/initrd, rồi gọi ExitBootServices() với đúng map key. Chỉ cần memory map thay đổi sau lần lấy map, lời gọi có thể fail.

01 BDS

LoadImage

Firmware load bootloader từ Device Path.

02 TSL

OS loader chạy

Bootloader chuẩn bị kernel và memory map.

03 EBS

ExitBootServices

Boot Services bị tắt.

04 OS

Kernel tiếp quản

Chỉ Runtime Services còn tồn tại nếu được map đúng.

TSL làm những việc gì?

Mục Giá trị Ghi chú
Load kernel Đọc kernel/initrd/boot config Thường dùng Simple File System trước ExitBootServices.
GetMemoryMap Lấy memory map hiện tại Map key phải khớp khi gọi ExitBootServices.
ExitBootServices Chuyển quyền cho OS Sau điểm này Boot Services không còn hợp lệ.
Runtime mapping Chuẩn bị runtime service mapping Quan trọng với variable/time/reset service.

Debug diary: ExitBootServices fail

Triệu chứng thường gặp:

ExitBootServices() = EFI_INVALID_PARAMETER

Một nguyên nhân phổ biến là bootloader lấy memory map xong nhưng lại allocate/free memory trước khi gọi ExitBootServices(). Memory map thay đổi, map key cũ không còn hợp lệ.

Khi debug TSL

Bài liên quan

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.