CN106155689A - 基于非x86平台在Linux操作系统下显示的方法 - Google Patents
基于非x86平台在Linux操作系统下显示的方法 Download PDFInfo
- Publication number
- CN106155689A CN106155689A CN201610520138.3A CN201610520138A CN106155689A CN 106155689 A CN106155689 A CN 106155689A CN 201610520138 A CN201610520138 A CN 201610520138A CN 106155689 A CN106155689 A CN 106155689A
- Authority
- CN
- China
- Prior art keywords
- platform
- video card
- pci bus
- address
- simulator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种基于非x86平台在Linux操作系统下显示的方法,其方法包括:对非x86平台的嵌入式系统进行扩展;对非x86平台的嵌入式系统上电;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信;在系统初始化阶段,为非x86平台加入x86模拟器;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器;启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。实施本发明实施例,通过在非x86平台的嵌入式硬件条件下,驱动显卡正常工作,从而提高图形显示界面的显示效果。
Description
技术领域
本发明涉及计算机嵌入式系统技术领域,尤其涉及一种基于非x86平台在Linux操作系统下显示的方法。
背景技术
人机交互在现代计算机的意义至关重要,计算机加电启动后的第一要务就是显示输出,并向用户报告系统是否健康。计算机系统的显示输出一般由显示控制器设备完成,由于历史原因,显示控制器常简称为显卡。显卡在加电后,需要由CPU对其进行初始化配置,才能进入正常的显示数据转换和信号输出状态,此时显示器上才会有信息输出。因此显卡的初始化速度是影响计算机开机显示速度的重要因素。
随着嵌入式系统的不断发展和应用,嵌入式系统的对图形界面的要求越来越高,许多企业也基于嵌入式硬件上提出了可视化图形界面的要求。现有的非x86平台的嵌入式系统因为其专用性的限制,无法满足可视化图形界面的应用。通用的Linux桌面操作系统无法应用在工业领域的苛刻环境中。这使得需要找到一种方法,通过较少的硬件扩展和软件配置,让嵌入式硬件满足工业领域可视化的需求。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种在非x86平台的嵌入式硬件条件下,通过少量的硬件扩展和软件配置,使系统的图形界面性能能达到更高的要求。
为了解决上述问题,本发明提出了一种基于非x86平台在Linux操作系统下显示的方法,包括如下步骤:
对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;
对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;
基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;
在系统初始化过程中,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;
基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;
将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;
将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;
设置Linux内核启动参数,启动linux内核;
启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。
所述PCI总线接口获取显卡设备信息包括:
PCI总线接口获取到显卡设备ID、供应商、型号、显卡属性和地址空间信息。
所述完成x86模拟器初始化过程中还包括:
记录显卡的IO寄存器和内存的写操作指令。
所述基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射包括:
根据PCI总线上的信息,查询显卡ROM中的BIOS镜像的物理地址和Frame buffer的物理地址以及它们所对应的长度;
将显卡中BIOS镜像的物理地址、Frame buffer的物理地址和它们的长度保存在PCI总线上;
将BIOS镜像的物理地址、Frame buffer的物理地址做PCI地址映射;
将BIOS镜像和frame buffer映射后的地址和长度保存到PCI总线上,然后延时等待下一步的执行。
所述方法还包括:
在基于PCI总线检测到显卡处于不可通信时,基于非x86平台报警提醒显卡故障。
在本发明实施例中,通过在非x86平台的嵌入式硬件条件下,通过少量的硬件扩展和软件配置,其通过外接显卡,通过x86的模拟器和Linux操作系统的显卡驱动,驱动显卡正常工作,使系统的图形界面性能能达到更高的要求,嵌入式系统能正确启动并识别显卡,显卡能够和系统的其他硬件相互配合工作,从而提高图形显示界面的显示效果,满足嵌入式硬件在工业领域对图形界面苛刻要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的基于非x86平台在Linux操作系统下显示的方法流程图;
图2是本发明实施例中的基于非x86平台在Linux操作系统下显示方法的软件流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所涉及的基于非x86平台在Linux操作系统下显示的方法,其通过对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;在系统初始化阶段,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;设置Linux内核启动参数,启动linux内核;启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。
相应的,图1示出了本发明实施例中的基于非x86平台在Linux操作系统下显示的方法流程图,该流程图包括如下步骤:
S101、对非x86平台的嵌入式系统进行扩展;
具体实施过程中,首先对嵌入式系统进行扩展,将显卡通过PCI总线接口接入非X86平台的嵌入式系统。
S102、对非x86平台的嵌入式系统上电;
非X86平台的嵌入式系统上电,启动系统初始化,并在系统初始化的过程中对显卡进行控制初始化。
S103、基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,如果显卡处于可通信时,则进入S104,否则进入S111;
具体实施过程中,在初始化过程中,PCI总线端口可以通过侦测的方式探测到显卡是否能实现与x86平台的通信功能,其保障了显卡接入能正常工作。
S104、在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;
在PCI总线检测到显卡,PCI总线接口获取到显卡设备ID、供应商、型号、显卡属性和地址空间信息。
S105、在系统初始化过程中,为非x86平台加入x86模拟器,对X86模拟器初始化;
由于非X86平台的嵌入式系统无法直接执行显卡BIOS代码(显卡的BIOS代码是X86框架的二进制码)。在系统初始化过程中,即uboot启动过程中,加入X86模拟器并初始化,完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存。在具体实施过程中,在初始化过程中还记录了显卡的IO寄存器和内存的写操作指令。在非X86平台的嵌入式系统初始化的阶段,加入了X86模拟器,启动显卡驱动前的控制初始化。解决了非X86平台的嵌入式系统无法识别和启动显卡驱动前的控制初始化问题,使嵌入式操作系统能驱动显卡工作。在非X86平台的嵌入式系统启动中加入的X86模拟器,模拟x86的硬件寄存器、x86的操作码(即指令集)和X86的执行流程,X86的执行流程包括寻址和执行指令。解决了非X86平台的嵌入式系统不能识别显卡中固化的X86显卡初始化程序的问题。
S106、基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;
具体实施过程中,根据PCI总线上的信息,查询显卡ROM中的BIOS镜像的物理地址和Frame buffer的物理地址以及它们所对应的长度。将显卡中BIOS地址、Frame buffer地址和他们的长度保存在PCI总线上。将两个地址(BIOS地址和Frame buffer地址)做PCI地址映射。将BIOS镜像和frame buffer映射后的地址和长度保存到PCI总线上,然后延时等待下一步的执行。
S107、将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射,;
S108、将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,执行显卡BIOS代码;
具体实施过程中,将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;
S109、设置Linux内核启动参数,启动linux内核;
S110、启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。
S111、基于非x86平台报警提醒显卡故障。
该步骤实施,可以提醒接入显卡存在故障,提醒操作人员进行相应操作。
在完成以上步骤以后,嵌入式系统能正确启动并识别显卡,显卡能够和系统的其他硬件相互配合工作,从而提高图形显示界面的显示效果,满足嵌入式硬件在工业领域对图形界面苛刻要求。
图2示出了本发明实施例中的基于非x86平台在Linux操作系统下显示方法的软件流程图,其包括如下:
S201、系统初始化start_uboot;
S202、设备初始化devices_init;
S203、显卡初始化drv_video_init;
S204、镭显卡探测radeon_probe;
S205、PCI总线获取显卡信息pci_find_devices;
S206、基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射PCI_mapBIOSImage;
S207、将显卡中的BIOS镜像拷贝到内存memcpy;
S208、解除BIOS镜像的地址映射PCI_unmapBIOSImage;
S209、执行显卡BIOS代码callRealMode;
S210、设置内核参数,启动linux内核;
S211、启动显卡驱动,完成图形显示。
在整个具体实施过程中,通过在非x86平台的嵌入式硬件条件下,通过少量的硬件扩展和软件配置,其通过外接显卡,通过x86的模拟器和Linux操作系统的显卡驱动,驱动显卡正常工作,使系统的图形界面性能能达到更高的要求,嵌入式系统能正确启动并识别显卡,显卡能够和系统的其他硬件相互配合工作,从而提高图形显示界面的显示效果,满足嵌入式硬件在工业领域对图形界面苛刻要求。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的基于非x86平台在Linux操作系统下显示的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种基于非x86平台在Linux操作系统下显示的方法,其特征在于,包括如下步骤:
对非x86平台的嵌入式系统进行扩展,将显卡通过PCI总线接口接入非x86平台的嵌入式系统;
对非x86平台的嵌入式系统上电,启动系统初始化,并在系统初始化过程中对显卡进行控制初始化;
基于PCI总线检测显卡是否与非x86平台的嵌入式系统可通信,在检测到显卡处于可通信时,PCI总线接口获取显卡设备信息;
在系统初始化过程中,为非x86平台加入x86模拟器,并完成x86模拟器初始化过程,X86模拟器模拟x86的硬件寄存器、操作码、中断向量,为模拟器分配内存;
基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射;
将显卡中的BIOS镜像拷贝到内存,解除BIOS镜像的地址映射;
将PCI总线信息和拷贝到内存BIOS镜像信息保存到X86模拟器的寄存器,X86模拟器模拟x86中断,执行显卡BIOS代码,完成Linux内核代码启动前对显卡初始化;
设置Linux内核启动参数,启动linux内核;
启动Linux操作系统内核显卡驱动,驱动显卡正常工作,完成图形界面的显示。
2.如权利要求1所述的基于非x86平台在Linux操作系统下显示的方法,其特征在于,所述PCI总线接口获取显卡设备信息包括:
PCI总线接口获取到显卡设备ID、供应商、型号、显卡属性和地址空间信息。
3.如权利要求1所述的基于非x86平台在Linux操作系统下显示的方法,其特征在于,所述完成x86模拟器初始化过程中还包括:
记录显卡的IO寄存器和内存的写操作指令。
4.如权利要求1所述的基于非x86平台在Linux操作系统下显示的方法,其特征在于,所述基于PCI总线将显卡BIOS的物理地址和Frame buffer的物理地址进行PCI地址映射包括:
根据PCI总线上的信息,查询显卡ROM中的BIOS镜像的物理地址和Frame buffer的物理地址以及它们所对应的长度;
将显卡中BIOS镜像的物理地址、Frame buffer的物理地址和它们的长度保存在PCI总线上;
将BIOS镜像的物理地址、Frame buffer的物理地址做PCI地址映射;
将BIOS镜像和frame buffer映射后的地址和长度保存到PCI总线上,然后延时等待下一步的执行。
5.如权利要求1至4任一项所述的基于非x86平台在Linux操作系统下显示的方法,其特征在于,所述方法还包括:
在基于PCI总线检测到显卡处于不可通信时,基于非x86平台报警提醒显卡故障。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610520138.3A CN106155689B (zh) | 2016-07-02 | 2016-07-02 | 基于非x86平台在Linux操作系统下显示的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610520138.3A CN106155689B (zh) | 2016-07-02 | 2016-07-02 | 基于非x86平台在Linux操作系统下显示的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155689A true CN106155689A (zh) | 2016-11-23 |
CN106155689B CN106155689B (zh) | 2019-04-12 |
Family
ID=58061136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610520138.3A Active CN106155689B (zh) | 2016-07-02 | 2016-07-02 | 基于非x86平台在Linux操作系统下显示的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155689B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066222A (zh) * | 2017-02-10 | 2017-08-18 | 济南浪潮高新科技投资发展有限公司 | 一种基于国产处理器平台的快速显示装置和方法 |
CN107220065A (zh) * | 2017-06-28 | 2017-09-29 | 山东超越数控电子有限公司 | 一种基于x86模拟器的国产平台bios显卡驱动方法 |
CN108776595A (zh) * | 2018-06-11 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种gpu服务器的显卡的识别方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398757A (zh) * | 2008-09-28 | 2009-04-01 | 深圳创维-Rgb电子有限公司 | 面向嵌入式系统的人机互动实现方法 |
CN102023889A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种实现x86 vbios在mips架构上运行的方法 |
CN102799407A (zh) * | 2012-07-11 | 2012-11-28 | 曙光信息产业(北京)有限公司 | 基于基板管理控制器进行显示的方法和装置 |
CN103150188A (zh) * | 2013-03-19 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 非x86指令集计算机的x86兼容显卡快速初始化方法 |
CN104360860A (zh) * | 2014-11-17 | 2015-02-18 | 长城信息产业股份有限公司 | 一种国产自主嵌入式计算机系统及其显卡驱动方法 |
-
2016
- 2016-07-02 CN CN201610520138.3A patent/CN106155689B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398757A (zh) * | 2008-09-28 | 2009-04-01 | 深圳创维-Rgb电子有限公司 | 面向嵌入式系统的人机互动实现方法 |
CN102023889A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种实现x86 vbios在mips架构上运行的方法 |
CN102799407A (zh) * | 2012-07-11 | 2012-11-28 | 曙光信息产业(北京)有限公司 | 基于基板管理控制器进行显示的方法和装置 |
CN103150188A (zh) * | 2013-03-19 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 非x86指令集计算机的x86兼容显卡快速初始化方法 |
CN104360860A (zh) * | 2014-11-17 | 2015-02-18 | 长城信息产业股份有限公司 | 一种国产自主嵌入式计算机系统及其显卡驱动方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066222A (zh) * | 2017-02-10 | 2017-08-18 | 济南浪潮高新科技投资发展有限公司 | 一种基于国产处理器平台的快速显示装置和方法 |
CN107220065A (zh) * | 2017-06-28 | 2017-09-29 | 山东超越数控电子有限公司 | 一种基于x86模拟器的国产平台bios显卡驱动方法 |
CN108776595A (zh) * | 2018-06-11 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种gpu服务器的显卡的识别方法、装置、设备及介质 |
CN108776595B (zh) * | 2018-06-11 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种gpu服务器的显卡的识别方法、装置、设备及介质 |
US11422827B2 (en) | 2018-06-11 | 2022-08-23 | Zhengzhou Yunhai Information Technology Co., Ltd. | Method, device, apparatus for identifying graphics card of GPU server and medium |
Also Published As
Publication number | Publication date |
---|---|
CN106155689B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9098402B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
CN103119554B (zh) | 提供平台无关的存储器逻辑 | |
US9395919B1 (en) | Memory configuration operations for a computing device | |
US9335944B2 (en) | In-place change between transient and persistent state for data structures on non-volatile memory | |
EP2856308A1 (en) | Reinitialization of a processing system from volatile memory upon resuming from a low-power state | |
US20120042307A1 (en) | System and method for creating memory interface of computing device | |
CN111736945B (zh) | 基于智能网卡的虚拟机热迁移方法、装置、设备及介质 | |
EP3242214A1 (en) | Method and device for protecting information of mcu chip | |
CN102096597A (zh) | 使用管理引擎的虚拟总线设备 | |
CN106155689A (zh) | 基于非x86平台在Linux操作系统下显示的方法 | |
CN112506745B (zh) | 内存温度读取方法、装置及计算机可读存储介质 | |
JP2014508332A (ja) | 判定方法、判定装置、判定システム、記憶媒体 | |
US20170262388A1 (en) | Method for data transmission and server for implementing the method | |
CN113961419B (zh) | 存储器验证方法、装置、电子设备及存储介质 | |
US20150242219A1 (en) | Computer system and control method | |
US9250942B2 (en) | Hardware emulation using on-the-fly virtualization | |
CN112667442B (zh) | 基于非易失内存器件启动系统的控制方法、装置及设备 | |
CN109669728A (zh) | VxWorks操作系统的软件关机方法及装置 | |
CN108958837B (zh) | 一种动态配置me固件的方法、系统及介质 | |
CN104239245A (zh) | 电子系统与运作方法 | |
CN106815008B (zh) | 系统暂停方法、系统回复方法及应用其的计算机系统 | |
CN103677875A (zh) | 一种电子设备启动的方法、权限控制方法和电子设备 | |
CN104915280A (zh) | 一种基于uefi驱动方式获取计算机硬件信息的方法 | |
CN101789071B (zh) | 芯片的身份信息的管理方法及系统 | |
CN112540889B (zh) | 在用户态调整硬盘启动顺序的方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |