Xen双系统GPU资源分配过程

描述

i.MX8 有两个 GPU,型号为 GC7000,这两个 GPU 可以同时分给 Kernel 系统,也可以同时分给 Android 系统,也可以一边分配一个,Kernel 和 Android 一边分配一个 GPU 的方式目前 NXP 给出的系统已经实现,为了让大家熟悉 GPU 的分配过程,我们分配两个 GPU 给 Android 系统。

一、对 Dom0 里面的 Kernel 系统资源进行分配

Kernel gpu_3d0 资源分配

DomU 系统的资源是 Dom0 通过 passthrough 的方式实现的 ,把 kernel 里面的 gpu_3d0 通过 passthrough 的方式分配给 DomU 的 Android 系统

/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-dom0.dts

资源分配

对 rsrcs 里面的内容做修改 :

资源分配

对 smmu 里面的内容做修改

资源分配

二、对 Dom0 里面的 Android 系统资源进行分配

在 Android 系统增加 gpu_3d0 资源

android_build/vendor/nxp-opensource/kernel_imxarch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts :

资源分配

三、修改 rootfs 配置文件

对 rootfs 里面的 /etc/xen/domu-imx8qm-mek-androidauto.cfg 进行修改

1. 修改 dtdev

资源分配

2. 在 IOMEM 里面增加 GPU_3d0 :

资源分配

3. 添加 GPU_3d0 的 IRQ Value

IRQ Value 相对于 DTS 里面的 IRQ Value 偏移了 +32

资源分配

四、 GPU 资源分配测

通过 gpu_top 命令查看 GPU 分配情况 ,有两个 GPU 分配给了 Android 系统 :

资源分配

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分