设备驱动初始化方法、直接存储访问方法及相关装置制造方法及图纸

技术编号:27470466 阅读:10 留言:0更新日期:2021-03-02 17:35
本申请实施例提供一种设备驱动初始化方法、直接存储访问方法及相关装置,其中设备驱动初始化方法包括:获取加密虚拟机用于设备驱动初始化的初始化信息,初始化信息至少包括进行设备驱动初始化的DMA设备的设备标识;基于初始化信息生成配置信息,配置信息至少包括所述设备标识,加密虚拟机的虚拟机标识,以及加密内存页面对应的HPA,其中所述虚拟机标识与所述加密虚拟机的密钥相绑定;将所述配置信息发送给与所述DMA设备连接的IOMMU,以使IOMMU在与所述设备标识对应的数据项中配置所述虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。本申请实施例能为DMA设备能够直接、高效的与加密内存空间进行数据传输提供基础,提升DMA的传输效率。升DMA的传输效率。升DMA的传输效率。

【技术实现步骤摘要】
设备驱动初始化方法、直接存储访问方法及相关装置


[0001]本申请实施例涉及虚拟机
,具体涉及一种设备驱动初始化方法、直接存储访问方法及相关装置。

技术介绍

[0002]通过虚拟化技术(Virtualization),主机可虚拟化出多台虚拟机(Virtual Machine,VM),从而高效利用主机的硬件资源;虚拟化出的虚拟机可在物理内存中分配虚拟机内存空间,每台虚拟机的虚拟机内存空间主要用于任务消耗及支持虚拟化。
[0003]为保护虚拟机内存空间中的虚拟机数据,可进一步利用安全虚拟化技术对部分或所有虚拟机的虚拟机内存空间进行加密,其中,被加密的虚拟机内存空间可称为加密内存空间,相应的虚拟机可称为加密虚拟机;在安全虚拟化技术下,当主机连接DMA(Direct Memory Access,直接存储访问)设备时,由于加密内存空间中的虚拟机数据处于加密状态,这将导致DMA设备无法直接、高效的与加密内存空间进行数据传输,因此如何提供改进方案,以为DMA设备能够直接、高效的与加密内存空间进行数据传输提供基础,成为了本领域技术人员亟需解决的技术问题。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种设备驱动初始化方法、直接存储访问方法及相关装置,以为DMA设备能够直接、高效的与加密内存空间进行数据传输提供基础。
[0005]为实现上述目的,本申请实施例提供如下技术方案:
[0006]一种设备驱动初始化方法,应用于安全处理器,所述方法包括:
[0007]获取加密虚拟机用于设备驱动初始化的初始化信息,所述初始化信息至少包括进行设备驱动初始化的直接存储访问DMA设备的设备标识;
[0008]基于所述初始化信息生成配置信息,所述配置信息至少包括所述设备标识,所述加密虚拟机的虚拟机标识,以及所述加密虚拟机的加密内存页面对应的主机物理地址HPA;其中,所述加密内存页面中的数据以所述加密虚拟机的密钥加密,且所述虚拟机标识与所述加密虚拟机的密钥相绑定;
[0009]将所述配置信息发送给与所述DMA设备连接的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。
[0010]本申请实施例还提供一种设备驱动初始化方法,应用于输入输出内存管理单元IOMMU,所述方法包括:
[0011]获取安全处理器发送的配置信息,所述配置信息至少包括:进行设备驱动初始化的直接存储访问DMA设备的设备标识,加密虚拟机的虚拟机标识,以及所述加密虚拟机的加密内存页面对应的主机物理地址HPA;其中,所述加密内存页面中的数据以所述加密虚拟机的密钥加密,且所述虚拟机标识与所述加密虚拟机的密钥相绑定;
[0012]确定与所述DMA设备的设备标识对应的数据项;
[0013]在所述数据项中配置所述加密虚拟机的虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。
[0014]本申请实施例还提供一种直接存储访问方法,基于上述所述的设备驱动初始化方法,所述直接存储访问方法应用于输入输出内存管理单元IOMMU,包括:
[0015]获取针对直接存储访问DMA设备的DMA请求;
[0016]确定所述DMA请求对应的主机物理地址HPA;
[0017]从所述DMA设备的数据项中,确定与所述HPA对应的虚拟机标识;
[0018]将所述HPA与所述虚拟机标识相结合,形成目标HPA,所述目标HPA中的加密标识的数值设置为表示加密的第一值;
[0019]利用所述目标HPA控制内存控制器,以使内存控制器基于与所述虚拟机标识绑定的密钥,在所述HPA对应的加密内存页面进行数据传输。
[0020]本申请实施例还提供一种设备驱动初始化装置,应用于安全处理器,所述设备驱动初始化装置包括:
[0021]初始化信息获取模块,用于获取加密虚拟机用于设备驱动初始化的初始化信息,所述初始化信息至少包括进行设备驱动初始化的直接存储访问DMA设备的设备标识;
[0022]配置信息生成模块,用于基于所述初始化信息生成配置信息,所述配置信息至少包括所述设备标识,所述加密虚拟机的虚拟机标识,以及所述加密虚拟机的加密内存页面对应的主机物理地址HPA;其中,所述加密内存页面中的数据以所述加密虚拟机的密钥加密,且所述虚拟机标识与所述加密虚拟机的密钥相绑定;
[0023]配置信息发送模块,用于将所述配置信息发送给与所述DMA设备连接的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。
[0024]本申请实施例还提供一种设备驱动初始化装置,应用于输入输出内存管理单元IOMMU,所述设备驱动初始化装置包括:
[0025]配置信息获取模块,用于获取安全处理器发送的配置信息,所述配置信息至少包括:进行设备驱动初始化的直接存储访问DMA设备的设备标识,加密虚拟机的虚拟机标识,以及所述加密虚拟机的加密内存页面对应的主机物理地址HPA;其中,所述加密内存页面中的数据以所述加密虚拟机的密钥加密,且所述虚拟机标识与所述加密虚拟机的密钥相绑定;
[0026]数据项确定模块,用于确定与所述DMA设备的设备标识对应的数据项;
[0027]配置模块,用于在所述数据项中配置所述加密虚拟机的虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。
[0028]本申请实施例还提供一种直接存储访问装置,应用于输入输出内存管理单元IOMMU,所述直接存储访问装置包括:
[0029]DMA请求获取模块,用于获取针对直接存储访问DMA设备的DMA请求;
[0030]HPA确定模块,用于确定所述DMA请求对应的主机物理地址HPA;
[0031]虚拟机标识确定模块,用于从所述DMA设备的数据项中,确定与所述HPA对应的虚拟机标识;
[0032]目标HPA形成模块,用于将所述HPA与所述虚拟机标识相结合,形成目标HPA,所述目标HPA中的加密标识的数值设置为表示加密的第一值;
[0033]目标HPA利用模块,用于利用所述目标HPA控制内存控制器,以使内存控制器基于与所述虚拟机标识绑定的密钥,在所述HPA对应的加密内存页面进行数据传输。
[0034]本申请实施例还提供一种安全处理器,所述安全处理器被配置为执行如上述所述的应用于安全处理器的设备驱动初始化方法。
[0035]本申请实施例还提供一种输入输出内存管理单元IOMMU,所述IOMMU被配置为执行如上述所述的应用于IOMMU的设备驱动初始化方法,和/或,执行如上述所述的应用于IOMMU的直接存储访问方法。
[0036]本申请实施例还提供一种电子设备,包括如上述所述的安全处理器,以及如上述所述的输入输出内存管理单元IOMMU。
[0037]本申请实施例提供的设备驱动初始化方法中,安全处理器可获取加密虚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设备驱动初始化方法,其特征在于,应用于安全处理器,所述方法包括:获取加密虚拟机用于设备驱动初始化的初始化信息,所述初始化信息至少包括进行设备驱动初始化的直接存储访问DMA设备的设备标识;基于所述初始化信息生成配置信息,所述配置信息至少包括所述设备标识,所述加密虚拟机的虚拟机标识,以及所述加密虚拟机的加密内存页面对应的主机物理地址HPA;其中,所述加密内存页面中的数据以所述加密虚拟机的密钥加密,且所述虚拟机标识与所述加密虚拟机的密钥相绑定;将所述配置信息发送给与所述DMA设备连接的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。2.根据权利要求1所述的设备驱动初始化方法,其特征在于,所述初始化信息还包括:所述加密虚拟机计算的所述初始化信息的第一完整性校验数据;在基于所述初始化信息生成配置信息之前,所述方法还包括:计算所述初始化信息的第二完整性校验数据;基于所述第一完整性校验数据和所述第二完整性校验数据,校验所述初始化信息是否完整,若校验所述初始化信息完整,进入执行所述基于所述初始化信息生成配置信息的步骤。3.根据权利要求2所述的设备驱动初始化方法,其特征在于,还包括:若校验所述初始化信息不完整,向所述加密虚拟机反馈第一配置结果信息,其中,所述第一配置结果信息至少包括配置失败的应答信息,以使所述加密虚拟机确定所述DMA设备的设备驱动初始化失败。4.根据权利要求3所述的设备驱动初始化方法,其特征在于,所述第一配置结果信息还包括:所述安全处理器计算的所述第一配置结果信息对应的第三完整性校验数据,所述第三完整性校验数据用于所述加密虚拟机校验所述第一配置结果信息的完整性;其中,若所述加密虚拟机基于所述第三完整性校验数据,校验所述第一配置结果信息不完整,则所述加密虚拟机确定所述DMA设备的设备驱动初始化失败。5.根据权利要求2所述的设备驱动初始化方法,其特征在于,还包括:若所述数据项中成功配置所述虚拟机标识,向所述加密虚拟机反馈第二配置结果信息,其中,所述第二配置结果信息至少包括配置成功的应答信息,以使所述加密虚拟机确定所述DMA设备的设备驱动初始化成功。6.根据权利要求5所述的设备驱动初始化方法,其特征在于,所述第二配置结果信息还包括:所述安全处理器计算的所述第二配置结果信息对应的第四完整性校验数据,所述第四完整性校验数据用于所述加密虚拟机校验所述第二配置结果信息的完整性;其中,若所述加密虚拟机确定应答信息表示配置成功,但基于所述第四完整性校验数据校验所述第二配置结果信息不完整,则所述加密虚拟机确定所述DMA设备的设备驱动初始化失败。7.根据权利要求5所述的设备驱动初始化方法,其特征在于,所述数据项中配置所述虚拟机标识的情况包括:获取所述IOMMU发送的配置成功通知,或,在校验所述初始化信息完整且将所述配置信息发送给所述IOMMU后,默认所述数据项中成功配置所述虚拟机标识。8.根据权利要求1所述的设备驱动初始化方法,其特征在于,所述加密虚拟机的虚拟机
标识具体为所述加密虚拟机的地址空间身份标识号ASID,所述数据项具体为设备表中的设备表项DTE,其中,一项DTE用于记录IOMMU连接的一台外部设备的基本设备信息,并以外部设备的设备标识进行索引。9.根据权利要求1-8任一项所述的设备驱动初始化方法,其特征在于,所述安全处理器与所述加密虚拟机通过所述加密内存页面进行交互;其中,所述加密虚拟机运行于虚拟机模式,以虚拟机物理地址GPA访问所述内存加密内存页面,所述安全处理器运行于主机模式,以所述HPA访问所述内存加密内存页面,所述GPA与所述HPA通过嵌套页表NPT进行转换;并且,加密虚拟机通过退出虚拟机模式以进入主机模式,在主机模式下,安全处理器通过控制主机内核执行虚拟机运行指令,以返回虚拟机模式。10.一种设备驱动初始化方法,其特征在于,应用于输入输出内存管理单元IOMMU,所述方法包括:获取安全处理器发送的配置信息,所述配置信息至少包括:进行设备驱动初始化的直接存储访问DMA设备的设备标识,加密虚拟机的虚拟机标识,以及所述加密虚拟机的加密内存页面对应的主机物理地址HPA;其中,所述加密内存页面中的数据以所述加密虚拟机的密钥加密,且所述虚拟机标识与所述加密虚拟机的密钥相绑定;确定与所述DMA设备的设备标识对应的数据项;在所述数据项中配置所述加密虚拟机的虚拟机标识并建立所述虚拟机标识与所述HPA的对应关系。11.根据权利要求10所述的设备驱动初始化方法,其特征在于,所述数据项具体为设备表中的设备表项DTE,其中,一项DTE用于记录IOMMU连接的一台外部设备的基本设备信息,并以外部设备的设备标识进行索引;所述确定与所述DMA设备的设备标识对应的数据项包括:从IOMMU中的设备表...

【专利技术属性】
技术研发人员:姜新应志伟
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1