Note: Packet RBU is implemented but untested at this time. Therefore, it is disabled by default.
$ dellBiosUpdate Usage: dellBiosUpdate [options] --help, -h Displays this information --hdr, -f <args> BIOS update file (.HDR file) --info, -i Dump BIOS update .HDR file info. Does not perform BIOS update --cancel, -c Cancel a previously-scheduled BIOS update --update, -u Schedule BIOS update --test, -t Test this HDR file to see if it is appropriate for this system. --auto_detect Auto-detect update type --force_packet Force update type to be packet-based --force_mono Force update type to be monolithic-based --override_sysid Attempt BIOS update even if .HDR file does not appear to match this system --override_bios_version Attempt BIOS update even if .HDR file is older than current system BIOS --version, -v Display libsmbios version information
The OS-specific part of RBU is simplified. The only operation that needs to happen in the OS is that the BIOS needs to be staged in physical RAM. In the older "monolithic" method, the entire .hdr file is staged in contiguous physical RAM. The newer "packet" method allows the OS to break the image up into similarly-sized packets, each with a header and data. This eases the requirement for physically contiguous physical RAM. The system is then rebooted and the existing system BIOS finds the BIOS update and does the flash programming.
The BIOS uses a bit in CMOS as a flag on bootup to indicate that it should perform an RBU operation. The OS-based BIOS update program sets this CMOS bit before rebooting to flag the BIOS that the update needs to be performed.
In this model, the "dell_rbu" Linux kernel driver performs the job of allocating contiguous physical memory. The dellBiosUpdate executable transfers the header file to dell_rbu and sets the CMOS RBU flag.
For more information on obtaining BIOS .HDR files, see Dell BIOS .HDR files