BIOS Development Code Flashing Debugging

What is needed to develop the BIOS for a new motherboard?

  • BIOS reference source code for CPU and CRB board
  • UEFI source code
  • External design specification and reference manuals
  • Hardware Schematics
  • CRB board

What is needed in BIOS development workplace?

  • Code Editor
  • Compiler toolchain
  • UEFI source build toolchain
  • BIOS image building tools
  • Chipset specific external driver binaries
  • Chipset firmwares
  • Image flashing utilities
  • SPI flashing kit
  • Reference board
  • CPU/SoC
  • DIMM
  • Add-on cards
  • Power supply
  • Disk drives
  • USB drive
  • ITP probe and other USB debugger
  • POST LED or POST card
  • Serial port adapter
  • Multimeters
  • Screw driver kit
  • Bus analyzers and CRO(optional)

How a BIOS binary can be loaded/programmed?

Host based application can be used to program the binary or captule file into the flash chip. Host based applications run on UEFI shell/DOS/OS environment.

Alternatively SPI flash proframming tools like Dediprog can be used to upload the file to SPI chip. SPI flash tools are stanalone mostly used in ddevelpment when host based are not yet developet. These tools are also necessary when BIOS is corrupted and cannot complete POST.

How to debug BIOS source code?

  1. Serial print and debug print statements can be added in source code
  2. POST code and POST LEDs are mainly used where BIOS executes in assembly files
  3. USB debugger can be used for source level debugging
  4. ITP/In-Target Probe can be used to inspect various hardware registers
  5. It also gives full source level debugging.

Similar topics related to this section

BIOS, Booting, PC Firmare, Topics Index, Primary Base Memory, High, Extended Memory and IO Ports, Memory Mapped IO Layout, IO Port Ranges, Interrupt Lines, x86 Registers, Real Mode Memory Segmentation, Power On Self Test, H/W Inits, Software Interrupts, Keyboard Module and int16, VGA Display int10, Disk Subsystem int13, BIOS Config Screen, BIOS Development Code Flashing Debugging, Plug-n-Play, PCI card PnP Mechanism, PCI Config Address Space, PCI MMIO IO IRQ perations, BIOS Boot OPROMs Drivers, Disk Cylinder Head Sectors, MBR Disk Partitions, MBR and File Allocation Table Partitions, Boot Loader, Grand Universal Bootloader Linux Booting, NT Loader Windows Booting, Embedded System Booting, Unified Extensible Firmware Interface Stack, UEFI Development And Advantages, References and Links,