ZHCACZ9 august 2023 AM625 , AM625-Q1 , AM625SIP
克隆以下存储库:
要以最小配置准备 DAS U-Boot,需要移动、修改或创建一些文件。
使用以下命令将最小设备树从 TI U-Boot 移至 DAS U-Boot。
$ mv path/to/TI_U_BOOT/arch/arm/dts/k3-am625-base.dts path/to/U_BOOT/arch/arm/dts/
$ mv path/to/TI_U_BOOT/arch/arm/dts/k3-am625-r5-base.dts path/to/U_BOOT/arch/arm/dts/
$ mv path/to/TI_U_BOOT/arch/arm/dts/k3-am625-base-u-boot.dts path/to/U_BOOT/arch/arm/dts/
$ mv path/to/TI_U_BOOT/arch/arm/dts/k3-am62x-sk-ddr4-600MTs.dtsi path/to/U_BOOT/arch/arm/dts/
这允许构建脚本访问最小设备树。但是,如果默认 DDR 配置不适用于您的定制电路板,则还必须使用 TI 的 SysConfig 对此进行更新,并使用以下对 k3-am625-r5-base.dts 的更改对此进行更新。
- #include "k3-am62x-sk-ddr4-600MTs.dtsi"
+ #include "k3-am62x-{DDR_CONFIG}.dtsi"
通过修改以下节点,确保在 k3-am625-base.dts 中明确说明了 SoC 可访问的可用 DDR RAM 容量。
memory@80000000 {
device_type = "memory";
/* 1 GB RAM (Reduced for Accessibility)*/
reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
};
务必检查设备树,并确保引脚排列与正在测试的定制电路板匹配。如果需要修改设备树中的任何引脚排列,请参阅 TI 的 SysConfig。
对于使用最小 RAM 容量 (512MB) 的器件,在节 2.3中生成的 U-Boot 映像可能与诸如 OPTEE 之类的关键元件重叠。为防止这种情况导致启动失败,请在 include/configs/am62x_evm.h 中添加以下定义。此更新可保护带有这些关键元件的存储器区域不被 U-Boot 映像覆盖。
#define CFG_PRAM (250 * 1024)
U-Boot 现在支持使用 defconfig 片段。为了正确访问新的最小设备树,请在 path/to/U_BOOT/board/ti/am62x 下创建以下两个 defconfig 片段。
am62x_base_r5.config
CONFIG_DEFAULT_DEVICE_TREE="k3-am625-r5-base"
am62x_base_a53.configCONFIG_DEFAULT_DEVICE_TREE="k3-am625-base"
CONFIG_SPL_OF_LIST="k3-am625-base"
CONFIG_OF_LIST="k3-am625-base"
为了使启动过程能够访问这一新的设备树,必须修改 am62x 的环境文件。修改 path/to/U_BOOT/board/ti/am62x/am62x.env 中的以下行。
- default_device_tree=ti/k3-am625-sk.dtb
+ default_device_tree=ti/k3-am625-base.dtb
为了减小生成的 U-Boot 映像的大小,可以禁用未使用的驱动器以获得最小配置。这主要适用于 R5 配置,因为它存储在受限的 SRAM 中,而 A53 驱动器存储在 DDR 中。如果需要其中任一缩减,请对在步骤 2 中创建的 defconfig 片段应用以下更改。由于最小设备树不会访问 SK/EVM 使用的驱动器,因此此步骤是可选的,不需要使用最小配置进行启动。
am62x_base_r5.config+ # CONFIG_SYS_MALLOC_LEN is not set
+ # CONFIG_SYS_MALLOC_F_LEN is not set
+ # CONFIG_NR_DRAM_BANKS is not set
+ # CONFIG_SF_DEFAULT_SPEED is not set
+ # CONFIG_SF_DEFAULT_MODE is not set
+ # CONFIG_ENV_SIZE is not set
+ # CONFIG_GPIO is not set
+ # CONFIG_DM_GPIO is not set
+ # CONFIG_SPL_DM_SPI is not set
+ # CONFIG_SPL_DRIVERS_MISC is not set
+ # CONFIG_SPL_SPI_FLASH_SUPPORT is not set
+ # CONFIG_SPL_SPI is not set
+ # CONFIG_I2C is not set
+ # CONFIG_INPUT is not set
+ # CONFIG_NET is not set
+ # CONFIG_BOOTDEV_ETH is not set
+ # CONFIG_SPL_DM_SPI_FLASH is not set
+ # CONFIG_SPL_RAM_SUPPORT is not set
+ # CONFIG_SPL_RAM_DEVICE is not set
+ # CONFIG_SPL_SPI_FLASH_TINY is not set
+ # CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT is not set
+ # CONFIG_SPL_SPI_LOAD is not set
+ # CONFIG_SYS_SPI_U_BOOT_OFFS is not set
+ # CONFIG_SPL_YMODEM_SUPPORT is not set
+ # CONFIG_CMD_ASKENV is not set
+ # CONFIG_CMD_DFU is not set
+ # CONFIG_SPL_MULTI_DTB_FIT is not set
+ # CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION is not set
+ # CONFIG_SYS_RELOC_GD_ENV_ADDR is not set
+ # CONFIG_DA8XX_GPIO is not set
+ # CONFIG_SPL_MISC is not set
+ # CONFIG_ESM_K3 is not set
+ # CONFIG_MMC_SDHCI_ADMA is not set
+ # CONFIG_SPL_MMC_SDHCI_ADMA is not set
+ # CONFIG_DM_SPI is not set
+ # CONFIG_DM_SPI_FLASH is not set
+ # CONFIG_SPI is not set
+ # CONFIG_SPI_FLASH is not set
+ # CONFIG_SPI_FLASH_SFDP_SUPPORT is not set
+ # CONFIG_SPI_FLASH_SOFT_RESET is not set
+ # CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT is not set
+ # CONFIG_SPI_FLASH_SPANSION is not set
+ # CONFIG_SPI_FLASH_S28HX_T is not set
+ # CONFIG_CADENCE_QSPI is not set
+ # CONFIG_PINCTRL is not set
+ # CONFIG_PINCTRL_GENERIC is not set
+ # CONFIG_SPL_PINCTRL is not set
+ # CONFIG_SPL_PINCTRL_GENERIC is not set
+ # CONFIG_PINCTRL_SINGLE is not set
am62x_base_a53.config+ # CONFIG_SPL_DM_SPI is not set
+ # CONFIG_SPL_SPI_FLASH_SUPPORT is not set
+ # CONFIG_SPL_SPI is not set
+ # CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
+ # CONFIG_SPL_DM_SPI_FLASH is not set
+ # CONFIG_SPL_SPI_FLASH_TINY is not set
+ # CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT is not set
+ # CONFIG_SPL_SPI_LOAD is not set
+ # CONFIG_SYS_SPI_U_BOOT_OFFS is not set
+ # CONFIG_SPL_YMODEM_SUPPORT is not set
+ # CONFIG_SYS_BOOTM_LEN is not set
+ # CONFIG_CMD_PXE is not set
+ # CONFIG_CMD_DHCP is not set
+ # CONFIG_NET_RANDOM_ETHADDR is not set
+ # CONFIG_DMA_CHANNELS is not set
+ # CONFIG_TI_K3_NAVSS_UDMA is not set
+ # CONFIG_MMC_SDHCI_ADMA is not set
+ # CONFIG_SPL_MMC_SDHCI_ADMA is not set
+ # CONFIG_DM_SPI_FLASH is not set
+ # CONFIG_SPI_FLASH is not set
+ # CONFIG_SPI_FLASH_SFDP_SUPPORT is not set
+ # CONFIG_SPI_FLASH_SOFT_RESET is not set
+ # CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT is not set
+ # CONFIG_SPI_FLASH_SPANSION is not set
+ # CONFIG_SPI_FLASH_S28HX_T is not set
+ # CONFIG_NET is not set
+ # CONFIG_PHY_TI_DP83867 is not set
+ # CONFIG_PHY_FIXED is not set
+ # CONFIG_TI_AM65_CPSW_NUSS is not set
+ # CONFIG_PHY is not set
+ # CONFIG_SPI is not set
+ # CONFIG_DM_SPI is not set
+ # CONFIG_CADENCE_QSPI is not set
要使用 Binman 生成启动所需的二进制文件,必须创建新的 dtsi 文件并进行修改。复制用于 SK/EVM 的原始 binman 配置以实现最小平台。
$ cp path/to/U_BOOT/arch/arm/dts/k3-am625-sk-binman.dtsi path/to/U_BOOT/arch/arm/dts/k3-am625-base-binman.dtsi
在 k3-am625-base-u-boot.dtsi 中添加以下行以使用此配置。
+ #include "k3-am625-base-binman.dtsi"
将以下更改添加到刚刚创建的 k3-am625-base-binman.dtsi 中。
- #define SPL_AM625_SK_DTB "spl/dts/k3-am625-sk.dtb"
+ #define SPL_AM625_SK_DTB "spl/dts/k3-am625-base.dtb"
(可选)更改文件中的每个描述以表示基本配置。
- description = "k3-am625-sk";
+ description = "k3-am625-base";
现在已经在 U-Boot 中设置了最小配置。转到节 2.3,以生成用于启动 SoC 的二进制文件。