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

From: randy_dunlap (rdunlap_at_xenotime.net)
Date: 07/08/05

  • Next message: Abhay_Salunke_at_Dell.com: "RE: [patch 2.6.12-rc3] modified firmware_class.c to add a new function request_firmware_nowait_nohotplug"
    Date:	Fri, 8 Jul 2005 14:12:09 -0700
    To: Abhay Salunke <Abhay_Salunke@dell.com>
    
    

    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@dell.com>
    |
    | 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@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Abhay_Salunke_at_Dell.com: "RE: [patch 2.6.12-rc3] modified firmware_class.c to add a new function request_firmware_nowait_nohotplug"

    Relevant Pages