IP Library Granted Patent US 8,176,310
Granted Patent B2
US 8,176,310 · App. 12/456,668 · Granted May 8, 2012

Debugger application configured to communicate with a debugger module via a GPIO

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,176,310
App. No.
12/456,668
Granted
May 8, 2012
Kind
B2
Abstract

Methods, systems, apparatuses and program products are disclosed for communications such as may be used for debugging computers and similar electronic products at a level suitable for low level firmware. This may find application, for example, in environments after cache initialization around the time of memory bring up or motherboard device enumeration but including durability into and beyond software loading. GPIO (General Purpose input/output) connections may be used for communication that may, for some purposes, be regarded as half-duplex but without necessarily being anisochronous.

Claims (57)

1. A method of communicating between a first computer and a second computer, the first computer interpreting a plurality of coded instructions to perform acts of:

transmitting a start signal onto a conductor;

transmitting a series of transmitted data signals on the conductor wherein each of the transmitted data signals is isochronous with the start signal; and

receiving a series of received data signals from the conductor wherein the receiving commences at a pre-determined interval after completion of the transmitting a series of transmitted data signals,

wherein the pre-determined interval is an integer multiple of the inverse of a modulation rate of the transmitted data signals and the integer is at least two.

2. The method of claim 1 wherein:

the conductor is connected to the first computer by a GPIO (general purpose input-output) port.

3. The method of claim 2 wherein:

the plurality of coded instructions are comprised within a firmware.

4. The method of claim 2 wherein:

the transmitted data signals and the received data signals are binary base-band signals.

5. The method of claim 2 wherein:

the transmitted data signals are binary base-band NRZ1 (non-return to zero for a one) signals or binary NRZ0 (non-return to zero for a zero) signals.

6. The method of claim 2 wherein:

the transmitted data signals are binary base-band NRZ1 (non-return to zero for an inversion).

7. The method of claim 2 wherein:

the received data signals are isochronous with the transmitted data signals.

8. The method of claim 2 wherein:

the series of transmitted data signals comprise a transmission header and the transmission header comprises an encoded length of the series of received data signals.

9. The method of claim 2 wherein:

the series of received data signals comprise a received data header and the received data header comprises an encoded length of the series of received data signals.

10. The method of claim 2 wherein:

the plurality of coded instructions are comprised within a BIOS (Basic Input-Output System) firmware or within a POST (Power-On Self-Test) firmware.

11. The method of claim 2 wherein:

the second computer hosts a debugging application for debugging instruction codes being interpreted by the first computer or

the first computer hosts a debugging application for debugging instruction codes being interpreted by the second computer.

12. A method of communicating between a first computer, a second computer and a third computer, the first computer interpreting a plurality of coded instructions to perform acts of:

transmitting a start signal onto a conductor connected to the first computer, to the second computer and to the third computer each by a respective GPIO (general purpose input-output) port;

transmitting a series of transmitted data signals comprising a transmission header on the conductor wherein each of the transmitted data signals is isochronous with the start signal and wherein the transmission header comprises an address field comprising an encoding of an address of one addressed computer selected from a list consisting of the second computer and the third computer; and

receiving a series of received data signals sent from the addressed computer responsive to a value of the encoding of the address, the receiving being via the conductor, wherein the receiving commences at a pre-determined interval after completion of the transmitting a series of transmitted data signal,

wherein the pre-determined interval is an integer multiple of the inverse of a modulation rate of the transmitted data signals and the integer is at least two.

13. The method of claim 12 wherein:

the transmitted data signals and the received data signals are binary base-band signals.

14. The method of claim 12 wherein:

the received data signals are isochronous with the transmitted data signals and

the transmission header comprises an encoded length of the series of received data signals.

15. The method of claim 12 wherein:

the received data signals are isochronous with the transmitted data signals and

the series of received data signals comprise a received data header and the received data header comprises an encoded length of the series of received data signals.

16. The method of claim 12 wherein:

the second computer hosts a debugging application for debugging instruction codes being interested by the first computer or

the first computer hosts a debugging application for debugging instruction codes being interested by the second computer.

17. A computer comprising:

means for transmitting a start signal onto a conductor;

means for transmitting a series of transmitted data signals on the conductor wherein each of the transmitted data signals is isochronous with the start signal; and

means for receiving a series of received data signals from the conductor wherein the receiving commences at a pre-determined interval after completion of the transmitting a series of transmitted data signals,

wherein the pre-determined interval is an integer multiple of the inverse of a modulation rate of the transmitted data signals and the integer is at least two.

18. A computer operable to interpret a plurality of coded instructions to perform the acts of:

transmitting a start signal onto a conductor;

transmitting a series of transmitted data signals on the conductor wherein each of the transmitted data signals is isochronous with the start signal; and

receiving a series of received data signals from the conductor wherein the receiving commences at a pre-determined interval after completion of the transmitting a series of transmitted data signals,

wherein the pre-determined interval is an integer multiple of the inverse of a modulation rate of the transmitted data signals and the integer is at least two.

19. A system comprising a first computer having a conductor connected to a GPIO (general purpose input-output) port, a second computer and a third computer, the first computer being operable to interpret a plurality of coded instructions to perform the acts of:

transmitting a start signal onto the conductor via the GPIO port;

transmitting a series of transmitted data signals comprising a transmission header onto the conductor via the GPIO port wherein each of the transmitted data signals is isochronous with the start signal and wherein the transmission header comprises an address field comprising an encoding of an address of one addressed computer selected from a list consisting of the second computer and the third computer; and

receiving a series of received data signals sent from the addressed computer responsive to a value of the encoding of the address, the receiving being via the GPIO port, wherein the receiving commences at a pre-determined interval after completion of the transmitting a series of transmitted data signal,

wherein the pre-determined interval is an integer multiple of the inverse of a modulation rate of the transmitted data signals and the integer is at least two.

Assignments (6)
LIEN AND SECURITY INTEREST Recorded Jan 13, 2017
From: KINGLITE HOLDINGS INC.
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 041366/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →
GRANT OF SECURITY INTEREST - PATENTS Recorded Nov 24, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERAL AGENT
Reel/Frame 025406/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2009
From: XU, YONG XIN
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 022914/0420 →