IP Library Granted Patent US 9,063,767
Granted Patent B2
US 9,063,767 · App. 13/723,109 · Granted Jun 23, 2015

Configuration space with pseudo device identifier

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 9,063,767
App. No.
13/723,109
Granted
Jun 23, 2015
Kind
B2
Abstract

Techniques for loading device drivers are provided. A configuration space may contain a device identifier. The configuration space may be modified by replacing the device identifier with a pseudo device identifier. In one aspect the pseudo device identifier may be passed to a virtual machine. In another aspect, the pseudo device identifier may be used to load a driver.

Claims (39)

1. A method comprising:

retrieving, with a hypervisor, a Peripheral Component Interconnect (PCI) configuration space of a function of a PCI card, the configuration space including a device identifier;

modifying the retrieved PCI configuration space by replacing the device identifier with a pseudo device identifier; and

passing the modified PCI configuration space to a guest virtual machine.

2. The method of claim 1 further comprising:

including the device identifier within a vendor capability.

3. The method of claim 2 wherein the vendor capability is one of a vendor specific capability and a vendor specific extended capability.

4. The method of claim 2 further comprising:

including an indication of reset type in the vendor capability, wherein the reset type notifies the guest operating system as to how to reset the function.

5. The method of claim 2 further comprising:

including at least one parameter in the vendor capability.

6. The method of claim 2 further comprising:

including a real function number in the vendor capability.

7. A non transitory processor readable medium containing a set of instructions thereon, which when executed by a processor cause the processor to:

receive, from a hypervisor, a Peripheral Component Interconnect (PCI) configuration space containing a pseudo device identifier;

load, by a guest operating system, a device driver associated with the pseudo device identifier;

retrieve a device identifier and function from a vendor capability in the PCI configuration space; and

take control of the function by the guest operating system.

8. The non-transitory medium of claim 7 wherein the vendor capability is a vendor specific capability.

9. The non-transitory medium of claim 7 wherein the vendor capability is a vendor specific extended capability.

10. The non-transitory medium of claim 7 further comprising instructions which cause the processor to:

retrieve at least one parameter from the vendor capability.

11. The non-transitory medium of claim 7 wherein dedicating the function to the guest operating system further comprising instructions which cause the processor to:

retrieve a real function number from the vendor capability;

claim the function identified using the real function number and the device identifier.

12. The non-transitory medium of claim 7 further comprising instructions which cause the processor to:

retrieve a reset type from the vendor capability; and

reset the function based on the reset type.

13. A system comprising:

a processor; and

a memory coupled to the processor, the memory containing instructions which when executed by the processor cause the processor to:

retrieve a Peripheral Component Interconnect (PCI) configuration space, the PCI configuration space including a device identifier;

replace the device identifier with a pseudo device identifier; and

load a device driver associated with the pseudo device identifier, wherein the device driver is based on a device driver associated with the device identifier.

14. The system of claim 13 wherein the memory further contains instructions which cause the processor to:

write, by a guest operating system, an identifier associated with a parameter to a first register of the PCI configuration space;

write, by a hypervisor, a parameter value associated with the parameter identifier to a second register; and

read, by the guest operating system the parameter value from the second register.

15. The system of claim 13 wherein the steps of writing the identifier to the first register and reading the value from the second register is repeated until all needed parameters have been read.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 055360/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2013
From: SAHOTA, SUKHINDER SINGH; NATARAJAN, AJITKUMAR A.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 029624/0781 →