Nội dung liên quan
#Debug
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.
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.
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.
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 Start() in the UEFI Driver Model?
Start() is where a driver binds to a controller: open BY_DRIVER, install protocols, create child handles. Understand the cleanup fail path and dirty handle database anti-patterns.
What is Supported() in the UEFI Driver Model?
Supported() is the Driver Binding probe function. Understand return statuses, correct OpenProtocol attributes, binding anti-patterns, and tracing failures.
UEFI Driver ModelにおけるStart()とは?
Start()はドライバーがコントローラーにバインドする場所。BY_DRIVERでのopen、プロトコルのinstall、バスドライバーの子ハンドル作成。失敗時のクリーンアップとハンドルデータベースを汚すアンチパターンを解説。
UEFI Driver ModelにおけるSupported()とは?
Supported()はDriver Bindingのプローブ関数。返却ステータスの意味、正しいOpenProtocol属性、バインドを妨げるアンチパターン、失敗時のトレース方法を解説。
Start() trong UEFI Driver Model là gì?
Start() là nơi driver bind vào controller: open BY_DRIVER, install protocol, tạo child handle nếu là bus driver. Hiểu cleanup fail path và anti-pattern làm handle database bẩn.
Supported() trong UEFI Driver Model là gì?
Supported() là hàm probe của Driver Binding. Hiểu return status, OpenProtocol attribute đúng, anti-pattern làm driver không bao giờ bind và cách trace khi Supported fail.
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.
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で実際の障害をデバッグする方法。
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ế.
What is the DXE Dispatcher?
The DXE Dispatcher loads and runs drivers based on DEPEX and protocol dependencies. Understanding the dispatch loop helps debug drivers that do not run despite a clean build.
SMM Architecture Overview
A practical overview of SMM, SMI handling, SMRAM/MMRAM, save state, lock timing, and firmware debug flow.
DXE Dispatcherとは
DXE Dispatcherは、DEPEXとprotocol依存関係を見ながらDXE driverを実行する仕組みです。driverが起動しない原因分析に直結します。
SMMアーキテクチャの全体像
SMM、SMI、SMRAM/MMRAM、Save State、lock timing、firmware debug flowを実務目線で整理します。
DXE Dispatcher là gì?
DXE Dispatcher load và chạy DXE driver theo DEPEX và protocol dependency trong handle database. Hiểu dispatch loop giúp debug driver không chạy dù build pass.
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.
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.
What Is a Ring Buffer in Embedded C?
Ring buffers in embedded C, explained: head/tail, full/empty, ISR producers, task consumers, DMA circular buffers, overflow, and debugging dropped bytes.
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から整理する。
_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.
_CRS trong ACPI là gì?
Giải thích _CRS trong ACPI: Current Resource Settings, I2C/SPI/GPIO/IRQ/MMIO resource, bus descriptor, driver probe và debug resource 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.
EC OperationRegion trong ACPI là gì?
Giải thích EC OperationRegion trong ACPI: Embedded Controller region, EC RAM map, Field, _REG, _Qxx, battery/thermal/hotkey và debug EC timeout.
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.
Field trong ACPI là gì?
Giải thích Field trong ACPI: mapping bit/register trong OperationRegion, Offset, AccessType, LockRule, UpdateRule, BankField, IndexField và debug sai offset.
GPIO OperationRegion trong ACPI là gì?
Giải thích GPIO OperationRegion trong ACPI: GPIO region, Connection, Field, GpioIo/GpioInt khác gì, _REG, pin polarity và debug GPIO sai.
_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.
MCFG trong ACPI là gì?
Giải thích MCFG trong ACPI: PCIe ECAM/MMCONFIG, segment, bus range, base address, liên hệ _SEG/_BBN/_CRS và debug PCI config space lỗi.
OperationRegion trong ACPI là gì?
Giải thích OperationRegion trong ACPI: vùng truy cập SystemMemory, SystemIO, PCI config, EC, fields, _REG, AML access và debug register sai.
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.
TPM2 ACPI Table là gì?
Giải thích TPM2 ACPI table: mô tả TPM/CRB/FIFO interface, control area, start method, log event, Secure/Measured Boot và debug TPM không hiệ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 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 Namespace là gì?
Giải thích ACPI Namespace trong BIOS/UEFI: cây object, Scope, Device, Name, Method, _SB, _HID, _STA, _CRS và cách debug path 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.
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.
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.
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.
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.
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.
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.
DMA Normal vs Circular Mode trong STM32 là gì?
Giải thích DMA Normal và Circular Mode trong STM32: luồng truyền, buffer, half/full callback, UART/ADC, ring buffer và debug mất dữ liệu.
GCC Dead Code Elimination là gì?
Giải thích GCC Dead Code Elimination trong embedded C: tối ưu loại code, linker garbage collection, section, KEEP, volatile và debug hàm bị mất.
HAL_BUSY UART DMA là gì?
Giải thích HAL_BUSY khi dùng UART DMA trong STM32: HAL state, DMA callback, gState/RxState, race condition, timeout và debug không gửi được.
Producer Consumer Logging trong STM32 là gì?
Giải thích Producer Consumer Logging trong STM32: ISR/task producer, log queue, UART DMA consumer, ring buffer, drop policy và debug mất log.
Production Debug Log Macro trong STM32 là gì?
Giải thích Production Debug Log Macro trong STM32: log level, compile-time filter, module tag, zero-cost log, ISR-safe và debug release build.
UART Baudrate Time Calculation là gì?
Giải thích cách tính thời gian truyền UART từ baudrate: bit time, frame format, start/stop/parity, throughput, timeout và debug mất log.
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.
Ring Buffer trong Embedded C là gì?
Giải thích Ring Buffer trong Embedded C: head/tail, full/empty, ISR producer, task consumer, DMA circular, overflow và debug mất byte.
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.
What is the UEFI Handle Database?
The Handle Database is where DXE manages relationships between handles and protocols. Understanding it helps debug driver binding failures and missing boot devices.
UEFIのHandle Databaseとは
Handle DatabaseはDXEがhandleとprotocolの関係を管理する場所である。理解するとdriver bindingの失敗やboot deviceが現れない問題のデバッグに役立つ。
Handle Database trong UEFI là gì?
Handle Database là nơi DXE quản lý quan hệ giữa handle và protocol. Hiểu cấu trúc này giúp debug driver binding fail và boot device không xuất hiện.