Patent ID: 8527745

Claim:
An input/output (I/O) device comprising: a host interface configured to provide one or more I/O connections to one or more processing units via respective corresponding communication links; and a plurality of application hardware resources coupled to the host interface; wherein the host interface includes: a control unit; a plurality of groups of configuration space registers, each group corresponding to one of a plurality of functions; wherein each function includes one or more application hardware registers, wherein at least one of the application hardware registers is associated with a respective application hardware resource; and a plurality of application availability registers, each associated with a respective function and configured to indicate whether the one or more application hardware registers within the respective function are available for access by a corresponding application device software driver; wherein in response to receiving a request for a function level reset (FLR) of a particular function, the control unit is configured to: cause the associated application availability register to indicate that the one or more application hardware registers within the particular function is not available to the application device software driver; reset the corresponding group of configuration space registers accessed by system software within a predetermined amount of time; reset the associated respective application hardware resources; and update a timer field of the application availability register at predetermined intervals, wherein the timer field of the application availability register includes a value corresponding to a time until the one or more application hardware registers are available.