固件更新系统及方法

文档序号:6609003阅读:198来源:国知局
专利名称:固件更新系统及方法
技术领域
本发明是有关于一种固件更新系统及方法,且特别是有关于一种用以更新电 脑系统的监控芯片的固件的系统及方法。
背景技术
为了能够有效监控主机板上各个元件的运作情形,主机板厂商开发了一种监 控芯片,通过在基板上嵌入一颗监控芯片,作为硬体平台管理的集中处理器,此监 控芯片即为一般熟知的基板管理控制器(Baseboard Management Controller, BMC)。 一般在主机板出厂前,厂商会先将基板管理控制器之固件(firmware)写 入一个快闪只读存储器(flash Read Only Memory, flash ROM)中,以驱动基板 管理控制器进行运作。
传统基板管理控制器的固件的更新是通过输入输出端口 (I叩ut Output port, 10 port)或是系统管理总线(System Management Bus, SMBus),将基板管理控 制器的更新数据传送至基板管理控制器,再由基板管理控制器对其快闪只读存储器 进行更新。然而,通过输入输出端口或是系统管理总线来传送数据时,其传送速度 较慢,导致需花费较多时间来进行更新。举例来说,以键盘控制器规格(Keyboard Controller Style, KCS)而言, 一次只能有一端且一个位元组通过此介面来进行 数据传输,因此当更新的数据量较大时,在传输上便较耗费时间。
另外,当基板管理控制器的固件没有数据,或是固件程序有错误而无法接受 指令或数据时,便无法通过更新程序(flash utility)来更新其固件。而必须通 过额外的除错工具通过特殊的介面(例如JTAG端口),才能进行更新动作。此除 错工具类似于专门读取芯片组(chipset)的机器。然而,在主机板出厂时,并非 所有厂商皆会将此一特殊介面的接脚保留。因此, 一旦基板管理控制器无法接受指 令或数据时,使用者在更新动作上将非常麻烦。
综上所述,若能改善监控芯片之固件更新的安全性,以及增加其更新之速度,将为使用者的一大福祉。

发明内容
本发明提供一种固件更新系统,通过电脑系统的输入输出控制芯片提供更新 时所需的更新数据,而无需通过监控芯片即可直接对其固件进行更新。
本发明提供一种固件更新方法,通过电脑系统的输入输出控制单元以利用存 储器周期(memory cycle)写入的方式,将更新数据写入监控芯片的固件,而加快 更新速度。
本发明提出一种固件更新系统,用以更新电脑系统的监控芯片的固件,此固 件更新系统包括第一存储单元、第二存储单元、控制单元、输入输出控制单元以及 切换单元。其中,第一存储单元耦接至监控芯片,用以存储监控芯片的固件。第二 存储单元则用以存储电脑系统的基本输入输出系统(Basic I叩ut Output System, 以下简称BIOS)的数据。控制单元用以选择更新第一存储单元或第二存储单元, 并发送第一选择信号。另外,输入输出控制单元分别耦接至第一存储单元、第二存 储单元以及控制单元,用以提供第一存储单元或第二存储单元更新时所需的更新数 据。切换单元耦接至第一存储单元及控制单元,用以根据第一选择信号,将第一存 储单元使能,而由输入输出控制单元将更新数据写入第一存储单元以更新固件。
在本发明一实施例中,上述控制单元还包括耦接至第二存储单元,适于发送 第一选择信号给第二存储单元,以使能第二存储单元,而由输入输出控制单元将更 新数据写入第二存储单元以更新数据。
在本发明一实施例中,上述输入输出控制单元包括利用存储器周期写入的方 式将更新数据写入至第一存储单元或第二存储单元。
在本发明一实施例中,上述切换单元包括非门(not gate)与与门(and gate)。 非门适用于将第一选择信号反相。与门的输入端分别耦接至非门的输出端以及监控 芯片,而其输出端耦接至第一存储单元,适用于根据所接收的第一选择信号以及第 二选择信号,决定是否使能第一存储单元以进行更新。
本发明提出一种固件更新方法,适于更新电脑系统的监控芯片的固件,其中 固件系存储于监控芯片的第一存储单元,而电脑系统BIOS的数据则存储于第二存 储单元。此方法首先选择更新监控芯片的固件或电脑系统BIOS的数据。接着,当选择更新监控芯片的固件时,提供监控芯片的更新数据,并通过电脑系统的输入输 出控制单元将更新数据写入第一存储单元。
在本发明一实施例中,还包括当选择更新电脑系统BIOS的数据时,提供BI0S 的更新数据,并通过电脑系统的输入输出控制单元将更新数据写入第二存储单元。
在本发明一实施例中,上述当选择更新监控芯片的固件时,还包括传送更新 询问指令至监控芯片,以询问监控芯片是否可进行更新。若可进行更新,则将更新 数据写入第一存储单元。
在本发明一实施例中,上述询问监控芯片是否可进行更新的步骤包括判断监 控芯片是否有反应。若无反应,则直接将更新数据写入第一存储单元;若有反应,
则询问监控芯片是否可直接进行更新。若可直接进行更新,则直接将更新数据写入 第一存储单元。
在本发明一实施例中,上述判断监控芯片是否有反应的步骤包括检测监控芯 片的回应信息,并倒数预设时间。若预设时间倒数完毕仍未检测到回应信息时,则 判断监控芯片的固件发生错误,而直接将更新数据写入第一存储单元。
本发明在更新监控芯片的固件时,通过电脑系统的输入输出控制单元而无需 经由监控芯片即可直接对其固件进行更新,并利用存储器周期写入的方式,将更新 数据写入监控芯片的固件。如此一来,将提升监控芯片的固件更新的安全性及更新 速度。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合 附图作详细说明如下。


图1是依照本发明一实施例所绘示的固件更新系统方块图。
图2是依照本发明另一实施例所绘示的固件更新系统方块图。 图3是依照本发明一实施例所绘示的固件更新方法流程图。
具体实施例方式
在更新监控芯片的固件时,若监控芯片的固件发生错误而不能接收指令或数 据时,便无法经由监控芯片来更新其固件。因此,本发明提出一种无需经由监控芯片即可更新其固件的系统及方法。为了使本发明的内容更为明了,以下特举实施例 作为本发明确实能够据以实施的范例。
图1是依照本发明一实施例所绘示的固件更新系统方块图。请参照图1,此固
件更新系统100是用以更新电脑系统的监控芯片106的固件,包括控制单元101、 输入输出控制单元102、第一存储单元103、第二存储单元104、切换单元105以 及监控芯片106。控制单元101例如是北桥芯片或南桥芯片,输入输出控制单元102 例如是超级输入输出(Super Input Output, SIO)芯片,第一存储单元103以及 第二存储单元104例如是快闪只读存储器(flash read only memory, flash ROM), 而监控芯片106例如是基板管理控制器(Baseboard Management Controller, BMC) 心片。
此固件更新系统100的各构件连接关系如下所述控制单元101分别与输入 输出控制单元102、第二存储单元104、切换单元105以及监控芯片106连接。而 输入输出控制单元102则分别与第一存储单元103与第二存储单元104连接。另外, 第一存储单元103分别耦接至切换单元105及监控芯片106。而切换单元105亦耦 接至监控芯片106。
其中,控制单元101是用来选择更新第一存储单元103或第二存储单元104, 并发送第一选择信号。此外,控制单元101系通过通用输出(General Purpose Output, GP0)针脚分别与第二存储单元104以及切换单元105连接,并通过输入 输出端口 (Input Output port, 10 port)或系统管理总线(SystemManagement Bus, SMBus)与监控芯片106连接。
详细地说,控制单元101通过通用输出针脚发送第一选择信号至第二存储单 元104与切换单元105,以根据第一选择信号来选择将第一存储单元103或第二存 储单元104使能,而通过输入输出控制单元102将更新数据写入被使能的存储单元 (第一存储单元103或第二存储单元104)来进行更新。
输入输出控制单元102是用以提供第一存储单元103或第二存储单元104更 新时所需的更新数据,以将更新数据写入第一存储单元103或第二存储单元104。 其中,输入输出控制单元102利用存储器周期(memory cycle)写入的方式,将更 新数据写入第一存储单元103或第二存储单元104。详细地说,存储器周期写入即 是利用在将数据写入存储器时,进行一连串的动作,来写入更新数据,这些动作包括从检测地址(address)到根据地址将数据写入等动作。
第一存储单元103是用来存储监控芯片106的固件。举例来说,在主机板出 厂前,厂商会先将监控芯片106的固件写入监控芯片106的快闪只读存储器(即第 一存储单元103)中,以驱动监控芯片106进行运作。另外,第一存储单元103是 通过切换单元105输出之信号来使能,而进行更新动作。
第二存储单元104则是用来存储电脑系统的基本输入输出系统(Basic I叩ut Output System,以下简称为BIOS)的数据,并且根据第一选择信号来决定是否使 能。
第一存储单元103以及第二存储单元104皆分别具有芯片选择(Chip Select, CS)端,其根据所接收的信号,决定是否进行更新。举例来说,当芯片选择端接收 的信号为O时,则其所对应的存储单元(第一存储单元103或第二存储单元104)
将被使能。
切换单元105是用以接收由控制单元101传送而来的第一选择信号以及由监 控芯片106传送而来的第二选择信号,并根据所接收到的这些信号将第一存储单元 103使能,而通过输入输出控制单元102将更新数据写入第一存储单元103,以更 新固件。另外,切换单元105亦通过通用输出针脚与监控芯片106连接。
监控芯片106通过低引脚计数(Low Pin Count, LPC)介面或系统管理总线 (System Management Bus, SMBus)与控制单元101进行沟通,用来接收控制单元 IOI的更新询问指令,并据以将第二选择信号传送至切换单元105。更新询问指令 例如是原始设备制造商(Original Equipment Manufacturer, OEM)指令。
图2是依照本发明另一实施例所绘示的固件更新系统方块图。请参照图2,此 固件更新系统200包括处理单元201、控制单元202、输入输出控制单元203、第 一存储单元204、第二存储单元205、切换单元206、监控芯片207以及第三存储 单元208。其中,切换单元206包括非门(not gate) 209与与门(and gate) 210。
本实施例的控制单元202、输入输出控制单元203、第一存储单元204、第二 存储单元205、切换单元206以及监控芯片207,其连接关系及其功能与上述实施 例的控制单元101、输入输出控制单元102、第一存储单元103、第二存储单元104、 切换单元105以及监控芯片106相同或相似,故在此不再详述。
其中,处理单元201耦接至控制单元202,用以通过控制单元202传送更新指令至输入输出控制单元203,而据以提供更新数据给第一存储单元204或第二存储 单元205以进行更新。详细地说,此更新指令是用以通知控制单元202发送第一选 择信号至第二存储单元205以及切换单元206,亦使得输入输出控制单元203提供 更新数据,以更新第一存储单元204或第二存储单元205。
第三存储单元208与控制单元202连接,用来存储第一存储单元204或第二 存储单元205更新时所需的更新数据,即是存储监控芯片207的固件与BIOS的更 新数据。当进行更新时,控制单元202即从第三存储单元208撷取更新数据,以通 过输入输出控制单元203提供更新时所需的更新数据。
非门209的输入端是通过通用输出针脚与控制单元202连接,用于接收控制 单元202所发送的第一选择信号,并将第一选择信号反相后由其输出端传送至与门 210。
与门210的输入端分别耦接至非门209的输出端以及监控芯片207,其输出端 则与第一存储单元204连接,并根据所接收的信号,决定是否使能第一存储单元 204以进行更新。而监控芯片207通过通用输出针脚与与门210的输入端连接。详 细地说,与门210是用于接收反相后的第一选择信号以及监控芯片传送的第二选择 信号,以进行及逻辑运算,其中,当输入端其中一端为O时,其输出端即为O,只 有在两个输入端皆为1的状况下,输出端为1,而使能第一存储单元204以进行更 新。
为了清楚地说明上述概念,以下即进一步介绍本发明的固件更新方法的详细 步骤。图3是依照本发明一实施例所绘示的固件更新方法流程图。请同时参照图2 及图3,此固件更新方法适于更新电脑系统的监控芯片207的固件,其中固件存储 于监控芯片207的第一存储单元204,而电脑系统BIOS的数据则存储于第二存储 单元205。
首先,在步骤S301中,选择更新监控芯片207的固件或电脑系统BIOS的数 据。在开始进行更新时,处理单元201会传送一个更新指令,使得控制单元202 发送第一选择信号,以选择更新第一存储单元204或第二存储单元205。此外,此 更新指令亦会通知输入输出控制单元203提供更新数据,以进行更新。
举例来说,当第一选择信号为0时,则第二存储单元205将被使能以进行更 新BIOS的数据;反之,当第一选择信号为l时,则第一存储单元204将被使能以进行更新监控芯片207的固件。
接着,当选择更新电脑系统BIOS的数据时,执行步骤S302,由输入输出控制 单元203提供BIOS的更新数据,并将此更新数据写入第二存储单元205。换言之, 即是通过控制单元202自第三存储单元208中撷取BIOS的更新数据,并通过输入 输出控制单元203来更新第二存储单元205。
另一方面,当选择更新监控芯片207的固件时,则执行步骤S303,通过控制 单元202传送更新询问指令至监控芯片207,以判断监控芯片207是否有反应。换 言之,控制单元202会去检测监控芯片207的回应信息,并倒数预设时间,以判断 监控芯片207的固件是否发生错误。
若预设时间倒数完毕仍未检测到回应信息时,则可判断监控芯片207的固件 发生错误。详细地说,由于监控芯片207的固件发生错误时,监控芯片207便不能 正常运作。因此,控制单元202无法检测到回应信息,亦无法经由监控芯片207 对其固件进行更新。此时即可执行步骤S305,略过监控芯片207,直接将更新数据 写入第一存储单元204。 '
此时,在步骤S305中,由输入输出控制单元203提供监控芯片207的固件的 更新数据,并将此更新数据写入第一存储单元204。也就是说,通过控制单元202 自第三存储单元208中撷取监控芯片207之固件的更新数据,并通过输入输出控制 单元203利用存储器周期写入的方式直接将更新数据写入第一存储单元204。
另一方面,若在预设时间内检测到回应信息时,则判断监控芯片207有反应, 而执行步骤S304,以询问监控芯片207是否可直接对其固件进行更新。换言之, 监控芯片207的固件没有问题,因此监控芯片207可正常运作。此时,便可检查其 固件是否需要进行更新,以改善监控芯片207的运作。若可直接对其固件进行更新, 则执行步骤S305直接将更新数据写入第一存储单元204;而若不可直接对其固件 进行更新,则结束更新动作。
举例来说,若判断监控芯片207无反应时,控制单元202便将第一选择信号 设置为l。此时,切换单元206的非门209将第一选择信号反相后,得到为0的输 出信号。当与门210的输入端接收的任一信号为0时,其输出的信号亦为0。因此, 当第一存储单元204的芯片选择端接收到的信号为0时,第一存储单元204即会使 能,并且通知输入输出控制单元203提供监控芯片207的固件的更新数据,以进行更新。
值得注意的是,同一时间只能更新一个存储单元(即第一存储单元204或第 二存储单元205)。因此,第一选择信号与第二选择信号不能设置为相同。换言之,
若欲更新BIOS的数据时,第一选择信号被设置为O,而第二选择信号将被设置为1。 此外,处理单元201亦可直接下达指令强迫直接提供监控芯片207的更新数
据,即不管监控芯片207是否可接受指令或数据,直接通过电脑系统的输入输出控
制单元203将更新数据写入第一存储单元204。
而原本输入输出控制单元203是用以提供BIOS的更新数据以利用存储器周期
的写入方式进行更新。因此,当选择更新监控芯片207的固件更新完成后,可将输
入输出控制单元203提供更新数据的路径转换回提供BIOS的更新数据的路径。举
例来说,更新监控芯片207的固件时,第一选择信号被设置为l,当完成更新后,
即可将第一信号改设置为O。
综上所述,本发明的固件更新系统及方法至少具有下列优点
1. 将输入输出控制单元与存储监控芯片的固件的第一存储单元连接,以通过 输入输出控制单元提供监控芯片的更新数据。因此,无需经由监控芯片即可更新其 固件,改善监控芯片的固件更新的安全性。
2. 通过电脑系统的输入输出控制单元以利用存储器周期写入的方式,将更新 数据写入监控芯片的固件,因而提升更新速度。
3. 由于无需经由监控芯片即可更新其固件,因此不需增加额外硬件装置来进 行更新,在使用上更方便。
4. 当监控芯片的固件内容为空白时亦可更新其固件,提供通过监控芯片本身 安装固件之外的另一种安装途径。
虽然本发明已以较佳实施例揭示如上,然其并非适用于限定本发明,任何所 属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许更动 与润饰,因此本发明的保护范围当以权利要求所界定的为准。
权利要求
1.一种固件更新系统,用以更新一电脑系统的一监控芯片的一固件,包括一第一存储单元,耦接至该监控芯片,适于存储该监控芯片的该固件;一第二存储单元,适于存储该电脑系统的一基本输入输出系统的数据;一控制单元,适于选择更新该第一存储单元或该第二存储单元,并发送一第一选择信号;一输入输出控制单元,分别耦接至该第一存储单元、该第二存储单元以及该控制单元,适于提供该第一存储单元或该第二存储单元更新时所需的一更新数据;以及一切换单元,耦接至该第一存储单元及该控制单元,适于根据该第一选择信号,使能该第一存储单元,而由该输入输出控制单元将该更新数据写入该第一存储单元以更新该固件。
2. 如权利要求1所述的固件更新系统,其特征在于,该控制单元还包括耦接至 该第二存储单元,适于发送该第一选择信号给该第二存储单元,以使能该第二存储 单元,而由该输入输出控制单元将该更新数据写入该第二存储单元以更新数据。
3. 如权利要求2所述的固件更新系统,其特征在于,该输入输出控制单元包括 利用一存储器周期写入的方式将该更新数据写入该第一存储单元或该第二存储单 元。
4. 如权利要求1所述的固件更新系统,其特征在于,还包括 一第三存储单元,耦接至该控制单元,适于存储该第一存储单元或该第二存储单元更新时所需的该更新数据。
5. 如权利要求1所述的固件更新系统,其特征在于,该监控芯片还包括耦接至 该控制单元及该切换单元,适于接收该控制单元的一更新询问指令,并据以传送一 第二选择信号至该切换单元。
6. 如权利要求5所述的固件更新系统,其特征在于,该切换单元包括 一非门,适用于将该第一选择信号反相;以及一与门,其输入端分别耦接至该非门的输出端以及该监控芯片,而其输出端 耦接至该第一存储单元,适用于根据所接收的该第一选择信号以及该第二选择信号,决定是否使能该第一存储单元以进行更新。
7. 如权利要求1所述的固件更新系统,其特征在于,该第一存储单元以及该第 二存储单元分别具有一芯片选择端,适用于根据所接收的信号,决定是否进行更新。
8. 如权利要求1所述的固件更新系统,其特征在于,还包括-一处理单元,耦接至该控制单元,适用于通过该控制单元传送一更新指令至 该输入输出控制单元,据以提供该更新数据给该第一存储单元或该第二存储单元以 进行更新。
9. 如权利要求I所述的固件更新系统,其特征在于,该控制单元包括通过输入输出端口以及系统管理总线其中之一与该监控芯片连接。
10. 如权利要求1所述的固件更新系统,其特征在于,该第一存储单元以及该 第二存储单元为快闪只读存储器。
11. 如权利要求1所述的固件更新系统,其特征在于,该监控芯片包括基板管 理控制器芯片。
12. —种固件更新方法,适于更新一电脑系统的一监控芯片的一固件,其特征 在于,该固件系存储于该监控芯片的一第一存储单元,而该电脑系统的一基本输入输出系统的数据则存储于一第二存储单元,该方法包括下列步骤选择更新该监控芯片的该固件或该电脑系统的该基本输入输出系统的数据;以及当选择更新该监控芯片的该固件时,提供该监控芯片的一更新数据,并通过 该电脑系统的一输入输出控制单元将该更新数据写入该第一存储单元。
13. 如权利要求12所述的固件更新方法,其特征在于,还包括-当选择更新该电脑系统的该基本输入输出系统的数据时,提供该基本输入输 出系统的该更新数据,并通过该电脑系统的该输入输出控制单元将该更新数据写入 该第二存储单元。
14. 如权利要求13所述的固件更新系统,其特征在于,该输入输出控制单元包 括利用一存储器周期写入的方式将该更新数据写入该第一存储单元或该第二存储 单元。
15. 如权利要求12所述的固件更新方法,其特征在于,当选择更新该监控芯片的该固件时,还包括传送一更新询问指令至该监控芯片,以询问该监控芯片是否可进行更新;以及若可进行更新,则将该更新数据写入该第一存储单元。
16. 如权利要求15所述的固件更新方法,其特征在于,询问该监控芯片是否可 进行更新的步骤包括判断该监控芯片是否有反应;若无反应,则直接将该更新数据写入该第一存储单元; 若有反应,则询问该监控芯片是否可直接进行更新;以及 若可直接进行更新,则直接将该更新数据写入该第一存储单元。
17. 如权利要求16所述的固件更新方法,其特征在于,判断该监控芯片是否有 反应的步骤包括检测该监控芯片的一回应信息,并倒数一预设时间;若该预设时间倒数完毕仍未检测到该回应信息时,则判断该监控芯片的该固 件发生错误,而直接将该更新数据写入该第一存储单元。
18. 如权利要求15所述的固件更新方法,其特征在于,该更新询问指令为原始设备制造商指令。
全文摘要
本发明公开了一种固件更新系统及方法。本发明将输入输出控制单元与存储监控芯片的固件的存储单元连接,以通过输入输出控制单元提供监控芯片的更新数据。通过切换单元使能存储单元,并由输入输出控制单元利用存储器周期写入的方式,将更新数据写入存储单元以更新固件。因此,本发明无需经由监控芯片即可更新其固件,而改善监控芯片的固件更新的安全性及效率。
文档编号G06F9/445GK101295255SQ200710102499
公开日2008年10月29日 申请日期2007年4月27日 优先权日2007年4月27日
发明者卢盈志 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1