IP Library Granted Patent US 11,392,168
Granted Patent B1
US 11,392,168 · App. 17/197,435 · Granted Jul 19, 2022

Managing clock synchronization for a baseboard management controller (BMC) of an information handling system

Inventor: Timothy M. Lambert (Austin, TX)
Assignee: Dell Products L.P.
G06F1/14G06F1/12
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 11,392,168
App. No.
17/197,435
Filed
Mar 10, 2021
Granted
Jul 19, 2022
Kind
B1
Art Unit
2187
USPC
713/500
Abstract

In one embodiment, a method for managing clock synchronization for a baseboard management controller includes identifying, by a management unit of the information handling system, a real-time clock of the information handling system based on a real-time clock time value; receiving, by the management unit, a request for the real-time clock time value from the baseboard management controller; retrieving, by the management unit, the real-time clock time value from the real-time clock; sending, by the management unit, the real-time clock time value to a logic device of the information handling system; sending, by the logic device, an interrupt signal to the baseboard management controller indicating that the real-time clock time value is stored; retrieving, by the baseboard management controller, the real-time clock time value from the logic device; and updating, by the baseboard management controller, a baseboard management controller time value based on the real-time clock time value.

Claims (110)

1. A method for managing clock synchronization for a baseboard management controller (BMC) of an information handling system, the method comprising:

identifying, by a management unit of a processor subsystem of the information handling system, a real-time clock (RTC) of the information handling system based on an RTC time value stored in the RTC;

receiving, by the management unit, a request for the RTC time value from the BMC via a first bus, the first bus communicably coupling the BMC to the management unit;

retrieving, by the management unit, the RTC time value from the RTC via a second bus, the second bus communicably coupling the RTC to the management unit;

sending, by the management unit, the RTC time value to a logic device of the information handling system via the second bus, the second bus communicably coupling the logic device to the management unit;

storing, by the logic device, the RTC time value; and

in response to storing the RTC time value:

sending, by the logic device, an interrupt signal to the BMC via a third bus, the interrupt signal indicating that the RTC time value is stored, the third bus communicably coupling the BMC to the logic device;

retrieving, by the BMC, the RTC time value from the logic device via the third bus; and

updating, by the BMC, a BMC time value based on the RTC time value, the BMC time value stored in the BMC.

2. The method of claim 1 , wherein identifying the RTC based on the RTC time value comprises:

accessing, by the management unit, a memory of the RTC via the second bus, the memory including a plurality of registers, each of the plurality of registers storing a respective portion of the RTC time value;

monitoring, by the management unit, a register of the plurality of registers to identify a frequency associated with the respective portion of the RTC time value stored in the register; and

determining, by the management unit, an RTC type based on the frequency associated with the respective portion of the RTC time value.

3. The method of claim 2 , wherein monitoring the register of the plurality of registers to identify the frequency associated with the respective portion of the RTC time value comprises:

identifying, by the management unit, a first value of the respective portion of the RTC time value stored in the register;

waiting, by the management unit, a predetermined period of time;

identifying, by the management unit, a second value of the respective portion of the RTC time value stored in the register; and

determining, by the management unit, a difference between the first value of the respective portion and the second value of the respective portion.

4. The method of claim 1 , further comprising:

receiving, by the management unit, a request to update the RTC time value from a host service of the information handling system, the request based on a change event associated with the information handling system;

identifying, by the management unit, an updated RTC time value based on the request;

sending, by the management unit, the updated RTC time value to the logic device via the second bus;

storing, by the logic device, the updated RTC time value; and

in response to storing the updated RTC time value:

sending, by the logic device, an additional interrupt signal to the BMC via the third bus, the additional interrupt signal indicating that the updated RTC time value is stored;

retrieving, by the BMC, the updated RTC time value from the logic device via the third bus; and

updating, by the BMC, the BMC time value based on the updated RTC time value.

5. The method of claim 4 , further comprising:

sending, by the management unit, the updated RTC time value to the RTC via the second bus.

6. The method of claim 1 , further comprising:

causing the BMC to reboot;

identifying, by the BMC, that the management unit is powered off; and

retrieving, by the BMC, the RTC time value from the logic device via the third bus.

7. The method of claim 1 , further comprising:

identifying a time drift associated with the BMC time value, the time drift comprising a difference between the BMC time value and the RTC time value; and

causing the BMC to reboot.

8. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

identify, by a management unit of a processor subsystem of an information handling system, a real-time clock (RTC) of the information handling system based on an RTC time value stored in the RTC;

receive, by the management unit, a request for the RTC time value from a baseboard management controller (BMC) of the information handling system via a first bus, the first bus communicably coupling the BMC to the management unit;

retrieve, by the management unit, the RTC time value from the RTC via a second bus, the second bus communicably coupling the RTC to the management unit;

send, by the management unit, the RTC time value to a logic device of the information handling system via the second bus, the second bus communicably coupling the logic device to the management unit;

store, by the logic device, the RTC time value; and

in response to storing the RTC time value:

send, by the logic device, an interrupt signal to the BMC via a third bus, the interrupt signal indicating that the RTC time value is stored, the third bus communicably coupling the BMC to the logic device;

retrieve, by the BMC, the RTC time value from the logic device via the third bus; and

update, by the BMC, a BMC time value based on the RTC time value, the BMC time value stored in the BMC.

9. The media of claim 8 , wherein to identify the RTC based on the RTC time value, the software is further operable when executed to:

access, by the management unit, a memory of the RTC via the second bus, the memory including a plurality of registers, each of the plurality of registers storing a respective portion of the RTC time value;

monitor, by the management unit, a register of the plurality of registers to identify a frequency associated with the respective portion of the RTC time value stored in the register; and

determine, by the management unit, an RTC type based on the frequency associated with the respective portion of the RTC time value.

10. The media of claim 9 , wherein to monitor the register of the plurality of registers to identify the frequency associated with the respective portion of the RTC time value, the software is further operable when executed to:

identify, by the management unit, a first value of the respective portion of the RTC time value stored in the register;

wait, by the management unit, a predetermined period of time;

identify, by the management unit, a second value of the respective portion of the RTC time value stored in the register; and

determine, by the management unit, a difference between the first value of the respective portion and the second value of the respective portion.

11. The media of claim 8 , wherein the software is further operable when executed to:

receive, by the management unit, a request to update the RTC time value from a host service of the information handling system, the request based on a change event associated with the information handling system;

identify, by the management unit, an updated RTC time value based on the request to update the RTC time value;

send, by the management unit, the updated RTC time value to the logic device via the second bus;

store, by the logic device, the updated RTC time value; and

in response to storing the updated RTC time value:

send, by the logic device, an additional interrupt signal to the BMC via the third bus, the additional interrupt signal indicating that the updated RTC time value is stored;

retrieve, by the BMC, the updated RTC time value from the logic device via the third bus; and

update, by the BMC, the BMC time value based on the updated RTC time value.

12. The media of claim 11 , the software is further operable when executed to:

send, by the management unit, the updated RTC time value to the RTC via the second bus.

13. The media of claim 8 , wherein the software is further operable when executed to:

cause the BMC to reboot;

identify, by the BMC, that the management unit is powered off; and

retrieve, by the BMC, the RTC time value from the logic device via the third bus.

14. The media of claim 8 , wherein the software is further operable when executed to:

identify a time drift associated with the BMC time value, the time drift comprising a difference between the BMC time value and the RTC time value; and

cause the BMC to reboot.

15. A computing environment, comprising:

an information handling system including one or more processors; and

one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause the system to:

identify, by a management unit of a processor subsystem of the information handling system, a real-time clock (RTC) of the information handling system based on an RTC time value stored in the RTC;

receive, by the management unit, a request for the RTC time value from a baseboard management controller (BMC) of the information handling system via a first bus, the first bus communicably coupling the BMC to the management unit;

retrieve, by the management unit, the RTC time value from the RTC via a second bus, the second bus communicably coupling the RTC to the management unit;

send, by the management unit, the RTC time value to a logic device of the information handling system via the second bus, the second bus communicably coupling the logic device to the management unit;

store, by the logic device, the RTC time value; and

in response to storing the RTC time value:

send, by the logic device, an interrupt signal to the BMC via a third bus, the interrupt signal indicating that the RTC time value is stored, the third bus communicably coupling the BMC to the logic device;

retrieve, by the BMC, the RTC time value from the logic device via the third bus; and

update, by the BMC, a BMC time value based on the RTC time value, the BMC time value stored in the BMC.

16. The computing environment of claim 15 , wherein to identify the RTC based on the RTC time value, the processors are further operable when executed to:

access, by the management unit, a memory of the RTC via the second bus, the memory including a plurality of registers, each of the plurality of registers storing a respective portion of the RTC time value;

monitor, by the management unit, a register of the plurality of registers to identify a frequency associated with the respective portion of the RTC time value stored in the register; and

determine, by the management unit, an RTC type based on the frequency associated with the respective portion of the RTC time value.

17. The computing environment of claim 16 , wherein to monitor the register of the plurality of registers to identify the frequency associated with the respective portion of the RTC time value, the processors are further operable when executed to:

identify, by the management unit, a first value of the respective portion of the RTC time value stored in the register;

wait, by the management unit, a predetermined period of time;

identify, by the management unit, a second value of the respective portion of the RTC time value stored in the register; and

determine, by the management unit, a difference between the first value of the respective portion and the second value of the respective portion.

18. The computing environment of claim 15 , wherein the processors are further operable when executed to:

receive, by the management unit, a request to update the RTC time value from a host service of the information handling system, the request based on a change event associated with the information handling system;

identify, by the management unit, an updated RTC time value based on the request to update the RTC time value;

send, by the management unit, the updated RTC time value to the logic device via the second bus;

store, by the logic device, the updated RTC time value; and

in response to storing the updated RTC time value:

send, by the logic device, an additional interrupt signal to the BMC via the third bus, the additional interrupt signal indicating that the updated RTC time value is stored;

retrieve, by the BMC, the updated RTC time value from the logic device via the third bus; and

update, by the BMC, the BMC time value based on the updated RTC time value.

19. The computing environment of claim 18 , wherein the processors are further operable when executed to:

send, by the management unit, the updated RTC time value to the RTC via the second bus.

20. The computing environment of claim 15 , wherein the processors are further operable when executed to:

cause the BMC to reboot;

identify, by the BMC, that the management unit is powered off; and

retrieve, by the BMC, the RTC time value from the logic device via the third bus.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2021
From: LAMBERT, TIMOTHY M.
To: DELL PRODUCTS L.P.
Reel/Frame 055549/0209 →