Design
Debugging InsydeH2O UEFI BIOS with Lauterbach’s TRACE32
Lauterbach GmbH now supports “InsydeH2O” UEFI BIOS from Insyde® Software with its TRACE32 Debugger tools for Intel’s x86 architecture. A new extension to Lauterbach JTAG debuggers allows comprehensive debugging of InsydeH2O systems with TRACE32.
ThisBoth companies, Insyde Software and Lauterbach GmbH, work close together to make the BIOS and the debugger understand each other. The goal is to provide the best UEFI development environment and debugging solutions to BIOS developers.
The Unified Extensible Firmware Interface (UEFI) is the successor of the traditional PC BIOS. It manages the reset and startup of the system plus the selection and booting of an OS. In contrary to the standard BIOS, UEFI is capable of dynamically loading and starting drivers. Those drivers then do no longer need to be installed into the OS, instead they're instantly available after boot.
UEFI runs through different phases while booting the system. Starting from a security phase, it runs into an initialization phase (PEI), which already loads some basic modules. The following “driver execution environment” (DXE) then is responsible to load dynamic drivers that are necessary to run this particular system. After this, the boot device selection (BDS) passes control to the appropriate OS.
Lauterbach's new extension to TRACE32 now supports the debugging of UEFI BIOS implementations through all phases with special windows, functions and prepared scripts. TRACE32 is aware of multicore environments, allowing the UEFI debugging even on SMP systems. All features are just based on the symbol information, there's no need for special debugging software or drivers on the target system.
Especially within the PEI and DXE phases, TRACE32 shows special windows with all created PEI modules or all loaded DXE drivers. Detailed analysis of the UEFI framework is possible, looking at contents of the firmware volumes, or dependencies of the modules. The debugger provides a special mechanism that allows starting debugging a PEI module, or a DXE driver right from its entry point, shortly after it is loaded. After this, debugging through the BDS, and subsequently into the starting OS is supported by the debugger.
Using TRACE32 to debug x86/Atom systems gives you the ability to debug your UEFI BIOS in a
very comfortable way, supporting each of its phases. Start debugging right from the reset vector
and continue debugging even into the OS and its applications. Now there's a continuous
solution without any debug gaps.