US20110276724A1 - System and Method for Updating Device Drivers - Google Patents

System and Method for Updating Device Drivers Download PDF

Info

Publication number
US20110276724A1
US20110276724A1 US13/176,360 US201113176360A US2011276724A1 US 20110276724 A1 US20110276724 A1 US 20110276724A1 US 201113176360 A US201113176360 A US 201113176360A US 2011276724 A1 US2011276724 A1 US 2011276724A1
Authority
US
United States
Prior art keywords
peripheral device
host
peripheral
firmware
driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/176,360
Inventor
II Samuel L. Mullis
Philip Elcan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Mobile Communications AB
Original Assignee
Sony Ericsson Mobile Communications AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/564,553 external-priority patent/US8171502B2/en
Application filed by Sony Ericsson Mobile Communications AB filed Critical Sony Ericsson Mobile Communications AB
Priority to US13/176,360 priority Critical patent/US20110276724A1/en
Publication of US20110276724A1 publication Critical patent/US20110276724A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present invention relates generally to peripheral devices, and particularly to systems and methods for updating device drivers associated with those peripheral devices.
  • PC cards which may connect to the computer via a Universal Serial Bus (USB) connection, include a radio frequency (RF) transceiver and an integrated antenna.
  • USB Universal Serial Bus
  • RF radio frequency
  • PC cards can send and receive data to and from the wireless network at a speed that is substantially similar to that of a fixed connection.
  • PC cards and other peripheral devices comprise various hardware components—some of which include embedded software programs called “firmware.”
  • firmware is responsible for performing a variety of low-level tasks, and may be upgraded from time to time to fix bugs, add or alter functionality, or improve the performance and reliability of the peripheral device.
  • upgrading firmware can create a variety of problems.
  • laptop computers typically require their own software programs called “device drivers” to allow user applications to communicate with the PC card.
  • the device drivers should be compatible with whatever version firmware is running on the PC card; however, updating the firmware with a new version can introduce incompatibilities between the two. That is, the device drivers that were once appropriate for use prior to a firmware upgrade may not be compatible with the new firmware version. This can be problematic because the incompatibilities may cause the PC card to become inoperable.
  • the present invention automatically updates one or more device drivers resident on a host device when firmware on a peripheral device is upgraded.
  • a host processor determines whether the current device drivers for the peripheral device are compatible with the upgraded firmware. If the two are compatible, the host continues to load and use the current drivers for the peripheral device. If not, the controller automatically updates the currently installed device drivers with upgraded device drivers stored in memory of the peripheral device. Once the upgraded device drivers are installed, the peripheral device is reset. This causes the host to load the upgraded device drivers into memory so that it can communicate with the peripheral device using those upgraded device drivers.
  • FIG. 1 is a block diagram of a peripheral device connected to a host device according to one embodiment of the present invention.
  • FIG. 2 is a flow diagram that illustrates a method of updating device drivers according to one embodiment of the present invention.
  • the present invention relates to a system and method for updating device drivers resident on a host device as part of a firmware upgrade process.
  • a peripheral device includes firmware that has been upgraded to a new or different version.
  • the host automatically checks its currently installed device drivers to determine if they are compatible with the upgraded firmware. If the current device drivers on the host are compatible, the host simply communicates with the peripheral device using those installed device drivers. If not, the host automatically replaces the outdated device drivers with upgraded device drivers stored in memory of the peripheral device.
  • FIG. 1 illustrates a system 10 suitable for use with one embodiment of the present invention.
  • System 10 comprises a peripheral device 20 and a host device 40 .
  • the peripheral device 20 connects to and operates under the control of host device 40 .
  • peripheral device 20 comprises a modem card and host device 40 comprises a computing device.
  • the host device 40 and peripheral device 20 provide a user with the capability to communicate with remote parties via a wireless network (not shown).
  • Peripheral device 20 may comprise any peripheral known in the art such as a mass storage device, an MP3 player, or the like.
  • host device 40 may be any type of electronic or computing device including, but not limited to, laptop and notebook computers, cellular telephones, satellite phones, and Personal Digital Assistants (PDAs).
  • PDAs Personal Digital Assistants
  • Host device 40 comprises a host processor 42 , an operating system (OS) 44 , one or more device drivers 46 , and a peripheral device interface 48 to communicatively connect host device 40 to peripheral device 20 .
  • the host processor 42 controls the operation of host device 40 according to the instructions and data associated with OS 44 .
  • the host processor may comprise one or more microprocessors, microcontrollers, hardware circuits, firmware, or a combination thereof.
  • OS 44 comprises a set of computer programs stored in memory of the host device 40 that manage the hardware and software resources of the host device 40 . As is known in the art, the OS 44 typically processes system input and user input, and performs basic computing tasks. Such tasks include controlling and allocating memory, prioritizing system requests, facilitating networking, and managing file systems.
  • OS 44 may be any operating system known in the art; however, some of the most popular include WINDOWS, NT, LINUX, UNIX, and MAC OS X.
  • the device drivers 46 are software programs stored in memory that permit host device 40 to communicate with and control peripheral devices 20 .
  • peripheral device 20 can function as a modem 30 .
  • device drivers 46 may include one or more modem device drivers to communicate with the modem 30 .
  • the peripheral device 20 may emulate a USB-compatible mass storage device. Therefore, the device drivers 46 may also include a mass storage device driver to communicate with the peripheral device 20 as a mass storage device.
  • the peripheral device interface 48 enables communication between the host device 40 and peripheral device 20 .
  • the peripheral device interface 48 may comprise any known type of interface, such as a USB interface, FIREIWIRE, or other serial or parallel interface.
  • the peripheral device 20 comprises a USB controller 22 connected to an interface 24 , a file system manager 26 , memory 28 , and a modem 30 .
  • the memory 28 may store one or more “upgraded” device drivers 32 . As described in more detail below, the “upgraded” device drivers 32 correspond to the version of the firmware 34 on modem 30 .
  • the device drivers 32 may be sent to host device 40 whenever firmware 34 is upgraded as hereinafter described. This helps to ensure that the host device 40 always has the most current device drivers.
  • USB controller 22 controls the operation of peripheral device 20 .
  • USB controller 22 may comprise a microprocessor, microcontroller, hardware circuits, or a combination thereof.
  • One function of the USB controller 22 is to change the configuration of the peripheral device 20 .
  • the peripheral device 20 may initially present itself as mass storage device to avoid unknown device errors until the proper drivers are installed.
  • An “autorun” program stored in the memory 28 can be sent to host device 40 , and automatically executed to install device drivers on host device 40 . Once the correct drivers are installed, the USB controller 22 can change from the default configuration (e.g., mass storage device) to a standard configuration (e.g., modem configuration).
  • the file system manager 26 is a software module that controls access to memory 28 . Particularly, file system manager 26 receives and processes file access commands from host device 40 .
  • the file system manager 26 can operate in a conventional fashion to open and close files, read files, write files, delete files, etc.
  • Modem 30 allows the user to communicate with one or more remote parties and/or servers via a communication network (not shown). If host device 40 has the appropriate modem device drivers 46 installed, host device 40 can send and receive data with modem 30 via the USB controller 22 .
  • Modem 30 includes firmware 34 that may be upgraded from time to time to fix bugs, add functionality, or improve the performance and reliability of modem 30 . These changes may negatively affect the ability of host device 40 to communicate with peripheral device 20 .
  • upgraded firmware 34 may introduce incompatibilities between the device drivers 46 currently installed on host device 40 and the firmware 34 . Such incompatibilities are problematic because they may render modem 30 inoperable.
  • the device driver 46 for the modem 30 includes code to automatically check the minimum driver version for the currently installed firmware 34 and to initiate an installation process to install appropriate device drivers 46 stored in memory of the peripheral device 20 as necessary.
  • the host processor 42 checks the compatibility of its currently installed device drivers 46 each time the device driver is loaded. After starting the loading process, the host processor 42 determines the minimum driver version needed to operate with the currently installed firmware 34 and compares the current driver version of the installed device driver 46 with the minimum driver version for the currently installed firmware 34 .
  • the code for performing this compatibility check may be included in the device driver 46 .
  • the device driver 46 may be loaded or continue to operate. If the driver version of the currently installed device driver 46 is less than the minimum driver version for the firmware 34 , the host processor 42 automatically initiates an installation procedure to install the appropriate device drivers 46 stored in memory of the peripheral device 20 . The code for initiating the installation of the new driver may also be included in the device driver 46 . Once host processor 42 has replaced the currently installed device drivers 46 with new device drivers, the peripheral device 20 is automatically re-started so that the host processor 42 can load the upgraded device drivers 32 .
  • Various techniques may be employed to determine the minimum driver version for the currently installed firmware 34 of the modem 30 .
  • One method is to hard code the minimum driver version into the firmware 34 , which can then be interrogated by the host processor 42 .
  • the host processor 42 may, for example, issue a predetermined AT command to the modem 30 to get the minimum driver version for the currently installed firmware 34 .
  • the firmware 34 may report the minimum driver version as a custom USB descriptor.
  • the minimum driver version could be stored in a predetermined file or address in the memory 28 of the peripheral device that can be accessed by the host processor 42 through the file system manager 26 .
  • One advantage of this approach is that the firmware code itself does not have to change to update the minimum driver version; only the predetermined file or memory address needs to be updated.
  • FIG. 2 illustrates a method 50 of updating the device drivers 46 on host device 40 as part of the upgrade process for firmware 34 .
  • Method 50 begins when the firmware 34 on modem 30 is upgraded (box 52 ). During the firmware upgrade, new device drivers compatible with the upgraded firmware 34 may be copied into memory 28 of peripheral device 20 . After the upgrade, the user re-starts the peripheral device 20 (box 54 ). This may be done automatically responsive to a signal sent by host processor 42 , for example, or by cycling the power to host device 40 or peripheral device 20 , or disconnecting/reconnecting the peripheral device 20 to host device 40 . In each case, OS 44 will automatically detect the presence of peripheral device 20 and start to load the device drivers 46 for the peripheral device 20 (box 56 ). In this embodiment, the peripheral device 20 includes a modem 30 . Therefore, the device drivers 46 include those used by host device 40 to communicate with modem 30 .
  • host processor 42 next determines whether the currently installed device drivers 46 used for modem 30 also need upgrading. More specifically, the host processor 42 determines the minimum driver version required by the currently installed firmware 34 on the modem 30 (block 58 ). The host processor 42 can interrogate the firmware 34 to obtain the minimum driver version. Alternatively, the host processor 42 can be read the minimum driver version from a predetermined file or address in the memory 28 of the peripheral device 20 .
  • the host processor 42 checks whether the currently installed device drivers 46 are compatible with the upgraded firmware 34 (box 60 ). If the driver version of the currently installed device drivers 46 equals or exceeds the minimum driver version, update of the device driver 46 is not required. In this case, the host processor 42 will continue loading the current device driver 46 and the process ends (box 62 ). Conversely, if the driver version for the currently installed device driver 46 is less than the minimum driver version, the host processor 42 will upload and install the new device driver 46 stored in memory of the peripheral device 20 (boxes 64 and 66 ). An exemplary process for installing device drivers is described in co-pending application Ser. No.
  • the peripheral device 20 is then reset as previously described (box 54 ).
  • the host processor 42 will determine that the device drivers 46 on host device 40 are the upgraded device drivers, and therefore, are compatible with the upgraded firmware 34 (boxes 56 - 60 ). As such, host processor 42 will configure the host device 40 to operate with modem 30 (box 62 ).

Abstract

A host connects to a peripheral device having upgraded firmware. The host also includes a device driver to communicate with the peripheral device. If the device drivers currently installed on the host are not compatible with the upgraded firmware, upgraded device drivers are automatically downloaded to the host from the peripheral device. Once installed on the host, the peripheral device is reset and the upgraded device drivers are used to communicate with the peripheral device.

Description

    RELATED APPLICATIONS
  • This application is a divisional application of co-pending U.S. application Ser. No. 11/838,930 filed on Aug. 15, 2007, which is a continuation-in-part application of co-pending U.S. application Ser. No. 11/564,553 filed on Nov. 29, 2006, and claims the benefit of U.S. Provisional Patent Application 60/944,227 filed on Jun. 15, 2007. The '930 application, the '553 application, and the '227 application are all incorporated herein by reference in their entirety.
  • BACKGROUND
  • The present invention relates generally to peripheral devices, and particularly to systems and methods for updating device drivers associated with those peripheral devices.
  • Some host devices, such as laptop computers, can communicate with a wireless network using a plug-in peripheral device commonly referred to as a “PC card.” PC cards, which may connect to the computer via a Universal Serial Bus (USB) connection, include a radio frequency (RF) transceiver and an integrated antenna. Although capabilities generally differ, PC cards can send and receive data to and from the wireless network at a speed that is substantially similar to that of a fixed connection. Thus, it is possible for laptop users to communicate with one or more remote parties, browse the Internet, or send and receive email from almost anywhere on Earth.
  • PC cards and other peripheral devices comprise various hardware components—some of which include embedded software programs called “firmware.” Generally, firmware is responsible for performing a variety of low-level tasks, and may be upgraded from time to time to fix bugs, add or alter functionality, or improve the performance and reliability of the peripheral device. However, upgrading firmware can create a variety of problems.
  • For example, laptop computers typically require their own software programs called “device drivers” to allow user applications to communicate with the PC card. As such, the device drivers should be compatible with whatever version firmware is running on the PC card; however, updating the firmware with a new version can introduce incompatibilities between the two. That is, the device drivers that were once appropriate for use prior to a firmware upgrade may not be compatible with the new firmware version. This can be problematic because the incompatibilities may cause the PC card to become inoperable.
  • SUMMARY
  • The present invention automatically updates one or more device drivers resident on a host device when firmware on a peripheral device is upgraded. In one exemplary embodiment, a host processor determines whether the current device drivers for the peripheral device are compatible with the upgraded firmware. If the two are compatible, the host continues to load and use the current drivers for the peripheral device. If not, the controller automatically updates the currently installed device drivers with upgraded device drivers stored in memory of the peripheral device. Once the upgraded device drivers are installed, the peripheral device is reset. This causes the host to load the upgraded device drivers into memory so that it can communicate with the peripheral device using those upgraded device drivers.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a peripheral device connected to a host device according to one embodiment of the present invention.
  • FIG. 2 is a flow diagram that illustrates a method of updating device drivers according to one embodiment of the present invention.
  • DETAILED DESCRIPTION
  • The present invention relates to a system and method for updating device drivers resident on a host device as part of a firmware upgrade process. Particularly, a peripheral device includes firmware that has been upgraded to a new or different version. During the upgrade process, the host automatically checks its currently installed device drivers to determine if they are compatible with the upgraded firmware. If the current device drivers on the host are compatible, the host simply communicates with the peripheral device using those installed device drivers. If not, the host automatically replaces the outdated device drivers with upgraded device drivers stored in memory of the peripheral device.
  • FIG. 1 illustrates a system 10 suitable for use with one embodiment of the present invention. System 10 comprises a peripheral device 20 and a host device 40. Generally, the peripheral device 20 connects to and operates under the control of host device 40. In this embodiment, peripheral device 20 comprises a modem card and host device 40 comprises a computing device. Together, the host device 40 and peripheral device 20 provide a user with the capability to communicate with remote parties via a wireless network (not shown). However, these particular labels and their associated functions are for illustrative purposes only. Peripheral device 20 may comprise any peripheral known in the art such as a mass storage device, an MP3 player, or the like. Similarly, host device 40 may be any type of electronic or computing device including, but not limited to, laptop and notebook computers, cellular telephones, satellite phones, and Personal Digital Assistants (PDAs).
  • Host device 40 comprises a host processor 42, an operating system (OS) 44, one or more device drivers 46, and a peripheral device interface 48 to communicatively connect host device 40 to peripheral device 20. The host processor 42 controls the operation of host device 40 according to the instructions and data associated with OS 44. The host processor may comprise one or more microprocessors, microcontrollers, hardware circuits, firmware, or a combination thereof. OS 44 comprises a set of computer programs stored in memory of the host device 40 that manage the hardware and software resources of the host device 40. As is known in the art, the OS 44 typically processes system input and user input, and performs basic computing tasks. Such tasks include controlling and allocating memory, prioritizing system requests, facilitating networking, and managing file systems. OS 44 may be any operating system known in the art; however, some of the most popular include WINDOWS, NT, LINUX, UNIX, and MAC OS X.
  • The device drivers 46 are software programs stored in memory that permit host device 40 to communicate with and control peripheral devices 20. In the exemplary embodiment, peripheral device 20 can function as a modem 30. As such, device drivers 46 may include one or more modem device drivers to communicate with the modem 30. In other embodiments, the peripheral device 20 may emulate a USB-compatible mass storage device. Therefore, the device drivers 46 may also include a mass storage device driver to communicate with the peripheral device 20 as a mass storage device.
  • The peripheral device interface 48 enables communication between the host device 40 and peripheral device 20. The peripheral device interface 48 may comprise any known type of interface, such as a USB interface, FIREIWIRE, or other serial or parallel interface.
  • The peripheral device 20 comprises a USB controller 22 connected to an interface 24, a file system manager 26, memory 28, and a modem 30. The memory 28 may store one or more “upgraded” device drivers 32. As described in more detail below, the “upgraded” device drivers 32 correspond to the version of the firmware 34 on modem 30. The device drivers 32 may be sent to host device 40 whenever firmware 34 is upgraded as hereinafter described. This helps to ensure that the host device 40 always has the most current device drivers.
  • USB controller 22 controls the operation of peripheral device 20. USB controller 22 may comprise a microprocessor, microcontroller, hardware circuits, or a combination thereof. One function of the USB controller 22 is to change the configuration of the peripheral device 20. For example, when the peripheral device 20 is connected for the first time to host device 40, the peripheral device 20 may initially present itself as mass storage device to avoid unknown device errors until the proper drivers are installed. An “autorun” program stored in the memory 28 can be sent to host device 40, and automatically executed to install device drivers on host device 40. Once the correct drivers are installed, the USB controller 22 can change from the default configuration (e.g., mass storage device) to a standard configuration (e.g., modem configuration).
  • The file system manager 26 is a software module that controls access to memory 28. Particularly, file system manager 26 receives and processes file access commands from host device 40. The file system manager 26 can operate in a conventional fashion to open and close files, read files, write files, delete files, etc.
  • Modem 30 allows the user to communicate with one or more remote parties and/or servers via a communication network (not shown). If host device 40 has the appropriate modem device drivers 46 installed, host device 40 can send and receive data with modem 30 via the USB controller 22. Modem 30 includes firmware 34 that may be upgraded from time to time to fix bugs, add functionality, or improve the performance and reliability of modem 30. These changes may negatively affect the ability of host device 40 to communicate with peripheral device 20. Specifically, upgraded firmware 34 may introduce incompatibilities between the device drivers 46 currently installed on host device 40 and the firmware 34. Such incompatibilities are problematic because they may render modem 30 inoperable.
  • According to the present invention, the device driver 46 for the modem 30 includes code to automatically check the minimum driver version for the currently installed firmware 34 and to initiate an installation process to install appropriate device drivers 46 stored in memory of the peripheral device 20 as necessary. In one exemplary embodiment, the host processor 42 checks the compatibility of its currently installed device drivers 46 each time the device driver is loaded. After starting the loading process, the host processor 42 determines the minimum driver version needed to operate with the currently installed firmware 34 and compares the current driver version of the installed device driver 46 with the minimum driver version for the currently installed firmware 34. The code for performing this compatibility check may be included in the device driver 46.
  • If the driver version of the currently installed device driver 46 is greater than or equal to the minimum driver version for the firmware 34, the device driver 46 may be loaded or continue to operate. If the driver version of the currently installed device driver 46 is less than the minimum driver version for the firmware 34, the host processor 42 automatically initiates an installation procedure to install the appropriate device drivers 46 stored in memory of the peripheral device 20. The code for initiating the installation of the new driver may also be included in the device driver 46. Once host processor 42 has replaced the currently installed device drivers 46 with new device drivers, the peripheral device 20 is automatically re-started so that the host processor 42 can load the upgraded device drivers 32.
  • Various techniques may be employed to determine the minimum driver version for the currently installed firmware 34 of the modem 30. One method is to hard code the minimum driver version into the firmware 34, which can then be interrogated by the host processor 42. The host processor 42 may, for example, issue a predetermined AT command to the modem 30 to get the minimum driver version for the currently installed firmware 34. The firmware 34 may report the minimum driver version as a custom USB descriptor. Alternatively, the minimum driver version could be stored in a predetermined file or address in the memory 28 of the peripheral device that can be accessed by the host processor 42 through the file system manager 26. One advantage of this approach is that the firmware code itself does not have to change to update the minimum driver version; only the predetermined file or memory address needs to be updated.
  • FIG. 2 illustrates a method 50 of updating the device drivers 46 on host device 40 as part of the upgrade process for firmware 34. Method 50 begins when the firmware 34 on modem 30 is upgraded (box 52). During the firmware upgrade, new device drivers compatible with the upgraded firmware 34 may be copied into memory 28 of peripheral device 20. After the upgrade, the user re-starts the peripheral device 20 (box 54). This may be done automatically responsive to a signal sent by host processor 42, for example, or by cycling the power to host device 40 or peripheral device 20, or disconnecting/reconnecting the peripheral device 20 to host device 40. In each case, OS 44 will automatically detect the presence of peripheral device 20 and start to load the device drivers 46 for the peripheral device 20 (box 56). In this embodiment, the peripheral device 20 includes a modem 30. Therefore, the device drivers 46 include those used by host device 40 to communicate with modem 30.
  • Because the firmware upgrade may negatively affect the ability of host device 40 to communicate with modem 30, host processor 42 next determines whether the currently installed device drivers 46 used for modem 30 also need upgrading. More specifically, the host processor 42 determines the minimum driver version required by the currently installed firmware 34 on the modem 30 (block 58). The host processor 42 can interrogate the firmware 34 to obtain the minimum driver version. Alternatively, the host processor 42 can be read the minimum driver version from a predetermined file or address in the memory 28 of the peripheral device 20.
  • After the minimum driver version is determined, the host processor 42 checks whether the currently installed device drivers 46 are compatible with the upgraded firmware 34 (box 60). If the driver version of the currently installed device drivers 46 equals or exceeds the minimum driver version, update of the device driver 46 is not required. In this case, the host processor 42 will continue loading the current device driver 46 and the process ends (box 62). Conversely, if the driver version for the currently installed device driver 46 is less than the minimum driver version, the host processor 42 will upload and install the new device driver 46 stored in memory of the peripheral device 20 (boxes 64 and 66). An exemplary process for installing device drivers is described in co-pending application Ser. No. 11/564,553, titled “Methods, Devices and Computer Program Products for Automatically Installing Device Drivers from a Peripheral Device Onto A Host Computer” filed on Nov. 29, 2006, which is incorporated herein in its entirety by reference.
  • After the new device driver is installed in the host device 40, the peripheral device 20 is then reset as previously described (box 54). On this pass, however, the host processor 42 will determine that the device drivers 46 on host device 40 are the upgraded device drivers, and therefore, are compatible with the upgraded firmware 34 (boxes 56-60). As such, host processor 42 will configure the host device 40 to operate with modem 30 (box 62).
  • The present invention may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.

Claims (11)

1. A peripheral device comprising:
an interface configured to connect the peripheral device to a host device;
peripheral device firmware configured to control operation of the peripheral device;
memory accessible to the host device and configured to store device driver information for the peripheral device including a predetermined file identifying a minimum driver version for the peripheral device firmware; and
a file system manager communicatively connected to the memory and to the peripheral device firmware, and configured to access the device driver information for the host device responsive to receiving one or more predetermined commands from the host device.
2. The peripheral device of claim 1 wherein the file system manager is further configured to determine the minimum driver version for the host device responsive to receiving a request for the minimum driver version from the host device.
3. The peripheral device of claim 1 wherein the file system manager is further configured to retrieve a selected device driver from the memory for the host device responsive to receiving a request for the selected device driver from the host device.
4. The peripheral device of claim 1 wherein the predetermined commands received from the host device are formatted to control one or more peripheral device functions.
5. The peripheral device of claim 1 further comprising a controller configured to switch an operating configuration of the peripheral device between a first configuration and a second configuration based on a signal received from the host device and on the device driver information retrieved by the file system manager.
6. The peripheral device of claim 5 wherein the peripheral device comprises a modem, and wherein the one or more predetermined commands comprise AT modem commands.
7. A peripheral device comprising:
an interface configured to connect the peripheral device to a host device;
memory configured to store one or more device driver files for the peripheral device;
peripheral device firmware configured to control operation of the peripheral device, and including code configured to report a minimum device driver version for the peripheral device firmware; and
a file system manager communicatively connected to the memory and to the peripheral device firmware, and configured to query the peripheral device firmware to determine the minimum device driver version responsive to receiving a predetermined command from the host device.
8. The peripheral device of claim 7 wherein the file system manager is further configured to retrieve a selected device driver from the memory for the host device responsive to receiving a request for the selected device driver from the host device.
9. The peripheral device of claim 7 wherein the predetermined commands received from the host device are formatted to control one or more peripheral device functions.
10. The peripheral device of claim 1 further comprising a controller configured to switch an operating configuration of the peripheral device between a first configuration and a second configuration based on a signal received from the host device and on the device driver information retrieved by the file system manager.
11. The peripheral device of claim 10 wherein the peripheral device comprises a modem, and wherein the one or more predetermined commands comprise AT modem commands.
US13/176,360 2006-11-29 2011-07-05 System and Method for Updating Device Drivers Abandoned US20110276724A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/176,360 US20110276724A1 (en) 2006-11-29 2011-07-05 System and Method for Updating Device Drivers

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/564,553 US8171502B2 (en) 2006-11-29 2006-11-29 Methods, devices and computer program products for automatically installing device drivers from a peripheral device onto a host computer
US94422707P 2007-06-15 2007-06-15
US11/838,930 US8010959B2 (en) 2006-11-29 2007-08-15 System and method for updating device drivers
US13/176,360 US20110276724A1 (en) 2006-11-29 2011-07-05 System and Method for Updating Device Drivers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/838,930 Division US8010959B2 (en) 2006-11-29 2007-08-15 System and method for updating device drivers

Publications (1)

Publication Number Publication Date
US20110276724A1 true US20110276724A1 (en) 2011-11-10

Family

ID=39432898

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/838,930 Expired - Fee Related US8010959B2 (en) 2006-11-29 2007-08-15 System and method for updating device drivers
US13/176,360 Abandoned US20110276724A1 (en) 2006-11-29 2011-07-05 System and Method for Updating Device Drivers

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/838,930 Expired - Fee Related US8010959B2 (en) 2006-11-29 2007-08-15 System and method for updating device drivers

Country Status (4)

Country Link
US (2) US8010959B2 (en)
EP (1) EP2179355A1 (en)
CN (1) CN101689116A (en)
WO (1) WO2009023296A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110188684A1 (en) * 2008-09-26 2011-08-04 Phonak Ag Wireless updating of hearing devices
US20130219093A1 (en) * 2012-02-21 2013-08-22 Zih Corp. Electrically Configurable Option Board Interface
US20130263159A1 (en) * 2012-03-30 2013-10-03 Fujitsu Limited Information processing apparatus, information processing method, and recording medium
CN103577313A (en) * 2012-07-27 2014-02-12 腾讯科技(深圳)有限公司 Mobile terminal application program testing method and device
US20140047460A1 (en) * 2012-08-10 2014-02-13 Canon Kabushiki Kaisha Management device, management device control method, and storage medium
US20140189673A1 (en) * 2011-06-07 2014-07-03 Lsi Corporation Management of device firmware update effects as seen by a host
US20140223160A1 (en) * 2013-02-04 2014-08-07 Samsung Electronics Co., Ltd. Electronic device and firmware upgrading method thereof
US9561646B2 (en) 2015-03-27 2017-02-07 Zih Corp. High speed adaptive thermal printhead interface
US20170220332A1 (en) * 2016-01-28 2017-08-03 Microsoft Technology Licensing, Llc Offloading Network Connectivity and Execution Tasks to an Assistant Device
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240149A1 (en) * 2006-03-29 2007-10-11 Lenovo (Singapore) Pte. Ltd. System and method for device driver updates in hypervisor-operated computer system
US8776037B2 (en) * 2007-01-04 2014-07-08 International Business Machines Corporation Apparatus and method to update multiple devices disposed in a computing system
TWI411921B (en) * 2008-12-02 2013-10-11 Maishi Electronic Shanghai Ltd Electronic systems, computer-readable storage medium and methods for interconnecting peripheral devices and electronic systems
TWI414945B (en) * 2010-01-12 2013-11-11 Process system and method for automatically connecting with remote USB device
CN101832125B (en) * 2010-04-16 2012-11-07 电子科技大学 Remotely updating device of EDIB (Electronic Data Interchange Bus) based down-hole program
US20110276738A1 (en) * 2010-04-29 2011-11-10 Electronics And Telecommunications Research Institute Sensor node including general-purpose interface port and plug and play function, sensor board including general-purpose interface port and sensor device driver, general-purpose interface port, and operation method of sensor node, sensor board, and general-purpose interface port
US8966234B1 (en) * 2011-07-08 2015-02-24 Cisco Technology, Inc. Pluggable module subcomponent reset
US8898345B2 (en) * 2011-10-11 2014-11-25 International Business Machines Corporation Out-of-band management of third party adapter configuration settings in a computing system
US20130139184A1 (en) * 2011-11-30 2013-05-30 Lsi Corporation Method for embedding a host driver within a device
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9110761B2 (en) 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US8813061B2 (en) 2012-10-17 2014-08-19 Movimento Group Module updating device
US9128798B2 (en) 2012-10-17 2015-09-08 Movimento Group Module updating device
US9256441B2 (en) * 2012-10-24 2016-02-09 Intel Corporation System and method providing forward compatibility between a driver module and a network interface
US8930936B2 (en) * 2012-11-06 2015-01-06 International Business Machines Corporation Loading remote binaries onto a write-protected device
US9182996B2 (en) 2013-03-12 2015-11-10 Midnight Mosaic Llc Methods and apparatus for USB tunneling through USB printer device class
JP5864467B2 (en) * 2013-03-28 2016-02-17 株式会社沖データ Information processing apparatus, firmware update method, and computer program
KR101515198B1 (en) * 2013-04-10 2015-05-11 주식회사 팬택 Apparatus and method for firmware upgrade in mobile device
US9032423B2 (en) * 2013-06-21 2015-05-12 Microsoft Technology Licensing, Llc Dependency based configuration package activation
US9298446B2 (en) * 2013-10-28 2016-03-29 International Business Machines Corporation Unified update tool for multi-protocol network adapter
US11729054B2 (en) * 2014-07-15 2023-08-15 Comcast Cable Communications, Llc Reconfigurable device for processing signals
DE102015008946A1 (en) 2014-08-28 2016-03-03 Weinmann Geräte für Medizin GmbH + Co. KG Ventilation system and ventilator and procedures
US9952853B2 (en) * 2015-02-10 2018-04-24 Mediatek Inc. Methods for cross-mounting devices and apparatus utilizing the same
US10089260B2 (en) 2015-02-10 2018-10-02 Mediatek Inc. Control method and system for accessing data among different electronic devices
US11423023B2 (en) * 2015-06-05 2022-08-23 Apple Inc. Systems and methods for providing improved search functionality on a client device
JP6557594B2 (en) * 2015-12-24 2019-08-07 キヤノン株式会社 Installation control program, information processing apparatus, and device driver installation method
US10309792B2 (en) 2016-06-14 2019-06-04 nuTonomy Inc. Route planning for an autonomous vehicle
US11092446B2 (en) 2016-06-14 2021-08-17 Motional Ad Llc Route planning for an autonomous vehicle
US10126136B2 (en) 2016-06-14 2018-11-13 nuTonomy Inc. Route planning for an autonomous vehicle
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
CN106325859B (en) * 2016-08-12 2020-01-21 华为技术有限公司 Method and server for installing driver
US10473470B2 (en) 2016-10-20 2019-11-12 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10681513B2 (en) 2016-10-20 2020-06-09 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10331129B2 (en) 2016-10-20 2019-06-25 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10857994B2 (en) 2016-10-20 2020-12-08 Motional Ad Llc Identifying a stopping place for an autonomous vehicle
US10228931B2 (en) 2016-11-07 2019-03-12 Microsoft Technology Licensing, Llc Peripheral device support with a digital assistant for operating system upgrades
CN106776315B (en) * 2016-12-14 2021-02-05 华为技术有限公司 Version detection method and device
US11627049B2 (en) * 2019-01-31 2023-04-11 Hewlett Packard Enterprise Development Lp Failsafe firmware upgrade for cloud-managed devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636282A (en) * 1994-06-20 1997-06-03 Paradyne Corporation Method for dial-in access security using a multimedia modem
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
US20060150177A1 (en) * 2004-12-30 2006-07-06 Benq Corporation Firmware update method and system
US20060244986A1 (en) * 2005-04-29 2006-11-02 Sharp Laboratories Of America, Inc. Systems and methods for updating imaging device drivers on one or more computer systems
US7415563B1 (en) * 2006-06-27 2008-08-19 Apple Inc. Method and system for allowing a media player to determine if it supports the capabilities of an accessory
US7512833B1 (en) * 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241402A (en) * 1989-12-04 1993-08-31 Xerox Corporation Concurrent modem control in a reprographic machine
WO2000017766A2 (en) * 1998-09-22 2000-03-30 Cybex Computer Products Corporation System for accessing personal computers remotely
US7339620B1 (en) * 1998-11-11 2008-03-04 Canon Kabushiki Kaisha Image sensing apparatus having a signal processing device that uses a signal imaged in a non-exposure state to process a signal in an exposure state
US6539476B1 (en) * 1999-08-12 2003-03-25 Handspring, Inc. Mobile computer system capable for copying set-up application including removal routine from peripheral device for removing device programs after the device is removed
US6615286B1 (en) * 2000-02-14 2003-09-02 Intel Corporation Method and apparatus for updating device driver control data
US7213152B1 (en) * 2000-02-14 2007-05-01 Intel Corporation Modular bios update mechanism
AU2001262259A1 (en) * 2000-06-09 2001-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for providing support to a mobile communications unit
JP2002278906A (en) * 2001-03-21 2002-09-27 Nec Corp Update managing system, update client device, update server device and program
US20020141582A1 (en) * 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
US20030018746A1 (en) * 2001-07-18 2003-01-23 Boesch S. Christopher Method, computer program program product, and system for selecting and migrating information and device drivers to a computer system
US7509687B2 (en) * 2002-03-16 2009-03-24 Trustedflow Systems, Inc. Remotely authenticated operation method
CA2444685A1 (en) * 2003-02-07 2004-08-07 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
US7451198B2 (en) * 2003-08-29 2008-11-11 Microsoft Corporation WAP XML extension for WiFi and desktop passthrough connections
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US7293117B2 (en) * 2004-06-10 2007-11-06 Microsoft Corporation Self-installing peripheral device with memory wherein in response to user request for additional storage peripheral device being configured to remove installation software stored on memory
DE102004055993A1 (en) * 2004-11-19 2006-05-24 Vega Grieshaber Kg A system arrangement and method in a process-processing system for detecting mismatched functionality between a device software and an associated device driver
US20070198995A1 (en) * 2006-01-31 2007-08-23 Richard Dellacona System and method for automated delivery of software
US20080005733A1 (en) * 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636282A (en) * 1994-06-20 1997-06-03 Paradyne Corporation Method for dial-in access security using a multimedia modem
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
US20060150177A1 (en) * 2004-12-30 2006-07-06 Benq Corporation Firmware update method and system
US20060244986A1 (en) * 2005-04-29 2006-11-02 Sharp Laboratories Of America, Inc. Systems and methods for updating imaging device drivers on one or more computer systems
US7512833B1 (en) * 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program
US7415563B1 (en) * 2006-06-27 2008-08-19 Apple Inc. Method and system for allowing a media player to determine if it supports the capabilities of an accessory

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110188684A1 (en) * 2008-09-26 2011-08-04 Phonak Ag Wireless updating of hearing devices
US8712082B2 (en) * 2008-09-26 2014-04-29 Phonak Ag Wireless updating of hearing devices
US20140189673A1 (en) * 2011-06-07 2014-07-03 Lsi Corporation Management of device firmware update effects as seen by a host
US10365920B2 (en) * 2011-06-07 2019-07-30 Seagate Technology Llc Management of device firmware update effects as seen by a host
US9766878B2 (en) 2011-06-07 2017-09-19 Seagate Technology Llc Management of device firmware update effects as seen by a host
US9223563B2 (en) * 2011-06-07 2015-12-29 Seagate Technology Llc Management of device firmware update effects as seen by a host
US20130219093A1 (en) * 2012-02-21 2013-08-22 Zih Corp. Electrically Configurable Option Board Interface
US10489333B2 (en) * 2012-02-21 2019-11-26 Zebra Technologies Corporation Electrically configurable option board interface
US9317454B2 (en) * 2012-03-30 2016-04-19 Fujitsu Limited Information processing apparatus, information processing method, and recording medium
US20130263159A1 (en) * 2012-03-30 2013-10-03 Fujitsu Limited Information processing apparatus, information processing method, and recording medium
CN103577313A (en) * 2012-07-27 2014-02-12 腾讯科技(深圳)有限公司 Mobile terminal application program testing method and device
KR20140020761A (en) * 2012-08-10 2014-02-19 캐논 가부시끼가이샤 Management device, management device control method, and storage medium
KR101658769B1 (en) * 2012-08-10 2016-09-30 캐논 가부시끼가이샤 Management device, management device control method, and storage medium
US9182995B2 (en) * 2012-08-10 2015-11-10 Canon Kabushiki Kaisha Management device, management device control method, and storage medium
US20140047460A1 (en) * 2012-08-10 2014-02-13 Canon Kabushiki Kaisha Management device, management device control method, and storage medium
US9454436B2 (en) * 2013-02-04 2016-09-27 Samsung Electronics Co., Ltd. Electronic device and firmware upgrading method thereof
US20140223160A1 (en) * 2013-02-04 2014-08-07 Samsung Electronics Co., Ltd. Electronic device and firmware upgrading method thereof
US9561646B2 (en) 2015-03-27 2017-02-07 Zih Corp. High speed adaptive thermal printhead interface
US20170220332A1 (en) * 2016-01-28 2017-08-03 Microsoft Technology Licensing, Llc Offloading Network Connectivity and Execution Tasks to an Assistant Device
US10228930B2 (en) * 2016-01-28 2019-03-12 Microsoft Technology Licensing, Llc Offloading network connectivity and execution tasks to an assistant device
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains

Also Published As

Publication number Publication date
WO2009023296A1 (en) 2009-02-19
EP2179355A1 (en) 2010-04-28
US8010959B2 (en) 2011-08-30
CN101689116A (en) 2010-03-31
US20080127165A1 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
US8010959B2 (en) System and method for updating device drivers
US8799521B2 (en) System and method for receiving control commands at a peripheral device
CN101553783B (en) For receiving the system and method for control command at ancillary equipment
US20070174033A1 (en) Remote control device and method for accessing peripheral device remotely
US20100132042A1 (en) Method for upgrading antivirus software and terminal and system thereof
US20040093597A1 (en) Firmware update system for facilitating firmware update in mobile handset related applications
US7412595B2 (en) Customization of electronic devices via pre-boot space
US11042365B2 (en) Firmware updating method and electronic device using the same
US8832289B2 (en) Wireless network connection system and method
WO2004017175A2 (en) System and method for automating firmware maintenance
US7039796B2 (en) Method and system of locating a position in memory at which to store incoming firmware image
US20040103172A1 (en) Method of updating an operation system
US7694280B2 (en) Systems and methods for controlling program installation on a computing device
US11086612B2 (en) Sequence and update rules in firmware update services
US20030182456A1 (en) Portable peripheral apparatus with an embedded storage module
EP2372565A1 (en) Method for managing USB devices
EP1880283A1 (en) Configuring a device using information from a device table
US11500995B1 (en) Secure boot runtime universal filesystem
KR20110005991A (en) Embedded system and operating method for the same
US11341053B2 (en) Virtual media performance improvement
US20070177426A1 (en) System and method for automated delivery of software payload
CN114625389A (en) Embedded equipment upgrading method, embedded equipment and storage device
CN116028100B (en) Software version upgrading method and electronic equipment
US20240134635A1 (en) Bidirectional version compatibility control

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION