From Source Metadata to Flashable BIOS ROM

How your INF / DSC / FDF becomes a BIOS ROM

When you write a .inf, .dsc or .fdf, build.exe invokes a chain of programs to parse, compile and assemble it into a flashable .fd (BIOS ROM). Select any file type below to trace its complete journey.

.inf Module

Module Description (.inf)

Defines a module's sources, package dependencies, Library Classes, PCDs and module type.

.dsc Platform

Platform Description (.dsc)

Defines which modules to build, Library Class mappings, PCD values and build options for the entire platform.

.fdf Flash Layout

Flash Layout (.fdf)

Defines the final BIOS ROM flash layout: which modules go in which FV, region sizes and offsets.

Build Pipeline: Programs invoked by build.exe

From running the build command to a BIOS ROM, here is every program called and what it does. Click any node for a detailed explanation.

Click a node for details

Program Details

← Click any program node in the pipeline

File Journey: Select a file to trace

Select INF, DSC or FDF to see every step and program involved — from first being read to becoming the final BIOS ROM.

Build Command Builder

Compose a build command and see which pipeline programs it activates.



            

How these flags map to the pipeline

  • -p selects DSC → triggers DscParser, defines the entire module set and Library mappings.
  • -a/-b/-t set arch/target/toolchain → determines which CC/Linker in tools_def.txt is used.
  • -f overrides the FDF path → changes what FdfParser reads and how GenFds assembles the ROM.
  • -m builds only this INF, skipping other [Components], but still uses full platform context.

Official EDK2 docs referenced for this page

The pipeline and naming on this page are based on the following specification chapters.