IP Library › Granted Patent US 12,737,268
Granted Patent B2
US 12,737,268 · App. 18/399,475 · Granted Sep 15, 2026

Systems and methods to preconfigure a hardware module

Inventor: Steven Haid (Bolton, MA)
Assignee: STRATUS TECHNOLOGIES IRELAND LTD.
G06F11/203G06F11/2023G06F11/2028G06F11/2038G06F11/2048G06F11/2094G06F11/1417
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 12,737,268
App. No.
18/399,475
Granted
Sep 15, 2026
Kind
B2
Abstract

In part, in one aspect, the disclosure relates to a method of enabling hot plugging operations in a computer system. The method mat include initializing a platform driver, wherein the platform driver is installed on a computer system running an operating system; disabling, using the platform driver, an interrupt function and a hardware detection notification function of the computer system; hot plugging a PCIe node in the computer system; detecting, using the platform driver, the hot plugging of the PCI node in the computer system; configuring the PCIe node, using the platform driver, wherein the configured PCIe node comprises a PCI hierarchy, the PCI hierarchy comprising an allocation of PCI bridges and devices of the configured PCIe node; and bringing the devices of the hot plugged configured PCIe node into service for use by the computing system.

Claims (27)

1 . A method of enabling hot plugging operations in a computer system, the method comprising:

modifying firmware of a device;

initializing a platform driver, wherein the platform driver is installed on a computer system running an operating system, wherein the operating system does not natively support hot plug functionality;

disabling, using the platform driver, an interrupt function and a hardware detection notification function of the computer system;

hot plugging a PCIe node in the computer system, wherein the PCIe node comprises the firmware and the device;

detecting, using the platform driver, the hot plugging of the PCIe node in the computer system;

configuring the PCIe node, using the platform driver, wherein the configured PCIe node comprises a PCI hierarchy, the PCI hierarchy comprising an allocation of PCI bridges and devices of the configured PCIe node;

enabling, using the platform driver, an interrupt function and a hardware detection notification function of the computer system, wherein the platform driver handles one or more data exchanges between a kernel of the operating system and the platform driver; and

bringing the devices of the hot plugged and configured PCIe node into service for use by the computer system.

2 . The method of claim 1 , wherein the PCIe node comprises hardware that is hot pluggable into the computer system.

3 . The method of claim 2 , wherein the PCIe node is not preconfigured.

4 . The method of claim 3 , wherein the interrupt function is a hot plug interrupt function.

5 . The method of claim 4 , wherein the hardware detection notification function is a presence detect changed notification function.

6 . The method of claim 5 , wherein the platform driver communicates with a PCIe root port of a central processing unit of the computer system to disable the hot plug interrupt function and the detection notification function.

7 . The method of claim 3 , wherein the step of detecting the hot plugging of the PCIe node comprises polling a PCIe presence detect state bit of the computer system.

8 . The method of claim 5 further comprising enabling the interrupt function and the hardware detection notification function of the computer system.

9 . The method of claim 8 further comprising triggering a detection of a hot plug interrupt and provision of a presence detect changed notification to the operating system.

10 . The method of claim 9 , wherein the triggering step comprises disabling the interrupt function and the hardware detection notification function of the computer system.

11 . The method of claim 1 , wherein the enabling, using the platform driver, an interrupt function and a hardware detection notification function of the computer system step is performed temporarily or for a brief time period to support detection of a hot plugged device.

12 . The method of claim 11 further comprising processing the hot plug interrupt using the operating system.

13 . The method of claim 12 further comprising detecting configuration of the PCIe node using the operating system.

14 . The method of claim 3 , wherein the computer system is operable to support PCIe root port resource padding.

15 . The method of claim 7 , wherein a change in the presence detect state bit indicates hot plugging of the unconfigured PCIe node.

16 . The method of claim 1 , wherein detecting, using the platform driver, the hot plugging of the PCIe node in the computer system further comprises polling a PCIe presence detect state bit using the platform driver.

17 . The method of claim 1 , wherein the device is a PCIe switch.

18 . The method of claim 1 , wherein the modified firmware is configured to support communicating with the platform driver using a communication channel established therebetween.

19 . The method of claim 18 further comprising sending a memory range of a root bridge of the device to the modified firmware.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2025
From: HAID, STEVEN
To: STRATUS TECHNOLOGIES IRELAND LTD.
Reel/Frame 070870/0295 →
Continuity (2)
Provisional Application 63545153 · Oct 20, 2023
Related Publication 20250130967A1 · Apr 24, 2025
References Cited (80)
US 6355991B1 · Goff et al. · 2002 [cited by applicant]
US 6633996B1 · Suffin et al. · 2003 [cited by applicant]
US 6687851B1 · Somers et al. · 2004 [cited by applicant]
US 6691225B1 · Suffin · 2004 [cited by applicant]
US 6691257B1 · Suffin · 2004 [cited by applicant]
US 6708283B1 · Nevin et al. · 2004 [cited by applicant]
US 6718474B1 · Somers et al. · 2004 [cited by applicant]
US 6766413B2 · Newman · 2004 [cited by applicant]
US 6766479B2 · Edwards · 2004 [cited by applicant]
US 6802022B1 · Olson · 2004 [cited by applicant]
US 6813721B1 · Tetreault et al. · 2004 [cited by applicant]
US 6842823B1 · Olson · 2005 [cited by applicant]
US 6862689B2 · Bergsten et al. · 2005 [cited by applicant]
US 6874102B2 · Doody et al. · 2005 [cited by applicant]
US 6886171B2 · Macleod · 2005 [cited by applicant]
US 6928583B2 · Griffin et al. · 2005 [cited by applicant]
US 6948010B2 · Somers et al. · 2005 [cited by applicant]
US 6970892B2 · Green et al. · 2005 [cited by applicant]
US 6971043B2 · McLoughlin et al. · 2005 [cited by applicant]
US 6996750B2 · Tetreault · 2006 [cited by applicant]
US 7065672B2 · Long et al. · 2006 [cited by applicant]
US 7200694B2 · Yakovlev · 2007 [cited by examiner]
US 7496786B2 · Graham et al. · 2009 [cited by applicant]
US 7496787B2 · Edwards et al. · 2009 [cited by applicant]
US 7669073B2 · Graham et al. · 2010 [cited by applicant]
US 7784058B2 · Rochette · 2010 [cited by examiner]
US 7877521B2 · Suzuki · 2011 [cited by examiner]
US 7904906B2 · Puthukattukaran et al. · 2011 [cited by applicant]
US 7958076B2 · Bergsten et al. · 2011 [cited by applicant]
US 8117495B2 · Graham · 2012 [cited by applicant]
US 8161311B2 · Wiebe · 2012 [cited by applicant]
US 8234521B2 · Graham et al. · 2012 [cited by applicant]
US 8271416B2 · Al-Biek et al. · 2012 [cited by applicant]
US 8312318B2 · Graham et al. · 2012 [cited by applicant]
US 8381012B2 · Wiebe · 2013 [cited by applicant]
US 8812907B1 · Bissett et al. · 2014 [cited by applicant]
US 9251002B2 · Manchek et al. · 2016 [cited by applicant]
US 9588844B2 · Bissett et al. · 2017 [cited by applicant]
US 9626207B2 · Graham · 2017 [cited by examiner]
US 9652338B2 · Bissett et al. · 2017 [cited by applicant]
US 9760442B2 · Bissett et al. · 2017 [cited by applicant]
US 10067900B2 · Watkins · 2018 [cited by examiner]
US 10216598B2 · Haid et al. · 2019 [cited by applicant]
US 10360117B2 · Haid et al. · 2019 [cited by applicant]
US 10423560B2 · Peng · 2019 [cited by examiner]
US 10853299B2 · Bolen · 2020 [cited by examiner]
US 11288143B2 · Horvath et al. · 2022 [cited by applicant]
US 11586514B2 · Pawlowski et al. · 2023 [cited by applicant]
US 20010042202A1 · Horrath et al. · 2001 [cited by applicant]
US 20020016935A1 · Bergsten et al. · 2002 [cited by applicant]
US 20020070717A1 · Pellegrino · 2002 [cited by applicant]
US 20030046670A1 · Marlow · 2003 [cited by applicant]
US 20030095366A1 · Pellegrino · 2003 [cited by applicant]
US 20060222125A1 · Edwards et al. · 2006 [cited by applicant]
US 20060222126A1 · Edwards et al. · 2006 [cited by applicant]
US 20060259815A1 · Graham et al. · 2006 [cited by applicant]
US 20060274508A1 · LaRiviere et al. · 2006 [cited by applicant]
US 20070011499A1 · Begsten et al. · 2007 [cited by applicant]
US 20070028144A1 · Graham et al. · 2007 [cited by applicant]
US 20070038891A1 · Graham · 2007 [cited by applicant]
US 20070106873A1 · Lally et al. · 2007 [cited by applicant]
US 20070174484A1 · Lussier et al. · 2007 [cited by applicant]
US 20080222335A1 · Abumi · 2008 [cited by examiner]
US 20090249129A1 · Femia · 2009 [cited by applicant]
US 20150205688A1 · Haid et al. · 2015 [cited by applicant]
US 20150263983A1 · Brennan et al. · 2015 [cited by applicant]
US 20170324609A1 · Hong et al. · 2017 [cited by applicant]
US 20180046480A1 · Dong et al. · 2018 [cited by applicant]
US 20180143885A1 · Dong et al. · 2018 [cited by applicant]
US 20210034447A1 · Horvath et al. · 2021 [cited by applicant]
US 20210034464A1 · Dailey et al. · 2021 [cited by applicant]
US 20210034465A1 · Haid et al. · 2021 [cited by applicant]
US 20210034483A1 · Haid · 2021 [cited by applicant]
US 20210034523A1 · Dailey · 2021 [cited by applicant]
US 20210037092A1 · Cao · 2021 [cited by applicant]
US 20230185681A1 · Pawlowski et al. · 2023 [cited by applicant]
US 20230291721A1 · Robinson · 2023 [cited by applicant]
US 20240176739A1 · Alden et al. · 2024 [cited by applicant]
Dong et al., “COLO: COarse-grain LOck-stepping Virtual Machine for Non-stop Service”, SoCC'13, Oct. 1-3, 2013, Santa Clara, California, USA, ACM 978-1-4503-2428-1; 16 pages. [cited by applicant]
Dong et al., “COLO: COarse-grain LOck-stepping Virtual Machine for Non-stop Service”, https://www.linux-kvm.org/images/1/1d/Kvm-forum-2013-COLO.pdf; 24 pages. [cited by applicant]