IP Library Granted Patent US 10,339,082
Granted Patent B2
US 10,339,082 · App. 15/827,564 · Granted Jul 2, 2019

Technologies for stable secure channel identifier mapping for static and dynamic devices

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,339,082
App. No.
15/827,564
Granted
Jul 2, 2019
Kind
B2
Abstract

Technologies for secure channel identifier mapping include a computing device having an I/O controller that may connect to one or more I/O devices. The computing device determines a device path to an I/O device that may be used to identify the I/O device. The computing device identifies a firmware method as a function of the device path and invokes the firmware method. In response, the firmware method determines a channel identifier as a function of the device path. The firmware method may determine a pre-determined channel identifier for static or undiscoverable I/O devices. For dynamic I/O devices, the firmware method may determine the channel identifier using a stable algorithm. The I/O controller may assign the channel identifier to the dynamic I/O device using the same stable algorithm. The computing device establishes a secure channel to the I/O device using the channel identifier. Other embodiments are described and claimed.

Claims (67)

1. A computing device for device identifier mapping, the computing device comprising:

a device manager to determine a device path to an I/O device of the computing device;

a firmware interface to (i) identify a firmware method as a function of the device path and (ii) invoke the firmware method; and

a firmware device mapper to determine a channel identifier as a function of the device path in response to invocation of the firmware method;

wherein the device manager is further to establish a trusted I/O channel with the I/O device with the channel identifier in response to a determination of the channel identifier.

2. The computing device of claim 1 , wherein to identify the firmware method comprises to identify a node in a firmware table.

3. The computing device of claim 2 , wherein the firmware table comprises an ACPI table and the node comprises an ACPI object.

4. The computing device of claim 2 , wherein:

the I/O device comprises a static device; and

to identify the node in the firmware table comprises to identify a device node with the device path.

5. The computing device of claim 2 , wherein:

the I/O device comprises a dynamically attached device coupled to an I/O controller of the computing device; and

to identify the node in the firmware table comprises to identify a controller node associated with the I/O controller with the device path.

6. The computing device of claim 1 , wherein:

the I/O device comprises a dynamically attached device coupled to an I/O controller of the computing device; and

to determine the channel identifier comprises to determine the channel identifier as a function of the device path using a first stable algorithm.

7. The computing device of claim 6 , wherein the I/O controller of the computing device comprises:

a dynamic device manager to detect dynamic attachment of the I/O device; and

a controller device mapper to determine the channel identifier as a function of the device path with the first stable algorithm in response to detection of the dynamic attachment of the I/O device.

8. The computing device of claim 7 , wherein the device path comprises a controller path and a bus path, wherein the controller path identifies the I/O controller, and wherein the bus path comprises a path of the I/O device relative to the I/O controller.

9. The computing device of claim 8 , wherein to determine the channel identifier as a function of the device path with the first stable algorithm comprises to determine the channel identifier as a function of the controller path and the bus path.

10. The computing device of claim 9 , wherein to determine the channel identifier as a function of the controller path and the bus path comprises to:

determine one or more upper bits of the channel identifier as a function of a predetermined channel identifier associated with the I/O controller; and

determine one or more lower bits of the channel identifier as a function of the bus path.

11. The computing device of claim 1 , further comprising:

an operating system that comprises the device manager and the firmware interface; and

a firmware environment that comprises the firmware device mapper.

12. A method for device identifier mapping, the method comprising:

determining, by a computing device, a device path to an I/O device of the computing device;

identifying, by the computing device, a firmware method as a function of the device path;

invoking, by the computing device, the firmware method;

determining, by the computing device, a channel identifier as a function of the device path in response to invoking the firmware method; and

establishing, by the computing device, a trusted I/O channel with the I/O device using the channel identifier in response to determining the channel identifier.

13. The method of claim 12 , wherein identifying the firmware method comprises identifying a node in a firmware table.

14. The method of claim 13 , wherein:

the I/O device comprises a static device; and

identifying the node in the firmware table comprises identifying a device node using the device path.

15. The method of claim 13 , wherein:

the I/O device comprises a dynamically attached device coupled to an I/O controller of the computing device; and

identifying the node in the firmware table comprises identifying a controller node associated with the I/O controller using the device path.

16. The method of claim 12 , wherein:

the I/O device comprises a dynamically attached device coupled to an I/O controller of the computing device; and

determining the channel identifier comprises determining the channel identifier as a function of the device path using a first stable algorithm.

17. The method of claim 16 , further comprising:

detecting, by the I/O controller of the computing device, dynamic attachment of the I/O device; and

determining, by the I/O controller, the channel identifier as a function of the device path using the first stable algorithm in response to detecting the dynamic attachment of the I/O device.

18. The method of claim 17 , wherein the device path comprises a controller path and a bus path, wherein the controller path identifies the I/O controller, and wherein the bus path comprises a path of the I/O device relative to the I/O controller.

19. One or more non-transitory, computer-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a computing device to:

determine a device path to an I/O device of the computing device;

identify a firmware method as a function of the device path;

invoke the firmware method;

determine a channel identifier as a function of the device path in response to invoking the firmware method; and

establish a trusted I/O channel with the I/O device using the channel identifier in response to determining the channel identifier.

20. The one or more non-transitory, computer-readable storage media of claim 19 , wherein to identify the firmware method comprises to identify a node in a firmware table.

21. The one or more non-transitory, computer-readable storage media of claim 20 , wherein:

the I/O device comprises a static device; and

to identify the node in the firmware table comprises to identify a device node using the device path.

22. The one or more non-transitory, computer-readable storage media of claim 20 , wherein:

the I/O device comprises a dynamically attached device coupled to an I/O controller of the computing device; and

to identify the node in the firmware table comprises to identify a controller node associated with the I/O controller using the device path.

23. The one or more non-transitory, computer-readable storage media of claim 19 , wherein:

the I/O device comprises a dynamically attached device coupled to an I/O controller of the computing device; and

to determine the channel identifier comprises to determine the channel identifier as a function of the device path using a first stable algorithm.

24. The one or more non-transitory, computer-readable storage media of claim 23 , further comprising a plurality of instructions stored thereon that, in response to being executed, cause the computing device to:

detect, by the I/O controller of the computing device, dynamic attachment of the I/O device; and

determine, by the I/O controller, the channel identifier as a function of the device path using the first stable algorithm in response to detecting the dynamic attachment of the I/O device.

25. The one or more non-transitory, computer-readable storage media of claim 24 , wherein the device path comprises a controller path and a bus path, wherein the controller path identifies the I/O controller, and wherein the bus path comprises a path of the I/O device relative to the I/O controller.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 056337/0609 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2018
From: XING, BIN; PAPPACHAN, PRADEEP; LAL, RESHMA; CHHABRA, SIDDHARTHA; SHANAHAN, MARK
To: INTEL IP CORPORATION
Reel/Frame 044788/0538 →