Method and apparatus for providing security for debug circuitry
View Patent ↗The invention relates to debug circuitry ( 20 ) and more particularly to a method and apparatus for providing security for debug circuitry ( 20 ). In one embodiment, a plurality of non-volatile elements ( 38 ) are used in providing selective disabling and re-enabling of at least a portion of the debug circuitry ( 20 ). Authentication may also be used. The present invention may use any debug interface, including standard debug interfaces such as the JTAG debug interface defined by the IEEE.
1. A method for providing security for debug circuitry, comprising:
providing the debug circuitry, wherein the debug circuitry is enabled;
programming a first nonvolatile element to disable the debug circuitry; and
after programming the first nonvolatile element, programming a second nonvolatile element to perform one of re-enabling the debug circuitry and permanently disabling the debug circuitry.
2. The method of claim 1 , wherein, after programming the first nonvolatile element and prior to programming the second nonvolatile element, the debug circuitry is capable of being selectively enabled in response to authentication.
3. The method of claim 1 , wherein the second nonvolatile element is programmed to re-enable the debug circuitry.
4. The method of claim 3 , further comprising:
after programming the second nonvolatile element, programming a third nonvolatile element to disable debug, wherein after programming the third nonvolatile element, the debug circuitry is capable of being selectively enabled in response to authentication.
5. The method of claim 4 , wherein the first nonvolatile element comprises a first fuse, the second nonvolatile element comprises a second fuse, and the third nonvolatile element comprises a third fuse, and wherein:
programming the first nonvolatile element comprises blowing the first fuse;
programming the second nonvolatile element comprises blowing the second fuse; and
programming the third nonvolatile element comprises blowing the third fuse.
6. The method of claim 4 , further comprising:
after programming the third nonvolatile element, programming a fourth nonvolatile element to permanently disable the debug circuitry.
7. The method of claim 1 , wherein the second nonvolatile element is programmed to permanently disable the debug circuitry.
8. The method of claim 1 , wherein the first nonvolatile element comprises a first fuse and the second nonvolatile element comprises a second fuse, and wherein programming the first nonvolatile element comprises blowing the first fuse and wherein programming the second nonvolatile element comprises blowing the second fuse.
9. A method for providing security for debug circuitry, comprising:
providing the debug circuitry in a secure debug state in which the debug circuitry is capable of being selectively enabled in response to authentication;
enabling the debug circuitry in response to authentication; and
after enabling the debug circuitry in response to authentication, programming a first nonvolatile element
after programming the first nonvolatile element, programming a second nonvolatile element, wherein, after programming the second nonvolatile element, the debug circuitry is in a re-enabled secure debug state in which the debug circuitry is capable of being selectively enabled in response to authentication.
10. The method of claim 9 , wherein, after programming the first nonvolatile element, the debug circuitry is in a bypass security state in which the debug circuitry is enabled.
11. The method of claim 9 , wherein the first nonvolatile element comprises a first fuse and the second nonvolatile element comprises a second fuse, and wherein programming the first nonvolatile element comprises blowing the first fuse and wherein programming the second nonvolatile element comprises blowing the second fuse.
12. The method of claim 9 , further comprising:
after programming the second nonvolatile element, programming a third nonvolatile element to permanently disable the debug circuitry.
13. An integrated circuit, comprising:
debug circuitry;
a first nonvolatile element;
a second nonvolatile element; and
debug enable circuitry which provides a debug enable indicator to the debug circuitry based on the first and second nonvolatile elements, wherein:
the first nonvolatile element indicates whether or not the debug circuitry is in a secure debug state in which the debug circuitry can be selectively enabled in response to authentication; and
the second nonvolatile element indicates whether or not to override the first nonvolatile element.
14. The integrated circuit of claim 13 , wherein the second nonvolatile element indicates whether or not to override the first nonvolatile element by indicating whether or not the debug circuitry is in a bypass security state in which the debug circuitry is re-enabled.
15. The integrated circuit of claim 14 , further comprising a third nonvolatile element that indicates whether or not to override the second nonvolatile element.
16. The integrated circuit of claim 15 , wherein the third nonvolatile element indicates whether or not to override the second nonvolatile element by indicating whether or not the debug circuitry is in a re-enabled secure debug state in which the debug circuitry can be selectively enabled in response to authentication.
17. The integrated circuit of claim 16 , further comprising a fourth nonvolatile element that indicates whether or not the debug circuitry is permanently disabled.
18. The integrated circuit of claim 15 , wherein the third nonvolatile element indicates whether or not to override the second nonvolatile element by indicating whether or not the debug circuitry is permanently disabled.
19. The integrated circuit of claim 13 , wherein the second nonvolatile element indicates whether or not to override the first nonvolatile element by indicating whether or not the debug circuitry is permanently disabled.
20. The integrated circuit of claim 13 , wherein the first nonvolatile element comprises a first fuse and the second nonvolatile element comprises a second fuse.