Emulated endpoint configuration
AssigneeAmazon Technologies, Inc.
InventorsNafea Bshara, Adi Habusha, Guy Nakibly, Georgy Machulsky
Life of this patent
Estimating the term…
Abstract
Techniques for emulating a configuration space may include emulating a set of configuration registers in an integrated circuit device for a set of functions corresponding to a type of peripheral device. The type of peripheral device represented by the integrated circuit device can be modified by changing the set of configuration registers being emulated in the integrated circuit device. Multiple sets of configuration registers can also be emulated to support different virtual machines or different operating systems.
Claims20
An integrated circuit device comprising:
- an emulated configuration space configured to:
- represent the integrated circuit device as a first type of peripheral device by emulating a first set of configuration registers for a first set of functions corresponding to the first type of peripheral device;
- and
- represent the integrated circuit device as a second type of peripheral device by emulating a second set of configuration registers for a second set of functions corresponding to the second type of peripheral device,
- a bus interface configured to receive a configuration access request;
- and
- emulation control logic configured to process the configuration access request by retrieving an emulated configuration register from the emulated configuration space and servicing the configuration access request,
- wherein the integrated circuit device is configured to dynamically add an additional emulated capability register to the emulated configuration space, and dynamically remove an existing emulated capability register from the emulated configuration space based on which of the first and second types of peripheral device the integrated circuit device is emulating.
An integrated circuit device comprising:
- a memory storing a plurality of emulated configuration spaces, wherein each of the emulated configuration spaces includes an emulated device class code register, one or more emulated base address registers, and one or more emulated capability registers;
- a bus interface configured to receive a configuration access request from a host;
- emulation control logic configured to process the configuration access request by retrieving an emulated configuration from the memory and servicing the configuration access request;
- and
- a configuration transaction log configured to track progress of the configuration access request,
- wherein the integrated circuit device is configured to dynamically modify at least one of the plurality of emulated configuration spaces by adding an additional emulated capability register and removing an existing emulated capability register based on which type of peripheral device the integrated circuit device is emulating.
A method comprising:
- emulating a plurality of emulated configuration spaces in a memory, wherein each of the emulated configuration spaces includes an emulated device class code register, one or more emulated base address registers, and one or more emulated capability registers;
- receiving a configuration access request;
- logging the configuration access request in a configuration transaction log to track progress of the configuration access request;
- processing the configuration access request by retrieving an emulated configuration register from the memory;
- and
- dynamically modifying at least one of the plurality of emulated configuration spaces by adding an additional emulated capability register and removing an existing emulated capability register based on which type of peripheral device is being emulated.
Dependencies are inferred from the claim text.