GB2443097A - Hot plug device with means to initiate a hot plug operation on the device. - Google Patents

Hot plug device with means to initiate a hot plug operation on the device. Download PDF

Info

Publication number
GB2443097A
GB2443097A GB0721199A GB0721199A GB2443097A GB 2443097 A GB2443097 A GB 2443097A GB 0721199 A GB0721199 A GB 0721199A GB 0721199 A GB0721199 A GB 0721199A GB 2443097 A GB2443097 A GB 2443097A
Authority
GB
Grant status
Application
Patent type
Prior art keywords
hot
plug
device
operation
system
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.)
Granted
Application number
GB0721199A
Other versions
GB0721199D0 (en )
GB2443097B (en )
Inventor
Saurabh Gupta
Vijay Nijhawan
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.)
Dell Products LP
Original Assignee
Dell Products LP
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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Abstract

Disclosed is a hot plug device for use with an information handling system, eg a computer, the device having a hot plug operation initiation means. The hot plug operation being actuated to add or remove the device and including generation of a system management interrupt (SMI) signal. The initiation means may be a attention button and have an indicator that shows when a hot plug operation has been completed. The indicator may be a light or sound. The device may have storage means for storing the status of the device, the status my be that the hot plug operation is ongoing, that operation is pending or neither. Also, disclosed is a method of managing multiple hot plug operations that are attempting to be executed at the same time.

Description

HOT PLUG DEVICE

TECHNICAL FIELD

The present disclosure relates to a hot plug device.

The present disclosure also relates generally to

information handling systems and, more particularly, to systems and methods for managing multiple hot plug operations.

BACKGROUND

As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global corrununjcat ions. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.

Some information handling systems, including computer systems, support hot plug functionality for various hot plug components, external devices or peripherals, such as memory cards, PCI devices, or disk drives, for example. Hot plug, which is often referred to as hot swap, refers to the process of removing or adding a device to a system without halting, or "hanging," the system. In particular situations, hot plug may refer to adding a device to, or removing a device from, a bus while transactions involving other devices or system components are occurring over the bus.

In order to add a hot plug device to or remove a hot plug device from an information handling system, the system may need to perform a hot plug operation, which may include a series of functions, including a number of system management interrupts (SMIs). Due to such SMIs, a system can typically only handle one hot plug operation at a time. When multiple hot plug operations are requested at the same time, the system may hang or other errors may result.

The present application is divided from GB 2424099.

According to the disclosure in the parent application, a need has arisen for systems and methods for managing multiple hot plug operations that reduces or eliminates the problems associated with receiving multiple hot plug operations.

In accordance with one embodiment of the invention disclosed in the parent application, a method for managing multiple hot plug operations in an information handling system is provided. An instruction for initiating a new hot plug operation is received, the new hot plug operation including one or more hot plug system management interrupts (SMIs) . Another hot plug operation currently ongoing at the time of receiving the instruction for initiating the first hot plug operation is identified, the ongoing hot plug operation also including one or more hot plug SMIs. In response to identifying the ongoing hot plug operation, the initiation of the new hot plug operation is restricted such that the ongoing hot plug operation may be completed. For example, hot plug SMIs not related to the ongoing hot plug operation may be disabled until the ongoing hot plug operation is completed. As another example, the new hot plug operation may be queued and performed upon the completion of the ongoing hot plug operation.

In one example, the instruction for initiating a new hot plug operation comprises an instruction for initiating a new hot plug operation for a first hot plug device, and the ongoing hot plug operation comprises an ongoing hot plug operation for a second hot plug device.

Alternatively, the instruction for initiating a new hot plug operation may comprise an instruction for initiating a new hot plug operation for a particular hot plug device and the ongoing hot plug operation comprises an ongoing hot plug operation for the particular hot plug device.

Receiving an instruction for initiating a new hot plug operation may comprise receiving an instruction generated in response to an attention button on a hot plug device being pressed.

The instruction for initiating a new hot plug operation may comprise an instruction for initiating a new hot plug operation for a particular hot plug device, and restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed comprises disabling any hot plug SMIs from the particular hot plug device during the ongoing hot plug operation and, re-enabling hot plug SMIs from the particular hot plug device after completion of the ongoing hot plug operation.

Restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed may comprise storing the received instruction for initiating the new hot plug operation such that the new hot plug operation is pending and upon, completion of the ongoing hot plug operation, initiating the pending new hot plug operation.

The method may include managing a current status for each of a plurality of hot plug devices, the current status of each hot plug device indicating at least whether a hot plug operation is currently ongoing for that device and whether a hot plug operation is pending for that device. Identifying an ongoing hot plug operation may comprise accessing the status for the plurality of hot plug devices, and determining, based on the accessed status of the plurality of hot plug devices, that a hot plug operation is currently ongoing for a first hot plug device. Restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed comprises updating the status of a second hot plug device associated with the new hot plug operation to indicate that a hot plug operation is pending for the second hot plug device upon, completion of the ongoing hot plug operation, initiating the pending hot plug operation for the second hot plug device. In this case, the status of the first hot plug device may be updated to indicate that a hot plug operation is not ongoing or pending for the first device, and the status of the second hot plug device be updated to indicate that a hot plug operation is ongoing for the second device.

The current status of each of the plurality of hot plug devices can be identified by one of a plurality of values include a first value indicating that a hot plug operation is currently ongoing for that device, a second value indicating that a hot plug operation is pending for that device, and a third value indicating that a hot plug operation is neither currently ongoing nor pending for that device. The current status for each of a.plurality of hot plug devices can be managed by updating the current status for particular hot plug devices as appropriate.

In accordance with another embodiment of the invention of the parent application, an information handling system includes a plurality of hot plug slots operable to receive hot plug devices, a processor, and a BIOS memory communicatively coupled to the processor and including a BIOS program. The processor and the program are operable to cooperate to receive an instruction for initiating a new hot plug operation for a particular hot plug device in a particular hot plug slot, the new hot plug operation including one or more hot plug system.

management interrupts (SMIs), identify another hot plug operation currently ongoing at the time of receiving the instruction for initiating the first hot plug operation, the ongoing hot plug operation including one or more hot plug SMIs, and in response to identifying the ongoing hot plug operation, restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed.

The ongoing hot plug operation may comprise an ongoing hot plug operation for the particular hot plug device, or an ongoing hot plug operation for a hot plug device other than the particular hot plug device.

The received instruction for initiating a new hot plug operation can comprise an instruction for initiating a new hot plug operation for a particular hot plug device. The processor and the BIOS program may be operable to cooperate to restrict the initiation of the new hot plug operation by disabling any hot plug SMIs from the particular hot plug device during the ongoing hot plug operation, and re-enabling hot plug SMIs from the particular hot plug device after completion of the ongoing hot plug operation.

Restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed can include storing the received instruction for initiating the new hot plug operation such that the new hot plug operation is pending, and, upon completion of the ongoing hot plug operation, initiating the pending new hot plug operation.

The processor and the BIOS program may further be operable to cooperate to manage a current status for each of a plurality of hot plug devices. The current status of each hot plug device may indicate at least whether a hot plug operation is currently ongoing for that device and whether a hot plug cooperation is pending for that device. Identifying an ongoing hot plug operation may comprise accessing the status of the plurality of hot plug devices and determining, based on the accessed status of the plurality of hot plug devices, that a hot plug operation is currently ongoing for a first hot plug device. Restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed can comprise updating the status of a second hot plug device associated with the new hot plug operation to indicate that a hot plug operation is pending for the second hot plug device. The processor and the BIOS program may further be operable to upon completion of the ongoing hot plug operation, initiating the pending hot plug operation for the second hot plug device.

The current status of each of the plurality of hot plug devices can be identified by one of a plurality of values include a first value indicating that a hot plug operation is currently ongoing for that device, a second value indicating that a hot plug operation is pending for that device, and a third value indicating that a hot plug operation is neither currently ongoing nor pending for that device. The current status for each of a plurality of hot plug devices can be managed by updating the current status for particular hot plug devices as appropriate.

In accordance with yet another embodiment of the invention according to the parent application, a computer-readable medium having computer-executable instructions for managing multiple hot plug operations in an information handling system is also disclosed. The Computer-executable instructions include instructions for identifying a received instruction for initiating a new hot plug operation, the new hot plug operation including one or more hot plug system management interrupts (SMIs), instructions for identifying another hot plug operation currently ongoing at the time of receiving the instruction for initiating the first hot plug operation, the ongoing hot plug operation including one or more hot plug St1Is, and instructions for restricting the initiation of the new hot plug operation in response to identifying the ongoing hot plug operation such that the ongoing hot plug operation may be completed.

According to one aspect of the present invention, there is provided a hot plug device for use with an information handling system, the hot plug device including a hot plug operation initiation device operable to be actuated in order to initiate a hot plug operation to add or remove the hot plug device from the information handling system, the hot plug operation including generation of a system management interrupy (SMI) signal.

According to a further aspect of the present invention, there is provided a method for initiating a hot plug operation to add or remove a hot plug device from the information handling system, including actuating a hot plug operation initiation device of the hot plug device to initiate the hot plug operation, the hot plug operation including generation of a system management interrupy (SMI) signal.

One technical advantage of the present disclosure is that systems and methods for managing multiple hot plug operations, either from the same hot plug device or from different hot plug devices, are provided. In some situations, hot plug operations are requested by a user pressing an attention button on the relevant hot plug device, such as to add or remove that hot plug device to or from an information handling system. In particular, such systems and methods may manage a new hot plug operation (or multiple new hot plug operations) that is requested while another hot plug operation is ongoing in order to prevent system hang and to allow the ongoing hot plug operation to finish without interruption.

For example, in some embodiments, requests for new hot plug operations that are made while another hot plug operation is ongoing are ignored by the system in order to prevent system hang and to allow the ongoing hot plug operation to finish without interruption. In other embodiments, a request for a new hot plug operation (or requests for multiple new hot plug operations) that is made while another hot plug operation is ongoing are queued by the system and performed after the ongoing hot plug operation is finished. In this manner, requested hot plug operations may be maintained and performed in a suitable order, without causing system hang or other errors, and allowing ongoing hot plug operations to finish without interruption.

In particular embodiments, queued hot plug operations may be queued according to any suitable criteria, such as the time that the request for each pending hot plug operation was received, the type of the relevant hot plug device, and the slot in which the relevant hot plug device is located, for example. The system may be configured for any desired priority of hot plug operations.

Other technical advantages will be apparent to those of ordinary skill in the art in view of the following

specification, claims, and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described, by way of example, with reference to the accompanying drawings, in which: FIGURE 1 illustrates an example information handling system; FIGURE 2 illustrates a number of hot plug devices located in hot plug slots of the information handling system of FIGURE 1; FIGURE 3 illustrates example data including values representing the current status of a plurality of hot plug devices supported by the information handling system of FIGURE 1; FIGURE 4 illustrates example data including values representing the current status of a plurality of hot plug devices supported by the information handling system of FIGURE 1 in accordance with another embodiment of the

disclosure;

FIGURE 5 illustrates a method of the information handling system of FIGURE 1 managing multiple hot plug operations; and FIGURES 6-7D illustrate a method of the information handling system of FIGURE 1 managing multiple hot plug operations.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference to FIGURES 1 through 7D, wherein like numbers are used to indicate like and corresponding parts.

For purposes of this disclosure, an information

handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAN), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, RON, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.

FIGURE 1 illustrates an example information handling system 10 according to one embodiment of the present

disclosure. As discussed in greater detail below,

information handling system 10 may support one or more hot plug devices 12, such as one or more hot plug memory devices 14 and/or one or more hot plug PCI devices 16, for example. Information handling system 10 may manage multiple hot plug operations associated with such hot plug devices 12 such that hot plug operations may complete without interruption and without causing the information handling system 10 to hang or otherwise cause a system error.

Information handling system 10 or computer system preferably includes one or more microprocessors such as central processing unit (CPU) 18. CPU 18 may include processor 20 for handling integer operations and coprocessor 22 for handling floating point operations.

CPU 18 is preferably coupled to cache, such as Li 24 and L2 cache 25 and a chipset, commonly referred to as Northbridge chipset 26, via a frontside bus 28.

Northbridge chipset 26 preferably couples CPU 18 to memory 28 via memory controller 30. Memory controller 30 may be coupled to one or more hot plug memory slots 32, which may be configured to receive one or more hot plug memory devices 14. Hot plug memory devices 14 may include any hot pluggable memory devices, such as memory cards with memory DIMM, for example.

Information handling system 10 may include additional (non-hot plug) memory, such as random access memory (RAM), read-only memory (ROM), dynamic random access memory (DRAM), fast cycle RAM (FCRAM), static RAM (SRAM), field-programmable gate arrays (FPGA), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or any other suitable volatile or non-volatile memory devices.

Graphics controller 36 is preferably coupled to Northbridge chipset 26 and to video memory 38. Video memory 38 is preferably operable to store information to be displayed on one or more display panels 40. Display panel 40 may be an active matrix or passive matrix liquid crystal display (LCD), a cathode ray tube (CRT) display or other display technology. In some applications, uses or instances, graphics controller 36 may also be coupled to an integrated display, such as in a portable information handling system implementation.

Northbridge chipset 26 serves as a "bridge" between CPU bus 28 and the connected buses. Generally, when going from one bus to another bus, a bridge is needed to provide the translation or redirection to the correct bus. Typically, each bus uses its own set of protocols or rules to define the transfer of data or information along the bus, commonly referred to as the bus architecture. To prevent communication problem from arising between buses, chipsets such as Northbridge chipset 26 and Southbridge chipset 42, are able to translate and coordinate the exchange of information between the various buses and/or devices that communicate through their respective bridge.

Basic input/output system (BIOS) memory 44 is also preferably coupled to a system bus 46 connecting to Southbridge chipset 42. FLASH memory or other reprogramrnable, nonvolatile memory may be used as BIOS memory 44. A BIOS program 50 is typically stored in BIOS memory 44. BIOS program 50 preferably includes software which facilitates interaction with and between information handling system 10 devices such as a keyboard 52, a pointer such as a touch pad 54 or mouse 56, one or more other I/O devices, and one or more hot plug PCI devices 16 located in one or more hot plug expansion slots 62. BIOS memory 44 may also store system code operable to control a plurality of basic information handling system 10 operations.

A communication controller 66 is preferably provided and enables information handling system 10 to communicate with communication network 68, such as an Ethernet network, for example. Communication network. 68 may include any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), wireless local area network (WLAN), virtual private network (VPN), intranet, the Internet, or any other appropriate architecture or system that facilitates the communication of data. Communication controller 66 may be employed to form a network interface for communicating with other information handling systems (not expressly shown) coupled to communication network 68.

Information handling system may include an expansion card controller 70, which may be coupled to system bus 46 as shown. Expansion card controller 72 is coupled to a plurality of hot plug expansion slots 62, which may be configured to receive one or more hot plug PCI devices 16, such as any suitable PCI, PCI-X, or PCI-E card or

device, for example.

Southbridge chipset 42, also called bus interface controller or expansion bus controller preferably couples system bus 46 to an expansion bus. In one embodiment, the expansion bus may be configured as an Industry Standard Architecture (hISAu) bus. However, other buses, such as a Peripheral Component Interconnect ("PCI") bus, for example, may be used.

An interrupt request generator 74 may also be coupled to Southbridge chipset 42. Interrupt request generator 74 is preferably operable to issue an interrupt service request over a predetermined interrupt request line in response to receipt of a request to issue interrupt instruction from CPU 18. Southbridge chipset 42 preferably interfaces to one or more universal serial bus (USB) ports 76, CD-ROM (compact disk-read only memory) or digital versatile disk (DVD) drive 78, an integrated drive electronics (IDE) hard drive device (HDD) 80 and/or a floppy disk drive (FDD) 82. In one example embodiment, Southbridge chipset 42 interfaces with HDD 80 via an IDE bus. Other disk drive devices which may be interfaced to Southbridge chipset 42 include, for example, a removable hard drive, a zip drive, a CD-RW (compact disk-read/write) drive, and a CD-DVD (compact disk -digital versatile disk) drive.

A real-time clock (RTC) 86 may also be coupled to Southbridge chipset 42. Real-time clock 86 permits timed events or alarms to be activated in the information handling system 10. Real-time clock 86 may be programmed to generate an alarm signal at a predetermined time as well as to perform other operations.

An I/O controller 90, often referred to as a super I/O controller, is also preferably coupled to Southbridge chipset 42. I/O controller 90 preferably interfaces to one or more parallel port 92, keyboard 52, a device controller 94 operable to drive and interface with touch pad 54 and/or mouse 56, and PS/2 Port 96. FLASH memory 98 or other nonvolatile memory may be used with I/O controller 90.

As discussed above, information handling system 10 may support one or more types of hot plug device 12, such as hot plug memory devices 14, hot plug PCI devices 16 and/or any other suitable types of hot plug device. Hot plug devices 12 may include any devices capable of being added to or removed from information handling system 10 by hot plug. Hot plug, which is often referred to as hot swap, refers to the process of removing or adding a device to a system without halting, or "hanging," the system. In particular situations, hot plug may refer to adding a device to, or removing a device 12 from, a bus (such as bus 28 or bus 46, for example) while transactions involving other devices or system components are occurring over the bus.

FIGURE 2 is a block diagram illustrating a number of hot plug devices 12 located in hot plug slots 100 of information handling system 10 according to one

embodiment of the present disclosure. In this

embodiment, information handling system 10 comprises a server including four hot plug slots 32 and/or 62, indicated as slots 100A-100D, operable to receive up to four hot plug devices 12, and shown as currently housing three hot plug devices 12A-12C. In a particular embodiment, information handling system 10 comprises a four-processor (4P) server including four hot plug memory slots 32, operable to receive up to four hot plug memory devices 14. In other embodiments, information handling system 10 may comprise any system that supports and manages multiple hot plug operations (such as discussed herein) for any suitable number and/or type(s) of hot plug devices 12, such as a high-end server, for example.

As shown in FIGURE 2, each hot plug device 12 includes a chipset 102 that generates system management interrupts (SMIs) associated with hot plug operations.

System management interrupt (SMI) code 104 may be stored on one of the hot plug devices 12, such as hot plug device 12A, as shown in FIGURE 2. SMI code 104 may be copied to hot plug device l2A from BIOS memory 50, such as during power-up of server 10, for example. In other embodiments or in a mirrored mode situation (i.e., where the contents of multiple hot plug devices 12 are mirrored, or identical), SMI code 104 may be stored on more than one hot plug device 12. For example, in a mirrored mode in which the contents of memory cards A and B are mirrored, SMI code 104 may be stored on both hot plug devices 12A and 12B.

Each hot plug device 12 may also include a hot plug operation initiation device 108 operable to be actuated in order to initiate a hot plug operation, or event, for that hot plug device 12, such as to add a hot plug device 12 to server 10 or remove a hot plug device 12 from server 10. In the particular embodiment shown in FIGURE 2, each hot plug device 12 includes an attention button 108 that may be pressed by a user in order to initiate a hot plug operation for that hot plug device 12.

The hot plug operation allows the hot plug device 12 to be added to or removed from the server 10. For example, to remove a hot plug device 12 from server 10, the user presses the attention button 108 on the hot plug device 12, which initiates a hot plug operation to remove the hot plug device 12 from the server. Once the hot plug operation has completed, an indication may be displayed (such as by a light or sound, for example) to the user indicating that the hot plug operation has completed. The user may then remove the hot plug device 12 from the particular slot 100 on server 10. To add a hot plug device 12 to server 10, the user inserts the hot plug device 12 into an open slot 100 on server 10 and presses the attention button 108 on the hot plug device 12, which initiates a hot plug operation to add the hot plug device 12 to the server. Once the hot plug operation has completed, an indication may be displayed (such as by a light or sound, for example) to the user indicating that the hot plug operation has completed and the hot plug device 12 has been successfully added to server 10. A hot plug operation (either for adding and removing a hot plug device 12) may include a number (e.g. hundreds) of system management interrupts (SMIs).

Server 10 is operable to receive an instruction for initiating a newhot plug operation for a particular hot plug device 12, determine that another hot plug operation is currently ongoing at the time of receiving the instruction for initiating the first hot plug operation, and in response to determine that another hot plug operation is currently ongoing, restricting the initiation of the new hot plug operation such that the ongoing hot plug operation may be completed.

The new hot plug operation may regard the same hot plug device 12 or a different hot plug device 12 that the ongoing hot plug operation. For example, suppose a user presses the attention button 108 on a particular hot plug device 12, which initiates a hot plug operation (such as to add or remove the particular hot plug device 12) Before this hot plug operation has completed, the user (or another user) presses the attention button 108 on the particular hot plug device 12 again. Server 10 may receive an instruction generated by the second press of the attention button 108, determine that a hot plug operation is currently ongoing for that hot plug device 12, and in response, restrict the initiation of the second hot plug operation such that the first hot plug operation may be completed.

As another example, suppose a user presses the attention button 108 on a first hot plug device 12, hot plug device 12A, which initiates a hot plug operation for hot plug device 12A (such as to add or remove hot plug device 12A). Before the hot plug operation for hot plug device l2A has completed, the user (or another user) presses the attention button 108 on a second hot plug device 12, hot plug device 12B. Server 10 may receive an instruction generated by the pressing attention button 108 on hot plug device 12B, determine that a hot plug operation is currently ongoing for hot plug device 12A, and in response, restrict the initiation of the hot plug operation for hot plug device 12B such that the hot plug operation for hot plug device 12A may be completed.

In either example discussed above, restricting the initiation of a new hot plug operation due to another ongoing hot plug operation may involve any suitable functions such that the ongoing hot plug operation may be successfully completed. For example, as discussed in greater detail below with reference to FIGURE 5, restricting the initiation of a new hot plug operation includes disabling hot plug SMIs from all or particular hot plug devices 12 during the ongoing hot plug operation, and re-enabling hot plug SMIs from the all or particular hot plug devices 12 after completion of the ongoing hot plug operation.

As another example, as discussed in greater detail below with reference to FIGURES 6-7, restricting the initiation of a new hot plug operation includes storing a received instruction for initiating the new hot plug operation such that the new hot plug operation is pending, and subsequently initiating the pending new hot plug operation upon or after completion of the ongoing hot plug operation.

In some embodiments, server 10 may manage a current status for each of a plurality of hot plug devices 12, which status for each hot plug device 12 may indicate (a) whether a hot plug operation is currently ongoing for that hot plug device 12 and/or (b) whether a hot plug operation is currently pending for that hot plug device 12. The current status of each of the plurality of hot plug devices is represented by one of a plurality of values, which may be stored within SMI code 104 on one or more hot plug devices 12. In a particular embodiment, such values for each hot plug device 12 include a first value indicating that a hot plug operation is currently ongoing, for that hot plug device 12, a second value indicating that a hot plug operation is pending for that hot plug device 12, and a third value indicating that a hot plug operation is neither currently ongoing nor pending for that hot plug device 12.

FIGURE 3 illustrates example data 150 including values 152 representing the current status 154 a plurality of hot plug devices 12 supported by information handling system 10 in accordance with one embodiment of the disclosure. Data 150 may be stored in SMI code 104 on one or more hot plug devices 12 and managed by BIOS program 50 of information handling system 10. In this embodiment, a value of "2" for a particular hot plug device 12 indicates that that hot plug device 12 is currently undergoing a hot plug operation. A value of "1" indicates that a hot plug operation is pending for that hot plug device 12. A value of "0" indicates that a hot plug operation is neither currently ongoing nor pending for that hot plug device 12. It should be understood that the values 0, 1 and 2 are used merely for illustrative purposes, and any other suitable values may be used.

When no hot plug operations are ongoing or pending for any memory device 12, the value 152 for each hot plug device 12 is "0." When a hot plug operation is ongoing for a first hot plug device 12, and pending for one or more other hot plug devices 12, the value 152 for the first memory device 12 is "2" and the value 152 for each memory device 12 for which a hot plug operation is pending is "1." In operation, when a hot plug operation is requested for a first particular hot plug device 12, such as when a user presses attention button 108 on the first particular hot plug device 12, information handling system 10 may determine whether a hot plug operation is currently ongoing for another hot plug device 12. This determination may include checking the chipset 102 on each hot plug device 12 to determine the hot plug status of each hot plug device 12. If information handling system 10 determines that a hot plug operation is currently ongoing for a second particular hot plug device 12, information handling system 10 may temporarily restrict the initiation of the requested hot plug operation for the first particular hot plug device 12 and update the status of the first particular hot plug device 12 with a value of "1" (i.e., pending hot plug operation) within data 150. Upon or after completion of the ongoing hot plug operation for the second particular hot plug device 12, information handling system 10 may identify the pending hot plug operation for the first particular hot plug device 12 based on data 150, initiate the pending hot plug operation, and update the status of the first particular hot plug device 12 with a value of "2" (i.e., ongoing hot plug operation) and the second particular hot plug device 12 with a value of "0" (i.e., no ongoing or pending hot plug operation) . Upon or after completion of the hot plug operation for the first particular hot plug device 12, information handling system 1.0 may similarly update the status of the first particular hot plug device 12 with a value of "0" (i.e., no ongoing or pending hot plug operation) FIGURE 4 illustrates example data 150 including values 152 representing the current status 154 of a plurality of hot plug devices 12 supported by information handling system 10 in accordance with another embodiment of the disclosure. In this embodiment, data 150 further indicates the timing or priority information 160 indicating the time or other priority of pending hot plug operations, such that if more than one hot plug operation is pending, the pending hot plug operations are executed in order according to one or more priority factors, such as the time that each pending hot plug operation, the * 23 type of the hot plug device 12, and the slot 62 in which the hot plug device 12 is located, for example.

For example, in the example embodiment shown in FIGURE 4, which may be used in an embodiment including eight hot plug slots 62, a value of "0" for a particular hot plug device 12 indicates that a hot plug operation is neither currently ongoing nor pending for that hot plug device 12, and a value of "1" indicates that the hot plug device 12 is currently undergoing a hot plug operation.

The values "2" through "8" indicate (a) that a hot plug operation is pending for the hot plug device 12 and (b) the priority of that pending hot plug operation relative to other currently pending hot plug operations. In particular, the lower the number 2-8, the higher the priority for that pending hot plug operation. Thus, a pending hot plug operation assigned a value of "2" will be executed before a pending hot plug operation assigned a value of "3," which in turn will be executed before a pending hot plug operation assigned a value of "4," and so on. Such values may be updated over time as ongoing hot plug operations are completed and pending hot plug operations are initiated. It should be understood that the values "0" through "8" are used merely for illustrative purposes, and any other suitable values may be used.

The values assigned to each pending hot plug operation may be determined by information handling system 10 based on any one or more priority factors, such as the time that each pending hot plug operation, the type of the hot plug device 12, and the slot 62 in which the hot plug device 12 is located, for example. For example, in a pure FIFO system, when a hot plug operation is ongoing, the first received request for another hot plug operation is assigned the value of "2," the next received request for another hot plug operation is assigned the value of "3," and so one. As another example, in an embodiment in which information handling system 10 supports both hot plug memory devices 14 and hot plug PCI devices 16, hot plug devices 12 may be given a higher priority such that a request for a hot plug operation for a hot plug device 12 is given a higher priority than a request for a hot plug operation for a hot plug PCI device 16, regardless of whether request was received first.

FIGURE 5 illustrates a method of information handling system 10 managing multiple hot plug operations.

In this embodiment, restricting the initiation of a new hot plug operation for a particular hot plug device 12 includes disabling hot plug SMIs from that hot plug device 12 and/or all other hot plug devices 12) during the ongoing hot plug operation, and re-enabling hot plug SMIs from that hot plug devices 12 and/or all other hot plug devices 12) after completion of the ongoing hot plug operation.

At step 200, a number of hot plug devices 12 are connected to information handling system 10, such as shown in FIGURE 2, for example. At step 202, a user presses the attention button 108 on a first hot plug device 12, which generates a hot plug SMI signal, which is communicated to BIOS program 50. In response, BIOS program 50 initiates a hot plug operation for the first hot plug device 12. For example, the user may wish to add first hot plug device 12 to or remove first hot plug device 12 from information handling system 10. At step 204, in response to the hot plug operation being initiated for the first hot plug device 12, information handling system 10 disables hot plug SMIs from all hot plug devices 12 during the ongoing hot plug operation.

For example, BIOS program 50 may communicate a command to the chipset 102 in each hot plug device 12 to ignore any hot plug SMIs until further notice.

At step 206, during the hot plug operation for the first hot plug device 12, the user (or anther user) presses the attention button 108 on either the first hot plug device 12 or a second hot plug device 12, which generates a hot plug SMI signal. At step 208, the hot plug SMI signal is ignored, based on the command implemented at step 204. Thus, the ongoing hot plug operation for the first hot plug device 12 continues through completion. At step 210, the hot plug operation for the first hot plug device 12 completes (and thus the first hot plug device 12 is either added to information handling system 10 or ready to be safely removed from information handling system 10). In some embodiments, an indication may be displayed (such as by a light or sound, for example) to the user indicating that the hot plug operation has completed for the first hot plug device 12.

At step 212, in response to the completion of the ongoing hot plug operation, information handling system 10 re-enables hot plug SMIs from all hot plug devices 12. For example, BIOS program 50 may communicate a command to the chipset 102 in each hot plug device 12 to re-enable hot plug SMIs. Thus, hot plug operations may again be initiated for hot plug memory device 12. At step 214, a user presses the attention button 108 on a second hot plug device 12, which generates a hot plug SMI signal, which is communicated to BIOS program 50. In response, at step 216, BIOS program 50 initiates a hot plug operation for the first hot plug device 12. In addition, BIOS program 50 communicates a command to the chipset 102 in each hot plug device 12 to ignore any hot plug SMIs until further notice, such as described above at step 204.

In this manner, information handling system 10 may prevent multiple hot plug operations from overlapping, thus allowing ongoing hot plug operations to complete without interruption, thereby eliminating or reducing the likelihood of system hang.

FIGURES 6-7 illustrate a method of information handling system 10 managing multiple hot plug operations.

In this embodiment, restricting the initiation of a new hot plug operation includes storing a received instruction for initiating the new hot plug operation such that the new hot plug operation is pending, and subsequently initiating the pending new hot plug operation upon or after completion of the ongoing hot plug operation.

In particular, information handling system 10 manages a current status for each hot plug device 12, which status is represented by values which may be stored within SMI code 104 on one or more hot plug devices 12.

In this embodiment, such values include a first value "2" indicating that a hot plug operation is currently ongoing for that hot plug device 12, a second value "1" indicating that a hot plug operation is pending for that hot plug device 12, and a third value "0" indicating that a hot plug operation is neither currently ongoing nor pending for that hot plug device 12, such as discussed above with reference to FIGURE 3.

At step 300, a number of hot plug devices 12A are connected to information handling system 10, such as shown in FIGURE 2, for example. No hot plug operations are currently ongoing for any of the hot plug devices 12A, and thus a value of "0" is stored in SMI code 104 for each of the hot plug devices 12A in data 150, as shown in FIGURE 7A. At step 302, a user presses the attention button 108 on a first hot plug device 12A (such as to add first hot plug device 12A to or remove first hot plug device 12A from information handling system 10), which generates an SMI signal that is communicated to BIOS program 50. In response, at step 304, BIOS program 50 checks the chipset 102 on each hot plug device 12 to determine (a) the reason for the SMI signal, and (b) the hot plug status of each hot plug device 12. Based on this check, at step 306, BIOS program 50 determines that the SMI signal from first hot plug device l2A is a hot plug SMI, and updates the value stored in SMI code 104 for each hot plug device 12, including updating the value for the first hot plug device 12A from "0" to "2," as shown in FIGURE 7B. BIOS program 50 then initiates the requested hot plug operation for first hot plug device 12 at step 308.

During the hot plug operation for the first hot plug device 12A, the user (or another user) presses the attention button 108 on either the first hot plug device 12A or a second hot plug device 12B. As shown in FIGURE 6, the method splits at this point depending upon whether the attention button 108 was pressed on first hot plug device 12A or second hot plug device 12B. If the attention button 108 on first hot plug device 12A is pressed, the method continues to step 310. If the attention button 108 on second hot plug device 12B is pressed, the method continues to step 320.

At step 310, the user (or anther user) presses the attention button 108 on first hot plug device 12A, which generates a hot plug SMI signal that is communicated to BIOS program 50. In response, at step 312, BIOS program checks the chipset 102 on each hot plug device 12 to determine (a) the reason for the Stil signal, and (b) the hot plug status of each hot plug device 12. Based on this check, at step 314, BIOS program 50 determines (a) that the SMI signal from first hot plug device 12A is a hot plug SMI and (b) that first hot plug device 12A is already undergoing a hot plug operation. In response, at step 316, BIOS program 50 ignores the hot plug SMI signal and allows the ongoing hot plug operation to continue for first hot plug device 12A. At step 318, once the hot plug operation for first hot plug device 12A is complete, BIOS program 50 updates the value stored in SMI code 104 for the first hot plug device 12A from "2" to "0," thus returning to the state shown in FIGURE 7A.

At step 320, the user (or anther user) presses the attention button 108 on a second hot plug device 12B (such as to add second hot plug device 12B to or remove second hot plug device 12B from information handling system 10), which generates an SMI signal that is communicated to BIOS program 50. In response, at step 322, BIOS program 50 checks the chipset 102 on each hot plug device 12 to determine (a) the reason for the SMI signal, and (b) the hot plug status of each hot plug device 12. Based on this check, at step 324, BIOS program 50 determines (a) that the SMI signal from second hot plug device 12B is a hot plug SMI and (b) that another hot plug device 12 (first hot plug device 12A) is already undergoing a hot plug operation. In response, at step 326, BIOS program 50 (a) delays initiation of the requested hot plug operation for second hot plug device 12B and (b) updates the value stored in SMI code 104 for each hot plug device 12, including updating the value for the second hot plug device 12B from "0" to "1," as shown in FIGURE 7C.

At step 328, the ongoing hot plug operation for first hot plug device 12A completes. In response, at step 330, BIOS program 50 checks the chipset 102 on each hot plug device 12 to determine whether there are any pending hot plug operations. Based on this check, at step 332, BIOS identifies the pending hot plug operation for second hot plug device 12B, and updates the value stored in SMI code 104 for each hot plug device 12, including updating the value for first hot plug device 12A from "2" to "0" and the value for second hot plug device l2B from "1" to "2," as shown in FIGURE 7D. BIOS program 50 then initiates the requested hot plug operation for second hot plug device 12B at step 334.

In this manner, requests for a new hot plug operation (or requests for multiple new hot plug operations) that is made while another hot plug operation is ongoing are queued by system 10 and performed after the ongoing hot plug operation is finished. Thus, requested hot plug operations may be maintained (i.e., not lost) and performed in a suitable order, without causing system hang or other errors, and allowing ongoing hot plug operations to finish without interruption. As discussed above, queued hot plug operations may be queued according to any suitable criteria, such as the time that the request for each pending hot plug operation was received, the type of the relevant hot plug device, and the slot in which the relevant hot plug device is located, for example. System 10 may be configured for any desired priority of hot plug operations.

Although the disclosed embodiments have been described in detail, it should be understood that various changes, substitutions and alterations can be made to the embodiments without departing from their scope.

Claims (13)

1. A hot plug device for use with an infOrmation handling system, the hot plug device including a hot plug operation initiation device operable to be actuated in order to initiate a hot plug operation to add or remove the hot plug device from the information handling system, the hot plug operation including generation of a system management interrupy (SMI) signal.
2. A hot plug device according to claim 1, wherein the hot plug operation initiation device comprises an attention button.
3. A hot plug device according to claim 1 or claim 2, further comprising an indicator for indicating that the hot plug operation has been completed.
4. A hot plug device according to claim 3, in which the indication provided by the indicator comprises a light or a sound.
5. A hot plug device according to any one of the preceding claims, further including a storage means for storing the current status of the device.
6. A hot plug device according to claim 5, in which the current status of the device comprises one of a first value indicating that a hot plug operation is currently ongoing for the device, a second value indicating that a hot plug operation is currently pending for the device, and a third value indicating that a hot plug operation is neither currently ongoing or pending for the device.
7. A method for initiating a hot plug operation to add or remove a hot plug device from the information handling system, including actuating a hot plug operation initiation device of the hot plug device to initiate the hot plug operation, the hot plug operation including generation of a system management interrupy (SMI) signal.
8. A method according to claim 7, wherein the hot plug operation initiation device comprises an attention button.
9. A method according to claim 7 or claim 8, further comprising providing an indication when the hot plug operation has been completed.
10. A method according to claim 9, in which the indication comprises a light or a sound.
11. A method according to any one of claims 7 to 10, further comprising storing the current status of the device in a storage means in the device.
12. A method according to claim 11, in which the current status of the device comprises one of a first value indicating that a hot plug operation is currently ongoing for the device, a second value indicating that a hot plug operation is currently pending for the device, and a third value indicating that a hot plug operation is neither currently ongoing or pending for the device.
13. A hot plug device substantially as shown in or as described with respect to any of the accompanying drawings.
GB0721199A 2005-03-10 2006-03-09 Hot plug device Active GB2443097B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11077443 US7321947B2 (en) 2005-03-10 2005-03-10 Systems and methods for managing multiple hot plug operations
GB0604881A GB2424099B (en) 2005-03-10 2006-03-09 Systems and methods for managing multiple hot plug operations
GB0721199A GB2443097B (en) 2005-03-10 2006-03-09 Hot plug device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0721199A GB2443097B (en) 2005-03-10 2006-03-09 Hot plug device

Publications (3)

Publication Number Publication Date
GB0721199D0 GB0721199D0 (en) 2007-12-05
GB2443097A true true GB2443097A (en) 2008-04-23
GB2443097B GB2443097B (en) 2009-03-04

Family

ID=39262681

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0721199A Active GB2443097B (en) 2005-03-10 2006-03-09 Hot plug device

Country Status (1)

Country Link
GB (1) GB2443097B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354116A (en) * 2015-10-23 2016-02-24 青岛海信移动通信技术股份有限公司 Hot-plug detection method, apparatus, system and mobile terminal

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0694848A1 (en) * 1994-07-26 1996-01-31 Advanced Micro Devices Inc. Dockable computer apparatus and method
US5664119A (en) * 1994-07-07 1997-09-02 Dell Usa, L.P. Local proactive hot swap request/acknowledge system
US5758101A (en) * 1995-07-14 1998-05-26 Alliance Peripheral Systems, Inc. Method and apparatus for connecting and disconnecting peripheral devices to a powered bus
JP2000181587A (en) * 1998-12-18 2000-06-30 Matsushita Electric Ind Co Ltd Portable information equipment and small expansion equipment
WO2001086445A1 (en) * 2000-05-11 2001-11-15 Patmos International Corporation Connectionist topology computer/server
US6442638B1 (en) * 1999-05-18 2002-08-27 International Business Machines Corporation Auto enable/disable system and method for computer interfaced devices
US20030023410A1 (en) * 2001-07-20 2003-01-30 Roth Eric Scott Method and apparatus for flushing of a device cache and suspending/shutting-down the device
US20030063431A1 (en) * 2001-10-01 2003-04-03 Sobolewski Zbigniew S. Network attached storage system with data storage device hot swap capability
US6578099B1 (en) * 2000-01-04 2003-06-10 Dell Usa, L.P. Method and computer system for safely hot-plugging adapter cards
US20030131170A1 (en) * 2002-01-10 2003-07-10 Nai-Chi Chen Hot swap method
US20030207605A1 (en) * 2002-05-03 2003-11-06 Compaq Information Technologies Group, L.P. Self-locking mechanism for a hot pluggable printed circuit board
JP2004094693A (en) * 2002-09-02 2004-03-25 Nec Engineering Ltd Electronic device
US20040177202A1 (en) * 2003-02-19 2004-09-09 Samsung Electronics Co., Ltd. Apparatus and method for generating hot-plug signal
US20040236980A1 (en) * 2001-10-19 2004-11-25 Chen Ben Wei Method and system for providing a modular server on USB flash storage
US6892263B1 (en) * 2000-10-05 2005-05-10 Sun Microsystems, Inc. System and method for hot swapping daughtercards in high availability computer systems
US20050154815A1 (en) * 2004-01-14 2005-07-14 International Business Machines Corporation Seamless user interactions for portable storage devices

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664119A (en) * 1994-07-07 1997-09-02 Dell Usa, L.P. Local proactive hot swap request/acknowledge system
EP0694848A1 (en) * 1994-07-26 1996-01-31 Advanced Micro Devices Inc. Dockable computer apparatus and method
US5758101A (en) * 1995-07-14 1998-05-26 Alliance Peripheral Systems, Inc. Method and apparatus for connecting and disconnecting peripheral devices to a powered bus
JP2000181587A (en) * 1998-12-18 2000-06-30 Matsushita Electric Ind Co Ltd Portable information equipment and small expansion equipment
US6442638B1 (en) * 1999-05-18 2002-08-27 International Business Machines Corporation Auto enable/disable system and method for computer interfaced devices
US6578099B1 (en) * 2000-01-04 2003-06-10 Dell Usa, L.P. Method and computer system for safely hot-plugging adapter cards
WO2001086445A1 (en) * 2000-05-11 2001-11-15 Patmos International Corporation Connectionist topology computer/server
US6892263B1 (en) * 2000-10-05 2005-05-10 Sun Microsystems, Inc. System and method for hot swapping daughtercards in high availability computer systems
US20030023410A1 (en) * 2001-07-20 2003-01-30 Roth Eric Scott Method and apparatus for flushing of a device cache and suspending/shutting-down the device
US20030063431A1 (en) * 2001-10-01 2003-04-03 Sobolewski Zbigniew S. Network attached storage system with data storage device hot swap capability
US20040236980A1 (en) * 2001-10-19 2004-11-25 Chen Ben Wei Method and system for providing a modular server on USB flash storage
US20030131170A1 (en) * 2002-01-10 2003-07-10 Nai-Chi Chen Hot swap method
US20030207605A1 (en) * 2002-05-03 2003-11-06 Compaq Information Technologies Group, L.P. Self-locking mechanism for a hot pluggable printed circuit board
JP2004094693A (en) * 2002-09-02 2004-03-25 Nec Engineering Ltd Electronic device
US20040177202A1 (en) * 2003-02-19 2004-09-09 Samsung Electronics Co., Ltd. Apparatus and method for generating hot-plug signal
US20050154815A1 (en) * 2004-01-14 2005-07-14 International Business Machines Corporation Seamless user interactions for portable storage devices

Also Published As

Publication number Publication date Type
GB0721199D0 (en) 2007-12-05 grant
GB2443097B (en) 2009-03-04 grant

Similar Documents

Publication Publication Date Title
US6178445B1 (en) System and method for determining which processor is the master processor in a symmetric multi-processor environment
US20060064518A1 (en) Method and system for managing cache injection in a multiprocessor system
US20050256822A1 (en) Dual-component state token with state data direct access index for systems with high transaction volume and high number of unexpired tokens
US6983337B2 (en) Method, system, and program for handling device interrupts
US20090006745A1 (en) Accessing snapshot data image of a data mirroring volume
US6446153B2 (en) Shared embedded microcontroller interface
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US20020013892A1 (en) Emulation coprocessor
US20070005896A1 (en) Hardware oriented host-side native command queuing tag management
US20020004810A1 (en) System and method for synchronizing disparate processing modes and for controlling access to shared resources
US20080115012A1 (en) Method and infrastructure for detecting and/or servicing a failing/failed operating system instance
US8055827B2 (en) Guest interrupt controllers for each processor to aid interrupt virtualization
US7080291B2 (en) Data processing system for keeping isolation between logical partitions
US20060047877A1 (en) Message based interrupt table
US20070083682A1 (en) Memory controller and method for handling DMA operations during a page copy
US20040123172A1 (en) Methods and apparatus to control power state transitions
US20060179177A1 (en) Method, apparatus, and computer program product for migrating data pages by disabling selected DMA operations in a physical I/O adapter
US7457900B2 (en) Method for discovering and partitioning PCI devices
US20080046877A1 (en) Methods and systems for arbitrating error handling and firmware updates
US20060004946A1 (en) Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
US20130326270A1 (en) Maximizing Use of Storage in a Data Replication Environment
US6658510B1 (en) Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
US6789142B2 (en) Method, system, and program for handling interrupt requests
US20120110562A1 (en) Synchronized firmware update