Skip to content

Commit 6c54c28

Browse files
Abhay SalunkeLinus Torvalds
authored andcommitted
[PATCH] dell_rbu: new Dell BIOS update driver
Remote BIOS Update driver for updating BIOS images on Dell servers and desktops. See dell_rbu.txt for details. Signed-off-by: Abhay Salunke <Abhay_Salunke@dell.com> Cc: Greg KH <greg@kroah.com> Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent 6e3eaab commit 6c54c28

File tree

4 files changed

+718
-0
lines changed

4 files changed

+718
-0
lines changed

Documentation/dell_rbu.txt

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
Purpose:
2+
Demonstrate the usage of the new open sourced rbu (Remote BIOS Update) driver
3+
for updating BIOS images on Dell servers and desktops.
4+
5+
Scope:
6+
This document discusses the functionality of the rbu driver only.
7+
It does not cover the support needed from aplications to enable the BIOS to
8+
update itself with the image downloaded in to the memory.
9+
10+
Overview:
11+
This driver works with Dell OpenManage or Dell Update Packages for updating
12+
the BIOS on Dell servers (starting from servers sold since 1999), desktops
13+
and notebooks (starting from those sold in 2005).
14+
Please go to http://support.dell.com register and you can find info on
15+
OpenManage and Dell Update packages (DUP).
16+
17+
Dell_RBU driver supports BIOS update using the monilothic image and packetized
18+
image methods. In case of moniolithic the driver allocates a contiguous chunk
19+
of physical pages having the BIOS image. In case of packetized the app
20+
using the driver breaks the image in to packets of fixed sizes and the driver
21+
would place each packet in contiguous physical memory. The driver also
22+
maintains a link list of packets for reading them back.
23+
If the dell_rbu driver is unloaded all the allocated memory is freed.
24+
25+
The rbu driver needs to have an application which will inform the BIOS to
26+
enable the update in the next system reboot.
27+
28+
The user should not unload the rbu driver after downloading the BIOS image
29+
or updating.
30+
31+
The driver load creates the following directories under the /sys file system.
32+
/sys/class/firmware/dell_rbu/loading
33+
/sys/class/firmware/dell_rbu/data
34+
/sys/devices/platform/dell_rbu/image_type
35+
/sys/devices/platform/dell_rbu/data
36+
37+
The driver supports two types of update mechanism; monolithic and packetized.
38+
These update mechanism depends upon the BIOS currently running on the system.
39+
Most of the Dell systems support a monolithic update where the BIOS image is
40+
copied to a single contiguous block of physical memory.
41+
In case of packet mechanism the single memory can be broken in smaller chuks
42+
of contiguous memory and the BIOS image is scattered in these packets.
43+
44+
By default the driver uses monolithic memory for the update type. This can be
45+
changed to contiguous during the driver load time by specifying the load
46+
parameter image_type=packet. This can also be changed later as below
47+
echo packet > /sys/devices/platform/dell_rbu/image_type
48+
49+
Do the steps below to download the BIOS image.
50+
1) echo 1 > /sys/class/firmware/dell_rbu/loading
51+
2) cp bios_image.hdr /sys/class/firmware/dell_rbu/data
52+
3) echo 0 > /sys/class/firmware/dell_rbu/loading
53+
54+
The /sys/class/firmware/dell_rbu/ entries will remain till the following is
55+
done.
56+
echo -1 > /sys/class/firmware/dell_rbu/loading
57+
58+
Until this step is completed the drivr cannot be unloaded.
59+
60+
Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
61+
read back the image downloaded. This is useful in case of packet update
62+
mechanism where the above steps 1,2,3 will repeated for every packet.
63+
By reading the /sys/devices/platform/dell_rbu/data file all packet data
64+
downloaded can be verified in a single file.
65+
The packets are arranged in this file one after the other in a FIFO order.
66+
67+
NOTE:
68+
This driver requires a patch for firmware_class.c which has the addition
69+
of request_firmware_nowait_nohotplug function to wortk
70+
Also after updating the BIOS image an user mdoe application neeeds to execute
71+
code which message the BIOS update request to the BIOS. So on the next reboot
72+
the BIOS knows about the new image downloaded and it updates it self.
73+
Also don't unload the rbu drive if the image has to be updated.
74+

drivers/firmware/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,13 @@ config EFI_PCDP
5858

5959
See <http://www.dig64.org/specifications/DIG64_HCDPv20_042804.pdf>
6060

61+
config DELL_RBU
62+
tristate "BIOS update support for DELL systems via sysfs"
63+
select FW_LOADER
64+
help
65+
Say m if you want to have the option of updating the BIOS for your
66+
DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
67+
supporting application to comunicate with the BIOS regarding the new
68+
image for the image update to take effect.
69+
See <file:Documentation/dell_rbu.txt> for more details on the driver.
6170
endmenu

drivers/firmware/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
obj-$(CONFIG_EDD) += edd.o
55
obj-$(CONFIG_EFI_VARS) += efivars.o
66
obj-$(CONFIG_EFI_PCDP) += pcdp.o
7+
obj-$(CONFIG_DELL_RBU) += dell_rbu.o

0 commit comments

Comments
 (0)