# Cavium’s BDK

## 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.

## Devicetree

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/devicetree_convert.py` can be used to convert a devicetree to a key-value array.

## Modifications

- 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

## Debugging

You can enable verbose console output in menuconfig:

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