.. _SD.Bootloader.T23xBCTLoaderIntro: .. include:: /content/swdocs.rsts .. spelling:: BootROM BR BCT dts coldboot CPU BL tegrabct tegrabct_v2 Mem MB1 MB2 OEM FW !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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 = ;` 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>