The present invention relates generally to software debugging, and more specifically to a communication port system and method comprising a USB adapter and the SMBus of a target computer wherein debug commands can be issued from a host computer to the target computer via said communication port.
When computers are initially turned on or reset, a “booting” process typically occurs. When a computer “boots” a built-in diagnostic program known as a power-on self-test (POST) is performed wherein various tests are run to confirm core components of the computer system are present and functioning properly, and wherein the registers within certain hardware devices are initialized. Part of performing the POST involves loading the basic input and output system (BIOS) code into memory. A computer system requires BIOS to control the basic hardware operations, such as interactions with disk drives, hard drives, the keyboard, and other peripheral devices. After performing the POST, the computer typically loads an operating system (OS).
More specifically, the BIOS is a collection of instructions known as firmware routines typically hardwired into a read-only-memory (ROM) device and utilized by a processor of a computer to identify, initialize, allocate and manage other system hardware. The BIOS is the lowest-level software in the computer system acting as an interface between the hardware (especially the processor) and higher level programs such as the OS. By providing a set of low-level routines, the BIOS enables the OS to interface with different hardware devices while in operation, thus facilitating the operation of various software applications. The BIOS is also responsible for allowing control of a computer's hardware settings, for booting up the computer when the power is turned on or when the reset button is activated, and various other system functions.
Because BIOS code is so intimately connected to the hardware, developing such BIOS code can be very difficult. Many tools are available to help design and debug BIOS. For example, AMIBIOS Debugger, which is part of the American Megatrends, Inc. suite of programs, allows developers to debug BIOS relatively easily. Many other similar programs for debugging code are known in the art.
Typically, the developer of such BIOS code or a debugger at the BIOS level uses an in-circuit emulator (ICE) as a tool of choice to aid code development and debugging. ICE systems emulate the system processor and allow typical debugging tasks to be performed such as (1) viewing and modifying memory locations, I/O locations, and processor registers, (2) setting and clearing breakpoints, and (3) starting and stopping processor execution. However, ICE hardware and software systems are very expensive, costing on the order of $20,000 or more for a system or platform. Development sites often ration the use of limited ICE debugging tools, forcing developers to use less efficient tools, thereby impacting productivity.
In general, debugging refers to the process of identifying and eliminating errors within the BIOS code. For instance, most debuggers such as AMIBIOS Debugger mentioned herein, provide tools for stepping through the executing code of a program, monitoring the status of input/output ports, and for monitoring and modifying the contents of memory locations and central processing unit (“CPU”) registers.
Traditionally, a debugger tool runs on the computer system executing the software that is being debugged. For example, the debugging of one computer (the “target computer”) through another computer (the “host computer”) is performed via a locally-connected cable (i.e. a serial/USB/parallel cable). Each means of communication has advantages and disadvantages such as cost, speed of data transmission and system resource requirements such as memory to enable communication between the host and target computer. Communication ports on a typical target computer consist of serial/USB/parallel communication ports.
Serial ports essentially, provide a standard connector and protocol allowing the connection of peripheral devices, such as modems, to the computer. The serial port takes a byte of data and transmits the 8 bits in that byte one at a time. The advantage is that a serial port needs only one wire to transmit the 8 bits. In order for the serial port to function faster, a buffer holds data that is going out to the serial port. Most standard serial ports have a maximum transfer rate of 115 Kbps (kilobits per second). In summary, most computers have at most, two serial ports. In addition, serial port controller is not memory intensive to transfer data at such transfer rates.
Parallel ports, essentially, provide a standard connector and protocol to let you attach devices, such as printer, to your computer. The parallel port sends 8 bits of data (1 byte) at the same time. Most standard parallel ports have data transfer rate of ten times faster than serial port transfer rates with an effective bandwidth of approximately 1 Mbs (Megabits per second). Furthermore, parallel ports lack an accepted standard for bi-directional communication. In summary, most computers come with only one parallel port. In addition, the parallel port controller like the serial port controller is not memory intensive to transfer data at such transfer rates.
Devices other than serial and parallel ports that needed faster connections come with their own cards, which must be inserted in an open card slot inside the computer's case.
Recently, the universal serial bus (USB) has been introduced and provides the computer with a single, standardized, easy means to connect multiple peripheral devices to a computer. With USB 2.0, the port has a maximum data transfer rate of 480 megabits per second. However, with faster data transfer rates, the USB controller requires extensive use of memory.
Such communication options occupy either the serial, parallel, or USB port of the target computer.
Therefore, for the foregoing reasons, it is readily apparent that there is a need for a target computer communication port having low cost, higher data communication rates than serial port and memory use requirements similar to that of a serial port while still enabling communication between a target computer and a host computer for debugging POST and BIOS code without occupying a serial, parallel, or USB port of the target computer.
Briefly described, in the preferred embodiment, the present invention overcomes the above-mentioned disadvantages and meets the recognized need for such a device, system and method by providing a target computer communication port system and method using an adapter and the system management bus (SMBus) of the target computer, thus enabling communication between a target computer and a host computer for debugging a software program such as POST and BIOS code. The present system and method make use of a debugger application executing on a host computer and configured to communicate with a debugger module executing on a target computer. By allowing the debugger application, executing on the host computer, to communicate over standard USB of the host computer to a USB adapter and SMBus of the target computer, the physical limitations of previous solutions utilizing low speed serial port or memory intensive parallel and USB ports of the target computer to connect the host and target computers is overcome. Communication may be made even though the target computer has not been booted with an operating system program. The debugger application executing on the host computer preferably communicates with the debugger module executing on the target computer via standard USB of the host computer to a USB adapter and SMBus of the target computer in the same manner as if the host and target computers were connected locally via a serial/parallel/USB cable and applicable host and target computer ports.
According to its major aspects and broadly stated, the present invention in its preferred form is a communication port system and method comprising a standard USB port of host computer, a USB adapter and the SMBus of the target computer, wherein debug commands can be issued from a host computer to the target computer via said communication port.
Accordingly, a feature and advantage of the present invention is its ability to enable a low cost communication solution between the host computer and the target computer.
Another feature and advantage of the present invention is its ability to enable a communication solution between the host computer and the target computer without occupying serial/USB/parallel communication ports of the target computer.
Still another feature and advantage of the present invention is its ability to provide a communication platform that is not dependent on the I/O devices such as serial, USB, or parallel rather the present invention can communicate with any selected port on the host computer whether serial, USB, or parallel depending on the type of adapter used.
Yet another feature and advantage of the present invention is its ability to incorporate an adapter that bridges communication between the target computers' SMBus and the hardware configuration of the host computer such as serial/USB/parallel port.
Still yet another feature and advantage of the present invention is its ability to communicate directly with the subsystems of the target computer using the SMBus existing features.
Still yet another feature and advantage of the present invention is its ability to have a unique interface for the SMBus communication instead of using different types such as serial/USB/parallel.
Still yet another feature and advantage of the present invention is its ability to communicate at higher data communication rates than serial port.
Still yet another feature and advantage of the present invention is its ability to efficiently use system memory similar to that of a serial port.
These and other features and advantages of the present version of the invention will become more apparent to one skilled in the art from the following description and claims when read in light of the accompanying drawings.
The present invention will be better understood by reading the Detailed Description of the Preferred and Selected Alternate Embodiments with reference to the accompanying drawing figures, in which like reference numerals denote similar structure and refer to like elements throughout, and in which:
In describing the preferred and selected alternate embodiments of the present invention, as illustrated in
As will be appreciated by one of skill in the art, the present invention may be embodied as a method, data processing system, or computer program product.
Accordingly, the present invention may take the form of an entirely hardware embodiment, entirely software embodiment, an embodiment combining software and hardware aspects, or a method of any thereof. Furthermore, the present version of the invention may take the form of a computer program product on a computer-readable storage medium having computer-readable program code means embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, ROM, RAM, CD-ROMs, electrical, optical or magnetic storage devices.
The present invention is described below with reference to flowchart illustrations of methods, apparatus (systems) and computer program products according to embodiments of the present invention. It will be understood that each block or step of the flowchart illustrations, and combinations of blocks or steps in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks/step or steps. Generally, computer programs include routines, modules, components, data structures and other types that perform particular tasks or implement particular abstract data structures.
These computer program instructions may also be stored in a computer-usable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-usable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart block or blocks/step or steps. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks/step or steps.
Accordingly, blocks or steps of the flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block or step of the flowchart illustrations, and combinations of blocks or steps in the flowchart illustrations, can be implemented by special purpose hardware-based computer systems, which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
Computer program for implementing the present version of the invention may be written in various programming languages, such as conventional C calling. However, it is understood that other source or object oriented programming languages, and, other conventional programming languages could be utilized without departing from the spirit and intent of the present version of the invention.
Referring now to
Referring now to
SMBus 112 historically provides a control bus for system and power management related tasks defining the communication link between an intelligent battery, a charger for the battery and a microcontroller that communicates with the rest of computer system 10. Computer system 10 preferably uses SMBus 112 to pass messages to and from devices instead of tripping individual control lines. Removing the individual control lines reduces pin count. For example SMBus 112 is used to determine the memory size of RAM 104 installed in the motherboard 100 memory sockets.
A basic input output system (BIOS) containing the basic routines that help to transfer information between elements within the computer is stored in the ROM 106 or operably disposed in RAM 104. The computer further includes I/O devices such as a main storage device 202 for storing an operating system 204 and application programs 206 and a display 208 for visual output and/or input of data or information, respectively. The main storage device 202 is connected to the CPU 102 through a main storage controller (not shown) connected to bus 110.
In particular, each CPU 102 is a general-purpose processor, that during normal operation, processes data under the control of operating system 204 and application software 206 stored in RAM 104. The operating system 204 takes over total control of the computer system after the BIOS code hands over control to the operating system 204 at the end of POST. Application software 206 contains instructions that when executed on CPU 102 carry out the operations depicted in the flowcharts set forth herein.
CPU 102 is coupled via bus 110 and peripheral component interconnect (PCI) host-bridge to PCI local bus (represented by ‘other I/O devices 210’). PCI host-bridge provides a low latency path through which CPU 102 may directly access PCI devices mapped anywhere within bus memory and/or I/O address spaces. PCI host-bridge also provides a high bandwidth path for allowing PCI devices to directly access RAM 104.
PCI local bus interconnects a number of devices for communication under the control of PCI controller (represented by ‘I/O controller 108’). These devices include a small computer system interface (SCSI) controller, which provides an interface to SCSI hard disk, and communications adapter(s), which interface computer system 10 to at least one data communication network over network adapter comprising wired and/or wireless network communications.
PCI local bus may further be coupled to an industry standard architecture (ISA) bus by an expansion bus bridge (represented by ‘other I/O devices 210’). ISA bus has an attached I/O (Input/Output) controller (represented by ‘I/O controller 108) that interfaces computer system 10 to peripheral input devices such as a keyboard and mouse (not illustrated) and supports external communication via parallel, serial and universal serial bus (USB) ports, respectively.
Many other devices or subsystems (represented by ‘other I/O devices 210’) may be connected in a similar manner such as, without limitation, a keyboard, a pointing device (e.g., a mouse), floppy disk drive operative to receive a floppy disk, CD-ROM player operative to receive a CD-ROM, personal storage device, such as smart card, static memory or other portable storage device that stores data for a particular user or users and is easily transportable, printer, modem each connected via an I/O adapter, wireless receiver and/or transmitter operative to receive and/or transmit data or information to and/or from a remote location.
Examples of such systems include but are not limited to desktop computer(s), network computer(s), midrange computer(s), or mainframe computer(s). In addition, the computer system may also be a remote or portable computing system such as a laptop computer, a personal digital assistant, or cellular telephone, or other wireless device as well as a stand-alone system or part of a network.
Also, it is not necessary for all of the devices shown in
Therefore, in general, the present invention is preferably executed on a computer system that performs computing tasks such as manipulating data from a storage device that is accessible to the computer system.
Referring now to
Similar to host computer 220, target computer 210 includes a computer-readable medium, such as random access memory and/or read only memory, coupled to a processor. The processor executes program instructions stored in memory.
For example, debugger system 200 may include one or more general-purpose computers (e.g., personal computers), one or more special purpose computers (e.g., devices specifically programmed to communicate with each other and/or the debugger system 200), one or more interactive display screens, workstation, server, device, digital assistant or a “smart” cellular telephone or pager, component, other equipment, or some combination of these elements that is capable of responding to and executing instructions. Debugger system 200 may also include a number of additional external or internal devices, such as, without limitation, a mouse, a CD-ROM, a keyboard, a display, interactive display screen, a storage device and other attributes similar to computer system 10 of
As illustrated in
The debugger system 200 further includes a target computer 210. The target computer 210 preferably comprises a personal or server computer. According to one embodiment of the invention, the target computer 210 is preferably configured with BIOS 230 operative to control the execution of the target computer 210 and to provide other functionality for debugging. The BIOS 230 is also configured with a debugger module 250. In particular, the debugger module 250 is preferably configured to receive and respond to requests for debugging-related information from the debugger application 260, such as the contents of registers or memory locations, to receive and respond to commands received from the debugger application 260, such as for stepping the CPU of the target computer 210 through the execution of program code, and for performing other debugging-related functions.
Debugger application 260 provides conventional debugging tools and commands. Debugger application 260 may depend on the target computer 210 being debugged and the BIOS 230 running on target computer 210. Typical command capabilities provided by debug software may comprise: memory dump, move memory data, modify memory content, trace, break address, replace debug code, exit process, go execute process, go to next debug code and stop, interrupt set, break address replace, disable break address, disassembly of the next instruction, initialize parallel port, dump registers, dump output of debug session to file, symbolic debugging, help, and the like. Debugger module 250 receives debug commands from host computer 220 and responds with appropriate action and/or communicates debug data back to host computer 220.
In order for the host computer 220 to communicate with target computer 210 a communication path between the two computers is established. In a preferred embodiment host computer 220 preferably includes transport layer 265 and USB 280. In addition, in a preferred embodiment target computer 210 preferably includes transport layer 255, SMBus 270 and USB/Adapter 290. The transport layers 255 and 265 define the data transmission between host computer 220 and target computer 210. Such layer supports peripheral interfaces for its data transmission, such as serial port, parallel port and USB port. The existence of these interfaces depends on the host computer 220 and target computer 210 hardware configurations.
USB/Adapter 290 is operative to convert data received from the host computer 220 via USB 280 to a format compatible for transmission on SMBus 270 and to convert data being sent by target computer 210 to a format compatible for transmission via USB 280. Through this communication path, any of the debugging functions described herein, including updating the BIOS, may be performed.
In order to debug aspects of the BIOS 230 and other aspects of the execution of the target computer 210, the debugger application 260 preferably is configured to communicate with the target computer 210 using transport layer 265 and USB 280 of host computer 220, and USB cable 295. The debugger module 250 preferably is configured to communicate with the host computer 220 using transport layer 255, SMBus 270 of target computer 210, and USB/Adapter 290. In particular, commands may be transmitted from the debugger application 260 to the debugger module 250 for debugging the BIOS 230. Moreover, data and other information regarding the execution of the BIOS 230 or other program modules on the target computer 210 may be returned to the debugger application 260 from the debugger module 250. SMBus 270 is similar to SMBus 112 of computer system 10 of
Transport layers 265 and 255 are the layers that define the data transmission between host computer 220 and target computer 210. Transport layer 265 and 255 support peripheral interfaces for data transmission, such as serial port, parallel port and USB port. The existence of these interfaces depends on the hardware configuration of the host computer 220 and target computer 210. In addition, by using the SMBus 270 of the target computer 210 to communicate data from the host computer 220 to the target computer 210 the peripheral interfaces such as serial port; parallel port and USB port of the target computer 210 are unused during the debug communication and remain available for other tasks.
According to one embodiment of the invention, the BIOS 230 is configured with a debugger module 250 operative to allow the updating of the BIOS 230. In this manner, the debugger application 260 may be utilized to identify execution errors within the BIOS 230. Once errors have been identified and the BIOS code has been corrected, a new version of the BIOS 230 may be uploaded to the target computer 210 using USB 280 of host computer 220 and USB cable 295, and using USB/Adapter 290 and SMBus 270 of target computer 210 (Physical Layer), and programmed, or “flashed”, into the non-volatile storage area of the target computer 210 that stores the BIOS 230. It should be appreciated that, no operating system need be present or executing on target computer 210. It should be further appreciated that any conventional debugging function supported by the debugger application 260 may be performed over the Physical Layer utilizing the system illustrated in
As illustrated in
Referring now to
It is contemplated in an alternate embodiment of the present invention as illustrated in
Serial/adapter 292 is operative to convert data received from the host computer 220 via serial port 282 to a format compatible for transmission on SMBus 270 and to convert data being sent by target computer 210 to a format compatible for transmission via serial port 282. Through this communication path, any of the debugging functions described herein, including updating the BIOS, may be performed.
Referring now to
It is contemplated further in another alternate embodiment of the present invention as illustrated in
Parallel/adapter 294 is operative to convert data received from the host computer 220 via parallel port 284 to a format compatible for transmission on SMBus 270 and to convert data being sent by target computer 210 to a format compatible for transmission via parallel port 284. Through this communication path, any of the debugging functions described herein, including updating the BIOS, may be performed.
Alternate modes of communication in addition to serial, parallel, USB for the Physical Layer, such as fiber optic or infrared communications are also possible. Thus, allowing system 200, 300, and 400 to use SMBus 270 as an interface device, instead of using the target computer 210 standard communication device interface.
The logical operations of the various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention.
Referring now to
As illustrated in
From block 506, the process 500 continues to operation 508, wherein communication sent from debugger application 260 via transport layer 265 and USB 280 is received by USB/Adapter 290 and converted to a format compatible with SMBus 270, and the communication received from debugger module 250 via transport layer 255 and SMBus 270 is converted to a format compatible with USB 280. As described above with respect to
From block 508, the process 500 continues to operation 510, wherein the established communication session between the debugger application 260 and debugger module 255 is utilized to transmit commands and data for debugging the software executing on the target computer 210. The process 500 then continues to operation 512, where a determination is made as to whether the communication session has ended. If the communication session has not ended, the process 500 branches back to operation 510 where the debugging session continues. If, however, the communication session has completed, then process 500 continues to block 514, where the data communications link between the debugger application 260 and the debugger module 250 is closed. The process 500 then continues to block 516, where process 500 ends.
Also, it may not be necessary for all of the blocks/steps shown in
Although the description given above includes specific examples of currently envisioned embodiments of the computer program, method, system, and/or apparatus, these possibilities should not be understood as limiting the scope of the present invention but rather as providing illustrations of some of the embodiments that are now preferred. Examples of alternate embodiments are also described and various other alternatives, adaptations, and modifications may be made within the scope of the present invention. Merely listing or numbering the steps or blocks of a method in a certain order does not constitute any limitation on the order of the steps of that method. Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Although specific terms may be employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation. Accordingly, the claims that follow herein and their legal equivalents, rather than the examples given in the specification, should determine the scope of present invention.
This application is a continuation of U.S. patent application Ser. No. 11/300,045 filed Dec. 14, 2005, now U.S. Pat. No. 8,010,843, dated Aug. 30, 2011, entitled “System and Method for Debugging a Target Computer Using SMBus,” which is hereby incorporated by reference in its entirety.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4589068 | Heinen, Jr. | May 1986 | A |
| 4979074 | Morley et al. | Dec 1990 | A |
| 5228039 | Knoke et al. | Jul 1993 | A |
| 5379409 | Ishikawa | Jan 1995 | A |
| 5388252 | Dreste et al. | Feb 1995 | A |
| 5455933 | Schieve et al. | Oct 1995 | A |
| 5491743 | Shiio et al. | Feb 1996 | A |
| 5615331 | Toorians et al. | Mar 1997 | A |
| 5625410 | Washino et al. | Apr 1997 | A |
| 5630049 | Cardoza et al. | May 1997 | A |
| 5732212 | Perholtz et al. | Mar 1998 | A |
| 5777874 | Flood et al. | Jul 1998 | A |
| 5815653 | You et al. | Sep 1998 | A |
| 5819093 | Davidson et al. | Oct 1998 | A |
| 5850562 | Crump et al. | Dec 1998 | A |
| 5878158 | Ferris et al. | Mar 1999 | A |
| 5953451 | Syeda-Mahmood | Sep 1999 | A |
| 5990852 | Szamrej | Nov 1999 | A |
| 5991546 | Chan et al. | Nov 1999 | A |
| 6011920 | Edwards et al. | Jan 2000 | A |
| 6035059 | Kurosawa et al. | Mar 2000 | A |
| 6054676 | Wall et al. | Apr 2000 | A |
| 6055334 | Kato | Apr 2000 | A |
| 6065072 | Flath | May 2000 | A |
| 6067407 | Wadsworth et al. | May 2000 | A |
| 6115645 | Berar | Sep 2000 | A |
| 6119247 | House et al. | Sep 2000 | A |
| 6124811 | Acharya et al. | Sep 2000 | A |
| 6137455 | Duo | Oct 2000 | A |
| 6145088 | Stevens | Nov 2000 | A |
| 6170021 | Graf | Jan 2001 | B1 |
| 6202070 | Nguyen et al. | Mar 2001 | B1 |
| 6209023 | Dimitroff et al. | Mar 2001 | B1 |
| 6219695 | Guttag et al. | Apr 2001 | B1 |
| 6236884 | Hunter et al. | May 2001 | B1 |
| 6243743 | Freeny | Jun 2001 | B1 |
| 6249885 | Johnson et al. | Jun 2001 | B1 |
| 6263373 | Cromer et al. | Jul 2001 | B1 |
| 6272562 | Scott et al. | Aug 2001 | B1 |
| 6288753 | DeNicola et al. | Sep 2001 | B1 |
| 6304895 | Schneider et al. | Oct 2001 | B1 |
| 6330167 | Kobayashi | Dec 2001 | B1 |
| 6360250 | Anupam et al. | Mar 2002 | B1 |
| 6377461 | Ozmat et al. | Apr 2002 | B1 |
| 6378014 | Shirley | Apr 2002 | B1 |
| 6389464 | Krishnamurthy et al. | May 2002 | B1 |
| 6397256 | Chan et al. | May 2002 | B1 |
| 6414716 | Kawai | Jul 2002 | B1 |
| 6434003 | Roy et al. | Aug 2002 | B1 |
| 6442714 | Griffin et al. | Aug 2002 | B1 |
| 6476854 | Emerson et al. | Nov 2002 | B1 |
| 6480901 | Weber et al. | Nov 2002 | B1 |
| 6552914 | Chang | Apr 2003 | B1 |
| 6560641 | Powderly et al. | May 2003 | B1 |
| 6594698 | Chow et al. | Jul 2003 | B1 |
| 6601119 | Slutz et al. | Jul 2003 | B1 |
| 6603665 | Truong et al. | Aug 2003 | B1 |
| 6609034 | Behrens et al. | Aug 2003 | B1 |
| 6618854 | Mann | Sep 2003 | B1 |
| 6636929 | Hascall et al. | Oct 2003 | B1 |
| 6636982 | Rowlands | Oct 2003 | B1 |
| 6651120 | Chiba et al. | Nov 2003 | B2 |
| 6651190 | Worley et al. | Nov 2003 | B1 |
| 6662217 | Godfrey et al. | Dec 2003 | B1 |
| 6664969 | Emerson et al. | Dec 2003 | B1 |
| 6681250 | Thomas et al. | Jan 2004 | B1 |
| 6690410 | Mochida et al. | Feb 2004 | B1 |
| 6754891 | Snyder et al. | Jun 2004 | B1 |
| 6779004 | Zintel | Aug 2004 | B1 |
| 6816917 | Dicorpo et al. | Nov 2004 | B2 |
| 6816963 | Krithivas et al. | Nov 2004 | B1 |
| 6820267 | Christensen et al. | Nov 2004 | B2 |
| 6823401 | Feather et al. | Nov 2004 | B2 |
| 6825846 | Mondal | Nov 2004 | B2 |
| 6857005 | Kistler et al. | Feb 2005 | B2 |
| 6859882 | Fung | Feb 2005 | B2 |
| 6894906 | Sivertsen | May 2005 | B2 |
| 6907519 | Desoli | Jun 2005 | B2 |
| 6952743 | Ortega et al. | Oct 2005 | B2 |
| 6959380 | Dake et al. | Oct 2005 | B2 |
| 6963425 | Nair et al. | Nov 2005 | B1 |
| 6990577 | Autry | Jan 2006 | B2 |
| 6993747 | Friedman | Jan 2006 | B1 |
| 7003563 | Leigh et al. | Feb 2006 | B2 |
| 7039229 | Lin et al. | May 2006 | B2 |
| 7076400 | Dulberg et al. | Jul 2006 | B2 |
| 7085814 | Gandhi et al. | Aug 2006 | B1 |
| 7149796 | McDaniel-Sanders et al. | Dec 2006 | B2 |
| 7165041 | Guheen et al. | Jan 2007 | B1 |
| 7181510 | Emerson et al. | Feb 2007 | B2 |
| 7206875 | Marushak et al. | Apr 2007 | B2 |
| 7209874 | Salmonsen | Apr 2007 | B2 |
| 7231606 | Miller et al. | Jun 2007 | B2 |
| 7233336 | Mondal | Jun 2007 | B2 |
| 7260624 | Sivertsen et al. | Aug 2007 | B2 |
| 7289334 | Behrens et al. | Oct 2007 | B2 |
| 7299463 | Brannock et al. | Nov 2007 | B2 |
| 7349956 | Anderson et al. | Mar 2008 | B2 |
| 7412625 | Shankar et al. | Aug 2008 | B2 |
| 7418141 | Messer et al. | Aug 2008 | B2 |
| 7454490 | Sivertsen | Nov 2008 | B2 |
| 7496492 | Dai | Feb 2009 | B2 |
| 7555421 | Beckett et al. | Jun 2009 | B1 |
| 7640325 | DeKoning et al. | Dec 2009 | B1 |
| 7657665 | Dalton et al. | Feb 2010 | B2 |
| 7702763 | Slater et al. | Apr 2010 | B2 |
| 7801158 | Voit et al. | Sep 2010 | B2 |
| 7840728 | Sivertsen | Nov 2010 | B1 |
| 7861020 | Sivertsen | Dec 2010 | B1 |
| 7945889 | Hsu et al. | May 2011 | B2 |
| 7966391 | Anderson et al. | Jun 2011 | B2 |
| 8069257 | Bhatia et al. | Nov 2011 | B1 |
| 20010027465 | Hammelbacher | Oct 2001 | A1 |
| 20010037366 | Webb et al. | Nov 2001 | A1 |
| 20020040418 | Bress et al. | Apr 2002 | A1 |
| 20020078188 | Anand et al. | Jun 2002 | A1 |
| 20020083156 | Wysoczynski | Jun 2002 | A1 |
| 20020087949 | Golender et al. | Jul 2002 | A1 |
| 20020097234 | Sauber | Jul 2002 | A1 |
| 20020103882 | Johnston et al. | Aug 2002 | A1 |
| 20020124128 | Qiu | Sep 2002 | A1 |
| 20020174415 | Hines | Nov 2002 | A1 |
| 20020178320 | Wu | Nov 2002 | A1 |
| 20020184165 | Deboer et al. | Dec 2002 | A1 |
| 20020194403 | Pua et al. | Dec 2002 | A1 |
| 20020199035 | Christensen et al. | Dec 2002 | A1 |
| 20030023435 | Josephson | Jan 2003 | A1 |
| 20030035049 | Dickens et al. | Feb 2003 | A1 |
| 20030058248 | Hochmuth et al. | Mar 2003 | A1 |
| 20030074606 | Boker | Apr 2003 | A1 |
| 20030083842 | Miller et al. | May 2003 | A1 |
| 20030110244 | Mondal | Jun 2003 | A1 |
| 20030120977 | Tang | Jun 2003 | A1 |
| 20030135674 | Mason et al. | Jul 2003 | A1 |
| 20030156132 | Gn et al. | Aug 2003 | A1 |
| 20030177111 | Egendorf et al. | Sep 2003 | A1 |
| 20030200273 | Khanna et al. | Oct 2003 | A1 |
| 20030216891 | Wegener | Nov 2003 | A1 |
| 20030226015 | Neufeld et al. | Dec 2003 | A1 |
| 20040003317 | Kwatra et al. | Jan 2004 | A1 |
| 20040054838 | Hoese et al. | Mar 2004 | A1 |
| 20040059782 | Sivertsen | Mar 2004 | A1 |
| 20040139240 | DiCorpo et al. | Jul 2004 | A1 |
| 20040158614 | Williams | Aug 2004 | A1 |
| 20040190773 | Messer et al. | Sep 2004 | A1 |
| 20040199699 | Bobbitt et al. | Oct 2004 | A1 |
| 20040215617 | Ramsey et al. | Oct 2004 | A1 |
| 20040222944 | Sivertsen | Nov 2004 | A1 |
| 20040230668 | Carnahan et al. | Nov 2004 | A1 |
| 20040236843 | Wing et al. | Nov 2004 | A1 |
| 20040243883 | Shankar et al. | Dec 2004 | A1 |
| 20040255276 | Rovang | Dec 2004 | A1 |
| 20050020144 | Lunecki et al. | Jan 2005 | A1 |
| 20050021654 | Kern et al. | Jan 2005 | A1 |
| 20050021870 | Carnahan et al. | Jan 2005 | A1 |
| 20050044244 | Warwick et al. | Feb 2005 | A1 |
| 20050066000 | Liaw et al. | Mar 2005 | A1 |
| 20050086670 | Christensen et al. | Apr 2005 | A1 |
| 20050125519 | Yang et al. | Jun 2005 | A1 |
| 20050138346 | Cauthron | Jun 2005 | A1 |
| 20060098670 | Voit et al. | May 2006 | A1 |
| 20060189900 | Flaherty | Aug 2006 | A1 |
| 20060195042 | Flaherty | Aug 2006 | A1 |
| 20070168746 | Righi et al. | Jul 2007 | A1 |
| 20110015918 | Kalbarga | Jan 2011 | A1 |
| Entry |
|---|
| “Cable Allows Users to Extend DVI Connections,” Jul. 31, 2001, The Mac Observer, printed from http://www.macobserver.com/article/2001/07/31.11.shtml, 4 pages. |
| “New KVM Switching System Controls 2,048 Servers Using Cat5 Cable” printout from Raritan website found at http://www.raritan.com//about/abt—press—detail.aspx?&status=4&articleId=127, printed May 23, 2006, 2 pages. |
| “Z-Series Information Page” printout from Raritan website found at www.Raritan.corn/products/kvm—switches/z—series/prd—line.aspx. Printed Feb. 10, 2006, 1 page. |
| American Megatrends, Inc., AMIBIOS8, Introduction to AMIBIOS8™: Overview of Key Features in the Latest AMIBIOS®, Version 1.20, Mar. 25, 2002, 22 pages. |
| American Megatrends, Inc., AMI Debug Source Level Modular Software Debugger, Data Sheet, Dec. 14, 2004, 2 pages. |
| American Megatrends, Inc. AMIDebug User's Guide (Version 2.0), 2002, 101 pages. |
| American Megatrends, Inc. AMIDiag for Windows User's Guide (Version 2.0), Feb. 25, 2002. http://ami.com/support/docc/MAN-DIAG-WIN.pdf, 108 pages. |
| AVIT Research, Ltyd., I2C Bus Tool, printed from www.avitresearch.co.uk/ on Aug. 29, 2005, 4 pages. |
| Calibre, “UCA93LV: USB—I2C Communications Adapter for PCs” Jan. 28, 2005, 2 pages. |
| Raritan Computer, Inc., “Raritan Announces New Paragon CIMs with Innovative DirectConnect Technology,” a press release, Jan. 14, 2002, printed from www.raritan.com on Jan. 27, 2005, 2 pages. |
| Saelig Online Store, UCA93LV, printed from www.saelig.com on Aug. 29, 2005, 2 pages. |
| QuikSpecs: Compaq PCI Card KVM Switches, Version 5, Mar. 13, 2003, 5 pages. |
| U.S. Official Action dated Aug. 13, 2003 in U.S. Appl. No. 10/016,484. |
| U.S. Official Action dated Mar. 8, 2004 in U.S. Appl. No. 10/016,484. |
| U.S. Official Action dated Jun. 22, 2004 in U.S. Appl. No. 10/016,484. |
| U.S. Notice of Allowance / Allowability dated Jul. 15, 2004 in U.S. Appl. No. 10/016,484. |
| U.S. Official Action dated Feb. 23, 2004 in U.S. Appl. No. 10/247,876. |
| U.S. Official Action dated Aug. 3, 2004 in U.S. Appl. No. 10/247,876. |
| U.S. Official Action dated Feb. 3, 2005 in U.S. Appl. No. 10/247,876. |
| U.S. Official Action dated Aug. 8, 2005 in U.S. Appl. No. 10/247,876. |
| U.S. Official Action dated Feb. 24, 2006 in U.S. Appl. No. 10/247,876. |
| U.S. Official Action dated Aug. 17, 2006 in U.S. Appl. No. 10/247,876. |
| U.S. Notice of Allowance / Allowability dated Apr. 11, 2007 in U.S. Appl. No. 10/247,876. |
| U.S. Official Action dated Sep. 19, 2006 in U.S. Appl. No. 10/403,198. |
| U.S. Official Action dated Mar. 6, 2007 in U.S. Appl. No. 10/403,198. |
| U.S. Notice of Allowance / Allowability dated May 31, 2007 in U.S. Appl. No. 10/403,198. |
| U.S. Notice of Allowance / Allowability dated Sep. 18, 2007 in U.S. Appl. No. 10/403,198. |
| U.S. Notice of Allowance / Allowability dated Jan. 11, 2008 in U.S. Appl. No. 10/403,198. |
| U.S. Notice of Allowance / Allowability dated May 13, 2008 in U.S. Appl. No. 10/403,198. |
| U.S. Official Action dated Jan. 24, 2006 in U.S. Appl. No. 10/446,044. |
| U.S. Official Action dated Jul. 14, 2006 in U.S. Appl. No. 10/446,044. |
| U.S. Official Action dated Oct. 5, 2006 in U.S. Appl. No. 10/446,044. |
| U.S. Official Action dated Apr. 5, 2007 in U.S. Appl. No. 10/446,044. |
| U.S. Official Action dated Sep. 18, 2007 in U.S. Appl. No. 10/446,044. |
| U.S. Official Action dated Jan. 8, 2008 in U.S. Appl. No. 10/446,044. |
| U.S. Notice of Allowance / Allowability dated Jun. 9, 2008 in U.S. Appl. No. 10/446,044. |
| U.S. Official Action dated Sep. 11, 2006 in U.S. Appl. No. 10/462,509. |
| U.S. Official Action dated Mar. 6, 2007 in U.S. Appl. No. 10/462,509. |
| U.S. Official Action dated Jun. 29, 2007 in U.S. Appl. No. 10/462,509. |
| U.S. Notice of Allowance / Allowability dated Nov. 1, 2007 in U.S. Appl. No. 10/462,509. |
| U.S. Official Action dated Nov. 29, 2007 in U.S. Appl. No. 10/462,509. |
| U.S. Official Action dated Jul. 9, 2008 in U.S. Appl. No. 10/462,509. |
| U.S. Notice of Allowance / Allowability dated Jan. 26, 2009 in U.S. Appl. No. 10/462,509. |
| U.S. Appl. No. 10/790,160, filed Mar. 1, 2004, entitled “Method, System and Apparatus for Communicating with a Computer Management Device,” Inventor: Subash Kalbarga. |
| U.S. Official Action dated Dec. 17, 2007 in U.S. Appl. No. 10/790,160. |
| U.S. Official Action dated Jun. 25, 2008 in U.S. Appl. No. 10/790,160. |
| U.S. Official Action dated Jan. 7, 2009 in U.S. Appl. No. 10/790,160. |
| U.S. Official Action dated Jul. 1, 2009 in U.S. Appl. No. 10/790,160. |
| U.S. Official Action dated Dec. 23, 2009 in U.S. Appl. No. 10/790,160. |
| U.S. Notice of Allowance / Allowability dated Jun. 24, 2010 in U.S. Appl. No. 10/790,160. |
| U.S. Notice of Allowance / Allowability dated Nov. 10, 2004 in U.S. Appl. No. 10/867,348. |
| U.S. Official Action dated Feb. 27, 2007 in U.S. Appl. No. 10/867,406. |
| U.S. Official Action dated Aug. 10, 2007 in U.S. Appl. No. 10/867,406. |
| U.S. Official Action dated Dec. 27, 2007 in U.S. Appl. No. 10/867,406. |
| U.S. Notice of Allowance / Allowability dated Jul. 23, 2008 in U.S. Appl. No. 10/867,406. |
| U.S. Appl. No. 10/875,641, filed Jun. 24, 2004, Entitled “Method and System for Remote Software Debugging,” Inventors: Righi et al. |
| U.S. Official Action dated Jul. 27, 2007 in U.S. Appl. No. 10/875,641. |
| U.S. Official Action dated Jan. 10, 2008 in U.S. Appl. No. 10/875,641. |
| U.S. Official Action dated Jun. 3, 2008 in U.S. Appl. No. 10/875,641. |
| U.S. Notice of Allowance / Allowability dated Jan. 8, 2009 in U.S. Appl. No. 10/875,641. |
| U.S. Appl. No. 10/926,241, filed Aug. 25, 2004, entitled “Apparatus, Methods, and Systems for Redirecting Input and Output for Multiple Computers,” Inventor: Clas Sivertsen. |
| U.S. Official Action dated Sep. 8, 2008 in U.S. Appl. No. 10/926,241. |
| U.S. Notice of Allowance / Allowability dated Dec. 2, 2008 in U.S. Appl. No. 10/926,241. |
| U.S. Official Action dated Apr. 18, 2006 in U.S. Appl. No. 10/966,221. |
| U.S. Official Action dated Sep. 5, 2006 in U.S. Appl. No. 10/966,221. |
| U.S. Notice of Allowance / Allowability dated Jan. 5, 2007 in U.S. Appl. No. 10/966,221. |
| U.S. Official Action dated May 14, 2008 in U.S. Appl. No. 11/300,045. |
| U.S. Official Action dated Dec. 2, 2008 in U.S. Appl. No. 11/300,045. |
| U.S. Official Action dated May 27, 2009 in U.S. Appl. No. 11/300,045. |
| U.S. Official Action dated Dec. 8, 2009 in U.S. Appl. No. 11/300,045. |
| U.S. Official Action dated Nov. 23, 2010 in 11/300,045. |
| U.S. Notice of Allowance / Allowability dated Apr. 14, 2011 in U.S. Appl. No. 11/300,045. |
| U.S. Appl. No. 12/395,015, filed Feb. 27, 2009, entitled “Redirecting Input and Output for Multiple Computers,” Inventor: Clas Gerhard Sivertsen. |
| U.S. Official Action dated Dec. 30, 2009 in U.S. Appl. No. 12/395,015. |
| U.S. Official Action dated Jun. 18, 2010 in U.S. Appl. No. 12/395,015. |
| U.S. Notice of Allowance / Allowability dated Aug. 30, 2010 in U.S. Appl. No. 12/395,015. |
| U.S. Appl. No. 12/395,022, filed Feb. 27, 2009, entitled “Redirecting Input and Output for Multiple Computers,” Inventor: Clas Sivertsen. |
| U.S. Official Action dated Aug. 24, 2009 in U.S. Appl. No. 12/395,022. |
| U.S. Notice of Allowance / Allowability dated Mar. 11, 2010 in U.S. Appl. No. 12/395,022. |
| U.S. Appl. No. 12/395,028, filed Feb. 27, 2009, entitled “Redirecting Input and Output for Multiple Computers,” Inventor: Clas Sivertsen. |
| U.S. Official Action dated Apr. 23, 2010 in U.S. Appl. No. 12/395,028. |
| U.S. Notice of Allowance / Allowability dated Sep. 23, 2010 in U.S. Appl. No. 12/395,028. |
| U.S. Appl. No. 12/425,455, filed Apr. 17, 2009, entitled “Method and System for Remote Software Debugging,” Inventors: Righi et al. |
| U.S. Notice of Allowance / Allowability dated Jun. 22, 2011 in U.S. Appl. No. 12/425,455. |
| U.S. Appl. No. 12/470,854, filed May 22, 2009, entitled “Method and System for Remote Software Testing”, Inventor: Gene Rovang. |
| U.S. Notice of Allowance / Allowability dated Jan. 3, 2011 in U.S. Appl. No. 12/470,854. |
| U.S. Appl. No. 12/889,933, filed Sep. 24, 2010, entitled “Method, System and Apparatus for Communicating with a Computer Management Device,” Inventor: Subash Kalbarga. |
| U.S. Official Action dated Aug. 16, 2011 in U.S. Appl. No. 12/889,933. |
| U.S. Appl. No. 12/948,400, filed Nov. 17, 2010, entitled “Redirecting Input and Output for Multiple Computers,” Inventor: Clas Sivertsen. |
| U.S. Official Action dated Dec. 27, 2010 in U.S. Appl. No. 12/948,400. |
| U.S. Notice of Allowance / Allowability dated Apr. 21, 2011 in U.S. Appl. No. 12/948,400. |
| U.S. Appl. No. 13/079,141, filed Apr. 4, 2011 entitled “Method and System for Remote Software Testing,” First Named Inventor: Stefano Righi. |
| U.S. Appl. No. 13/240,253, filed Sep. 22, 2011 entitled “Method and System for Remote Software Debugging,” First Named Inventor: Stefano Righi. |
| U.S. Official Action dated Nov. 13, 2012 in U.S. Appl. No. 13/079,141. |
| U.S. Official Action dated Jun. 5, 2012 in U.S. Appl. No. 12/889,933. |
| U.S. Notice of Allowance/Allowability dated Oct. 1, 2012 in U.S. Appl. No. 12/889,933. |
| U.S. Official Action dated Mar. 29, 2013 in U.S. Appl. No. 13/240,253. |
| U.S. Notice of Allowance/Allowability dated Apr. 11, 2013 in U.S. Appl. No. 13/079,141. |
| Shimonski, R. “Using Remote Desktop with Windows XP Professional”, published Dec. 7, 2004 (Windows XP release date Oct. 25, 2001) [online][retrieved on Mar. 22, 2013] retrieved from: http://www.windowsnetworking.com/articles-tutorials/windows-xp/Using-Rernote-Desktop-Windows-XP-Pro.html, 9 pps. |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 11300045 | Dec 2005 | US |
| Child | 13183076 | US |