bdk.md
 1  # Cavium's BDK
 2  
 3  ## BDK
 4  A part of Cavium's BDK can be found in `src/vendorcode/cavium/bdk`.
 5  It does the **DRAM init** in romstage and the **PCIe**, **QLM**, **SLI**,
 6  **PHY**, **BGX**, **SATA** init in ramstage.
 7  
 8  ## Devicetree
 9  The BDK does use it's own devicetree, as coreboot's devicetree isn't
10  compatible. The devicetree stores key-value pairs (see **bdk-devicetree.h**
11  for implementation details), where the key and the value are stored as strings.
12  
13  The key-value pairs must be advertised in romstage and ramstage using the
14  `bdk_config_set_fdt()` method.
15  
16  The tool `util/cavium/devicetree_convert.py` can be used to convert a
17  devicetree to a key-value array.
18  
19  ## Modifications
20  
21  * The BDK has been modified to compile under coreboot's toolchain.
22  * Removed FDT devicetree support.
23  * Dropped files that aren't required for SoC bringup
24  * Added Kconfig values for verbose console output
25  
26  ## Debugging
27  
28  You can enable verbose console output in *menuconfig*:
29  
30  Go to **Chipset**, **BDK** and enable one or multiple stages.