ZHCACZ9 august   2023 AM625 , AM625-Q1 , AM625SIP

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2开始最小平台开发
    1. 2.1 最小平台的功能
    2. 2.2 最小平台准备
    3. 2.3 构建二进制文件
  6. 3部署说明
    1. 3.1 验证最小配置功能
  7. 4扩展最小配置
  8. 5工具和调试
    1. 5.1 常见问题
    2. 5.2 OpenOCD 调试
  9. 6未来的工作
  10. 7总结
  11. 8参考文献

最小平台准备

克隆以下存储库:

要以最小配置准备 DAS U-Boot,需要移动、修改或创建一些文件。

  1. 配置最小设备树和 DDR 配置

    使用以下命令将最小设备树从 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)
  2. 设置最小 Defconfig

    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.config
    CONFIG_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
  3. 可选:减少最小 Defconfig 大小

    为了减小生成的 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
  4. 设置 Binman

    要使用 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 的二进制文件。