虚拟机下FreeRTOS访问PCIe设备的方法技术

技术编号:38036325 阅读:8 留言:0更新日期:2023-06-30 11:03
本发明专利技术涉及虚拟机下FreeRTOS访问PCIe设备的方法,包括:FreeRTOS初始化时读取PCIe配置文件;扫描PCIe设备;读取PCIe capbilitilites寄存器;通过读取BAR0/1信息配置BAR空间,获取IO空间地址范围;读取msix capabilities,通过PCIe总线描述文件中的vpci_irq_base属性来配置msi/msix中断;通过驱动程序实现包括PCIe设备的IO访问、msix中断的发送与接收在内的PCIe基本功能。本发明专利技术可以使运行在虚拟机上的FreeRTOS执行PCIe设备扫描、中断注册、IO读写等对PCIe设备的访问操作。IO读写等对PCIe设备的访问操作。IO读写等对PCIe设备的访问操作。

【技术实现步骤摘要】
虚拟机下FreeRTOS访问PCIe设备的方法


[0001]本专利技术涉及虚拟机下FreeRTOS访问功能优化
,虚拟机下FreeRTOS访问PCIe设备的方法。

技术介绍

[0002]FreeRTOS是一个实时操作系统,在IOT领域,主芯片主频较低,要求功耗较低,与系统通讯的外设大都是i2c、spi、uart等低速设备,一般不会与PCIe高速设备通讯。
[0003]但是在工控领域,主芯片主频较高,可以接受较高功耗,FreeRTOS将运行在虚拟环境(Hypervisor)下,会有大量FreeRTOS与物理PCIe设备通讯、FreeRTOS与Hypervisor虚拟出来的虚拟PCIe设备通讯的需求。
[0004]目前,在虚拟机下的FreeRTOS不支持PCIe driver,无法扫描、访问PCIe设备。

技术实现思路

[0005]为解决已有技术存在的不足,本专利技术提供了一种虚拟机下FreeRTOS访问PCIe设备的方法,包括如下步骤:
[0006]步骤S1:FreeRTOS初始化时读取PCIe配置文件;
[0007]步骤S2:根据配置文件对PCIe设备描述的属性扫描PCIe设备;
[0008]步骤S3:读取所扫描到的PCIe设备的PCIe配置空间信息;
[0009]步骤S4:通过PCIe配置空间中的BAR寄存器信息,获取需要映射的IO空间地址范围;
[0010]步骤S5:通过PCIe配置空间中的Capabilities pointer读取Capabilities信息,进而读取msix capabilities,结合步骤S1中PCIe配置文件中的PCIe总线描述文件中的vpci_irq_base属性来配置msi/msix中断;
[0011]步骤S6:通过驱动程序提供的API实现包括PCIe设备的IO访问、msix中断的发送与接收在内的PCIe基本功能。
[0012]其中,所述步骤S1中,所读取的PCIe配置文件包括PCIe总线描述、PCIe设备描述及PCIe capabilities属性。
[0013]其中,PCIe总线描述所涉及到的配置文件包括:
[0014]pci_mmconfig_base,表示PCIe总线描述文件放置的地址;
[0015]pci_mmconfig_end_bus,表示PCIe总线支持的bus个数;
[0016]pci_is_virtual,表示是否存在虚拟化PCIe设备
[0017]pci_domain,表示PCI总线域;
[0018]num_pci_devices,表示FreeRTOS需要识别的PCIe设备总数;
[0019]vpci_irq_base,表示FreeRTOS下PCIe设备使用的起始中断号。
[0020]其中,PCIe设备描述所涉及到的配置文件包括:
[0021]Type,表示PCIe设备的类别,分为桥设备、普通PCIe设备及虚拟PCIe设备;
[0022]Domain,表示PCIe设备所在域;
[0023]bdf,用以标识PCIe设备;
[0024]caps_start,表示PCIe设备capability属性起始位置;
[0025]num_caps,表示PCIe设备包含的capabilities属性个数;
[0026]num_msi_vectors,表示PCIe设备msi中断支持的个数;
[0027]msi_64bits,表示PCIe设备是否支持64位msi中断;
[0028]msi_maskable,表示PCIe设备msi是否支持mask;
[0029]num_msix_vectors,表示PCIe设备msix中断支持的个数;
[0030]msix_regIOn_size,表示PCIe设备msix regIOn大小;
[0031]msix_address,表示PCIe设备的msix地址;
[0032]BAR_mask,表示PCIe设备的BAR掩码。
[0033]其中,PCIe capabilities属性所涉及到的配置文件包括:
[0034]id,代表PCIe capabilities种类;
[0035]Start,用于标识PCIe capabilities地址;
[0036]Len,用于标识PCIe capabilities长度;
[0037]Flags,用于标识PCIe capabilities的可写属性。
[0038]其中,所述步骤S2包括:
[0039]步骤S21:通过PCIe总线描述文件,获取PCIe设备描述文件的首地址;
[0040]步骤S22:通过PCIe设备配置文件中所描述的设备首地址,遍历所有配置文件中描述的设备,通过bdf信息找到对应的PCIe设备。
[0041]其中,所述步骤S3中,获取寄存器信息后,通过PCIe设备描述文件中的caps_start与num_caps属性,获取到对应的PCIe设备的capabilities属性,从而获取到该PCIe设备的capabilities信息。
[0042]本专利技术的虚拟机下FreeRTOS访问PCIe设备的方法,可以使运行在虚拟机上的FreeRTOS执行PCIe设备扫描、中断注册、IO读写等对PCIe设备的访问操作。
附图说明
[0043]图1为本专利技术的虚拟机下FreeRTOS访问PCIe设备的方法的实现逻辑图。
具体实施方式
[0044]为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。
[0045]图1为本专利技术的虚拟机下FreeRTOS访问PCIe设备的方法的实现逻辑图,如图1所示,本专利技术通过设计一种描述PCIe设备属性的配置文件与实现一套PCie driver,从而来实现在虚拟机下,FreeRTOS访问PCIe设备。
[0046]具体的实现步骤如下:
[0047]一、FreeRTOS初始化时读取PCIe配置文件
[0048]因为FreeRTOS是物理寻址,所以只需要约定好PCIe配置文件存放位置首地址即可;其中PCIe配置文件应为虚拟机配置文件中的一部分;
[0049]配置文件包括PCIe总线描述、PCIe设备描述及PCIe capabilities属性,各自的格式及具体内容分别如下:
[0050]1、PCIe总线描述:
[0051].platform_info={
[0052].pci_mmconfig_base=0x0000000040000000,
[0053].pci_mmconfig_end_bus=0xFF,
[0054].pci_is_virtual=1,
[0055].pci_domain=1,
[0056].num_pci本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机下FreeRTOS访问PCIe设备的方法,其特征在于,包括如下步骤:步骤S1:FreeRTOS初始化时读取PCIe配置文件;步骤S2:根据配置文件对PCIe设备描述的属性扫描PCIe设备;步骤S3:读取所扫描到的PCIe设备的PCIe配置空间信息;步骤S4:通过PCIe配置空间中的BAR寄存器信息,获取需要映射的IO空间地址范围;步骤S5:通过PCIe配置空间中的Capabilities pointer读取Capabilities信息,进而读取msix capabilities,结合步骤S1中PCIe配置文件中的PCIe总线描述文件中的vpci_irq_base属性来配置msi/msix中断;步骤S6:通过驱动程序提供的API实现包括PCIe设备的IO访问、msix中断的发送与接收在内的PCIe基本功能。2.如权利要求1所述的虚拟机下FreeRTOS访问PCIe设备的方法,其特征在于:所述步骤S1中,所读取的PCIe配置文件包括PCIe总线描述、PCIe设备描述及PCIe capabilities属性。3.如权利要求2所述的虚拟机下FreeRTOS访问PCIe设备的方法,其特征在于:PCIe总线描述所涉及到的配置文件包括:pci_mmconfig_base,表示PCIe总线描述文件放置的地址;pci_mmconfig_end_bus,表示PCIe总线支持的bus个数;pci_is_virtual,表示是否存在虚拟化PCIe设备pci_domain,表示PCI总线域;num_pci_devices,表示FreeRTOS需要识别的PCIe设备总数;vpci_irq_base,表示FreeRTOS下PCIe设备使用的起始中断号。4.如权利要求2所述的虚拟机下FreeRTOS访问PCIe设备的方法,其特征在于:PCIe设备描述所涉及到的配置文件包括:Type,表示PCIe设备的类别,分为桥设备、普通PCIe设备及虚拟PCIe设备;Do...

【专利技术属性】
技术研发人员:黄磊崔彦召张云飞齐璇战茅
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1