在 Android Auto P9.0.0_GA2.1.0 BSP 上添加新的共享内存区域
在新一代的 iMX8QM 和 iMX8QXP BSP 中,它实现了硬件分区以划分资源和内存区域。默认的 Android Auto BSP 给出了 M4 和 A 内核之间共享内存的示例,这被用于 RPMSG。
这是一个为具有 Android Auto P9.0.0_GA2.1.0 BSP 的 iMX8QXP MEK 板添加一个新的共享内存的示例,可以被 M4,Uboot 和 Linux 内核所访问。新的共享内存区域从 0xF6000000 到0xFDFFFFFF,总计 128MB,它也覆盖 RPMSG 区域。RPMSG 共享内存移至 0xF6000000〜0xF6BFFFFF,总计 12MB。
vendor_nxp_fsl-proprietary_uboot-firmware.patch
用于主板文件的 SCFW 补丁程序,用于将旧的共享存储区(0x90000000〜0x90BFFFFF)更改为新的共享存储区(0xF6000000〜0xFDFFFFFF)。将此补丁程序应用于 android_build / vendor/ nxp / fsl-proprietary / uboot-firmware / imx8q_car / board-imx8qxp.c,打完补丁后,将此文 件 复 制 到 SCFW 移 植 工 具 包 中 , 并 构 建 一 个 新 的 SCFW 映 像 , 将 其 放入“android_build/vendor/nxp/fsl-proprietary/uboot-firmware/imx8q_car/mx8qx-scfw-tcm.bin”中。
vendor_nxp-opensource_uboot-imx.patch
这是用于映射共享内存区域的 Uboot 补丁,如果 Uboot 不需要访问这些内存,则不需要此补丁。
vendor_nxp-opensource_kernel_imx.patch
这是映射共享内存区域的内核补丁。
注意:不应更改 VPU 保留的内存地址,否则会影响 VPU 的功能。因此,新的保留内存区域已移至 0xF600000〜0xFDFFFFFF。
vendor_nxp_mcu-sdk-auto_SDK_MEK-MIMX8QX.patch
RPMSG 地址的 M4 补丁将其从 0x90000000 更改为 0xF6000000。
注意:
1.在此示例中,我们将两个共享内存区域放在一起,这样就不会拆分 Linux 中使用的内存区域。进行此修改的另一个原因是 SCFW 中的内存区域计数限制。
2.由于 RPMSG 共享内存已从 0x90000000 移至 0xF6000000,使用共享内存的 M4 代码也应更改。
2019-07-29 的更新:
当在 Uboot 中使用“ #define PHYS_SDRAM_2_SIZE 0x0”时,它将创建一个 0 大小的内存区域,这将影响 Uboot 共享内存补丁。可以通过添加“ uboot_imx8_cpu.patch”避免这种问题。
点击查看完整版
|