IP Library Granted Patent US 8,380,911
Granted Patent B2
US 8,380,911 · App. 12/880,942 · Granted Feb 19, 2013

Peripheral device, program and methods for responding to a warm reboot condition

Inventor: Jayant Mohan Daftardar (Lawrenceville, GA)
Assignee: LSI Corporation
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,380,911
App. No.
12/880,942
Granted
Feb 19, 2013
Kind
B2
Abstract

A computing system peripheral device compatible with the peripheral component interconnect express (PCI-E) protocol responds to a DL_DOWN command primitive by configuring a general-purpose input/output (GPIO) port into a known state without invoking a GPIO module reset. In addition, select resources are excluded from resources on the peripheral device that are issued a reset command. The select resources can include a GPIO module, a memory element and a PCI-E SERDES module. After the remaining reset resources have completed their individual initialization processes, the central processor core on the peripheral device is reset. The described response to the DL_DOWN command primitive avoids cache data loss, masks signal transitions on I/O ports and timing problems that prevent some peripheral devices from being recognized in a computer's basic input/output system (BIOS).

Claims (37)

1. A method for responding to a warm reboot condition in a peripheral device that responds to soft resets with a PCI-E DL_DOWN command primitive, the method comprising:

identifying a DL_DOWN command primitive in a PCI-E compatible device having a plurality of cores;

directing an input/output (I/O) port into a known state;

selectively directing a subset of the plurality of cores of the PCI-E compatible device to reset;

waiting for an indication of synchronization from the subset of the plurality of cores;

directing the subset of the plurality of cores into a non-reset condition;

waiting for an indication of synchronization from the subset of the plurality of cores; and

invoking a central processor unit reset.

2. The method of claim 1 , wherein the step of identifying a DL_DOWN command primitive in a PCI-E controller is performed in a redundant array of independent disks (RAID) controller.

3. The method of claim 1 , wherein the step of directing an I/O port into a known state comprises directing a general purpose I/O port into a default state without invoking a general purpose I/O module reset.

4. The method of claim 1 , wherein the step of selectively directing a subset of the plurality of cores of the PCI-E compatible devices to reset excludes a general purpose I/O module, a serializer/deserializer (SERDES) module, and a memory device.

5. The method of claim 1 , further comprising:

selectively directing a subset of the input/output resources of the PCI-E compatible device to reset.

6. The method of claim 5 , wherein the step of selectively directing a subset of the input/output resources of the PCI-E compatible device to reset excludes one or more of a hardware pin dedicated to a corresponding event trigger and an addressable 1-wire device.

7. The method of claim 1 , wherein the step of identifying a DL_DOWN command primitive in a PCI-E compatible device having a plurality of cores comprises a PCI-E compatible device with one or more of a serial attached small computer system interface (SAS) core, a direct-memory access (DMA) core, a static random-access memory (SRAM) core, a SAS SERDES core and a PCI-E SERDES core.

8. A computing system peripheral device compatible with the peripheral component interconnect express protocol, comprising:

a peripheral component interconnect express (PCI-E) core instantiated as an application specific integrated circuit on the peripheral device;

a central processor core coupled to the PCI-E core by way of a local bus, the local bus further coupling a general purpose input/output (GPIO) module, a memory element, and a PCI-E serializer/deserializer (SERDES) module to the PCI-E core and the central processor core; and

a non-volatile memory element coupled to the local bus, the non-volatile memory element configured to store a set of executable instructions responsive to a DL_DOWN interrupt primitive that when executed on the peripheral device direct a GPIO port into a known state and selectively direct a subset of available resources coupled to the local bus to reset before invoking a reset of the central processor core.

9. The computing system peripheral device of claim 8 , wherein the set of executable instructions in the non-volatile memory element direct the PCI-E core to wait for an indication that reset resources are synchronized before directing the reset resources to a non-reset state.

10. The computing system peripheral device of claim 9 , wherein the set of executable instructions in the non-volatile memory element direct the PCI-E core to wait for an indication that resources directed to the non-reset state are synchronized before invoking the reset of the central processor unit.

11. The computing system peripheral device of claim 10 , wherein the PCI-E core directs the GPIO port to a default state.

12. The computing system peripheral device of claim 8 , wherein the set of executable instructions in the non-volatile memory element direct the PCI-E core to reset all resources with the exception of the GPIO module, the PCI-E SERDES module and the memory element.

13. The computing system peripheral device of claim 8 , wherein the PCI-E core directs the selective reset of one or more I/O devices coupled to the local bus by way of an on-chip peripheral bus.

14. The computing system peripheral device of claim 13 , wherein the one or more I/O devices selected from the group consisting of a universal asynchronous receiver-transmitter (UART), a timer, an intelligent interface controller (I 2 C), and an extended industry standard bus controller.

15. A program including a set of executable instructions embodied on a computer readable storage medium, comprising:

logic configured to identify a DL_DOWN command primitive in a PCI-E compatible core;

logic configured to direct an input/output (I/O) port into a known state in response to the logic configured to identify the DL_DOWN command primitive;

logic configured to selectively direct a subset of the available resources of a PCI-E compatible device to reset;

logic configured to wait for an indication of synchronization from the subset of the available resources; and

logic configured to invoke a central processor unit reset responsive to the indication of synchronization.

16. The program of claim 15 , wherein the logic configured to identify a DL_DOWN command primitive in a PCI-E controller is executed in a redundant array of independent disks (RAID) controller.

17. The program of claim 15 , wherein the logic configured to direct an I/O port into a known state comprises logic configured to direct a general purpose I/O port into a default state without invoking a general purpose I/O module reset.

18. The program of claim 15 , wherein the logic configured to selectively direct a subset of the available resources of the PCI-E compatible device to reset excludes sending a reset to a general purpose I/O module, a serializer/deserializer (SERDES) module, and a memory device.

19. The program of claim 15 , further comprising:

logic configured to selectively direct a subset of the input/output resources of the PCI-E compatible device to reset.

20. The program of claim 19 , wherein the logic configured to selectively direct a subset of the input/output resources of the PCI-E compatible device to reset excludes one or more of a hardware pin dedicated to a corresponding event trigger and an addressable 1-wire device.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2010
From: DAFTARDAR, JAYANT MOHAN, MR.
To: LSI CORPORATION
Reel/Frame 024978/0479 →
Continuity (1)
Related Publication 20120066429A1 · Mar 15, 2012