US 11,886,355 B2
Emulated endpoint configuration
Nafea Bshara, San Jose, CA (US); Adi Habusha, Moshav Alonei Abba (IL); Guy Nakibly, Kedumim (IL); and Georgy Machulsky, San Jose, CA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Apr. 26, 2022, as Appl. No. 17/660,797.
Application 17/660,797 is a continuation of application No. 16/727,814, filed on Dec. 26, 2019, granted, now 11,321,247.
Application 16/727,814 is a continuation of application No. 14/872,964, filed on Oct. 1, 2015, granted, now 10,521,365, issued on Dec. 31, 2019.
Claims priority of provisional application 62/059,914, filed on Oct. 5, 2014.
Prior Publication US 2022/0253392 A1, Aug. 11, 2022
Int. Cl. G06F 3/00 (2006.01); G06F 13/10 (2006.01); G06F 13/24 (2006.01); G06F 13/42 (2006.01); G06F 9/50 (2006.01)
CPC G06F 13/105 (2013.01) [G06F 9/5077 (2013.01); G06F 13/24 (2013.01); G06F 13/4282 (2013.01); G06F 2213/0026 (2013.01); G06F 2213/0058 (2013.01)] 20 Claims
OG exemplary drawing
 
1. An integrated circuit device comprising:
a bus interface operable to receive a configuration access request;
an emulated configuration space operable to:
emulate a first set of configuration registers for a first set of functions corresponding to a first type of peripheral device, the emulated configuration space being loaded from storage to a local memory at startup of the integrated circuit device, wherein the first set of functions includes a physical function and a virtual function associated with the physical function; and
switch to emulate a second set of configuration registers for a second set of functions corresponding to a second type of peripheral device, causing the integrated circuit device to change from being represented as the first type of peripheral device to being represented as the second type of peripheral device;
an emulation module operable to process the configuration access request by retrieving an emulated configuration register from the emulated configuration space and servicing the configuration access request; and
a configuration transaction logging unit operable to log incoming configuration access requests to track configuration accesses for the integrated circuit device.