Root/
Source at commit b13e7eb172b6f08e5fc22da162bdde5fcde201b5 created 11 years 11 months ago. By Maarten ter Huurne, fbcon: Add 6x10 font | |
---|---|
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 applications 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 | Libsmbios can also be used to update BIOS on Dell systems go to |
17 | http://linux.dell.com/libsmbios/ for details. |
18 | |
19 | Dell_RBU driver supports BIOS update using the monolithic image and packetized |
20 | image methods. In case of monolithic the driver allocates a contiguous chunk |
21 | of physical pages having the BIOS image. In case of packetized the app |
22 | using the driver breaks the image in to packets of fixed sizes and the driver |
23 | would place each packet in contiguous physical memory. The driver also |
24 | maintains a link list of packets for reading them back. |
25 | If the dell_rbu driver is unloaded all the allocated memory is freed. |
26 | |
27 | The rbu driver needs to have an application (as mentioned above)which will |
28 | inform the BIOS to enable the update in the next system reboot. |
29 | |
30 | The user should not unload the rbu driver after downloading the BIOS image |
31 | or updating. |
32 | |
33 | The driver load creates the following directories under the /sys file system. |
34 | /sys/class/firmware/dell_rbu/loading |
35 | /sys/class/firmware/dell_rbu/data |
36 | /sys/devices/platform/dell_rbu/image_type |
37 | /sys/devices/platform/dell_rbu/data |
38 | /sys/devices/platform/dell_rbu/packet_size |
39 | |
40 | The driver supports two types of update mechanism; monolithic and packetized. |
41 | These update mechanism depends upon the BIOS currently running on the system. |
42 | Most of the Dell systems support a monolithic update where the BIOS image is |
43 | copied to a single contiguous block of physical memory. |
44 | In case of packet mechanism the single memory can be broken in smaller chunks |
45 | of contiguous memory and the BIOS image is scattered in these packets. |
46 | |
47 | By default the driver uses monolithic memory for the update type. This can be |
48 | changed to packets during the driver load time by specifying the load |
49 | parameter image_type=packet. This can also be changed later as below |
50 | echo packet > /sys/devices/platform/dell_rbu/image_type |
51 | |
52 | In packet update mode the packet size has to be given before any packets can |
53 | be downloaded. It is done as below |
54 | echo XXXX > /sys/devices/platform/dell_rbu/packet_size |
55 | In the packet update mechanism, the user needs to create a new file having |
56 | packets of data arranged back to back. It can be done as follows |
57 | The user creates packets header, gets the chunk of the BIOS image and |
58 | places it next to the packetheader; now, the packetheader + BIOS image chunk |
59 | added together should match the specified packet_size. This makes one |
60 | packet, the user needs to create more such packets out of the entire BIOS |
61 | image file and then arrange all these packets back to back in to one single |
62 | file. |
63 | This file is then copied to /sys/class/firmware/dell_rbu/data. |
64 | Once this file gets to the driver, the driver extracts packet_size data from |
65 | the file and spreads it across the physical memory in contiguous packet_sized |
66 | space. |
67 | This method makes sure that all the packets get to the driver in a single operation. |
68 | |
69 | In monolithic update the user simply get the BIOS image (.hdr file) and copies |
70 | to the data file as is without any change to the BIOS image itself. |
71 | |
72 | Do the steps below to download the BIOS image. |
73 | 1) echo 1 > /sys/class/firmware/dell_rbu/loading |
74 | 2) cp bios_image.hdr /sys/class/firmware/dell_rbu/data |
75 | 3) echo 0 > /sys/class/firmware/dell_rbu/loading |
76 | |
77 | The /sys/class/firmware/dell_rbu/ entries will remain till the following is |
78 | done. |
79 | echo -1 > /sys/class/firmware/dell_rbu/loading |
80 | Until this step is completed the driver cannot be unloaded. |
81 | Also echoing either mono, packet or init in to image_type will free up the |
82 | memory allocated by the driver. |
83 | |
84 | If a user by accident executes steps 1 and 3 above without executing step 2; |
85 | it will make the /sys/class/firmware/dell_rbu/ entries disappear. |
86 | The entries can be recreated by doing the following |
87 | echo init > /sys/devices/platform/dell_rbu/image_type |
88 | NOTE: echoing init in image_type does not change it original value. |
89 | |
90 | Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to |
91 | read back the image downloaded. |
92 | |
93 | NOTE: |
94 | This driver requires a patch for firmware_class.c which has the modified |
95 | request_firmware_nowait function. |
96 | Also after updating the BIOS image a user mode application needs to execute |
97 | code which sends the BIOS update request to the BIOS. So on the next reboot |
98 | the BIOS knows about the new image downloaded and it updates itself. |
99 | Also don't unload the rbu driver if the image has to be updated. |
100 | |
101 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9