A USB hub comprising: a hub upstream port (104; 818); a plurality of hub downstream ports; a processor (106; 806); a memory (108; 808) communicatively coupled to the processor (106; 806) for storing USB host stack code and a plurality of configuration parameters, wherein the plurality of configuration parameters are stored in a database containing a plurality of records having a plurality of fields, each record corresponding to a particular USB device handled by the USB hub (100; 800), wherein each record comprises at least one entry corresponding to an enhanced feature of the respective USB device; a USB hub core (102; 802) having a core upstream port and a plurality of core downstream ports, the USB hub core (102; 802) operable to implement a USB hub interface between the core upstream port and the plurality of core downstream ports; and a plurality of multiplexors (114; 814), each multiplexor (114; 814) having: a first port communicatively coupled to one of the hub downstream ports, a second port communicatively coupled to one of the plurality of core downstream ports, a third port communicatively coupled to the processor (106; 806), and a select input communicatively coupled to the processor (106; 806) and operable to communicatively couple one of: the first port with the second port, the first port with the third port, and the first port with both the second port and the third port; wherein the processor (106; 806) is configured: to detect when a USB device is coupled to a first one of the plurality of hub downstream ports, to control the select input of a first multiplexor corresponding to the first hub downstream port so that the first port is connected to the third port, to run the USB host stack code, and to enumerate the USB device; to determine configuration parameters of the USB device coupled to the first one of the plurality of hub downstream ports from the database, wherein if a corresponding record indicates that the enhanced feature is available, providing said enhanced feature to the USB device. a hub upstream port (104; 818); a plurality of hub downstream ports; a processor (106; 806); a memory (108; 808) communicatively coupled to the processor (106; 806) for storing USB host stack code and a plurality of configuration parameters, wherein the plurality of configuration parameters are stored in a database containing a plurality of records having a plurality of fields, each record corresponding to a particular USB device handled by the USB hub (100; 800), wherein each record comprises at least one entry corresponding to an enhanced feature of the respective USB device; a USB hub core (102; 802) having a core upstream port and a plurality of core downstream ports, the USB hub core (102; 802) operable to implement a USB hub interface between the core upstream port and the plurality of core downstream ports; and a plurality of multiplexors (114; 814), each multiplexor (114; 814) having: a first port communicatively coupled to one of the hub downstream ports, a second port communicatively coupled to one of the plurality of core downstream ports, a third port communicatively coupled to the processor (106; 806), and a select input communicatively coupled to the processor (106; 806) and operable to communicatively couple one of: the first port with the second port, the first port with the third port, and the first port with both the second port and the third port; a first port communicatively coupled to one of the hub downstream ports, a second port communicatively coupled to one of the plurality of core downstream ports, a third port communicatively coupled to the processor (106; 806), and a select input communicatively coupled to the processor (106; 806) and operable to communicatively couple one of: the first port with the second port, the first port with the third port, and the first port with both the second port and the third port; wherein the processor (106; 806) is configured: to detect when a USB device is coupled to a first one of the plurality of hub downstream ports, to control the select input of a first multiplexor corresponding to the first hub downstream port so that the first port is connected to the third port, to run the USB host stack code, and to enumerate the USB device; to determine configuration parameters of the USB device coupled to the first one of the plurality of hub downstream ports from the database, wherein if a corresponding record indicates that the enhanced feature is available, providing said enhanced feature to the USB device. to detect when a USB device is coupled to a first one of the plurality of hub downstream ports, to control the select input of a first multiplexor corresponding to the first hub downstream port so that the first port is connected to the third port, to run the USB host stack code, and to enumerate the USB device; to determine configuration parameters of the USB device coupled to the first one of the plurality of hub downstream ports from the database, wherein if a corresponding record indicates that the enhanced feature is available, providing said enhanced feature to the USB device.