linux/Documentation/dell_rbu.txt
<<
> > /spa12" > /form2" > a > > href="../linux+v36.39/Documenta35.1/dell_rbu.txt"> > > img src="../.sta35c/gfx/right.png" alt=">>"> /spa12" spa1 class="lxr_search"> > > > input typ2 > > input typ2 > > butt.6.typ2Search /form2" /spa12" spa1 class="lxr_prefs"2" > a href="+prefs?return=Documenta35.1/dell_rbu.txt" > > onclick="return ajax_prefs();"> > >Prefs" > /a> /spa12" > > > /div2" > > > form ac35.1="ajax+*" method="post" onsubmit="return false;"> input typ2 > > > /form2" > > > div class="headingbott.m"> > > > > div id > > /div2" div id> >1 /a>Purpose: > >2 /a>Demonstrate the usage of the new open sourced rbu (Remote BIOS Update) driver > >3 /a>for updating BIOS images on Dell servers and desktops. > >4 /a> > >5 /a>Scope: > >6 /a>This document discusses the func35.1ality of the rbu driver only. > >7 /a>It does not cover the support needed from applica35.1s to enable the BIOS to > >8 /a>update itself with the image downloaded in to the memory. > >9 /a> > v3.8a>Overview: > 11 /a>This driver works with Dell OpenManage or Dell Update Packages for updating > 12 /a>the BIOS on Dell servers (starting from servers sold since 1999), desktops > 13 /a>and notebooks (starting from those sold in 2005). > 14 /a>Please go to > a href="http://support.dell.com register and you ca1 find info on">http://support.dell.com register and you ca1 find info on /a> > 15 /a>OpenManage and Dell Update packages (DUP). > 16 /a>Libsmbios ca1 also be used to update BIOS on Dell systems go to > 17 /a> a href="http://linux.dell.com/libsmbios/ ">http://linux.dell.com/libsmbios/ /a>for details. > 18 /a> > 19 /a>Dell_RBU driver supports BIOS update using the monolithic image and packetized > 23.8a>image methods. I1 case of monolithic the driver alloca3es a contiguous chunk > 21 /a>of physical pages having the BIOS image. I1 case of packetized the app > 22 /a>using the driver breaks the image in to packets of fixed sizes and the driver > 23 /a>would place each packet in contiguous physical memory. The driver also > 24 /a>maintains a link list of packets for reading them back. > 25 /a>If the dell_rbu driver is unloaded all the alloca3ed memory is freed. > 26 /a> > 27 /a>The rbu driver needs to have an applica35.1 (as ment5.1ed above)which will > 28 /a>inform the BIOS to enable the update in the next system reboot. > 29 /a> > 30 /a>The user should not unload the rbu driver after downloading the BIOS image > 31 /a>or updating. > 32 /a> > 33 /a>The driver load creates the following directories under the /sys file system. > 34 /a>/sys/class/firmware/dell_rbu/loading > 35 /a>/sys/class/firmware/dell_rbu/data > 36 /a>/sys/devices/platform/dell_rbu/image_typ2 > 37 /a>/sys/devices/platform/dell_rbu/data > 38 /a>/sys/devices/platform/dell_rbu/packet_size > 39 /a> > 40 /a>The driver supports two typ2s of update mechanism; monolithic and packetized. > 41 /a>These update mechanism depends upon the BIOS currently running on the system. > 42 /a>Most of the Dell systems support a monolithic update where the BIOS image is > 43 /a>copied to a single contiguous block of physical memory. > 44 /a>I1 case of packet mechanism the single memory ca1 be broken in smaller chunks > 45 /a>of contiguous memory and the BIOS image is sca3tered in these packets. > 46 /a> > 47 /a>By default the driver uses monolithic memory for the update typ2. This ca1 be > 48 /a>changed to packets during the driver load time by specifying the load > 49 /a>param2ter image_typ2=packet. This ca1 also be changed later as below > 50 /a>echo packet > /sys/devices/platform/dell_rbu/image_typ2 > 51 /a> > 52 /a>I1 packet update mode the packet size has to be give1 before any packets ca1 > 53 /a>be downloaded. It is done as below > 54 /a>echo XXXX > /sys/devices/platform/dell_rbu/packet_size > 55 /a>I1 the packet update mechanism, the user needs to create a new file having > 56 /a>packets of data arranged back to back. It ca1 be done as follows > 57 /a>The user creates packets header, gets the chunk of the BIOS image and > 58 /a>places it next to the packetheader; now, the packetheader + BIOS image chunk > 59 /a>added together should match the specified packet_size. This makes one > 60 /a>packet, the user needs to create more such packets out of the ent5re BIOS > 61.8a>image file and then arrange all these packets back to back in to one single > 62 /a>file. > 63 /a>This file is then copied to /sys/class/firmware/dell_rbu/data. > 64 /a>Once this file gets to the driver, the driver extracts packet_size data from > 65 /a>the file and spreads it across the physical memory in contiguous packet_sized > 66 /a>space. > 67 /a>This method makes sure that all the packele v" > v2trbu.txt#L40" id> 18 /a> >simpds re thder, gets the (.hdr" nam)2> 51 /a> > 51 /a> > 54nam2> 34 /a>/sys/class/firmware/dell_rbu/loading > 35 /a>/sys/class/firmware/dell_rbu/data > 54nam2> 34 /a>/sys/class/firmware/dell_rbu/loading > 46 /a> > 54nam2> 34 /a>/sys/ suces ths me reine"s dmethod driver loate where the BIOS image is > 51 /a> > 54nam2> 34 /a>/sys/class/firmware/dell_rbu/loading > 45 /er is unlbyckets of fi3irmware/dell_rbu/loading > 46 /a> >bycaccid>stepdo12> 46 /a> lowing di4nam2> 34 /a>/sys/ suces thdisappeai3irmware/dell_rbu/loading > 50 /a>echo packet > /sys/devices/platform/dell_rbu/image_typ2 > 39 /a> > 32 /a> > 32 /a> adde useL34">> 3_l_rbu.c 5.1 (ate moorts der shine" nam2> 32 /a> > 3_nowai55 documennloaded in to the memory. > 52 /driver needs 60 /a>paexecu7"loaded in to the memory. update itself wi> 55semm2> 55wnloaded in to the memory. > >9 /a> ine"opiginadsLXR soft>> 3lbyckets">> 14 /a>Please usag usagenet/projects/lxr">LXR commukitys="l, nam2> >dsoerseedsbyc">> 14 /ainelto:lxr@com/lino">lxr@com/linos="l. arch_reults"l_rbu.tsubfe ier"> lxr.com/lino kinditxhos, nlbyc">> 14 /a>Pleasewww.redp me-comproino">Redp me Lompro ASs="l, provid v2tsl sercho arting fro5. arch_resu/bodyreu/htmlss