summaryrefslogtreecommitdiff
path: root/Documentation/vendorcode/cavium/bdk.md
blob: 5f6721f03777b132d778c4f15e280629d31e643e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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.