IP Library Granted Patent US 10,909,247
Granted Patent B2
US 10,909,247 · App. 16/121,954 · Granted Feb 2, 2021

Computing device having two trusted platform modules

Inventors: Wenwei Tang (Shanghai, CN); Tianhe Li (Shanghai, CN); He Huang (Shanghai, CN)
Assignee: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
G06F21/572G06F11/2284G06F12/0246G06F21/00G06F21/554G06F21/57G06F21/71H04L9/0897H04L9/3234G06F2212/206G06F2221/2153H04L2209/127H04L2209/26
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 10,909,247
App. No.
16/121,954
Granted
Feb 2, 2021
Kind
B2
Abstract

A computing device is provided including a motherboard including a control module, a first trusted platform module (TPM), and a second TPM. The control module directs security operations to the first TPM, wherein the control module is operable to detect whether or not the first TPM is damaged, and wherein the control module, in response to detecting that the first TPM is damaged, is operable to direct subsequent security operations to be performed by the second TPM. A computer program product is also provided including non-transitory computer readable storage media embodying program instructions executable by a processor to direct security operations to a first TPM coupled to a motherboard of the computing device, detect whether or not the first TPM is damaged, and, responsive to detecting that the first TPM is damaged, direct subsequent security operations to a second TPM coupled to the motherboard of the computing device.

Claims (42)

1. A computing device, comprising:

a motherboard including a control module, a first trusted platform module, and a second trusted platform module;

wherein the control module is operable to:

direct security operations to the first trusted platform module;

detect whether or not the first trusted platform module is damaged;

responsive to detecting that the first trusted platform module is damaged, direct subsequent security operations to be performed by the second trusted platform module;

determine that the first trusted platform module is damaged and the computing device loaded an operating system into system memory;

load an Advanced Configuration and Power Interface driver with a pre-installed operating system driver; and

trigger a system management interrupt to execute a Unified Extensible Firmware Interface system management mode code causing a record to be stored in persistent storage on the motherboard, the record indicating a damaged status of the first trusted platform module.

2. The computing device of claim 1 , wherein the control module is adapted to:

determine a level of damage of the first trusted platform module.

3. The computing device of claim 2 , wherein the control module is further adapted to attempt sending Trusted Platform Module Interface Specification commands to the first trusted platform module, and receiving responses therefrom.

4. The computing device of claim 3 , wherein the control module is further adapted to determine the level of damage based on the responses received from the first trusted platform module.

5. The computing device of claim 2 , wherein the control module comprises Advanced Configuration and Power Interface and the control module is adapted to detect the availability of the first trusted platform module.

6. The computing device of claim 2 , wherein the control module includes Unified Extensible Firmware Interface code; and wherein the control module is adapted to detect the availability of the first trusted platform module and determine the level of damage thereof during a Power-On Self-Test process of the computing device.

7. The computing device of claim 2 , wherein the control module is a platform controller hub.

8. The computing device of claim 1 , further comprises:

a multiplexer coupled to the control module, the first trusted platform module and the second trusted platform module, wherein the control module controls the multiplexer to toggle from the first trusted platform module to the second trusted platform module without modifying a trusted platform module memory map in Memory Mapped I/O (MMIO).

9. The computing device of claim 8 , wherein the multiplexer is a General-Purpose Input/Output circuit of the control module.

10. The computing device of claim 1 , wherein the control module is further adapted to reboot the computing device after causing subsequent security operations to be directed to the second trusted platform module.

11. The computing device of claim 10 , wherein the control module directs subsequent security operations to be performed by the second trusted platform module by controlling a multiplexer circuit to switch an output from being directed to the first trusted platform module to being directed to the second trusted platform module.

12. A computer program product comprising non-transitory computer readable storage media having program instructions embodied therewith, the program instructions executable by a processor to:

direct security operations to a first trusted platform module coupled to a motherboard of a computing device;

detect whether or not the first trusted platform module is damaged;

responsive to detecting that the first trusted platform module is damaged, direct subsequent security operations to a second trusted platform module coupled to the motherboard of the computing device;

determine that the first trusted platform module is damaged and the computing device loaded an operating system into system memory;

load an Advanced Configuration and Power Interface driver with a pre-installed operating system driver; and

trigger a system management interrupt to execute a Unified Extensible Firmware Interface system management mode code causing a record to be stored in persistent storage on the motherboard, the record indicating a damaged status of the first trusted platform module.

13. The computer program product of claim 12 , wherein the program instructions executable by a processor to direct subsequent security operations to a second trusted platform module include program instructions executable by a processor to control a multiplexer to switch from the first trusted platform module to the second trusted platform module without affecting a trusted platform module memory map in Memory Mapped I/O (MMIO).

14. The computer program product of claim 13 , wherein the multiplexer is a General-Purpose Input/Output circuit of a platform controller hub.

15. The computer program product of claim 13 , wherein the program instructions are further executable by a processor to:

reboot the computing device after controlling the multiplexer to switch from the first trusted platform module to the second trusted platform module.

16. The computer program product of claim 12 , wherein the program instructions are further executable by a processor to:

upgrade firmware of the second trusted platform module to a firmware version matching a firmware version of the first trusted platform module.

17. The computer program product of claim 12 , wherein the program instructions executable by a processor to detect whether or not the first trusted platform module is damaged, includes program instructions executable by a processor to send a Trusted Platform Module Interface Specification command to the first trusted platform module, and receive a response to the command from the first trusted platform module.

18. The computer program product of claim 17 , wherein the program instructions executable by a processor to detect whether or not the first trusted platform module is damaged, includes program instructions executable by a processor to receive a response to the command from the first trusted platform module, and determine a level of damage to the first trusted platform module based on the response received from the first trusted platform module.

19. The computer program product of claim 12 , wherein the program instructions are further executable by a processor to:

determine that the first trusted platform module is damaged and the computing device is currently executing a Power-On Self-Test process;

execute Unified Extensible Firmware Interface (UEFI) Driver Execution Environment (DXE) codes to store a record in persistent storage on the motherboard, the record indicating a damaged status of the first trusted platform module; and

reboot the computing device.

20. The computer program product of claim 12 , wherein the program instructions are further executable by a processor to:

reboot the computing device after triggering the system management interrupt.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD.
Reel/Frame 070267/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 070269/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2018
From: TANG, WENWEI; LI, TIANHE; HUANG, HE
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 047317/0796 →
Priority Claims (1)
CN 2018 1 0068740 · Jan 24, 2018 · national
Continuity (1)
Related Publication 20190228157A1 · Jul 25, 2019