| Purpose: |
| Demonstrate the usage of the new open sourced rbu (Remote BIOS Update) driver |
| for updating BIOS images on Dell servers and desktops. |
| |
| Scope: |
| This document discusses the functionality of the rbu driver only. |
| It does not cover the support needed from aplications to enable the BIOS to |
| update itself with the image downloaded in to the memory. |
| |
| Overview: |
| This driver works with Dell OpenManage or Dell Update Packages for updating |
| the BIOS on Dell servers (starting from servers sold since 1999), desktops |
| and notebooks (starting from those sold in 2005). |
| Please go to http://support.dell.com register and you can find info on |
| OpenManage and Dell Update packages (DUP). |
| |
| Dell_RBU driver supports BIOS update using the monilothic image and packetized |
| image methods. In case of moniolithic the driver allocates a contiguous chunk |
| of physical pages having the BIOS image. In case of packetized the app |
| using the driver breaks the image in to packets of fixed sizes and the driver |
| would place each packet in contiguous physical memory. The driver also |
| maintains a link list of packets for reading them back. |
| If the dell_rbu driver is unloaded all the allocated memory is freed. |
| |
| The rbu driver needs to have an application which will inform the BIOS to |
| enable the update in the next system reboot. |
| |
| The user should not unload the rbu driver after downloading the BIOS image |
| or updating. |
| |
| The driver load creates the following directories under the /sys file system. |
| /sys/class/firmware/dell_rbu/loading |
| /sys/class/firmware/dell_rbu/data |
| /sys/devices/platform/dell_rbu/image_type |
| /sys/devices/platform/dell_rbu/data |
| |
| The driver supports two types of update mechanism; monolithic and packetized. |
| These update mechanism depends upon the BIOS currently running on the system. |
| Most of the Dell systems support a monolithic update where the BIOS image is |
| copied to a single contiguous block of physical memory. |
| In case of packet mechanism the single memory can be broken in smaller chuks |
| of contiguous memory and the BIOS image is scattered in these packets. |
| |
| By default the driver uses monolithic memory for the update type. This can be |
| changed to contiguous during the driver load time by specifying the load |
| parameter image_type=packet. This can also be changed later as below |
| echo packet > /sys/devices/platform/dell_rbu/image_type |
| |
| Do the steps below to download the BIOS image. |
| 1) echo 1 > /sys/class/firmware/dell_rbu/loading |
| 2) cp bios_image.hdr /sys/class/firmware/dell_rbu/data |
| 3) echo 0 > /sys/class/firmware/dell_rbu/loading |
| |
| The /sys/class/firmware/dell_rbu/ entries will remain till the following is |
| done. |
| echo -1 > /sys/class/firmware/dell_rbu/loading |
| |
| Until this step is completed the drivr cannot be unloaded. |
| |
| Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to |
| read back the image downloaded. This is useful in case of packet update |
| mechanism where the above steps 1,2,3 will repeated for every packet. |
| By reading the /sys/devices/platform/dell_rbu/data file all packet data |
| downloaded can be verified in a single file. |
| The packets are arranged in this file one after the other in a FIFO order. |
| |
| NOTE: |
| This driver requires a patch for firmware_class.c which has the addition |
| of request_firmware_nowait_nohotplug function to wortk |
| Also after updating the BIOS image an user mdoe application neeeds to execute |
| code which message the BIOS update request to the BIOS. So on the next reboot |
| the BIOS knows about the new image downloaded and it updates it self. |
| Also don't unload the rbu drive if the image has to be updated. |
| |