T23x Boot Configuration Table

The Boot Configuration Table (BCT) is a set of platform-specific configuration data that is consumed by a boot component. BootROM and MB1 consume BCT in binary form, and this form is generated by using parsing device tree source configuration files, with a .dts file extension, by tegrabct_v2. Starting from T23x, the config file format changed from legacy <parameter> = <value>; to Device Tree Source (DTS) format for following reasons:

  • DTS format supports recursive inclusion and the overriding of properties though inclusion.

  • DTC can covert DTS/DTSI to DTB, which is a tree-like format, and is easier to parse than the current config file format.

BR-BCT

BR-BCT is loaded by BootROM from storage in coldboot mode and by MB1 in recovery mode. BootROM is main consumer of this BCT. However, some fields are also consumed by MB1 and CPU-BL.

MB1-BCT

MB1 BCT is loaded by MB1 from storage in coldboot mode or over USB (in RCM mode), is primarily consumed by MB1, and is constructed from the following configuration files:

  • Pinmux and GPIO Configuration

  • Common Prod configuration

  • Controller Prod configuration

  • Pad Voltage DT binding

  • PMIC configuration

  • Storage Device Configuration

  • UPHY Lane Configuration

  • OEM-FW Ratchet Configuration

  • BootROM Reset PMIC Configuration

  • Miscellaneous Configuration

Mem-BCT

Although Mem-BCT is similar to MB1-BCT in terms of loading and usage, Mem-BCT primarily contains SDRAM parameters that are used to initialize MC and EMC. Refer to SDRAM Configuration for more information.

MB2-BCT

MB2 BCT is loaded by MB1 from storage (in coldboot mode) or over USB (in RCM mode). It is primarily consumed by MB2 and is constructed out of the following configuration files:

  • GPIO Interrupt Mapping Configuration

  • Security Configuration

  • MB2-BCT Misc configuration

Important Notes for Customized Carrier Board

MB2 Configuration Changes in the BCT is required for customized Carrier Board in case the carrier board does not have EEPROM.

  • Modifying for Carrier Board Without EEPROM

    EEPROM is an optional component for a customized carrier board. If the carrier board is designed without an EEPROM, the following modifications will be needed on the MB2 BCT file: Linux_for_Tegra/bootloader/tegra234-mb2-bct-common.dtsi

    - cvb_eeprom_read_size = <0x100>
    + cvb_eeprom_read_size = <0x0>