embeddedsw 组件移植指南

基于系统设备树的构建流程

简介

用于构建 AMD embeddedsw 组件的旧方法将 .xsa 用作来自硬件人员的交接文件,并将 mdd、mld 和 mss 文件用于不同的软件配置。这使得旧方法依赖于 AMD 专属工具,如软件命令行工具 (XSCT) 和硬件软件接口 (HSI)。如果没有这些专属工具,就无法使用旧方法来编译 embeddedsw 组件。

基于系统设备树的新流程旨在通过采用开源行业标准来避免这种相依性。它使用系统设备树 CMAKE 和基于 Python 的开源工具 Lopper 来组织所需的构建系统。

系统设备树是常规 Linux 设备树的超集。与仅呈现 Linux/APU 所需硬件信息的常规 Linux 设备树不同,系统设备树以设备树格式呈现完整的硬件信息,从而为用户创造了处理更多用例的机会。它包含有关所有处理器的信息,如平台管理控制器 (PMC)、PS 管理控制器 (PSM)、实时处理单元 (RPU)、应用处理单元 (APU) 以及系统中的所有外设。要生成系统设备树,请参阅 附录 A: 使用 XSCT 生成系统设备树。

基于系统设备树的流程使用 Lopper 从系统设备树中提取所需的硬件元数据。旧方法使用 mld/mss 文件生成软件配置,现在基于 CMAKE 的基础架构通过设置 CMAKE 变量来生成所需的报头文件,用于取代旧的软件配置。在旧流程中,组件专属的信息存储在 mdd/mld/mss 文件中,而在新流程中,这些信息存储在 YAML 文件中。Python 脚本会读取这些 YAML 文件,使用 Lopper 和 CMAKE 命令配置组件的源代码,并相应地填充 BSP 专属的独立数据。由此,整个构建系统不再使用 AMD 专属文件和工具,而改为使用可用的开源基础架构。

因此有必要移植现有的 embeddedsw 独立组件和 RTOS 组件,以确保原有软件组件能够在这个基于系统设备树的流程中无缝衔接工作。文档中的章节解释了将原有 embeddedsw 驱动程序/库/应用移植到基于系统设备树的新流程所需的步骤和更改。

新增内容

以下更改是此流程的新增内容:

开源系统设备树规范大量借鉴了 Linux 设备树规范。这些规范中没有用于区分相似外设的“Device ID”(器件ID)的概念。例如,在旧流程中,如果系统中具有来自同一供应商的两个以太网 MAC,则会为每个 MAC 分配一个单独的器件 ID。器件 ID 是从 0 开始的正整数。驱动程序配置结构始终具有一个 u16 DeviceId 字段用于表示已分配的器件 ID。

扫码获取完整版 《embeddedsw 组件移植指南》

最新文章

最新文章