CN112732616B - 一种基于spi控制器的bmc启动方法、装置及设备 - Google Patents
一种基于spi控制器的bmc启动方法、装置及设备 Download PDFInfo
- Publication number
- CN112732616B CN112732616B CN202110019438.4A CN202110019438A CN112732616B CN 112732616 B CN112732616 B CN 112732616B CN 202110019438 A CN202110019438 A CN 202110019438A CN 112732616 B CN112732616 B CN 112732616B
- Authority
- CN
- China
- Prior art keywords
- line width
- register
- bmc
- mode
- spi controller
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012986 modification Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于SPI控制器的BMC启动方法,该方法中,SPI控制器能够在搬移BMC启动程序之前自由调整自身和Flash的线宽模式,由于SPI控制器启动时默认为二线模式,通过该方法能够将线宽模式从二线模式切换为四线模式,加快BMC启动程序的搬移速度,提升BMC启动速度。而且,通过在SPI控制器设置第一线宽寄存器、第二线宽寄存器和目标寄存器,能够保证同时调整SPI控制器和Flash的线宽模式,避免二者线宽模式不同导致程序出错。此外,本申请还提供了一种基于SPI控制器的BMC启动装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种基于SPI控制器的BMC启动方法、装置、设备及可读存储介质。
背景技术
随着服务器管理重要性的日益凸显,各大服务器生产厂商都相应地在各自的硬件平台上增强了服务器的可管理特性,并在功能上不断强化。服务器的可靠、简单易用的管理特性以及附加服务功能正在成为各大服务器制造厂商迫切需要的核心竞争力。
智能型平台管理接口规范(Intelligent Platform Management Interface,IPMI)的诞生很好的解决了服务器可靠管理的问题。IPMI定义了服务器主板上的硬件设备(支持IPMI协议硬件设备固件)相互之间的通信协议以及***管理软件(SystemManagement Software,SMS)与服务器主板上的硬件设备之间的通信协议接口。IPMI的核心是一个专用芯片/控制器,叫做基板管理控制器(Baseboard Management Controller,BMC)。***管理软件对各个器件的管理,都是通过与BMC通信来实现的,如图1所示。
BMC的启动程序一般存放在Flash里,通常通过SPI(Serial PeripheralInterface)控制器来实现BMC的程序启动功能。然而,SPI控制器的线宽模式默认为二线模式,必须等待启动程序搬移到DDR后才能切换为四线模式,严重影响BMC启动速度。
发明内容
本申请的目的是提供一种基于SPI控制器的BMC启动方法、装置、设备及可读存储介质,用以解决目前SPI控制器的线宽模式只能在BMC启动程序搬移到DDR之后才能进行切换,导致BMC启动速度较慢的问题。其具体方案如下:
第一方面,本申请提供了一种基于SPI控制器的BMC启动方法,包括:
根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;
在监测到所述第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值设置为目标值;
在所述目标寄存器的数值为所述目标值的前提下,若接收到所述BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式;
将所述Flash上的BMC启动程序搬移值DDR,以实现BMC启动;
其中,所述第一线宽寄存器和所述第二线宽寄存器的初始数值相同。
优选的,所述第一线宽寄存器用于表示SPI控制器调整后的线宽模式,所述第二线宽寄存器用于表示SPI控制器调整前的线宽模式。
优选的,所述第一线宽寄存器包括第一地址寄存器、第一命令寄存器和第一数据寄存器;
相应的,所述第二线宽寄存器包括第二地址寄存器、第二命令寄存器和第二数据寄存器。
优选的,所述寄存器修改指令与所述第一线宽调整指令相对应,所述向Flash发送第二线宽调整指令,包括:
根据所述第一线宽寄存器的数值生成第二线宽调整指令,向Flash发送所述第二线宽调整指令。
优选的,所述向Flash发送第二线宽调整指令,包括:
根据所述第一线宽调整指令生成第二线宽调整指令,向Flash发送所述第二线宽调整指令。
优选的,在所述将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式之后,还包括:
将所述第一线宽寄存器的数值同步至所述第二线宽寄存器。
优选的,所述向Flash发送第二线宽调整指令,包括:
向Flash发送ENTER QUAD命令或EXIT QUAD命令,使所述Flash进行二线模式和四线模式的切换;
或者,
通过对EVCR寄存器进行写操作,使所述Flash进行二线模式和四线模式的切换。
第二方面,本申请提供了一种基于SPI控制器的BMC启动装置,包括:
寄存器修改模块:用于根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;
寄存器设置模块:用于在监测到所述第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值设置为目标值;
线宽调整模块:用于在所述目标寄存器的数值为所述目标值的前提下,若接收到所述BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式;
启动程序搬移模块:用于将所述Flash上的BMC启动程序搬移值DDR,以实现BMC启动;
其中,所述第一线宽寄存器和所述第二线宽寄存器的初始数值相同。
第三方面,本申请提供了一种基于SPI控制器的BMC启动设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的基于SPI控制器的BMC启动方法。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于SPI控制器的BMC启动方法。
本申请所提供的一种基于SPI控制器的BMC启动方法,包括:根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;在监测到第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值设置为目标值;在目标寄存器的数值为目标值的前提下,若接收到BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和Flash的线宽模式同时调整为目标线宽模式;将Flash上的BMC启动程序搬移值DDR,以实现BMC启动;其中,第一线宽寄存器和第二线宽寄存器的初始数值相同。
可见,该方法中,SPI控制器能够在将BMC启动程序搬移到DDR之前自由调整自身和Flash的线宽模式,由于SPI控制器启动时默认为二线模式,通过该方法能够将线宽模式从二线模式切换为四线模式,加快BMC启动程序的搬移速度,从而提升BMC启动速度。而且,该方法通过设置第一线宽寄存器、第二线宽寄存器和目标寄存器,能够保证同时调整SPI控制器和Flash的线宽模式,避免二者线宽模式不同导致程序出错。
此外,本申请还提供了一种基于SPI控制器的BMC启动装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为服务器主板上BMC与其他硬件设备的连接关系示意图;
图2为本申请所提供的一种基于SPI控制器的BMC启动方法实施例一的流程图;
图3为本申请所提供的一种基于SPI控制器的BMC启动方法实施例一的***架构图;
图4为本申请所提供的一种基于SPI控制器的BMC启动装置实施例的功能框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在基于FPGA或者芯片的BMC设计中,SPI控制器启动时存在以下问题:
1、SPI控制器启动时默认为二线模式,影响启动速度。
2、虽然Flash的线宽模式是可配置的,但是在将BMC启动程序搬移至DDR之前无法切换线宽模式,而且往往难以实现同时切换SPI控制器的线宽模式和Flash的线宽模式。
针对上述问题,本申请提供了一种基于SPI控制器的BMC启动方法、装置、设备及可读存储介质,使得SPI控制器能够在搬移BMC启动程序之前自由调整自身和Flash的线宽模式,提升BMC启动速度,且通过定义一系列寄存器保证同时调整二者的线宽模式,避免线宽模式不同导致程序出错。
下面对本申请提供的一种基于SPI控制器的BMC启动方法实施例一进行介绍。
本实施例以SPI控制器为执行主体,本实施例的实施流程如图2所示,本实施例的***架构如图3所示。参见图2,本实施例包括以下步骤:
S201、根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;
S202、在监测到所述第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值从默认值修改为目标值,其中,所述第一线宽寄存器和所述第二线宽寄存器的初始数值相同;
S203、在所述目标寄存器的数值为所述目标值的前提下,若接收到所述BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式;
S204、将所述Flash上的BMC启动程序搬移值DDR,以实现BMC启动。
具体的,本实施例预先定义了第一线宽寄存器和第二线宽寄存器,在***上电时,二者的初始数值是相同的。当BMC ARM核心确认需要对SPI控制器和Flash进行线宽模式调整时,先不执行对二者线宽模式的调整动作,而是先修改第一线宽寄存器的数值,使得第一线宽寄存器的数值不同于第二线宽寄存器的数值。
SPI控制器在监测到该修改动作时,即发现第一线宽寄存器的数值不同于第二线宽寄存器的数值时,即可确定后续需要配合BMC ARM核心完成对自身和Flash的线宽模式的调整。
可以看出,本实施例中,设置第一线宽寄存器和第二线宽寄存器的主要目的在于,提前让SPI控制器得知后续需要调整线宽模式。因此,对于第一线宽寄存器和第二线宽寄存器,本实施例提供以下两种实现方式:
实现方式一:将第一线宽寄存器和第二线宽寄存器的初始数值设置为SPI控制器的默认线宽模式,一般为二线模式。当BMC ARM核心对第一线宽寄存器进行修改时,将其数值从默认线宽模式修改为目标线宽模式,一般为四线模式。也就是说,利用第一线宽寄存器表示SPI控制器调整后的线宽模式,利用第二线宽寄存器表示SPI控制器调整前的线宽模式。这种情况下,SPI控制器通过第一线宽寄存器和第二线宽寄存器,不仅可以获知后续是否需要切换线宽模式,还可以获知默认线宽模式和预计需要调整到的目标线宽模式。
实现方式二:将第一线宽寄存器和第二线宽寄存器的初始数值设置为简单的标志位。例如,将第一线宽寄存器和第二线宽寄存器的初始数值全部设置为0,当BMC ARM核心对第一线宽寄存器进行修改时,将其数值从0修改为1。这种情况下,SPI控制器通过第一线宽寄存器和第二线宽寄存器,只能获知后续是否需要切换线宽模式,但无法获知默认线宽模式和预计调整到的目标线宽模式。
以上两种实现方式均可以实现本实施例的目的,因此本实施例不限定选用何种实现方式。
值得一提的是,当利用第一线宽寄存器和第二线宽寄存器表示SPI控制器调整后和调整前的线宽模式时,考虑到实际应用中,调整线宽模式时可以从地址、命令、数据三个层面分别进行调整,为实现这一目的,本实施例中第一线宽寄存器和第二线宽寄存器分别代表一组寄存器。具体的,第一线宽寄存器包括第一地址寄存器、第一命令寄存器和第一数据寄存器,相应的,第二线宽寄存器包括第二地址寄存器、第二命令寄存器和第二数据寄存器。
此外,在利用第一线宽寄存器和第二线宽寄存器表示SPI控制器调整后和调整前的线宽模式时,由于SPI控制器能够通过读取第一线宽寄存器获知预计调整到的目标线宽模式,因此,SPI控制器向Flash发送第二线宽调整指令的过程具体可以为:根据第一线宽寄存器的数值生成第二线宽调整指令,并将第二线宽调整指令发送至Flash。
在不利用第一线宽寄存器和第二线宽寄存器表示SPI控制器调整后和调整前的线宽模式时,由于SPI控制器无法根据第一线宽寄存器和第二线宽寄存器获知预计调整到的目标线宽模式,因此,SPI控制器需要根据BMC ARM核心发送的第一线宽调整指令确定如何对Flash进行线宽模式的调整,此时,SPI控制器向Flash发送第二线宽调整指令的过程具体可以为:根据第一线宽调整指令生成第二线宽调整指令,并将第二线宽调整指令发送至Flash。
需要特别说明的是,在调整线宽模式时,本实施例中SPI控制器和Flash需要调整为同一种线宽模式,即上述目标线宽模式。因此,在利用第一线宽寄存器和第二线宽寄存器表示SPI控制器调整后和调整前的线宽模式时,BMC ARM核心先后向SAP控制器发送的寄存器修改指令和第一线宽调整指令是相对应的。
可以理解的是,在将SPI控制器的线宽模式和Flash的线宽模式同时调整为目标线宽模式之后,可以将第一线宽寄存器的数值同步至第二线宽寄存器,并将目标寄存器的数值从目标值修改为默认值。
本实施例提供一种基于SPI控制器的BMC启动方法,该方法中,SPI控制器能够在将BMC启动程序搬移到DDR之前自由调整自身和Flash的线宽模式,由于SPI控制器启动时默认为二线模式,通过该方法能够将线宽模式从二线模式切换为四线模式,加快BMC启动程序的搬移速度,从而提升BMC启动速度。而且,该方法通过设置第一线宽寄存器、第二线宽寄存器和目标寄存器,能够保证同时调整SPI控制器和Flash的线宽模式,避免二者线宽模式不同导致程序出错。
下面开始详细介绍本申请提供的一种基于SPI控制器的BMC启动方法实施例二。
为实现本实施例,提出以下三个定义:
1、在SPI控制器内部定义第一线宽寄存器,用于表示SPI控制器调整线宽模式后的线宽模式,具体包括地址、命令和数据三个寄存器,分别记为init_addr_io_width,init_cmd_io_width,init_data_width。具体的,分别用0x0和0x2表示二线模式和四线模式。***上电时,这三个寄存器的数值都默认为0x0,即二线模式。
2、在SPI控制器内部定义第二线宽寄存器,用来表示SPI控制器调整线宽模式前的线宽模式,具体包括地址、命令和数据三个寄存器,分别记为addr_io_width,cmd_io_width,data_width。具体的,分别用0x0和0x2表示二线模式和四线模式。***上电时,这三个寄存器的数值都默认为0x0,即二线模式。
3、在SPI控制器内部定义目标寄存器,用于表示BMC ARM核心是否通过AHB总线对SPI控制器的第一线宽寄存器进行修改,即,是否对init_addr_io_width,init_cmd_io_width,init_data_width三个寄存器中的任意一个或多个进行了修改,目标寄存器记为valid_init_width。目标寄存器的数值为0表示第一线宽寄存器的数值没有发生修改,为1表示第一线宽寄存器的数值发生了修改,***上电时目标寄存器的数值默认为0。
基于以上定义,本实施例的实施过程如下:
S301、BMC ARM核心在得知需要对SPI控制器和Flash的线宽模式进行调整时,先不执行对二者的线宽调整动作,而是先对SPI控制器内部的第一线宽寄存器进行修改,即,修改init_addr_io_width,init_cmd_io_width,init_data_width三个寄存器中的任意一个或多个。
S302、SPI控制器监测到该修改动作后,将目标寄存器的数值从0修改为1,此时SPI控制器还保持以前的线宽模式,而后等待BMC ARM核心的后续指令。
具体的,只要addr_io_width,cmd_io_width,data_width不完全等于init_addr_io_width,init_cmd_io_width,init_data_width时,SPI控制器就将目标寄存器的数值从0修改为1。
S303、BMC ARM核心向SPI控制器发送第一线宽调整指令。
S304、SPI控制器接收到第一线宽调整指令之后,立刻向Flash发送第二线宽调整指令,使得SPI控制器和Flash本身的线宽模式都得到了更新并保持一致。
S305、SPI控制器将第一线宽寄存器的数值同步至第二线宽寄存器,即,将init_addr_io_width,init_cmd_io_width,init_data_width三个寄存器的数值分别更新到addr_io_width,cmd_io_width,data_width三个寄存器中,之后将目标寄存器的数值从1修改为0。
S306、SPI控制器基于调整后的线宽模式与Flash进行通信,从Flash读取BMC启动程序并搬移至DDR,以启动BMC。
具体的,线宽模式调整过程可以为:通过发出ENTER QUAD(命令码0x35)命令,从二线模式进入四线模式;通过发出EXIT QUAD(命令码0xF5)命令,从二线模式退出四线模式;通过写EVCR(0x61)寄存器来进行二线模式和四线模式的切换。
下面对本申请实施例提供的基于SPI控制器的BMC启动装置进行介绍,下文描述的基于SPI控制器的BMC启动装置与上文描述的基于SPI控制器的BMC启动方法可相互对应参照。
如图4所示,本实施例的基于SPI控制器的BMC启动装置,包括:
寄存器修改模块401:用于根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;
寄存器设置模块402:用于在监测到所述第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值设置为目标值;
线宽调整模块403:用于在所述目标寄存器的数值为所述目标值的前提下,若接收到所述BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式;
启动程序搬移模块404:用于将所述Flash上的BMC启动程序搬移值DDR,以实现BMC启动;
其中,所述第一线宽寄存器和所述第二线宽寄存器的初始数值相同。
本实施例的基于SPI控制器的BMC启动装置用于实现前述的基于SPI控制器的BMC启动方法,因此该装置中的具体实施方式可见前文中的基于SPI控制器的BMC启动方法的实施例部分,例如,寄存器修改模块401、寄存器设置模块402、线宽调整模块403、启动程序搬移模块404,分别用于实现上述基于SPI控制器的BMC启动方法中步骤S101,S102,S103,S104。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的基于SPI控制器的BMC启动装置用于实现前述的基于SPI控制器的BMC启动方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种基于SPI控制器的BMC启动设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上文所述的基于SPI控制器的BMC启动方法。
最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的基于SPI控制器的BMC启动方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种基于SPI控制器的BMC启动方法,其特征在于,包括:
根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;
在监测到所述第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值设置为目标值;
在所述目标寄存器的数值为所述目标值的前提下,若接收到所述BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式;
将所述Flash上的BMC启动程序搬移值DDR,以实现BMC启动;
其中,所述第一线宽寄存器和所述第二线宽寄存器的初始数值相同;
所述第一线宽寄存器用于表示SPI控制器调整后的线宽模式,所述第二线宽寄存器用于表示SPI控制器调整前的线宽模式。
2.如权利要求1所述的方法,其特征在于,所述第一线宽寄存器包括第一地址寄存器、第一命令寄存器和第一数据寄存器;
相应的,所述第二线宽寄存器包括第二地址寄存器、第二命令寄存器和第二数据寄存器。
3.如权利要求1所述的方法,其特征在于,所述寄存器修改指令与所述第一线宽调整指令相对应,所述向Flash发送第二线宽调整指令,包括:
根据所述第一线宽寄存器的数值生成第二线宽调整指令,向Flash发送所述第二线宽调整指令。
4.如权利要求1所述的方法,其特征在于,所述向Flash发送第二线宽调整指令,包括:
根据所述第一线宽调整指令生成第二线宽调整指令,向Flash发送所述第二线宽调整指令。
5.如权利要求1所述的方法,其特征在于,在所述将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式之后,还包括:
将所述第一线宽寄存器的数值同步至所述第二线宽寄存器。
6.如权利要求1-5任意一项所述的方法,其特征在于,所述向Flash发送第二线宽调整指令,包括:
向Flash发送ENTER QUAD命令或EXIT QUAD命令,使所述Flash进行二线模式和四线模式的切换;
或者,
通过对EVCR寄存器进行写操作,使所述Flash进行二线模式和四线模式的切换。
7.一种基于SPI控制器的BMC启动装置,其特征在于,包括:
寄存器修改模块:用于根据BMC ARM核心发送的寄存器修改指令,对第一线宽寄存器的数值进行修改;
寄存器设置模块:用于在监测到所述第一线宽寄存器的数值不同于第二线宽寄存器的数值时,将目标寄存器的数值设置为目标值;
线宽调整模块:用于在所述目标寄存器的数值为所述目标值的前提下,若接收到所述BMC ARM核心发送的第一线宽调整指令,则向Flash发送第二线宽调整指令,将SPI控制器的线宽模式和所述Flash的线宽模式同时调整为目标线宽模式;
启动程序搬移模块:用于将所述Flash上的BMC启动程序搬移值DDR,以实现BMC启动;
其中,所述第一线宽寄存器和所述第二线宽寄存器的初始数值相同;
所述第一线宽寄存器用于表示SPI控制器调整后的线宽模式,所述第二线宽寄存器用于表示SPI控制器调整前的线宽模式。
8.一种基于SPI控制器的BMC启动设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1-6任意一项所述的基于SPI控制器的BMC启动方法。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-6任意一项所述的基于SPI控制器的BMC启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019438.4A CN112732616B (zh) | 2021-01-07 | 2021-01-07 | 一种基于spi控制器的bmc启动方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019438.4A CN112732616B (zh) | 2021-01-07 | 2021-01-07 | 一种基于spi控制器的bmc启动方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732616A CN112732616A (zh) | 2021-04-30 |
CN112732616B true CN112732616B (zh) | 2022-11-25 |
Family
ID=75589624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110019438.4A Active CN112732616B (zh) | 2021-01-07 | 2021-01-07 | 一种基于spi控制器的bmc启动方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732616B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419884B (zh) * | 2021-06-11 | 2023-05-02 | 苏州浪潮智能科技有限公司 | 防止bmc镜像文件损坏的方法、装置、终端及存储介质 |
CN114546084A (zh) * | 2022-01-28 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基板管理控制器复位方法、***、存储介质及设备 |
CN114860343B (zh) * | 2022-05-26 | 2024-03-26 | 苏州浪潮智能科技有限公司 | 加速卡速率调整方法、***、终端及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086634A (zh) * | 2018-07-25 | 2018-12-25 | 浪潮(北京)电子信息产业有限公司 | 一种bmc芯片管理方法、***及bmc芯片和存储介质 |
-
2021
- 2021-01-07 CN CN202110019438.4A patent/CN112732616B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086634A (zh) * | 2018-07-25 | 2018-12-25 | 浪潮(北京)电子信息产业有限公司 | 一种bmc芯片管理方法、***及bmc芯片和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112732616A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112732616B (zh) | 一种基于spi控制器的bmc启动方法、装置及设备 | |
WO2021212948A1 (zh) | 存储***启动方法、装置及计算机可读存储介质 | |
US20110179211A1 (en) | Bios architecture | |
CN112667266B (zh) | 固件升级方法、装置、设备和存储介质 | |
US11314665B2 (en) | Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device | |
CN113590511B (zh) | 一种带宽降速修复方法、装置及电子设备 | |
CN110880998B (zh) | 一种基于可编程器件的报文传输方法及装置 | |
CN104317764A (zh) | 一种1553b总线异步消息的实时控制方法 | |
WO2019042421A1 (zh) | Usb数据传输的速率调整方法、装置、设备和存储介质 | |
CN115904520A (zh) | 基于pcie拓扑状态变更的配置保存方法及相关设备 | |
CN116132009A (zh) | 时钟切换装置、服务器及时钟切换方法 | |
CN109901664B (zh) | 提供时钟信号的方法、装置、***、设备及可读存储介质 | |
CN116644011B (zh) | 一种i2c设备的快速识别方法、装置、设备及存储介质 | |
CN109977044B (zh) | Usb设备枚举检测方法和***及固件升级方法和*** | |
CN114185720B (zh) | 服务器动态热备份的方法、装置、设备及存储介质 | |
CN114035831B (zh) | 一种cpld升级方法、***及计算机可读存储介质 | |
CN111158783B (zh) | 一种环境变量修改方法、装置、设备及可读存储介质 | |
CN115480806A (zh) | 空中下载技术ota的升级方法及装置 | |
CN115221092A (zh) | Pci-e卡可分配的总线确定方法、装置、设备及存储介质 | |
CN114327671A (zh) | 参数配置方法、装置、设备及存储介质 | |
CN110096366B (zh) | 一种异构内存***的配置方法、装置及服务器 | |
CN112764777A (zh) | 低速总线设备的升级方法、装置、设备及可读存储介质 | |
CN106445571B (zh) | 主机板及开机的方法 | |
CN109165099B (zh) | 一种电子设备、内存拷贝方法及装置 | |
CN114844180B (zh) | 应用于电子设备的充电方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |