Nội dung liên quan
#Firmware
Finishing a Real HID Keyboard, from Keypress to Release
Turning key press and release events into HID reports and sending them to the host, plus what to watch out for with Boot Protocol and tap-style null reports.
Firmware Log với USB CDC Debug Channel
Triển khai CDC debug channel trên STM32G0: descriptor CDC, ring buffer, ISR-safe logging và tránh xung đột DTR khi host mở COM port.
Hoàn thành HID keyboard thật từ sự kiện nhấn thả phím
Chuyển sự kiện nhấn thả phím thành HID report rồi gửi đến host kèm theo các lưu ý về Boot Protocol hay tap-style null report.
Vendor Request và Bulk IN trên STM32G0
EP0 vendor command và Bulk IN RAM dump trên STM32G0: pending log flag, tại sao không dùng ZLP, Zadig cho Windows, và output thật từ vendor_test.py.
CubeMX USB pitfalls thường gặp
Những điểm CubeMX không làm đúng khi generate USB code: HID mouse descriptor thay vì keyboard, NVIC không bật, Sof_enable DISABLE, USBD_static_malloc sai kích thước.
USB Bulk Transfer cho debug dump là gì?
Bulk IN cho RAM dump trên STM32G0: state machine chunk 64 byte, DataIn callback pipeline, tại sao không dùng ZLP, Zadig cho Windows và throughput thực đo.
USB CDC ACM là gì?
CDC ACM trên STM32: tại sao giống UART về trải nghiệm nhưng khác về implementation, SET_CONTROL_LINE_STATE, DTR và điểm dễ nhầm khi dùng với terminal.
USB Vendor Request qua EP0 là gì?
EP0 Vendor Request trên STM32: bmRequestType 0xC0, dispatch trong Composite_Setup, tại sao không được gọi CdcLog_Printf trong handler và pattern pending log flag.
What Is a USB Descriptor?
The concept and structure of USB descriptors, explained with real examples. Includes a look at how Boot Protocol fits into the Configuration Descriptor.
Designing the Input Pipeline Before the USB Layer
How input flows from a keypad through scanning, debounce, key policy, and an event queue, and the tradeoffs made before an HID report ever gets built.
USB Descriptor là gì?
Giải thích khái niệm và cấu trúc của USB Descriptor kèm ví dụ. Lưu ý về Boot Protocol trong Configuration Descriptor
Thiết kế input pipeline trước tầng USB
Giải thích thiết kế tạo input từ keypad qua các tầng scan, debounce, key policy, event queue và những đánh đổi trước khi tạo HID report.
What Is a USB Device Class and a Composite Device?
Common USB classes (HID, CDC, MSC, Vendor Specific), and how a composite device combines several classes on a single physical device.
USB Device Class và Composite Device là gì?
Các USB class thông dụng (HID, CDC, MSC, Vendor Specific) và composite device kết hợp nhiều class trên một thiết bị như thế nào.
STM32G0 USB Lab: Composite Device
USB composite device trên STM32G0B1RE: HID Keyboard + CDC log + EP0 Vendor Request + Vendor Bulk IN. Một codebase phát triển từ HID đơn đến debug tool hoàn chỉnh qua commit/tag.
STM32G0 USB Lab: Host Debug Tool
Python tool giao tiếp với USB composite device STM32G0: CLI smoke test 4 vendor commands qua EP0 và GUI test tổng hợp HID, CDC log, vendor bulk dump trên một màn hình.
STM32G0 USB Lab: Key Input Pipeline
Keypad 4x4 matrix trên STM32G0B1RE: quét bằng BSRR/IDR trực tiếp, TIM6 5ms, debounce 2 mẫu, event queue và chính sách simultaneous-error cho ma trận không diode.
Series tổng hợp kiến thức về BIOS và UEFI: từ nút nguồn đến hệ điều hành
Hành trình hiểu firmware PC từ gốc: boot flow, kiến trúc UEFI, và cách firmware tự dựng hệ thống trước khi bàn giao cho OS, qua từng phase SEC, PEI, DXE, BDS.
Series tổng hợp kiến thức về STM32 Firmware thực chiến
Từ những vấn đề thật trong firmware POS đến thiết kế thật: logger non-blocking, FreeRTOS architecture, Flash EEPROM emulation và dual-slot bootloader trên STM32G0.
UEFI 01: Hello World UEFI Application
UEFI application đầu tiên với EDK2: cấu trúc BejPkg package, build HelloUefi.efi và chạy trong UEFI Shell trên QEMU/OVMF. Ghi lại lỗi thật gặp với EDK2 phiên bản mới.
What Is STM32 GPIO Register Access?
Accessing GPIO through BSRR and IDR instead of HAL_GPIO_WritePin/ReadPin: why, when it's worth it, and how it applies to row-by-row matrix scanning on STM32.
STM32 GPIO Register Access là gì?
Truy cập GPIO bằng BSRR và IDR thay vì HAL_GPIO_WritePin/ReadPin: tại sao, khi nào phù hợp, và cách áp dụng cho matrix scan row-by-row trên STM32.
Clock Configuration for USB FS là gì?
USB Full-speed cần clock 48 MHz chính xác. Các nguồn clock khả dụng trên STM32, trade-off giữa HSI48+CRS và HSE+PLL, và checklist kiểm tra trước khi debug enumeration.
Event-driven Keyboard Firmware là gì?
Pattern tách scan/debounce khỏi USB send bằng event queue: key event producer, consumer và cách giữ firmware responsive khi USB busy hoặc host không poll kịp.
Key Mapping trong keyboard firmware là gì?
Ánh xạ vị trí vật lý (row, col) sang HID Usage ID: keymap array, lookup table, layer và cách tổ chức mapping để dễ thay đổi mà không sửa scan logic.
Matrix Scanning Algorithm là gì?
Chi tiết thuật toán quét ma trận phím: scan toàn bộ vs scan thay đổi, xử lý multi-key, rollover detection và tối ưu timing giữa các lần quét.
What Is a Debounce Algorithm?
Why mechanical keys bounce, and how to handle it with counter-based debounce, timestamp debounce, scan buffers, and a state machine in firmware.
What Is the USB Enumeration Process?
A sequence of requests over Endpoint 0, from device plug-in to the host assigning an address and picking a configuration - 7 steps, where things fail, and how to debug bottom-up.
Debounce Algorithm là gì?
Tại sao phím cơ học bounce và cách xử lý bằng counter-based debounce, timestamp debounce, scan buffer và state machine trong firmware.
USB Enumeration Process là gì?
Chuỗi hỏi–đáp qua Endpoint 0 từ lúc device cắm vào đến khi host giao address và chọn configuration. 7 bước, điểm nào dễ fail và cách debug từ dưới lên.
STM32 Dual-Slot UART OTA Bootloader
Case study xây dựng bootloader A/B cho STM32G0B1RE, hỗ trợ cập nhật firmware qua UART, xác thực packet CRC32, metadata pending/confirmed và rollback.
STM32 Flash EEPROM Emulation
Project EEPROM emulation trên STM32G0B1RE dùng Flash Bank 2, append-only record, two-page transfer, CRC và fault injection bằng software reset.
SMM trong UEFI: System Management Mode từ góc debug
SMM không phải phase tuyến tính mà là isolated execution mode. Hiểu SMI trigger, SMRAM, handler timing, SmmReadyToLock và debug SetVariable không lưu được.
ACPI là gì: tại sao firmware không nên tắt máy bằng cách toggle GPIO
Tại sao firmware không nên dùng GPIO trực tiếp để tắt máy? ACPI là hợp đồng firmware viết, OS đọc: table, AML, power state và cách debug sleep/wake sai.
The Four Transfer Types, from a Firmware Point of View
When do you use Interrupt, Bulk, Control, or Isochronous? The role of bInterval and SOF timing, and how they shape USB Device firmware design.
BIOS Setup là gì: từ màn hình xanh cổ điển đến HII và NVRAM hiện đại
BIOS Setup hiện đại xây trên HII: VFR, VarStore, NVRAM. Tại sao thêm field vào giữa struct phá hỏng hệ thống và cách debug setting không lưu được.
Bốn loại Transfer dưới góc nhìn firmware
Khi nào dùng Interrupt, Bulk, Control hay Isochronous? Vai trò và ảnh hưởng của bInterval, SOF timing đến việc thiết kế USB Device.
BDS Phase: từ Protocol đến OS Loader
BDS là nơi firmware chuyển từ 'dựng driver' sang 'chọn OS'. ConnectAll, BootOrder, Device Path resolution và tại sao boot option biến mất sau khi clone disk.
What is ACPI: why firmware shouldn't power off by toggling a GPIO
Why shouldn't firmware toggle a GPIO to power off? ACPI is the contract firmware writes and the OS reads: tables, AML, power states, and debugging broken sleep and wake.
DXE Phase: Drivers, Protocols, and reading logs when nothing runs
Deep dive into DXE: dispatcher, DEPEX, Driver Binding, protocol database, and how to use serial log, POST codes, and UEFI Shell to debug real failures.
What is BIOS Setup: from the classic blue screen to HII and modern NVRAM
Modern BIOS Setup is built on HII: VFR, VarStore, NVRAM. Why adding a field in the middle of a struct can break a system, and how to debug settings that don't persist.
SMM in UEFI: System Management Mode from a debug perspective
SMM is not a linear boot phase but an isolated execution mode. SMI triggers, SMRAM, handler timing, SmmReadyToLock, and debugging SetVariable that silently fails.
ACPIとは: firmwareがGPIOをトグルして電源を切ってはいけない理由
なぜfirmwareがGPIOトグルで電源を落としてはいけないのか。ACPIはfirmwareが書きOSが読む契約: テーブル、AML、電力状態、スリープ/ウェイクのデバッグ。
DXEフェーズ: ドライバー、Protocolと何も動かないときのログの読み方
DXEの深掘り: dispatcher、DEPEX、Driver Binding、protocolデータベース。シリアルログ、POST code、UEFI Shellで実際の障害をデバッグする方法。
BIOS Setupとは: クラシックな青い画面からHIIと現代のNVRAMまで
現代のBIOS SetupはHII上に構築されている: VFR、VarStore、NVRAM。structの途中にフィールドを追加するとなぜ壊れるか、保存されない設定のデバッグ。
UEFIのSMM: デバッグ視点からのSystem Management Mode
SMMは分離された実行モード。SMIトリガー、SMRAM、SmmReadyToLock、そしてSetVariableがサイレントに失敗するデバッグ方法。
DXE Phase: Driver, Protocol và cách đọc log khi mọi thứ không chạy
Deep dive vào DXE phase: dispatcher, DEPEX, Driver Binding, protocol database, kèm cách dùng serial log, POST code và UEFI Shell để debug thực tế.
SMM Architecture Overview
A practical overview of SMM, SMI handling, SMRAM/MMRAM, save state, lock timing, and firmware debug flow.
SMMアーキテクチャの全体像
SMM、SMI、SMRAM/MMRAM、Save State、lock timing、firmware debug flowを実務目線で整理します。
SMM Architecture Overview
Tổng quan sâu về SMM: SMI, Save State, SMRAM/MMRAM, dispatcher, handler timing, runtime path, security và debug playbook.
PEI Phase: khi firmware tự dựng RAM trước khi có RAM
PEI: cần RAM để chạy code nhưng cần code để init RAM. Giải pháp là Cache-As-RAM. PPI, HOB và tại sao lỗi DXE đôi khi bắt nguồn từ PEI.
Starting a series on USB Device on STM32
A journey through USB knowledge, from theory to a real project on STM32G0: from protocol fundamentals to a working composite device firmware.
Mở đầu series về USB Device trên STM32
Hành trình tổng hợp lại kiến thức USB từ lý thuyết cho đến thực hành với project thực tế trên STM32G0.
Flash STM32G0: Linker Script, EEPROM Emulation và Dual Bank
Từ linker script chia vùng Flash, erase/write API, tại sao single-bank freeze, đến nguyên lý EEPROM emulation trên STM32G0 dual bank.
How are BIOS and UEFI different?
Why does everyone say 'go into BIOS' when modern machines use UEFI? Covers BIOS, UEFI, boot flow, Secure Boot, Boot#### and how firmware builds the system before the OS runs.
BIOSとUEFIはどこが違うのか?
現代のマシンがUEFIを使っているのに「BIOSに入る」と言い続けるのはなぜか。BIOS・UEFI・ブートフロー・Secure Boot・Boot####の解説。
BIOS và UEFI khác nhau như thế nào?
Vì sao ai cũng nói 'vào BIOS' dù máy hiện nay dùng UEFI? Bài viết giải thích BIOS, UEFI, boot flow, Secure Boot, Boot#### và cách firmware dựng hệ thống trước khi OS chạy.
UEFI Boot Flow: từ Reset Vector đến ExitBootServices
Không phải học để thuộc tên phase. Học boot flow để biết máy đang chết ở đâu, và debug theo hướng nào: từ SEC đến Runtime.
UEFI Boot Flow: from Reset Vector to ExitBootServices
Not memorizing phase names — learning boot flow to know where a machine is dying and which direction to debug. From SEC through Runtime, a map for real failure modes.
UEFIブートフロー: リセットベクターからExitBootServicesまで
マシンがどこで死んでいるかを知りデバッグするためにブートフローを学ぶ。SECからRuntimeまでの実際の障害モードへの地図。
Boot Manager là gì?
Giải thích sâu UEFI Boot Manager trong BDS: cách đọc BootNext, BootOrder, Boot####, LoadImage, StartImage, fallback boot, lỗi boot sai thứ tự và checklist debug.
What is the BDS to TSL Handoff?
Explains the BDS to TSL handoff in BIOS/UEFI: BootOrder, Boot####, Device Path, ConnectController, LoadImage, and StartImage.
What is Driver Binding Flow?
Explains UEFI DXE Driver Binding Flow: Supported, Start, Stop, ConnectController, protocol ownership, and debugging bind failures.
What is the DXE Dispatcher?
Explains the DXE Dispatcher in BIOS/UEFI: DEPEX, protocol dependencies, FV discovery, and how to debug a driver that never runs.
What Is the Firmware Execution Flow?
A practical overview of the UEFI firmware execution flow from reset vector, SEC, PEI, DXE, BDS, TSL to runtime debugging.
What Is the PEI to DXE Handoff?
Explains the PEI to DXE handoff, HOB list, DXE IPL, discovered memory, and common cases where DXE does not start.
What Is the Reset Vector?
Explains the reset vector in firmware, where the CPU starts after reset, and how to debug the earliest boot code.
What Is Runtime After ExitBootServices?
Explains firmware state after ExitBootServices: Boot Services are gone, while Runtime Services remain.
What Is the Runtime Phase?
Explains the UEFI Runtime Phase: the firmware parts that still matter after the OS takes control.
What Is the SEC Phase?
Explains the UEFI SEC phase, temporary RAM, cache-as-RAM, SEC to PEI handoff, and early firmware debugging points.
What Is TSL?
Explains TSL in UEFI: when the boot loader runs, still uses Boot Services, and prepares for ExitBootServices.
What is SPI flash in BIOS firmware?
Explains SPI flash in BIOS firmware: flash chip, descriptor, regions, BIOS region, NVRAM, FV layout, update flow, and wrong-image debugging.
HII Architecture Overview in UEFI
A practical map of HII: drivers, package lists, HII Database, Setup Browser, ConfigAccess, and variable storage.
HII Save, Callback, and Reset Flow in BIOS Setup
UEFI HII save flow: browser state, callback actions, RouteConfig, SetVariable, ActionRequest, reset handling, and save debugging.
HII/VFR Element Cheat Sheet for BIOS Setup
VFR/HII cheat sheet: FormSet, Form, Question, OneOf, CheckBox, VarStore, DefaultStore, SuppressIf, GrayOutIf, and setup debugging.
PCI/PCIe Architecture Overview
Explains PCI/PCIe architecture for firmware work: BDF, config space, BAR, bridges, enumeration, and missing-device debug.
BDS to TSL Handoffとは?
BIOS/UEFIのBDS to TSL handoffを説明します。BootOrder、Boot####、Device Path、ConnectController、LoadImage、StartImageを扱います。
Driver Binding Flowとは?
UEFI DXEのDriver Binding Flowを説明します。Supported、Start、Stop、ConnectController、protocol ownership、bind失敗時のdebugを扱います。
DXE Dispatcherとは?
BIOS/UEFIのDXE Dispatcherを説明します。DEPEX、protocol dependency、FV discovery、driverが実行されない場合のdebug観点を扱います。
Firmware Execution Flow とは何か
UEFI firmware の実行フローを reset vector, SEC, PEI, DXE, BDS, TSL, runtime まで実務目線で整理します。
PEI to DXE Handoff とは何か
PEI から DXE への handoff、HOB list、DXE IPL、discovered memory、DXE が開始しない時の見方を整理します。
Reset Vector とは何か
Reset vector の意味、reset 後に CPU がどこから実行を始めるか、early boot debug の見方を整理します。
ExitBootServices後のRuntimeとは何か
ExitBootServices後のfirmware状態を、Boot Services終了とRuntime Services継続から説明します。
Runtime Phaseとは何か
UEFIのRuntime Phaseを、OSが制御を受け取った後も残るfirmware機能として説明します。
SEC Phase とは何か
UEFI の SEC phase、temporary RAM、cache-as-RAM、SEC から PEI への handoff と debug 観点を整理します。
TSLとは何か
UEFIのTSLを、OSローダーの実行、Boot Servicesの利用、ExitBootServices準備という流れで説明します。
BIOS firmwareにおけるSPI Flashとは
BIOS firmwareのSPI Flash、flash chip、descriptor、regions、BIOS Region、NVRAM、FV layout、update flow、image取り違えのdebugを整理します。
UEFI HII Architecture Overview
HIIの全体像: driver、package list、HII Database、Setup Browser、ConfigAccess、variable storageを整理します。
HIIのSave、Callback、Resetの流れ
UEFI HIIのSave flowを、browser state、callback action、RouteConfig、SetVariable、ActionRequest、reset処理から整理する。
HII/VFR要素のチートシート
VFR/HIIの主要要素を、FormSet、Form、Question、OneOf、CheckBox、VarStore、DefaultStore、SuppressIf、GrayOutIfから整理する。
PCI/PCIe Architecture Overview
PCI/PCIe architectureをfirmware視点で整理します。BDF、config space、BAR、bridge、enumeration、device missing debugを扱います。
_CID trong ACPI là gì?
Giải thích _CID trong ACPI: Compatible ID, driver fallback, PNP/ACPI ID matching, khác _HID, quan hệ _UID/_STA/_CRS và debug driver bind sai.
DBG2 trong ACPI là gì?
Giải thích DBG2 trong ACPI: Debug Port Table 2, mô tả debug devices, UART/USB debug, address, namespace path, SPCR khác gì và debug port không chạy.
_DSM trong ACPI là gì?
Giải thích _DSM trong ACPI: Device Specific Method, UUID/function, _DSD khác gì, driver property, vendor extension và debug method sai.
FADT là gì?
Giải thích FADT trong ACPI: Fixed ACPI Description Table, FACP, DSDT/FACS pointer, PM profile, reset register, flags và debug sleep/power lỗi.
_HID trong ACPI là gì?
Giải thích _HID trong ACPI: Hardware ID, PNP ID, ACPI ID, device matching, OS driver binding, _CID/_UID liên quan và debug device không bind driver.
MADT trong ACPI là gì?
Giải thích MADT trong ACPI: Multiple APIC Description Table, APIC/GIC interrupt topology, CPU entries, IOAPIC, IRQ override và debug boot SMP/interrupt lỗi.
RSDP là gì?
Giải thích RSDP trong ACPI: Root System Description Pointer, cách OS tìm XSDT/RSDT, checksum, revision, UEFI handoff và debug ACPI không load.
SPCR trong ACPI là gì?
Giải thích SPCR trong ACPI: Serial Port Console Redirection table, UART debug console, address, baud rate, interrupt, early console và debug log không ra.
_STA trong ACPI là gì?
Giải thích _STA trong ACPI: trạng thái present/enabled/functioning của device, bit mask, driver enumeration, hotplug, _HID/_CRS liên quan và debug device bị ẩn.
_UID trong ACPI là gì?
Giải thích _UID trong ACPI: Unique ID, phân biệt nhiều device cùng _HID/_CID, instance identity, stable ID, driver mapping và debug nhầm device.
XSDT là gì?
Giải thích XSDT trong ACPI: bảng danh sách ACPI table 64-bit, khác RSDT, checksum, table entries, FADT/DSDT/SSDT chain và debug table missing.
ACPI Hardware Overview là gì?
Giải thích ACPI trong phần cứng BIOS/UEFI: table, AML, namespace, DSDT/SSDT, GPIO, EC, power state và cách debug OS không nhận thiết bị.
ACPI Method là gì?
Giải thích ACPI Method trong BIOS/UEFI: control method AML, arguments, return value, _STA, _CRS, _DSM, serialization và debug AE_AML lỗi.
ACPI Table Types là gì?
Giải thích các loại ACPI Table trong BIOS/UEFI: RSDP, XSDT, FADT, DSDT, SSDT, MADT, MCFG, SPCR, DBG2, TPM2 và cách debug table lỗi.
AML là gì?
Giải thích AML trong ACPI: bytecode từ ASL, ACPI interpreter, namespace object, method execution, OperationRegion và cách debug bằng iasl/acpiexec.
EC Handshake là gì?
Giải thích EC Handshake trong ACPI/BIOS: IBF, OBF, command/data port, query event, _Qxx, timeout, SCI/GPE và debug battery/fan/hotkey lỗi.
GPIO trong ACPI là gì?
Giải thích GPIO trong ACPI: GpioIo, GpioInt, _CRS, _DSD, polarity, pull, wake, debounce, GPIO controller và debug OS không nhận interrupt.
PCIe Enumeration trong firmware là gì?
Giải thích PCIe Enumeration trong BIOS/UEFI và ACPI: bus/device/function, root bridge, MCFG, _CRS, BAR, bridge window và debug device không hiện.
Power Sequence trong ACPI là gì?
Giải thích Power Sequence trong BIOS/UEFI và ACPI: power rail, clock, reset, GPIO, _PS0/_PS3, _PR0/_PR3, delay và debug device không lên.
SMBIOS Type 0-4 là gì?
Giải thích SMBIOS Type 0-4 trong BIOS/UEFI: BIOS info, system, baseboard, chassis, processor, DMI table và debug inventory sai trong OS.
SMBIOS Type 17 là gì?
Giải thích SMBIOS Type 17 trong BIOS/UEFI: Memory Device, DIMM slot, size, speed, serial, part number, locator và debug RAM inventory sai.
SMBIOS Type 19-20 là gì?
Giải thích SMBIOS Type 19-20 trong BIOS/UEFI: Memory Array Mapped Address, Device Mapped Address, address range và debug RAM map sai.
USB Init DXE là gì?
Giải thích USB Init DXE trong BIOS/UEFI: xHCI, USB host controller, root hub, enumeration, handoff, ACPI, boot keyboard và debug USB không nhận.
Boot#### là gì?
Giải thích sâu UEFI Boot####: EFI_LOAD_OPTION, attributes, description, device path, optional data, BootOrder tham chiếu, lỗi duplicate entry và checklist debug.
BootCurrent là gì?
Giải thích sâu UEFI BootCurrent: boot option hiện tại, quan hệ với BootOrder, BootNext, Boot####, BDS timing, OS debug, lỗi BootCurrent sai và checklist debug.
BootNext là gì?
Giải thích sâu UEFI BootNext: one-time boot, quan hệ với BootOrder và Boot####, capsule update, recovery boot, lỗi boot loop và checklist debug.
BootOrder là gì?
Giải thích sâu UEFI BootOrder: thứ tự boot, quan hệ với Boot####, BootNext, BootCurrent, SetVariable, lỗi boot sai thứ tự, OS tự sửa BootOrder và checklist debug.
EFI_LOAD_OPTION là gì?
Giải thích sâu EFI_LOAD_OPTION trong UEFI: format bên trong Boot####, attributes, FilePathListLength, Description, Device Path, OptionalData, parser bug và checklist debug.
EFI System Partition là gì?
Giải thích sâu EFI System Partition trong UEFI: ESP, FAT32, đường dẫn \EFI\..., bootloader .efi, Boot#### device path, fallback boot, lỗi missing ESP và checklist debug.
Fallback Boot Path là gì?
Giải thích sâu UEFI Fallback Boot Path: \EFI\BOOT\BOOTX64.EFI, removable media boot, fallback khi BootOrder fail, Secure Boot, nhiều architecture và checklist debug.
Removable Media Boot là gì?
Giải thích sâu UEFI Removable Media Boot: USB boot, fallback path, ESP/FAT, BOOTX64.EFI, BootNext, Fast Boot, Secure Boot và checklist debug.
ASSERT là gì?
Giải thích ASSERT trong BIOS/UEFI: ASSERT, ASSERT_EFI_ERROR, debug build, release build, invariant, dead loop, breakpoint và cách dùng không phá flow.
Boot Failure Checklist: BIOS/UEFI boot fail thì kiểm tra gì?
Checklist debug boot failure trong BIOS/UEFI: xác định phase chết, POST code, serial log, PEI, DXE, BDS, TSL, runtime và root cause.
Debug Level là gì?
Giải thích debug level trong BIOS/UEFI: DEBUG_ERROR, DEBUG_WARN, DEBUG_INFO, DEBUG_VERBOSE, mask log, filter log và cách chọn mức log khi debug.
Firmware Debug Overview: debug BIOS/UEFI nên bắt đầu từ đâu?
Tổng quan cách debug BIOS/UEFI theo phase: reset, SEC, PEI, DXE, BDS, TSL, runtime, log, POST code, shell và checklist root cause.
DXE Dependency Checklist: driver không chạy thì kiểm tra gì?
Checklist debug DXE dependency trong BIOS/UEFI: DEPEX, protocol dependency, FV discovery, dispatcher, architectural protocol và driver không chạy.
Memory Map Debug là gì?
Checklist debug UEFI Memory Map: GetMemoryMap, descriptor, memory type, runtime region, ExitBootServices, MapKey và lỗi OS crash sau boot.
PEI Fail Checklist: BIOS/UEFI chết ở PEI thì kiểm tra gì?
Checklist debug PEI fail trong BIOS/UEFI: memory init, PEIM, PPI, HOB, FV HOB, DXE IPL, boot mode và lỗi không vào DXE.
POST Code là gì?
Giải thích POST Code trong BIOS/UEFI: checkpoint early boot, port 0x80, debug card, phase mapping, boot hang, reset loop và cách đọc đúng.
S3 Resume Debug là gì?
Checklist debug S3 resume trong BIOS/UEFI: ACPI S3, BootScript, SMM, ACPI NVS, wake source, memory restore, device state và resume hang.
Serial Log là gì?
Giải thích Serial Log trong BIOS/UEFI: UART, DEBUG log, baud rate, early serial, PEI/DXE/BDS/TSL log, capture log và debug boot fail.
UEFI Shell Commands: debug BIOS/UEFI nên dùng lệnh nào?
Checklist UEFI Shell commands để debug BIOS/UEFI: map, fs0, dh, drivers, devtree, connect, dmpstore, bcfg, memmap và đọc root cause.
Device Path Node là gì?
Giải thích sâu UEFI Device Path Node: cấu trúc Type/SubType/Length, node chain, End node, Boot#### device path, HD/FilePath/PCI/USB node, lỗi parse sai và checklist debug.
DevicePathToText là gì?
Giải thích sâu DevicePathToText trong UEFI: chuyển Device Path binary sang text, debug Boot####, HD/FilePath/PCI/USB node, text vs raw, lỗi parse sai và checklist debug.
FilePath Device Path Node là gì?
Giải thích sâu FilePath Device Path Node trong UEFI: File(...) node, đường dẫn .efi trong ESP, Boot####, fallback path, CHAR16 path, lỗi file not found và checklist debug.
HD Device Path Node là gì?
Giải thích HD Device Path Node trong UEFI: mô tả partition/ESP, GPT signature, Boot#### device path, clone disk stale path, FilePath node, lỗi boot sai partition và checklist.
PCI Device Path Node là gì?
Giải thích sâu PCI Device Path Node trong UEFI: PciRoot/Pci node, Device/Function, controller path, Boot####, NVMe/SATA/USB path, lỗi đổi slot và checklist debug.
USB Device Path Node là gì?
Giải thích sâu USB Device Path Node trong UEFI: USB node, port/interface, USB mass storage boot, fallback path, Fast Boot, xHCI, removable media và checklist debug.
DEC trong EDK II là gì?
Giải thích DEC trong EDK II: package declaration, Includes, LibraryClasses, Guids, Protocols, Ppis, PCD token space và lỗi dependency.
DEPEX trong EDK II là gì?
Giải thích DEPEX trong EDK II: dependency expression, PEI/DXE dispatch, Protocol/PPI dependency, TRUE, AND/OR/NOT và lỗi driver không chạy.
DSC trong EDK II là gì?
Giải thích DSC trong EDK II: platform build description, Components, LibraryClasses, PCD override, build target, SKU/arch và lỗi module không build.
DXE Driver trong EDK II là gì?
Giải thích DXE Driver trong EDK II: module type, entry point, DEPEX, Driver Binding, Supported/Start/Stop, protocol install và debug driver không bind.
EDK2 Module là gì?
Giải thích EDK2 Module: INF, module type, source files, LibraryClass, PCD, DEPEX, DSC/FDF, build output và cách debug module không chạy.
EDK II Package là gì?
Giải thích EDK II Package: DEC, Include, Library, Drivers, public contract, package boundary, module reuse, DSC/FDF và cách debug lỗi package.
EDK II Platform là gì?
Giải thích EDK II Platform: board package, DSC/FDF, flash layout, PCD override, library mapping, silicon/board split và debug platform build.
FDF trong EDK II là gì?
Giải thích FDF trong EDK II: firmware image layout, FD, FV, FFS, sections, module placement, flash map, capsule và lỗi build pass nhưng image thiếu driver.
INF trong EDK II là gì?
Giải thích INF trong EDK II: Defines, Sources, Packages, LibraryClasses, Protocols, PCD, DEPEX, module type, entry point và lỗi build/dispatch.
LibraryClass trong EDK II là gì?
Giải thích LibraryClass trong EDK II: contract API, library instance, INF, DEC, DSC mapping, phase-specific libs và lỗi build pass nhưng log mất.
PCD trong EDK II là gì?
Giải thích PCD trong EDK II: FixedAtBuild, FeatureFlag, Dynamic, token space, DEC/DSC/INF, PcdLib, build report và lỗi config sai.
UEFI Application trong EDK II là gì?
Giải thích UEFI Application trong EDK II: module type, entry point, Shell app, LoadImage/StartImage, argv, protocols, file system và debug app không chạy.
BDS to TSL Handoff là gì?
Giải thích BDS to TSL handoff trong BIOS/UEFI: BootOrder, Boot####, Device Path, ConnectController, LoadImage, StartImage và debug boot fail.
Driver Binding Flow là gì?
Giải thích Driver Binding Flow trong UEFI DXE: Supported, Start, Stop, ConnectController, protocol ownership và debug driver không bind.
DXE Dispatcher là gì?
Giải thích DXE Dispatcher trong BIOS/UEFI: DXE Core dispatch driver theo DEPEX, protocol dependency, FV discovery và cách debug driver không chạy.
Firmware Flow Overview là gì?
Tổng quan firmware flow trong BIOS/UEFI: reset vector, SEC, PEI, DXE, BDS, ExitBootServices, runtime và cách debug theo phase.
PEI to DXE Handoff là gì?
Giải thích PEI to DXE handoff trong BIOS/UEFI: HOB list, DXE IPL, memory discovery, FV HOB, stack migration và debug lỗi không vào DXE.
Reset Vector là gì?
Giải thích reset vector trong BIOS/UEFI: CPU bắt đầu chạy firmware từ đâu, flash mapping, SEC handoff, lỗi early boot và cách debug.
Runtime after ExitBootServices là gì?
Giải thích Runtime after ExitBootServices trong UEFI: Boot Services bị tắt, Runtime Services còn lại, memory map, SetVirtualAddressMap và debug OS handoff.
Runtime Phase là gì?
Giải thích Runtime Phase trong BIOS/UEFI: Runtime Services, runtime variables, SetVirtualAddressMap, ACPI, SMM, capsule update và debug lỗi trong OS.
SEC Phase là gì?
Giải thích SEC Phase trong BIOS/UEFI: môi trường thực thi tối thiểu, temporary RAM, cache-as-RAM, SEC handoff sang PEI và debug early boot.
TSL là gì?
Giải thích TSL trong BIOS/UEFI: giai đoạn OS loader chạy sau BDS, còn dùng Boot Services, chuẩn bị kernel và gọi ExitBootServices.
BIOS Region là gì?
Giải thích BIOS Region trong SPI Flash: vùng chứa UEFI firmware, FV, NVRAM, boot block, update scope, region offset và debug flash sai.
DEPEX Section là gì?
Giải thích DEPEX Section trong firmware image: PEI/DXE dependency section, FFS packing, dispatcher evaluation, missing provider và debug entry không chạy.
FFS File là gì?
Giải thích FFS File trong UEFI firmware image: FILE_GUID, file type, FV, sections, PEIM/DXE driver packing và debug module không có trong BIOS.
FFS Section là gì?
Giải thích FFS Section trong UEFI firmware image: PE32, TE, DEPEX, UI, VERSION, RAW, GUIDED, COMPRESS và debug driver có FFS nhưng không chạy.
Flash Descriptor trong BIOS là gì?
Giải thích Flash Descriptor trong BIOS: region map, quyền đọc ghi, BIOS/ME/GbE regions, lock policy, update tool lỗi và debug flash sai vùng.
PE32 Section là gì?
Giải thích PE32 Section trong UEFI firmware image: PE/COFF executable, entry point, relocation, machine type, security verify và debug load fail.
SPI Flash trong BIOS là gì?
Giải thích SPI Flash trong BIOS: flash chip, regions, descriptor, BIOS region, NVRAM, firmware volumes, update flow và cách debug image sai.
TE Image là gì?
Giải thích TE Image trong UEFI firmware image: Terse Executable, PE32 rút gọn, header, relocation, FDF rule, size tối ưu và debug load fail.
BIOS Setup trong UEFI/HII là gì?
Giải thích BIOS Setup trong UEFI/HII: giao diện cấu hình firmware, HII Database, Setup Browser, VFR/IFR, VarStore, NVRAM, defaults và debug.
CheckBox trong VFR/UEFI HII là gì?
Giải thích CheckBox trong VFR/UEFI HII: control boolean, true/false value, default, QuestionId, VarStore, callback, reset flag và debug save sai.
ConfigAccess Protocol trong UEFI HII là gì?
Giải thích ConfigAccess Protocol trong UEFI HII: ExtractConfig, RouteConfig, Callback, QuestionId, Browser state, VarStore và debug save/callback lỗi.
DefaultStore trong UEFI HII/VFR là gì?
Giải thích DefaultStore trong UEFI HII/VFR: nhóm default cho BIOS Setup, standard/manufacturing default, question default, VarStore và debug load default sai.
Form trong UEFI HII/VFR là gì?
Giải thích Form trong UEFI HII/VFR: một page trong BIOS Setup, FormId, title, goto, question, label, FormSet, IFR và debug page/goto sai.
Form Package trong HII/UEFI là gì?
Giải thích Form Package trong HII/UEFI: package chứa IFR formset, form, question, opcode, liên hệ VFR, Setup Browser và debug form không hiện.
FormSet trong UEFI HII/VFR là gì?
Giải thích FormSet trong UEFI HII/VFR: nhóm form của BIOS Setup, GUID, class GUID, title/help, varstore, defaultstore, Setup Browser và debug page không hiện.
GrayOutIf trong VFR/UEFI HII là gì?
Giải thích GrayOutIf trong VFR/UEFI HII: điều kiện làm xám item trong BIOS Setup, expression, QuestionRef, refresh, IFR dump và debug option không sửa được.
HII trong UEFI là gì?
Giải thích HII trong UEFI: Human Interface Infrastructure, database, package, form, string, VFR/IFR, Setup Browser, ConfigAccess và debug Setup.
HII Architecture Overview trong UEFI là gì?
Giải thích tổng quan HII trong UEFI: HII Database, package list, form, string, IFR, VFR, Setup Browser, ConfigAccess và NVRAM variable.
HII Database trong UEFI là gì?
Giải thích HII Database trong UEFI: nơi lưu HII package list, form/string package, HII handle, publish/update/remove package và debug menu không hiện.
HII Package List trong UEFI là gì?
Giải thích HII Package List trong UEFI: container của form/string/image package, PackageListGuid, HII handle, Add/Remove/Update và debug package thiếu.
HII Save, Callback và Reset Flow trong BIOS Setup
Giải thích flow Save, Callback và Reset trong UEFI HII: Browser state, Callback action, RouteConfig, SetVariable, ActionRequest và debug save/reset lỗi.
HII/VFR Element Cheat Sheet trong BIOS Setup
Cheat sheet các phần tử VFR/HII trong BIOS Setup: formset, form, question, oneof, checkbox, varstore, default, suppressif, grayoutif và debug.
IFR trong UEFI HII là gì?
Giải thích IFR trong UEFI HII: bytecode từ VFR, formset/form/question opcode, varstore, default, suppressif/grayoutif, dump IFR và debug Setup.
OneOf trong VFR/UEFI HII là gì?
Giải thích OneOf trong VFR/UEFI HII: control chọn một giá trị, option value, default, QuestionId, VarStore, callback và debug dropdown save sai.
Question trong VFR/UEFI HII là gì?
Giải thích Question trong VFR/UEFI HII: control có value trong BIOS Setup, QuestionId, prompt/help, varstore, flags, callback, default và debug save sai.
Setup Browser trong UEFI HII là gì?
Giải thích Setup Browser trong UEFI HII: thành phần render BIOS Setup từ HII Database, IFR, String Package, ConfigAccess, save flow và debug UI lỗi.
String Package trong HII/UEFI là gì?
Giải thích String Package trong HII/UEFI: string token, .uni, đa ngôn ngữ, prompt/help/title, HII handle, update string và debug text ???.
SuppressIf trong VFR/UEFI HII là gì?
Giải thích SuppressIf trong VFR/UEFI HII: điều kiện ẩn item/block trong BIOS Setup, expression, questionref, refresh, IFR dump và debug option biến mất.
UNI file trong EDK2/HII là gì?
Giải thích UNI file trong EDK2/HII: file chứa string token đa ngôn ngữ, #string, #language, generated token, build, VFR reference và debug text lỗi.
VarStore trong UEFI HII/VFR là gì?
Giải thích VarStore trong UEFI HII/VFR: storage cho BIOS Setup question, VarStoreId, name/GUID, VarOffset, struct layout, NVRAM và debug save sai.
VFR trong EDK2/HII là gì?
Giải thích VFR trong EDK2/HII: source mô tả BIOS Setup form, formset, form, question, varstore, oneof, checkbox, condition và debug IFR.
ConvertPointer là gì?
Giải thích ConvertPointer trong UEFI Runtime Services: virtual address change event, runtime pointers, SetVirtualAddressMap và debug page fault.
EFI_MEMORY_TYPE là gì?
Giải thích EFI_MEMORY_TYPE trong UEFI Memory Map: loader code/data, boot services, runtime services, ACPI, MMIO và debug ExitBootServices.
EfiBootServicesData là gì?
Giải thích EfiBootServicesData trong UEFI Memory Map: Boot Services pool/page data, reclaim sau ExitBootServices, MapKey và debug memory leak.
EfiRuntimeServicesData là gì?
Giải thích EfiRuntimeServicesData trong UEFI Memory Map: runtime data, EFI_MEMORY_RUNTIME, SetVirtualAddressMap, ConvertPointer và debug variable crash.
Memory Map Key là gì?
Giải thích Memory Map Key trong UEFI: GetMemoryMap, MapKey, ExitBootServices, memory map thay đổi, retry flow và debug EFI_INVALID_PARAMETER.
SetVirtualAddressMap là gì?
Giải thích SetVirtualAddressMap trong UEFI: runtime virtual mapping, VirtualStart, EFI_MEMORY_RUNTIME, ConvertPointer và debug runtime service crash.
BAR trong PCIe là gì?
Giải thích BAR trong PCIe: Base Address Register, MMIO/I/O BAR, 32-bit/64-bit BAR, prefetchable, sizing, resource allocation và debug MMIO fail.
BDF trong PCIe là gì?
Giải thích BDF trong PCIe: Bus Device Function, địa chỉ thiết bị, enumeration, bridge bus number, multi-function device và debug device mất.
Bridge Window trong PCIe là gì?
Giải thích Bridge Window trong PCIe: memory window, prefetchable window, I/O window, bus number, BAR forwarding và debug endpoint sau bridge mất.
Class Code trong PCI là gì?
Giải thích PCI Class Code: Base Class, Subclass, Prog IF, generic driver matching, storage/network/bridge class và debug driver bind sai.
MMIO là gì?
Giải thích MMIO trong PCIe/firmware: memory-mapped I/O, BAR mapping, cache attribute, ordering, bridge window và debug register read fail.
PCI/PCIe Architecture Overview
Giải thích PCI/PCIe Architecture cho firmware engineer: bus/device/function, config space, BAR, bridge, root complex, enumeration và debug thiết bị mất.
PCI Bus Driver là gì?
Giải thích PCI Bus Driver trong UEFI: scan bus, enumerate device, assign BAR resource, create PciIo handles và debug driver không bind.
PCI Configuration Space là gì?
Giải thích PCI Configuration Space: Vendor ID, Class Code, BAR, Command Register, capabilities, ECAM và debug config read/write trong firmware.
PCI I/O Protocol là gì?
Giải thích EFI_PCI_IO_PROTOCOL trong UEFI: access PCI config, BAR/MMIO, attributes, DMA Map/Unmap, GetLocation và debug driver PCI.
PCI Option ROM là gì?
Giải thích PCI Option ROM trong BIOS/UEFI: expansion ROM BAR, legacy OpROM, UEFI driver image, loading policy, Secure Boot và debug boot device.
PCI Resource Allocation là gì?
Giải thích PCI Resource Allocation trong UEFI: BAR sizing, MMIO/I/O aperture, bridge windows, Above 4G, allocation fail và debug BAR bằng 0.
PCI Root Bridge là gì?
Giải thích PCI Root Bridge trong UEFI: root bridge, host bridge, segment, bus range, resource aperture, PciRootBridgeIo và debug OS mất PCIe.
Vendor ID và Device ID trong PCIe là gì?
Giải thích Vendor ID và Device ID trong PCIe: nhận diện thiết bị, config space, driver matching, subsystem ID và debug device/driver sai.
BIOS Guard là gì?
Giải thích BIOS Guard trong firmware: verified flash update, policy engine, BIOS region protection, anti-rollback và debug update bị chặn.
Boot Guard là gì?
Giải thích Intel Boot Guard trong firmware: ACM, Boot Policy Manifest, Key Manifest, verified boot, measured boot, fuses và debug boot fail.
db và dbx khác nhau thế nào?
Giải thích db và dbx trong Secure Boot: allowed database, forbidden database, revoke image, certificate/hash, dbx update và debug boot bị chặn.
DRTM là gì?
Giải thích DRTM trong firmware security: Dynamic Root of Trust for Measurement, late launch, TPM PCR, TXT/SKINIT và debug attestation.
Flash Protection là gì?
Giải thích Flash Protection trong firmware: SPI protected range, BIOS region lock, descriptor permission, write-protect policy và debug ghi flash fail.
Image Authentication là gì?
Giải thích Image Authentication trong UEFI: PE/COFF signature, Secure Boot db/dbx, hash, certificate chain và debug EFI_SECURITY_VIOLATION.
Secure Boot Setup Mode là gì?
Giải thích Secure Boot Setup Mode trong UEFI: khi chưa có PK, enrollment keys, custom mode, factory keys và debug Secure Boot chưa enforce.
Secure Boot User Mode là gì?
Giải thích Secure Boot User Mode trong UEFI: PK active, key update authority, db/dbx enforcement, Custom Mode và debug Security Violation.
SRTM là gì?
Giải thích SRTM trong firmware security: Static Root of Trust for Measurement, TPM PCR, event log, measured boot và debug PCR mismatch.
TPM Event Log là gì?
Giải thích TPM Event Log trong measured boot: PCR replay, event type, digest bank, Secure Boot events, BitLocker và debug attestation.
Authenticated Variable là gì?
Giải thích Authenticated Variable trong UEFI: thuộc tính xác thực, time-based update, Secure Boot keys, SetVariable fail và debug NVRAM.
BIOS Lock là gì?
Giải thích BIOS Lock trong firmware: BIOSWE, BLE, SMM_BWP, SPI flash protection, write-protect flow và debug tool ghi BIOS bị chặn.
Measured Boot là gì?
Giải thích Measured Boot trong firmware: TPM PCR, event log, extend measurement, boot chain, attestation và debug PCR khác nhau.
Secure Boot là gì?
Giải thích Secure Boot trong UEFI: PK, KEK, db, dbx, image verification, boot chain, shim, Option ROM và debug EFI_SECURITY_VIOLATION.
Secure Boot Keys là gì?
Giải thích Secure Boot Keys trong UEFI: PK, KEK, db, dbx, Setup Mode, User Mode, key enrollment, dbx update và debug boot bị chặn.
SMM Lock là gì?
Giải thích SMM Lock trong firmware: SMRAM lock, SMMReadyToLock, EndOfDxe, SMI handler, BIOS write protect và debug SMM chưa khóa.
TPM PCR là gì?
Giải thích TPM PCR trong firmware: PCR extend, PCR bank, event log, quote, seal/unseal, BitLocker, attestation và debug PCR mismatch.
bcfg là gì?
Giải thích sâu lệnh bcfg trong UEFI Shell: xem, thêm, xóa, đổi thứ tự Boot####, sửa BootOrder, tạo boot entry trỏ ESP/file .efi, rủi ro NVRAM và checklist debug.
connect là gì?
Giải thích lệnh connect trong UEFI Shell: connect controller, driver binding, connect -r, USB/NVMe/SATA boot, fs0 và debug.
devtree là gì?
Giải thích lệnh devtree trong UEFI Shell: xem cây thiết bị, controller/child handles, driver binding, USB/NVMe/SATA boot và debug.
dh là gì?
Giải thích lệnh dh trong UEFI Shell: xem handles, protocols, Device Path, Block I/O, Simple FS, Driver Binding và debug boot.
dmpstore là gì?
Giải thích sâu lệnh dmpstore trong UEFI Shell: đọc BootOrder, BootNext, BootCurrent, Boot####, Secure Boot variables, dump NVRAM, rủi ro ghi/xóa variable và checklist debug.
drivers là gì?
Giải thích lệnh drivers trong UEFI Shell: xem UEFI drivers, Driver Binding, controller binding, USB/NVMe/FAT driver và debug boot.
fs0 là gì?
Giải thích sâu fs0 trong UEFI Shell: filesystem mapping, cách vào ESP/USB, dir/cd/type, kiểm tra BOOTX64.EFI, nhiều ESP, fs0 thay đổi, bcfg boot add và checklist debug.
map là gì?
Giải thích sâu lệnh map trong UEFI Shell: fs0:, blk0:, map -r, filesystem mappings, ESP, USB boot, Device Path, connect -r và checklist debug.
memmap là gì?
Giải thích lệnh memmap trong UEFI Shell: xem UEFI memory map, memory type, runtime regions, ExitBootServices và debug boot.
startup.nsh là gì?
Giải thích startup.nsh trong UEFI Shell: script tự động, map/fs0, chạy EFI app, update flow, boot loop và debug an toàn.
UEFI Shell là gì?
Giải thích sâu UEFI Shell cho firmware engineer: cách dùng map, fs0:, dmpstore, bcfg, dh, devtree, drivers, connect, memmap, startup.nsh để debug boot, NVRAM, ESP và Device Path.
EFI_ALREADY_STARTED là gì?
Giải thích EFI_ALREADY_STARTED trong UEFI: driver/controller đã start, ConnectController, DriverBinding Start, state machine và debug.
EFI_BUFFER_TOO_SMALL là gì?
Giải thích EFI_BUFFER_TOO_SMALL trong UEFI: buffer thiếu, query-size pattern, GetVariable, GetMemoryMap, GetInfo và debug retry.
EFI_ERROR là gì?
Giải thích EFI_ERROR(Status) trong UEFI: macro kiểm tra lỗi, khác EFI_SUCCESS, expected status, anti-pattern và debug root cause.
EFI_INVALID_PARAMETER là gì?
Giải thích EFI_INVALID_PARAMETER trong UEFI: input sai, NULL pointer, size/attribute lỗi, Device Path hỏng và cách debug caller.
EFI_NOT_FOUND là gì?
Giải thích EFI_NOT_FOUND trong UEFI: không tìm thấy variable, protocol, file, Device Path, Boot#### và cách debug root cause.
EFI_OUT_OF_RESOURCES là gì?
Giải thích EFI_OUT_OF_RESOURCES trong UEFI: thiếu memory, variable store full, handle/protocol allocation fail và cách debug leak.
EFI_SECURITY_VIOLATION là gì?
Giải thích EFI_SECURITY_VIOLATION trong UEFI: Secure Boot, image verification, db/dbx, authenticated variable, capsule và debug policy.
EFI_STATUS là gì?
Giải thích EFI_STATUS trong UEFI: mã trả về, EFI_ERROR, status expected, status lỗi, cách log, propagate và debug root cause.
EFI_SUCCESS là gì?
Giải thích EFI_SUCCESS trong UEFI: status thành công, cách kiểm tra, khi nào không đủ, log đúng, anti-pattern và debug flow.
EFI_UNSUPPORTED là gì?
Giải thích EFI_UNSUPPORTED trong UEFI: feature không hỗ trợ, protocol/driver không match, DriverBinding Supported và cách debug.
Firmware Status Debug Overview
Tổng quan cách debug EFI_STATUS trong firmware: đọc status, trace call path, phân nhóm lỗi, log đúng và tìm root cause.
Flash, EEPROM và RAM trong STM32 khác nhau thế nào?
Giải thích Flash, EEPROM và RAM trong STM32: vùng nhớ, dữ liệu mất hay giữ sau reset, EEPROM emulation, linker script và debug lỗi lưu cấu hình.
Flash Operations trong STM32 là gì?
Giải thích thao tác Flash trong STM32: unlock, erase, program, verify, lock, page/sector, alignment, HAL error và debug ghi Flash an toàn.
Reset Vector và Bootloader trong STM32 là gì?
Quick note ngắn gọn về Reset Vector, vector table, Initial MSP, Reset_Handler, VTOR và flow bootloader jump vào application trên STM32/Cortex-M.
Startup Code STM32 là gì?
Giải thích Startup Code trong STM32: vector table, Reset_Handler, copy .data, clear .bss, SystemInit, main và debug lỗi trước main.
How UEFI boot options are structured
A practical overview of UEFI boot option architecture: Boot####, BootOrder, BootNext, BootCurrent, EFI_LOAD_OPTION, BDS flow, and debugging.
UEFI Boot Option Architectureとは
UEFIのboot option構造を、Boot####、BootOrder、BootNext、BootCurrent、EFI_LOAD_OPTION、BDS flow、デバッグ観点から整理します。
BIOS Setup Variable là gì?
Giải thích sâu BIOS Setup Variable: HII VarStore, Setup struct, offset mapping, defaults, migration, SMM policy và checklist debug setting không lưu.
Clear CMOS là gì?
Giải thích sâu Clear CMOS trong BIOS/UEFI: RTC/CMOS reset, load defaults, NVRAM variable store, BootOrder, Secure Boot keys và checklist debug.
CMOS là gì?
Giải thích sâu CMOS trong BIOS/UEFI: RTC CMOS RAM, port 0x70/0x71, checksum, pin CMOS, clear CMOS, legacy setting và checklist debug.
CMOS Battery là gì?
Giải thích sâu CMOS Battery trong BIOS/UEFI: pin RTC, mất giờ, CMOS checksum error, clear CMOS, NVRAM khác CMOS và checklist debug.
CMOS khác NVRAM như thế nào?
Phân biệt sâu CMOS và NVRAM trong BIOS/UEFI: RTC CMOS, UEFI variable store, clear CMOS, mất giờ, mất setup, BootOrder và debug checklist.
NVRAM là gì?
Giải thích sâu NVRAM trong BIOS/UEFI: variable store, flash-backed storage, Boot####, Setup variable, failure pattern và checklist debug.
NVRAM Corruption là gì?
Giải thích sâu NVRAM corruption: variable store hỏng, partial write, reclaim/FTW fail, checksum/version mismatch, symptom và checklist debug.
RTC CMOS là gì?
Giải thích sâu RTC CMOS trong BIOS/UEFI: Real-Time Clock, CMOS RAM, BCD/binary, update-in-progress, SetTime/GetTime, pin và checklist debug.
UEFI Variable Store là gì?
Giải thích sâu UEFI Variable Store: layout, variable record, state, reclaim, fault tolerant write, SMM path, lỗi full/corrupt và debug checklist.
UEFI Variable Attribute là gì?
Giải thích sâu UEFI variable attributes: NV, BS, RT, authenticated write, append write, runtime visibility, policy bug và checklist debug.
Variable Store Full là gì?
Giải thích sâu lỗi UEFI variable store full: NVRAM đầy, reclaim fail, Boot#### leak, dbx update fail, status code và checklist debug.
Boot Option Architecture là gì?
Giải thích sâu UEFI Boot Option Architecture: Boot####, BootOrder, BootNext, BootCurrent, EFI_LOAD_OPTION, BDS flow, boot option leak và checklist debug.
EndOfDxe là gì?
Giải thích sâu EndOfDxe: mốc kết thúc DXE, lock policy, SMM timing, driver dispatch, ReadyToLock, failure pattern và checklist debug.
MMRAM là gì?
MMRAM là vùng memory bảo vệ cho Management Mode. Hiểu descriptor, state, lock timing, buffer validation và lỗi debug thường gặp.
SMM Communication là gì?
Giải thích sâu SMM Communication: CommBuffer, GUID/function contract, MMRAM validation, runtime path, failure pattern và debug checklist.
SMM Driver là gì?
Giải thích sâu SMM driver: load vào SMRAM/MMRAM, entry point, protocol SMM, handler registration, DEPEX, lock timing và debug checklist.
SMM Handler là gì?
Giải thích sâu SMM handler: register timing, dispatch context, input validation, runtime safety, failure pattern và checklist debug.
SmmReadyToLock là gì?
Giải thích sâu SmmReadyToLock: điểm lock SMM, handler timing, SMRAM/MMRAM protection, policy freeze, failure pattern và checklist debug.
SMM Save State là gì?
Giải thích sâu SMM Save State: CPU context khi vào SMM, register, I/O trap, SW SMI debug, exception trace và checklist phân tích lỗi.
SMM Vulnerability là gì?
Giải thích sâu SMM vulnerability: CommBuffer, MMRAM overlap, nested pointer, TOCTOU, policy bypass, flash/NVRAM risk và checklist review.
SMRAM là gì?
Giải thích sâu SMRAM: vùng nhớ bảo vệ của SMM, lifecycle open/closed/locked, TSEG, Save State, failure pattern và debug checklist.
SW SMI là gì?
Giải thích sâu SW SMI: APM port, command ID, SmmSwDispatch2, Save State, security risk, failure pattern và checklist debug.