CN102662710A - 用于多硬件平台飞腾服务器的软关机方法 - Google Patents
用于多硬件平台飞腾服务器的软关机方法 Download PDFInfo
- Publication number
- CN102662710A CN102662710A CN2012100952180A CN201210095218A CN102662710A CN 102662710 A CN102662710 A CN 102662710A CN 2012100952180 A CN2012100952180 A CN 2012100952180A CN 201210095218 A CN201210095218 A CN 201210095218A CN 102662710 A CN102662710 A CN 102662710A
- Authority
- CN
- China
- Prior art keywords
- port
- address space
- server
- shutdown
- soft
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种用于多硬件平台飞腾服务器的软关机方法,其实施步骤如下:1)在初始化硬件时把PCIe交换单元的PCI内存空间映射为CPU物理地址空间,再将CPU物理地址空间映射为CPU虚拟地址空间;2)获取当前飞腾服务器的硬件平台信息;3)根据硬件平台信息获取PCIe交换单元的关机控制端口在CPU虚拟地址空间内的映射端口地址;4)如果接收到操作系统的软关机命令,则控制PCIe交换单元通过关机控制端口在CPU虚拟地址空间内的映射端口地址向关机控制器发送关机控制脉冲时序,关机控制器接收到关机控制脉冲时序后执行关机。本发明能够实现多硬件平台飞腾服务器的软关机,具有兼容性好、使用方便、操作简单的优点。
Description
技术领域
本发明涉及飞腾服务器的软关机实现方法,具体涉及一种用于多硬件平台飞腾服务器的软关机方法。
背景技术
飞腾服务器(FT服务器)是国防科大研制、基于FT1000处理器的服务器计算机平台,其中FT1000处理器是国防科大研制、兼容sparc指令集的通用64位处理器。飞腾服务器目前已经硬件的不同,分别包括nanga平台(见图1)、meili平台(见图2)以及nc平台(见图3)等不同的硬件平台。现有基于FT1000处理器的飞腾服务器中,通过处理器上集成的PCI-Express Unit(PEU: PCIe单元,它实现了PCIe总线中的root complex)从而扩展出了PCIe总线,PCI-Express Unit与PCIe交换单元(PCIe switch)相连,PCIe switch后面则连有PCIe插槽或者具体的PCIe设备。
对于飞腾服务器实现软关机的硬件实现而言,目前PCIe交换单元都有片上集成的GPIO,且都是使用PCIe交换单元的某一个GPIO作为关机控制端口来控制关机控制器(CPLD),通过CPLD进一步控制电源模块和复位信号来实现关机功能。但是,不同的硬件平台采用的PCIe交换单元不同,采用的关机控制端口也各不相同。如图1、图2和图3所示,nanga平台的PCIe交换单元采用PEX8664实现,采用的GPIO端口为GPIO 42;meili平台的PCIe交换单元采用PEX8648实现,采用的GPIO端口为GPIO 19;nc平台的PCIe交换单元采用PEX8632实现,采用的GPIO端口为GPIO 32。
对于飞腾服务器实现软关机的软件实现而言,在应用层面的软关机命令有poweroff,halt等,它们在操作系统中是通过系统调用reboot来实现的,该系统调用的实现在文件kernel/sys.c中,定义如下:
SYSCALL_DEFINE4(
reboot,int,magic1,int,magic2,unsigned int,cmd,void_user*,arg);
该函数执行一些系统关机需要执行的一些必要动作后进入平台相关的底层函数中执行具体的关机动作。对飞腾服务器来说,这些底层函数在文件arch/sparc/kerner/reboot.c中。主要有以下几个函数,它们分别定义如下:
void machine_power_off(void);
void machine_halt(void);
void machine_restart(char *cmd);
要想实现软关机功能,只需在这几个函数的实现中加入执行具体关机动作的函数或语句就行了。要在飞腾服务器上实现软关机功能,除了硬件基础外,还要有软件支持,特别是操作系统的软件支持。
目前飞腾服务器的基本输入输出系统和加载引导程序在系统启动检测和初始化硬件时把不同平台的PCIe交换单元的PCI内存空间映射到了同一片CPU物理地址空间。但是由于不同的硬件平台之间的采用的关机控制端口各不相同,最终导致其软关机的软件实现也各不相同,不同的硬件平台之间的软关机无法实现通用。飞腾服务器的不同硬件平台的硬件设计上的差异导致了不同平台上软关机功能软件实现上的差异,但是如果不同的飞腾服务器平台使用不同的实现软关机功能的软件,特别是软关机功能是操作系统的内部功能,将导致在不同的飞腾服务器平台上部署不同的操作系统,这将给飞腾服务器的用户带来不必要的麻烦和使用上的不便,大大降低飞腾服务器的用户体验,不利于飞腾服务器的推广。
发明内容
本发明要解决的技术问题是提供一种能够实现多硬件平台飞腾服务器的软关机,兼容性好、使用方便、操作简单的用于多硬件平台飞腾服务器的软关机方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于多硬件平台飞腾服务器的软关机方法,其实施步骤如下:
1)在初始化硬件时把PCIe交换单元的PCI内存空间映射为CPU物理地址空间,再将所述CPU物理地址空间映射为CPU虚拟地址空间;
2)获取当前飞腾服务器的硬件平台信息;
3)根据所述硬件平台信息获取PCIe交换单元的关机控制端口在所述CPU虚拟地址空间内的映射端口地址;
4)如果接收到操作系统的软关机命令,则控制PCIe交换单元通过所述关机控制端口在CPU虚拟地址空间内的映射端口地址向关机控制器发送关机控制脉冲时序,关机控制器接收到关机控制脉冲时序后执行关机。
作为本发明上述技术方案的进一步改进:
所述步骤2)具体包括:首先通过所述CPU虚拟地址空间读取PCIe交换单元的端口0配置空间内subid寄存器的值,然后根据所述subid寄存器的值识别获取当前的硬件平台信息。
所述关机控制端口为PCIe交换单元的GPIO端口;所述步骤4)中控制PCIe交换单元向关机控制器发送关机控制脉冲时序的详细步骤包括:配置GPIO端口的方向寄存器使得GPIO端口的方向为输出,通过所述GPIO端口在CPU虚拟地址空间内的映射端口地址读写GPIO端口对应的寄存器来配置电平和延时,并将配置电平和延时得到的关机控制脉冲时序输出给关机控制器。
本发明具有下述优点:
1、本发明在初始化硬件时把PCIe交换单元的PCI内存空间通过两次映射从而映射为CPU虚拟地址空间,根据飞腾服务器当前的硬件平台信息获取PCIe交换单元的关机控制端口在CPU虚拟地址空间内的映射端口地址,使用虚拟地址访问PCIe的关机控制端口的寄存器向关机控制器发送关机控制脉冲时序执行关机,在操作系统软关机的底层函数中增加了多硬件平台飞腾服务器的软关机支持,实现了对多种硬件平台飞腾服务器的软关机支持,可以在不同硬件平台上的飞腾服务器上部署同一套系统,具有兼容性好、使用方便、操作简单的优点,提高了飞腾服务器的用户体验,有利于飞腾服务器的推广。
2、本发明进一步通过CPU虚拟地址空间读取PCIe交换单元的端口0配置空间内subid寄存器的值,根据subid寄存器的值识别获取当前的硬件平台信息,判断方式简单方便。
附图说明
图1为现有技术nanga硬件平台的软关机相关硬件结构示意图。
图2为现有技术meili硬件平台的软关机相关硬件结构示意图。
图3为现有技术nc硬件平台的软关机相关硬件结构示意图。
图4为本发明实施例的主要流程示意图。
具体实施方式
如图4所示,本实施例用于多硬件平台飞腾服务器的软关机方法的实施步骤如下:
1)在初始化硬件时把PCIe交换单元的PCI内存空间映射为CPU物理地址空间,再将CPU物理地址空间映射为CPU虚拟地址空间;
2)获取当前飞腾服务器的硬件平台信息;
3)根据硬件平台信息获取PCIe交换单元的关机控制端口在CPU虚拟地址空间内的映射端口地址;
4)如果接收到操作系统的软关机命令,则控制PCIe交换单元通过关机控制端口在CPU虚拟地址空间内的映射端口地址向关机控制器发送关机控制脉冲时序,关机控制器接收到关机控制脉冲时序后执行关机。
本实施例的关机控制端口为PCIe交换单元的GPIO端口,关机控制器采用复杂可编程逻辑器件(CPLD)实现。不同的平台由于PCIe交换单元不同,所采用的GPIO端口也各不相同,例如nanga平台采用GPIO 42作为关机控制端口,meili平台采用GPIO 19作为关机控制端口,nc平台采用GPIO 32作为关机控制端口。
本实施例能够实现不用区分不同平台的不同PCIe交换单元,而使用同一软件访问的配置空间寄存器而不会产生兼容性问题,其原因如下:飞腾服务器初始化硬件时(基本输入输出系统和加载引导程序在检测和初始化系统中的硬件时)把不同平台的不同PCIe交换单元的PCI内存空间映射到了同一片CPU物理地址空间,再将CPU物理地址空间映射为CPU虚拟地址空间,然后使用虚拟地址访问PCIe交换单元的PCI内存空间,根据硬件平台信息获取PCIe交换单元的关机控制端口在CPU虚拟地址空间内的映射端口地址,如果接收到操作系统的软关机命令,则控制PCIe交换单元通过关机控制端口在CPU虚拟地址空间内的映射端口地址向关机控制器发送关机控制脉冲时序,关机控制器接收到关机控制脉冲时序后执行关机,所以对于多个硬件平台也不会产生兼容性问题。而且PCIe交换单元的配置空间中的寄存器同样位于PCI内存空间中,因此可以使用访问PCI内存空间的方法来访问PCI配置空间中的寄存器。
因为不同的硬件平台采用了不同的PCIe交换单元,所以通过区分不同PCIe交换单元就可以获取不同的硬件平台信息。PCIe交换单元的PCIe配置空间中偏移为0xa8的subid寄存器中保存了PCIe交换单元的subid值,不同的PCIe交换单元在该寄存器中的subid值不同,因此根据subid值就可以区分出不同的PCIe交换单元,进而区分出不同的硬件平台。因此,本实施例的步骤2)具体包括:首先通过CPU虚拟地址空间读取PCIe交换单元的端口0配置空间内subid寄存器(即端口0配置空间中偏移为0xa8的寄存器)的值,然后根据subid寄存器的值识别获取当前的硬件平台信息。
步骤4)中控制PCIe交换单元向关机控制器发送关机控制脉冲时序的详细步骤包括:
A)配置GPIO端口的方向寄存器使得GPIO端口的方向为输出;
B)通过GPIO端口在CPU虚拟地址空间内的映射端口地址读写GPIO端口对应的寄存器来配置电平和延时,并将配置电平和延时得到的关机控制脉冲时序输出给关机控制器。
由于PCIe交换单元的PCI内存空间经过两次映射后,位于PCI内存空间内的GPIO端口同样也被映射为CPU虚拟地址空间内,因此能够直接通过CPU虚拟地址空间内的映射端口地址读写GPIO端口对应的寄存器。
对于飞腾服务器而言,不同的硬件平台采用相同的关机控制脉冲时序,关机控制脉冲时序的时序为:出100毫秒的低电平 + 1000毫秒的高电平 + 1000毫秒的低电平。因此步骤B)中配置电平和延时具体是指:先输出100毫秒的低电平,再输出1000毫秒的高电平,最后输出1000毫秒的低电平。
本实施例分别应用在安装有银河麒麟飞腾版操作系统的基于nanga平台、meili平台、nc平台三种硬件平台的飞腾服务器进行验证。在银河麒麟飞腾版操作系统启动完毕后执行软关机命令(poweroff)后,本实施例的方法均能够输出正确的关机控制脉冲时序,均成功实现飞腾服务器的关机断电。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种用于多硬件平台飞腾服务器的软关机方法,其特征在于其实施步骤如下:
1)在初始化硬件时把PCIe交换单元的PCI内存空间映射为CPU物理地址空间,再将所述CPU物理地址空间映射为CPU虚拟地址空间;
2)获取当前飞腾服务器的硬件平台信息;
3)根据所述硬件平台信息获取PCIe交换单元的关机控制端口在所述CPU虚拟地址空间内的映射端口地址;
4)如果接收到操作系统的软关机命令,则控制PCIe交换单元通过所述关机控制端口在CPU虚拟地址空间内的映射端口地址向关机控制器发送关机控制脉冲时序,关机控制器接收到关机控制脉冲时序后执行关机。
2.根据权利要求1所述的用于多硬件平台飞腾服务器的软关机方法,其特征在于,所述步骤2)具体包括:首先通过所述CPU虚拟地址空间读取PCIe交换单元的端口0配置空间内subid寄存器的值,然后根据所述subid寄存器的值识别获取当前的硬件平台信息。
3.根据权利要求1或2所述的用于多硬件平台飞腾服务器的软关机方法,其特征在于,所述关机控制端口为PCIe交换单元的GPIO端口;所述步骤4)中控制PCIe交换单元向关机控制器发送关机控制脉冲时序的详细步骤包括:配置GPIO端口的方向寄存器使得GPIO端口的方向为输出,通过所述GPIO端口在CPU虚拟地址空间内的映射端口地址读写GPIO端口对应的寄存器来配置电平和延时,并将配置电平和延时得到的关机控制脉冲时序输出给关机控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100952180A CN102662710A (zh) | 2012-03-31 | 2012-03-31 | 用于多硬件平台飞腾服务器的软关机方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100952180A CN102662710A (zh) | 2012-03-31 | 2012-03-31 | 用于多硬件平台飞腾服务器的软关机方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102662710A true CN102662710A (zh) | 2012-09-12 |
Family
ID=46772211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100952180A Pending CN102662710A (zh) | 2012-03-31 | 2012-03-31 | 用于多硬件平台飞腾服务器的软关机方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662710A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304223A (zh) * | 2017-12-22 | 2018-07-20 | 天津麒麟信息技术有限公司 | 一种用于电源休眠机制的操作系统与硬件平台交互方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168641A1 (en) * | 2006-01-17 | 2007-07-19 | Hummel Mark D | Virtualizing an IOMMU |
US20090043921A1 (en) * | 2007-08-09 | 2009-02-12 | Protip Roy | Method and System for Virtualization and Re-Direction of I/O Connections to Peripheral Devices |
US20090144508A1 (en) * | 2007-12-03 | 2009-06-04 | Freimuth Douglas M | PCI Express Address Translation Services Invalidation Synchronization with TCE Invalidation |
US20110320759A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Multiple address spaces per adapter |
US20110320663A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Converting a message signaled interruption into an i/o adapter event notification to a guest operating system |
-
2012
- 2012-03-31 CN CN2012100952180A patent/CN102662710A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168641A1 (en) * | 2006-01-17 | 2007-07-19 | Hummel Mark D | Virtualizing an IOMMU |
US20090043921A1 (en) * | 2007-08-09 | 2009-02-12 | Protip Roy | Method and System for Virtualization and Re-Direction of I/O Connections to Peripheral Devices |
US20090144508A1 (en) * | 2007-12-03 | 2009-06-04 | Freimuth Douglas M | PCI Express Address Translation Services Invalidation Synchronization with TCE Invalidation |
US20110320759A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Multiple address spaces per adapter |
US20110320663A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Converting a message signaled interruption into an i/o adapter event notification to a guest operating system |
Non-Patent Citations (1)
Title |
---|
党晓辉等: "基于WinCE的I/O控制软件设计", 《电子测量技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304223A (zh) * | 2017-12-22 | 2018-07-20 | 天津麒麟信息技术有限公司 | 一种用于电源休眠机制的操作系统与硬件平台交互方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6438622B1 (en) | Multiprocessor system including a docking system | |
US7447934B2 (en) | System and method for using hot plug configuration for PCI error recovery | |
CN102650975B (zh) | 用于多硬件平台飞腾服务器的i2c总线的实现方法 | |
US9529750B2 (en) | Service processor (SP) initiated data transaction with bios utilizing interrupt | |
US9529410B2 (en) | Service processor (SP) initiated data transaction with BIOS utilizing power off commands | |
US11199890B2 (en) | Peripheral device expansion card system | |
CN112559408B (zh) | 一种主板及其信号转接系统 | |
CN210954874U (zh) | 一种基于申威sw421处理器的国产计算机主板 | |
CN110968352B (zh) | 一种pcie设备的复位系统及服务器系统 | |
US20090172444A1 (en) | Computer System and Power-Saving Method Thereof | |
US9946552B2 (en) | System and method for detecting redundant array of independent disks (RAID) controller state from baseboard management controller (BMC) | |
US11934661B1 (en) | Partitioning responsive to processors having a disparate number of memory modules | |
CN101727329B (zh) | 主机板系统、启动此主机板系统的储存装置及连接器 | |
CN102662710A (zh) | 用于多硬件平台飞腾服务器的软关机方法 | |
CN102736908A (zh) | 远程设置cmos参数的系统、装置及方法 | |
CN101387966A (zh) | 具有基本输入输出系统选择功能的电脑设备 | |
CN103049214B (zh) | 磁盘阵列卡以及具有扩充功能的磁盘阵列系统 | |
CN102270184A (zh) | 基于多个处理器的pci-e插槽控制系统及方法 | |
CN221650930U (zh) | 基于龙芯3a6000处理器的主板、计算机 | |
CN217521590U (zh) | 一种主板及服务器 | |
US11748288B2 (en) | Discovery and safe enablement of high-speed management interface via PCIe card electro-mechanical connector | |
US11983053B1 (en) | Button press gestures on a single power button to power sequence a selected partitioned node | |
US12067404B2 (en) | Multiple firmware levels in a partitionable multi-processor system | |
CN101470510B (zh) | 节省绘图卡用电的主机装置及计算机系统 | |
US12099391B2 (en) | Independent control of power, clock, and/or reset signals to a partitioned node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120912 |