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

Abhay_Salunke_at_Dell.com
Date: 07/08/05

  • Next message: Abhay Salunke: "[patch 2.6.12-rc3]dell_rbu: Resubmitting patch for new Dell BIOS update driver"
    Date:	Fri, 8 Jul 2005 16:14:37 -0500
    To: <rdunlap@xenotime.net>
    
    

    > -----Original Message-----
    > From: randy_dunlap [mailto:rdunlap@xenotime.net]
    > Sent: Friday, July 08, 2005 4:12 PM
    > To: Salunke, Abhay
    > Cc: linux-kernel@vger.kernel.org; akpm@osdl.org; Salunke, Abhay;
    > greg@kroah.com
    > Subject: Re: [patch 2.6.12-rc3] modified firmware_class.c to add a new
    > function request_firmware_nowait_nohotplug
    >
    > 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?
    >
    >
    Yes. Unloading the driver will cause it to free the image and BIOS
    update would fail.

    Thanks,
    Abhay
    -
    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: "[patch 2.6.12-rc3]dell_rbu: Resubmitting patch for new Dell BIOS update driver"

    Relevant Pages

    • Re: problem with IPoA (CLIP), NAT, and VLANS
      ... old recycled packets. ... I did eliminate the first patch i sent ... So something with my driver causes skb_cloneto corrupt the packet ...
      (Linux-Kernel)
    • Re: [PATCH 2.6.18-rc4] aoe [07/13]: jumbo frame support 2 of 2
      ... I think that the patch author is used to doing ETH_ZLEN because ... of a bug in the e1000 driver where the short packets weren't getting ...
      (Linux-Kernel)
    • Re: [PATCH] uio: User IRQ Mode
      ... In this mode the user space driver ... is responsible for acknowledging and re-enabling the interrupt. ... This can easily be done without your patch. ...
      (Linux-Kernel)
    • Re: [PATCH] ne.c fix for hibernate and rmmod oops fix
      ... This patch is ready to be merged. ... that was not the case before, because the probe is invasive. ... legacy driver. ... const unsigned char *buf, const int start_page); ...
      (Linux-Kernel)
    • Re: Filter Hook
      ... the callback routine is been invoked at DISPATCH_LEVEL. ... If you really have to keep such a queue for the packets, then the IP filter driver is not suitable for your needs since you have to process all the packets in the callback routine without any wait actionand return it to the tcpip driver immediately when the callback routine returns. ... What IRQL are you running at when you crash, ...
      (microsoft.public.development.device.drivers)