diff options
Diffstat (limited to 'Documentation/dell_rbu.txt')
| -rw-r--r-- | Documentation/dell_rbu.txt | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/Documentation/dell_rbu.txt b/Documentation/dell_rbu.txt index 95d7f62e4dbc..941343a7a265 100644 --- a/Documentation/dell_rbu.txt +++ b/Documentation/dell_rbu.txt | |||
| @@ -35,6 +35,7 @@ The driver load creates the following directories under the /sys file system. | |||
| 35 | /sys/class/firmware/dell_rbu/data | 35 | /sys/class/firmware/dell_rbu/data |
| 36 | /sys/devices/platform/dell_rbu/image_type | 36 | /sys/devices/platform/dell_rbu/image_type |
| 37 | /sys/devices/platform/dell_rbu/data | 37 | /sys/devices/platform/dell_rbu/data |
| 38 | /sys/devices/platform/dell_rbu/packet_size | ||
| 38 | 39 | ||
| 39 | The driver supports two types of update mechanism; monolithic and packetized. | 40 | The driver supports two types of update mechanism; monolithic and packetized. |
| 40 | These update mechanism depends upon the BIOS currently running on the system. | 41 | These update mechanism depends upon the BIOS currently running on the system. |
| @@ -47,8 +48,26 @@ By default the driver uses monolithic memory for the update type. This can be | |||
| 47 | changed to packets during the driver load time by specifying the load | 48 | changed to packets during the driver load time by specifying the load |
| 48 | parameter image_type=packet. This can also be changed later as below | 49 | parameter image_type=packet. This can also be changed later as below |
| 49 | echo packet > /sys/devices/platform/dell_rbu/image_type | 50 | echo packet > /sys/devices/platform/dell_rbu/image_type |
| 50 | Also echoing either mono ,packet or init in to image_type will free up the | 51 | |
| 51 | memory allocated by the driver. | 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 neesd 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 | placs it next to the packetheader; now, the packetheader + BIOS image chunk | ||
| 59 | added to geather 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 accross 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. | ||
| 52 | 71 | ||
| 53 | Do the steps below to download the BIOS image. | 72 | Do the steps below to download the BIOS image. |
| 54 | 1) echo 1 > /sys/class/firmware/dell_rbu/loading | 73 | 1) echo 1 > /sys/class/firmware/dell_rbu/loading |
| @@ -58,7 +77,10 @@ Do the steps below to download the BIOS image. | |||
| 58 | The /sys/class/firmware/dell_rbu/ entries will remain till the following is | 77 | The /sys/class/firmware/dell_rbu/ entries will remain till the following is |
| 59 | done. | 78 | done. |
| 60 | echo -1 > /sys/class/firmware/dell_rbu/loading. | 79 | echo -1 > /sys/class/firmware/dell_rbu/loading. |
| 61 | Until this step is completed the drivr cannot be unloaded. | 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 | |||
| 62 | If an user by accident executes steps 1 and 3 above without executing step 2; | 84 | If an user by accident executes steps 1 and 3 above without executing step 2; |
| 63 | it will make the /sys/class/firmware/dell_rbu/ entries to disappear. | 85 | it will make the /sys/class/firmware/dell_rbu/ entries to disappear. |
| 64 | The entries can be recreated by doing the following | 86 | The entries can be recreated by doing the following |
| @@ -66,15 +88,11 @@ echo init > /sys/devices/platform/dell_rbu/image_type | |||
| 66 | NOTE: echoing init in image_type does not change it original value. | 88 | NOTE: echoing init in image_type does not change it original value. |
| 67 | 89 | ||
| 68 | Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to | 90 | Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to |
| 69 | read back the image downloaded. This is useful in case of packet update | 91 | read back the image downloaded. |
| 70 | mechanism where the above steps 1,2,3 will repeated for every packet. | ||
| 71 | By reading the /sys/devices/platform/dell_rbu/data file all packet data | ||
| 72 | downloaded can be verified in a single file. | ||
| 73 | The packets are arranged in this file one after the other in a FIFO order. | ||
| 74 | 92 | ||
| 75 | NOTE: | 93 | NOTE: |
| 76 | This driver requires a patch for firmware_class.c which has the addition | 94 | This driver requires a patch for firmware_class.c which has the modified |
| 77 | of request_firmware_nowait_nohotplug function to wortk | 95 | request_firmware_nowait function. |
| 78 | Also after updating the BIOS image an user mdoe application neeeds to execute | 96 | Also after updating the BIOS image an user mdoe application neeeds to execute |
| 79 | code which message the BIOS update request to the BIOS. So on the next reboot | 97 | code which message the BIOS update request to the BIOS. So on the next reboot |
| 80 | the BIOS knows about the new image downloaded and it updates it self. | 98 | the BIOS knows about the new image downloaded and it updates it self. |
