Intel® x86 coreboot/FSP Development Process

The x86 development process for coreboot is broken into the following components:

The development process has two main phases:

  1. Minimal coreboot; This phase is single threaded
  2. Adding coreboot features

Minimal coreboot

The combined steps below describe how to bring up a minimal coreboot for a system-on-a-chip (SoC) and a development board:

The initial coreboot steps are single threaded! The initial minimal FSP development is also single threaded. Progress can speed up by adding more developers after the minimal coreboot/FSP implementation reaches the payload.
  1. Get the necessary tools:
  2. Build the cross tools for i386:
  3. Get something to build:
    1. FSP 1.1 required files
    2. SoC required files
    3. Board required files
  4. Get result to start booting
  5. Early Debug
  6. Implement and debug the bootblock code
  7. Implement and debug the call to TempRamInit
  8. Enable the serial port
    1. Power on, enable and configure GPIOs for the debug serial UART
    2. Add the serial outupt support to romstage
  9. Enable coreboot/FSP debugging

Features

SoC Where Testing
Cache-as-RAM Find FSP binary: cache_as_ram.inc
Enable: FSP 1.1 TempRamInit called from cache_as_ram.inc
Disable: FSP 1.1 TempRamExit called from after_raminit.S
FindFSP: POST code 0x90 (POST_FSP_TEMP_RAM_INIT) is displayed
Enable: POST code 0x2A is displayed
Disable: CONFIG_DISPLAY_MTRRS=y, MTRRs displayed after call to TempRamExit
Board Where Testing
Serial Port SoC Support
Enable: src/soc/mainboard/<Board>/com_init.c/car_mainboard_pre_console_init
Debug serial output works
FSP Where Testing
TempRamInit FSP TempRamInit FSP binary found: POST code 0x90 (POST_FSP_TEMP_RAM_INIT) is displayed
TempRamInit successful: POST code 0x2A is displayed

Modified: 31 January 2016