IP Library Granted Patent US 9,995,789
Granted Patent B2
US 9,995,789 · App. 14/977,998 · Granted Jun 12, 2018

Secure remote debugging of SoCs

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 9,995,789
App. No.
14/977,998
Granted
Jun 12, 2018
Kind
B2
Abstract

Techniques for secure remote debugging of SoCs are described. The SoC includes an intellectual property (IP) block, a microcontroller, and a fabric coupled to the IP block and the microcontroller. The IP block transmits, via the fabric, information regarding events within the IP block to the microcontroller. The microcontroller executes firmware including a network stack and a remote debugger program. Using the firmware, the microcontroller provides the event information to a device external to the SoC.

Claims (96)

1. A system on a chip (SoC), comprising:

an intellectual property (IP) block to produce an event;

a microcontroller to execute firmware comprising a network stack and a remote debugger program; and

a fabric coupled to the microcontroller and the IP block;

wherein the IP block is to transmit, over the fabric, information about the produced event to the microcontroller;

wherein the microcontroller is to use the network stack and the remote debugger program to provide the information about the produced event to a device external to the SoC; and

wherein the IP block comprises:

a virtual test access port (vTAP); and

a functional pipeline comprising:

a hardware processing module; and

a register.

2. The SoC of claim 1 , wherein the IP block is a processor.

3. The SoC of claim 1 , wherein the fabric is a sideband fabric.

4. The SoC of claim 1 , wherein the vTAP comprises:

a slave interface coupled to the fabric;

a master interface coupled to the fabric and to the functional pipeline; and

a decoder coupled to the slave interface and to the functional pipeline;

wherein the slave interface is to:

receive a command from the microcontroller via the fabric; and

transfer the command to the decoder;

wherein the decoder is to:

decode the command; and

transfer the decoded command to the functional pipeline;

wherein the functional pipeline is to:

execute the decoded command using the hardware processing module; and

update the register in response to the execution of the decoded command; and

wherein the master interface is to:

read contents of the register;

generate, based on the contents of the register, a response to the received command; and

transmit the generated response to the microcontroller via the fabric.

5. The SoC of claim 4 , wherein the microcontroller is to receive, via the remote debugger program and the network stack, the command from the device external to the SoC.

6. The SoC of claim 5 , further comprising:

a non-volatile memory, wherein the microcontroller is to record into the non-volatile memory:

the command received from the external device; and

the generated response corresponding to the received command.

7. The SoC of claim 1 , further comprising:

a plurality of field-programmable fuses (FPFs), wherein the microcontroller is to destroy a respective FPF in the plurality of FPFs in response to a corresponding command received by the microcontroller from the device external to the SoC;

wherein a respective FPF in the plurality of FPFs corresponds to a respective computing service offered by the SoC; and

wherein the SoC is to provide the respective computing service if the respective FPF is not destroyed.

8. The SoC of claim 7 , wherein a subset of FPFs in the plurality of FPFs corresponds to a computing service offered by the SoC, wherein the subset of FPFs has a cardinality of operational fuses, and wherein the cardinality has a parity; and

wherein the SoC is to provide the computing service only if the parity of the cardinality of the FPF subset is odd.

9. The SoC of claim 1 , further comprising:

a cryptographic key;

wherein the microcontroller is to use the cryptographic key to authenticate the firmware prior to execution of the firmware.

10. A method for remote debugging a system on a chip (SoC), the method comprising:

producing, by an intellectual property (IP) block, an event;

executing, by a microcontroller, a network stack and a remote debugging program;

transmitting, by the IP block to the microcontroller, information about the produced event, the transmitting performed over a fabric connecting the IP block and the microcontroller; and

providing, by the microcontroller using the network stack and the remote debugging program, the information about the produced event to a device external to the SoC;

wherein the IP block comprises:

a virtual test access port (vTAP); and

a functional pipeline comprising:

a hardware processing module; and

a register.

11. The method of claim 10 , wherein the IP block is a processor.

12. The method of claim 10 , wherein the fabric is a sideband fabric.

13. At least one non-transitory machine-readable medium comprising instructions which, when executed by a machine, cause the machine to:

produce, by an intellectual property (IP) block, an event;

execute, by a microcontroller, a network stack and a remote debugger program;

transmit, by the IP block to the microcontroller, information about the produced event, the transmission to be performed over a fabric, the fabric connected to the IP block and to the microcontroller; and

provide, by the microcontroller through use of the network stack and the remote debugger program, the information about the produced event to a device external to the SoC;

wherein the IP block comprises:

a virtual test access port (vTAP); and

a functional pipeline comprising:

a hardware processing module; and

a register.

14. The at least one non-transitory machine-readable medium of claim 13 , wherein the IP block is a processor.

15. The at least one non-transitory machine-readable medium of claim 13 , wherein the fabric is a sideband fabric.

16. The at least one non-transitory machine-readable medium of claim 13 , wherein the vTAP comprises:

a slave interface coupled to the fabric;

a master interface coupled to the fabric and to the functional pipeline; and

a decoder coupled to the slave interface and to the functional pipeline.

17. The at least one non-transitory machine-readable medium of claim 16 , further comprising instructions which, when executed by the machine, cause the machine to:

receive, by the slave interface, a command from the microcontroller via the fabric;

transfer, by the slave interface, the command to the decoder;

decode, by the decoder, the command;

transfer, by the decoder, the decoded command to the functional pipeline;

execute, by the functional pipeline, the decoded command, the execution performed by the hardware processing module;

update, by the functional pipeline, the register in response to the execution of the decoded command;

read, by the master interface, contents of the register;

generate, by the master interface based on the contents of the register, a response to the received command; and

transmit, by the master interface, the generated response to the microcontroller via the fabric.

18. The at least one non-transitory machine-readable medium of claim 17 , wherein the microcontroller is to receive, via the remote debugger program and the network stack, the command from the device external to the SoC.

19. The at least one non-transitory machine-readable medium of claim 18 , further comprising instructions which, when executed by the machine, cause the machine to:

record, by the microcontroller into a non-volatile memory:

the command received from the external device; and

the generated response corresponding to the received command.

20. The at least one machine-readable medium of claim 13 , wherein the SoC comprises:

a plurality of field-programmable fuses (FPFs);

wherein a respective FPF in the plurality of FPFs corresponds to a respective computing service offered by the SoC.

21. The at least one non-transitory machine-readable medium of claim 20 , further comprising instructions which, when executed by the machine, cause the machine to:

receive, by the microcontroller from the device external to the SoC, a respective command to destroy a respective FPF in the plurality of FPFs; and

destroy, by the microcontroller, the respective FPF in the plurality of FPFs.

22. The at least one non-transitory machine-readable medium of claim 21 , wherein a subset of FPFs in the plurality of FPFs corresponds to a computing service offered by the SoC, wherein the subset of FPFs has a cardinality of operational fuses, and wherein the cardinality has a parity.

23. The at least one non-transitory machine-readable medium of claim 22 , further comprising instructions which, when executed by the machine, cause the machine to:

provide, by the SoC, the computing service only if the parity of the cardinality of the FPF subset is odd.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 057060/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 057254/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2016
From: DEWAN, PRASHANT; CHHABRA, SIDDHARTHA
To: INTEL IP CORPORATION
Reel/Frame 037772/0291 →