Cavium’s BDK


A part of Cavium’s BDK can be found in src/vendorcode/cavium/bdk. It does the DRAM init in romstage and the PCIe, QLM, SLI, PHY, BGX, SATA init in ramstage.


The BDK does use it’s own devicetree, as coreboot’s devicetree isn’t compatible. The devicetree stores key-value pairs (see bdk-devicetree.h for implementation details), where the key and the value are stored as strings.

The key-value pairs must be advertised in romstage and ramstage using the bdk_config_set_fdt() method.

The tool util/cavium/ can be used to convert a devicetree to a key-value array.


  • The BDK has been modified to compile under coreboot’s toolchain.
  • Removed FDT devicetree support.
  • Dropped files that aren’t required for SoC bringup
  • Added Kconfig values for verbose console output


You can enable verbose console output in menuconfig:

Go to Chipset, BDK and enable one or multiple stages.