Re: [patch 2.6.12-rc3] modified firmware_class.c to add a newfunction request_firmware_nowait_nohotplug

From: randy_dunlap
Date: Fri Jul 08 2005 - 16:20:39 EST


On Fri, 8 Jul 2005 19:16:57 -0500 Abhay Salunke wrote:

| This is the patch to add dell_rbu driver. This patch requires the
| firmware_class.c patch sent earlier which adds request_firmware_nowait_nohotplug
| function.
| Andrew ,
| Could you add this patch to the -mm tree. This patch was submitted about a
| week ago for review.
|
| Signed-off-by: Abhay Salunke <Abhay_Salunke@xxxxxxxx>
|
| Thanks
| Abhay
| diff -uprN linux-2.6.11.11.orig/Documentation/dell_rbu.txt linux-2.6.11.11.new/Documentation/dell_rbu.txt
| --- linux-2.6.11.11.orig/Documentation/dell_rbu.txt 1969-12-31 18:00:00.000000000 -0600
| +++ linux-2.6.11.11.new/Documentation/dell_rbu.txt 2005-06-30 15:41:28.000000000 -0500
| @@ -0,0 +1,72 @@
| +Purpose:
| +Demonstrate the usage of the new open sourced rbu (Remote BIOS Update) driver
| +for updating BIOS images on Dell servers and desktops.
| +
| +Scope:
| +This document discusses the functionality of the rbu driver only.
| +It does not cover the support needed from aplications to enable the BIOS to
| +update itself with the image downloaded in to the memory.
| +
| +Overview:
| +This driver enables userspace applications to update the BIOS on Dell servers
| +(starting from servers sold since 1999), desktops and notebooks (starting
(beginning with servers sold in 1999) (beginning
| +from those sold in 2005).
with those sold in 2005)
| +
| +The driver supports BIOS update using the monilothic image and packetized
monolithic
| +image methods. In case of moniolithic the driver allocates a contiguous chunk
In the monolithic case,
| +of physical pages having the BIOS image. In case of packetized the app
In the packetized case,
| +using the driver breaks the image in to packets of fixed sizes and the driver
| +would place each packet in contiguous physical memory. The driver also
places into
| +maintains a link list of packets for reading them back.
linked
| +If the dell_rbu driver is unloaded all the allocated memory is freed.
| +
| +The rbu driver needs to have an application which will inform the BIOS to
| +enable the update in the next system reboot.
| +
| +The user should not unload the rbu driver after downloading the BIOS image
| +or updating.
| +
| +The driver load creates the following directories under the /sys file system.
| +/sys/class/firmware/dell_rbu/loading
| +/sys/class/firmware/dell_rbu/data
| +/sys/devices/platform/dell_rbu/image_type
| +/sys/devices/platform/dell_rbu/data
| +
| +The driver supports two types of update mechanism; monolithic and packetized.
mechanisms;
| +These update mechanism depends upon the BIOS currently running on the system.
| +Most of the Dell systems support a monolithic update where the BIOS image is
| +copied to a single contiguous block of physical memory.
| +In case of packet mechanism the single memory can be broken in smaller chuks
In the packetized mode, into smaller chunks
| +of contiguous memory and the BIOS image is scattered in these packets.
| +
| +By default the driver uses monolithic memory for the update type. This can be
| +changed to contiguous during the driver load time by specifying the load
packetized mode
| +parameter image_type=packet. This can also be changed later as below
by using:
| +echo "packet" > /sys/devices/platform/dell_rbu/image_type
| +
| +Do the steps below to download the BIOS image.
| +1) echo 1 > /sys/class/firmware/dell_rbu/loading
| +2) cp bios_image.hdr /sys/class/firmware/dell_rbu/data
| +3) echo 0 > /sys/class/firmware/dell_rbu/loading
| +
| +The /sys/class/firmware/dell_rbu/ entries will remain till the following is
until
| +done.
done:
| +echo -1 > /sys/class/firmware/dell_rbu/loading
| +
| +Until this step is completed the drivr cannot be unloaded.
driver
| +
| +Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
| +read back the image downloaded. This is useful in case of packet update
This is useful in the packetized update
| +mechanism where the above steps 1,2,3 will repeated for every packet.
| +By reading the /sys/devices/platform/dell_rbu/data file all packet data
| +downloaded can be verified in a single file.
| +The packets are arranged in this file one after the other in a FIFO order.
| +
| +NOTE:
| +This driver requires a patch for firmware_class.c which has the addition
| +of request_firmware_nowait_nohotplug function to wortk
^insert "the" work.
| +Also after updating the BIOS image an user mdoe application neeeds to execute
a user mode
| +code which message the BIOS update request to the BIOS. So on the next reboot
sends to the BIOS, so that on the next reboot
| +the BIOS knows about the new image downloaded and it updates it self.
itself.
| +Also don't unload the rbu drive if the image has to be updated.
driver

So do you recommend never unloading the rbu driver -- just reboot?


Code review comments will follow separately.

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/