This invention relates to system and method of downloading a firmware to a server via a smart phone and a USB port of the server.
A mainboard of a server includes a baseboard management controller (BMC) which provides fundamental services of server management. It is thus imperative to prevent corruption of the BMC and to provide recovery solutions in case of corruption. In one existing recovery solution, a separate Uboot/Kernel provided with a file system is saved in a separate “almost RO” chip, e.g. a NOR flash. The Uboot/Kernel reads the recovery image from a trivial file transfer protocol (TFTP) server or flash disk. The drawbacks of such an arrangement include (a) a separate chip is required to save the recovery image for recovery purpose; (b) a serial debug cable is usually required to be attached for the operations, and (c) the security concern over the use of flash disks. One other possible recovery solution includes saving two copies of the BMC images in two chips, with one of the two chips being reserved for recovery purpose only. If all bootable images are corrupted, then replacement of the mainboard is the only choice.
It is thus an object of the present invention to provide a server and a method in which the aforesaid shortcomings are mitigated or at least to provide a useful alternative to the trade and public.
According to a first aspect of the present invention, there is provided a server including a mainboard with a baseboard management controller (BMC) having a universal serial bus (USB) device controller; at least one USB port; and an integrated circuit (IC) device, wherein the IC device is operable to connect said USB port to said USB device controller of said BMC.
According to a second aspect of the present invention, there is provided a method including connecting a universal serial bus (USB) port of a server to a USB device controller of a baseboard management controller (BMC) of the server; resetting said BMC; connecting a data processing device with said server via said USB port; and downloading a firmware to said BMC from or through said data processing device via said USB port.
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
A schematic view of an example system for downloading a firmware to a server 10 via a smart phone 12 and a USB port 14 of the server 10 is shown in
The FPGA 22 is connected with boot pins 24 of the server 10, and with an identity (ID) button 26 and a power (PWR) button 28 of the server 10.
Normally, the USB port 14 is assigned to the server host, and connected with the USB host controller 18a of the PCH 18. The BMC 20 may load a boot image from a NAND or NOR flash; the PWR button 28 is operable to power on/off the server 10 and the ID button 26 is a button with light-emitting diode (LED) indication.
For carrying out the firmware recovery process according to a first method, the ID button 26 and the PWR button 28 are pressed at the same time, whereby instructions are sent to the FPGA 22, which activates the switch 16 to disconnect the USB port 14 from the USB host controller 18a of the PCH 18 and to connect the USB port 14 instead with the USB device controller 20b of the BMC 20. The FPGA 22 then changes the values of the boot pins 24 to enable BMC boot from the USB device port 14, and finally resets the BMC 20.
Turning then to
The smart phone Apps selects the appropriate firmware image (S110), sends a transmission start command (S112), sends the selected firmware image (S114), and then sends a transmission end command (S116). If the download is to be continued (S118), the Apps starts a new firmware image (S110). If the download is not to be continued (S118), the smart phone Apps ends the operation (S120).
The FirmwareWriter application software initializes a target flash memory (S122) and listens to the USB device port 14 (S124). If image data are received (S126), it checks the image type (S128) and saves the image (e.g. firmware copy) to the target flash memory (S130). It then checks whether the download is complete (S132). If not, it again listens to the USB device port 14 (S124) for the reception of image data (S126). If the download is complete (S132), it will check if a next image is to be transferred (S134). If so, it again listens to the USB device port 14 (S124) for the reception of image data (S126). If no further image is to be transferred (S134), it will reset the boot pins 24 (S136), and then reset the BMC 20 (S138).
If the BMC CPU does not support booting from USB device port 14, and as shown in
The Uboot checks the boot pins (S140) to determine whether the USB device port 14 has been switched to the USB device controller 20b of the BMC 20 (S141). The Uboot then listens to the USB device port 14 (S142) to check if any image data (e.g. of a firmware) are received (S144) from a smart phone 12. If image data are received from a smart phone 12, the image data are written to the target position (S146). The Uboot then checks if the download is complete (S148). If not, it will continue to listen to the USB device port 14 (S142). If the download is complete (S148), it will inform the FPGA 22 to switch the USB port 14 back to the PCH 18 of the server 10 (S150), and then the normal boot process will continue (S152).
The smart phone 12 is installed with a smart phone application software (Apps). The Apps checks the machine type of the server 10 (S154), and then selects the appropriate image type to be transferred (S156) from the network or Internet location to which it is connected. The Apps then downloads the image from a remote site (S158), such as an trusted website. It then sends a transmission start command (S160), sends the selected firmware image (S162), and then sends a transmission end command (S164). It will then check if the download is to continue (S166). If so, the Apps again selects the appropriate image type to be transferred (S156) from the trusted website to which it is connected. If, on the other hand, no further downloading is required, the Apps will end operation (S168).
The following are advantages of the present invention:
It should be understood that the above only illustrates examples whereby the present invention may be carried out, and that various modifications and/or alterations may be made thereto without departing from the spirit of the invention.
It should also be understood that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any appropriate sub-combinations.
Number | Date | Country | Kind |
---|---|---|---|
201810890013.9 | Aug 2018 | CN | national |
Number | Name | Date | Kind |
---|---|---|---|
10331434 | Tung | Jun 2019 | B2 |
20070169088 | Lambert | Jul 2007 | A1 |
20130007430 | Fan | Jan 2013 | A1 |
20130173952 | Gao | Jul 2013 | A1 |
20150186150 | Chung | Jul 2015 | A1 |
20160179648 | Srivastava | Jun 2016 | A1 |
20160283221 | Kochar | Sep 2016 | A1 |
20170052854 | Yang | Feb 2017 | A1 |
20170322816 | Parthiban | Nov 2017 | A1 |
20180088962 | Balakrishnan | Mar 2018 | A1 |
20180246830 | Zhu | Aug 2018 | A1 |
20190045654 | Abbondanzio | Feb 2019 | A1 |
20200379743 | Wang | Dec 2020 | A1 |
Number | Date | Country | |
---|---|---|---|
20200050460 A1 | Feb 2020 | US |