IP Library Granted Patent US 9,639,425
Granted Patent B1
US 9,639,425 · App. 14/968,466 · Granted May 2, 2017

Signature-based sleep recovery operation flow

Inventors: Saswat Mishra (Santa Clara, CA); Tao Yu (Milpitas, CA); Jungil Park (San Jose, CA)
Assignee: Marvell International Ltd.
G06F11/1441G06F9/4403G06F11/2284G06F11/2635G06F7/02G06F11/1417G06F12/1408G06F21/565G06F21/57G06F21/575G06F21/64G06F21/73G06F2011/2278
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,639,425
App. No.
14/968,466
Granted
May 2, 2017
Kind
B1
Abstract

The present disclosure describes methods and apparatus for implementing a signature-based sleep recovery operation flow for booting a system-on-chip (SoC). When the SoC begins its normal boot flow, a controller retrieves a sleep recovery signature from a register and compares the retrieved sleep recovery signature to a default signature. If the sleep recovery signature matches the default signature, the SoC enters a ROM checksum fail debug flow and, upon satisfying the requirements of the ROM checksum fail debug flow, enters a sleep recovery boot flow, which restores the SoC to the operational state it was in prior to entering the sleep mode. If the sleep recovery signature does not match the default signature, the SoC continues with the normal boot flow or, by use of external pins, can be forced into a normal debug mode flow so that the boot code can be debugged.

Claims (84)

1. A method for booting a system-on-chip (SoC), the method comprising:

retrieving a sleep recovery signature from a register of the SoC, the sleep recovery signature having been set in the register of the SoC prior to the SoC entering the sleep mode;

comparing the sleep recovery signature to a default signature;

entering, responsive to the sleep recovery signature matching the default signature, a ROM checksum fail debug flow; and

entering, responsive to the sleep recovery signature not matching the default signature, a normal debug mode flow.

2. The method of claim 1 , the ROM checksum fail debug flow further comprising:

performing a checksum operation on a ROM of a first central processing unit (CPU);

determining whether the checksum operation on the ROM of the first CPU fails;

responsive to the checksum operation on the ROM of the first CPU failing, entering an infinite loop; and

responsive to the checksum operation on the ROM of the first CPU not failing, performing a checksum operation on a ROM of an additional CPU.

3. The method of claim 2 , further comprising, for each additional CPU:

determining whether the checksum operation on the ROM of the additional CPU fails;

responsive to the checksum operation on the ROM of the additional CPU failing, entering an infinite loop.

4. The method of claim 3 , further comprising, responsive to the checksum operation on the ROM of the additional CPU not failing:

determining whether to enter a sleep recovery boot flow;

responsive to determining not to enter the sleep recovery boot flow, completing a normal boot flow to enter a fully functional state; and

responsive to determining to enter the sleep recovery boot flow, completing sleep recovery operations that restore the SoC to an operational state that corresponds to an operational state that existed when the SoC entered the sleep mode.

5. The method of claim 4 , the determining whether to enter a sleep recovery boot flow further comprising determining to enter the sleep recovery boot flow responsive to the sleep recovery signature matching the default signature.

6. The method of claim 1 , the register further comprising a stack of multiple always on (AON) registers.

7. The method of claim 1 , the normal debug mode flow further comprising:

determining whether a first check mode operation has been activated via a first external pin;

responsive to determining that the first check mode operation has been activated, continuing the normal debug mode flow;

responsive to determining that the first check mode operation has not been activated, entering the ROM checksum fail debug flow;

the continuing the normal debug mode flow including determining whether a second check mode operation has been activated via a second external pin; and

responsive to determining that the second check mode operation has been activated, downloading a boot code for booting the SoC to a memory that is external to the SoC.

8. The method of claim 7 , further comprising:

responsive to determining that the second check mode operation has not been activated, entering into an infinite loop displaying an error notification.

9. The method of claim 7 , the first and second external pins comprising general purpose input/output (GPIO) pins.

10. A System-on-Chip (SoC), comprising:

a register; and

a controller with a signature comparison module configured to set a signature in the register prior to the SoC entering a sleep mode, and to, when recovering from the sleep mode:

retrieve a sleep recovery signature from the register;

compare the sleep recovery signature to a default signature;

enter, responsive to the sleep recovery signature matching the default signature, a ROM checksum fail debug flow; and

enter, responsive to the sleep recovery signature not matching the default signature, a normal debug mode flow.

11. The SoC of claim 10 , the ROM checksum fail debug flow further comprising:

performing a checksum operation on a ROM of a first central processing unit (CPU):

determining whether the checksum operation on the ROM of the first CPU fails;

responsive to the checksum operation on the ROM of the first CPU failing, entering an infinite loop; and

responsive to the checksum operation on the ROM of the first CPU not failing, performing a checksum operation on a ROM of an additional CPU.

12. The SoC of claim 11 , the ROM checksum fail debug flow further comprising, for each additional CPU:

determining whether the checksum operation on the ROM of the additional CPU fails;

responsive to the checksum operation on the ROM of the additional CPU failing, entering an infinite loop.

13. The SoC of claim 12 , the ROM checksum fail debug flow further comprising, responsive to the checksum operation on the ROM of the additional CPU not failing:

determining whether to enter a sleep recovery boot flow;

responsive to determining not to enter the sleep recovery boot flow, completing a normal boot flow to enter a fully functional state; and

responsive to determining to enter the sleep recovery boot flow, completing sleep recovery operations that restore the SoC to an operational state that corresponds to an operational state that existed when the SoC entered the sleep mode.

14. The SoC of claim 13 , the determining whether to enter a sleep recovery boot flow further comprising determining to enter the sleep recovery boot flow responsive to the sleep recovery signature matching the default signature.

15. The SoC of claim 10 , the register comprising a stack of multiple always on (AON) registers.

16. The SoC of claim 10 , the normal debug flow mode further comprising:

determining whether a first check mode operation has been activated via a first external pin of the SoC;

responsive to determining that the first check mode operation has been activated, continuing the normal debug mode flow;

responsive to determining that the first check mode operation has not been activated, entering the ROM checksum fail debug flow;

the continuing the normal debug mode flow including determining whether a second check mode operation has been activated via a second external pin of the SoC; and

responsive to determining that the second check mode operation has been activated, downloading, to a memory that is external to the SoC, a boot code for booting the SoC.

17. The SoC of claim 16 , further comprising:

responsive to determining that the second check mode operation has not been activated, entering into an infinite loop displaying an error notification.

18. A device comprising:

a boot read only memory (ROM);

a memory; and

a system-on-chip (SoC), the SoC comprising:

a register; and

a controller configured to set a signature in the register prior to the SoC entering a sleep mode, and to, when recovering from the sleep mode:

retrieve a sleep recovery signature from the register;

compare the sleep recovery signature to a default signature;

enter, responsive the sleep recovery signature matching the default signature, a ROM checksum fail debug flow; and

enter, responsive to the sleep recovery signature not matching the default signature, a normal debug mode flow.

19. The device of claim 18 , the device further comprising a first central processing unit (CPU) and an additional CPU, the ROM checksum fail debug flow further comprising:

performing a checksum operation on a ROM of the first CPU;

determining whether the checksum operation on the ROM of the first CPU fails;

responsive to the checksum operation on the ROM of the first CPU failing, entering an infinite loop;

responsive to the checksum operation on the ROM of the first CPU not failing, performing a checksum operation on a ROM of the additional CPU;

determining whether the checksum operation on the ROM of the additional CPU fails;

responsive to the checksum operation on the ROM of the additional CPU failing, entering an infinite loop;

responsive to the checksum operation on the ROM of the additional CPU not failing:

determining whether to enter a sleep recovery boot flow;

responsive to determining not to enter the sleep recovery boot flow, completing a normal boot flow to enter a fully functional state;

responsive to determining to enter the sleep recovery boot flow, completing sleep recovery operations that restore the SoC to an operational state that corresponds to an operational state that existed when the SoC entered the sleep mode.

20. The device of claim 18 , the normal debug mode flow further comprising:

determining whether a first check mode operation has been activated via a first external pin of the SoC;

responsive to determining that the first check mode operation has been activated, continuing the normal debug mode flow;

responsive to determining that the first check mode operation has not been activated, entering the ROM checksum fail debug flow;

the continuing the normal debug mode flow including determining whether a second check mode operation has been activated via a second external pin of the SoC; and

responsive to determining that the second check mode operation has been activated, downloading, to a memory that is external to the SoC, a boot code for booting the SoC.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: MISHRA, SASWAT; YU, TAO; PARK, JUNGIL
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 037826/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 037826/0556 →
Continuity (2)
Provisional Application 62102891 · Jan 13, 2015
Provisional Application 62184384 · Jun 25, 2015