本发明属于通信及计算机技术领域,尤其是涉及一种基于飞腾平台 AMD显卡系统LOGO提前显示的实现方法。
背景技术:
飞腾平台本身不集成显示芯片,一般通过在飞腾主板上插入AMD PCIE 显卡作为显示输出。对于较新的AMD PCIE显卡,由于架构上去掉了2D硬件单元等原因,无法再提供类似INTEL集成显卡那样提前显示的帧缓冲驱动;固件也未能提供类似x86平台UEFI显示调用接口。故现有飞腾平台系统LOGO需要在加载显卡驱动初始化显卡及完成对应的模式设置后才能输出到屏幕。通常,显卡驱动的加载依赖于ACPI、DMA、RESET、TTY、CHAR、 IOMMU等模块,需要先加载上述模块后才能加载显卡驱动,需时较长,影响用户体验。
技术实现要素:
本发明为了解决现有技术存在的缺陷和不足,提供了一种基于飞腾平台 AMD显卡系统LOGO提前显示的实现方法,使得飞腾平台能够在内核引导后很短的时间内提供一个基本帧缓冲区,往此帧缓冲区写入内容即可输出到终端。
为解决上述技术问题,本发明采用的技术方案是:一种基于飞腾平台 AMD显卡系统LOGO提前显示的实现方法,依次包括如下步骤:
S110:初始化AMD显卡;
S120:设置所述AMD显卡的模式;
S130:建立所述AMD显卡帧缓冲区。
优选地,所述初始化AMD显卡,包括如下步骤:
S111:确定所述显卡的初始化函数;
S112:获取显卡的PCIE BAR空间,并映射其MEM、IO、ROM空间;
S113:获取显卡的ATOMBIOS,并初始化所述ATOMBIOS解释器;
S114:提取并设置所述显卡的工作参数。
优选地,确定所述显卡的初始化函数包括如下步骤,
S1111:读取所述显卡的设备ID;
S1112:根据所述显卡的设备ID确定显卡架构;
S1113:根据所述显卡架构确定所述显卡的初始化函数。
优选地,所述设置所述AMD显卡的模式,包括:
S121:通过所述的ATOMBIOS初始化所述显卡I2C总线;
S122:通过所述I2C总线判断CONNECTORS的连接状态,读取处于连接状态的CONNECTORS EDID信息;
S123:根据根据所述处于连接状态的CONNECTORS信息,匹配CRTC 和ENCODER;
S124:初始化对应的CRTC、ENCODER、CONNECTOR,完成相应的模式设置;
优选地,所述建立所述AMD显卡帧缓冲区,包括如下步骤:
S131:获取EDID信息;
S132:根据所述获取的EDID信息,提取出所需的分辨率和色深信息;
S133:在显存中申请所需的空间作为帧缓冲区;
S134:将所述空间的地址信息设置到CRTC的相关寄存器作为显卡输出的数据来源。
优选地,所述建立所述AMD显卡帧缓冲区还包括,将需要显示的内容写入到帧缓冲区中,所述显卡将所述内容输出到相应的显示器。
优选地,所述初始化AMD显卡包括,初始化寄存器、3D引擎、存储控制器
一种装置,运行上述的数据处理方法。
一种设备,包括上述的装置,运行所述的数据处理方法。
一种存储介质,所述存储介质存储多条指令,所述多条指令适于在计算机上运行时,使得所述计算机执行所述的数据处理方法。
本发明具有的优点和积极效果是:根据显卡的设备ID确定显卡架构从而确定对应的初始化函数,从显卡的PCIE ROM空间读取ATOMBIOS,通过ATOMBIOS提取显卡内存频率、电压、工作频率等参数并以此初始化显卡,通过ATOMBIOS初始化显卡I2C总线、利用I2C总线判断CONNECTORS 的连接状态并读取处于连接状态的CONNECTORS EDID信息,根据EDID 信息初始化帧缓冲区并完成相应的模式设置,使能对应的CRTC、ENCODER,往帧缓冲区写入相应内容即可显示,本发明不依赖于固件提供的显示调用接口可在显卡驱动加载前提供一个基本的显示环境;不依赖于ACPI、DMA、 RESET、TTY、CHAR、IOMMU等模块,只要PCIE总线初始化后就可以通过该方法在内核引导后的很短时间内提供一个基本的显示环境,提升了用户体验。
附图说明
图1是本发明一实施例的飞腾平台AMD显卡系统LOGO提前显示初始化流程图示意图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
飞腾平台AMD显卡系统LOGO提前显示初始化流程入图一所示,具体实施例步骤如下:
步骤S101:读取显卡设备ID并根据该ID确定显卡架构从而确定显卡的初始化函数;
步骤S102:获取显卡的PCIE BAR空间地址,映射其对应的PCIE MEM、 IO、ROM空间;
步骤S103:从显卡的PCIE ROM空间获取显卡的ATOMBIOS并初始化 ATOMBIOS解释器;
步骤S104:通过ATOMBIOS提取显卡核心电压、工作频率及显存频率等参数;
步骤S105:根据S103获取的参数设置显卡核心电压、频率及显存频率,初始化显卡初始化寄存器、3D引擎、存储控制器等;
步骤S106:通过ATOMBIOS初始化显卡I2C总线、利用I2C总线判断 CONNECTORS的连接状态并读取处于连接状态的CONNECTORS EDID信息,CONNECTORS EDID信息,包括显示器的分辨率、色深、刷新率、连接类型;
步骤S107:为处于连接状态的CONNECTOR匹配合适的CRTC和 ENCODER,初始化对应的CRTC、ENCODER、CONNECTOR,从而完成相应的模式设置;
步骤S108:根据S106获取的EDID信息,提取最合适的分辨率和色深信息,在显存中申请大小合适的空间作为帧缓冲区,并将该空间的地址信息设置到CRTC的相关寄存器作为显卡输出的数据来源,使得显卡从该空间中读取内容并显示到显示器上;
步骤S109:将需要显示的内容写入到帧缓冲区中,显卡会自动将内容输出到屏幕上;
本发明的有益效果是:
1.不依赖于固件提供的显示调用接口可在显卡驱动加载前提供一个基本的显示环境;
2.不依赖于ACPI、DMA、RESET、TTY、CHAR、IOMMU等模块,只要PCIE总线初始化后就可以通过该方法在内核引导后的很短时间内提供一个基本的显示环境,提升了用户体验。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。