Print this page
NEX-17521 Unable to install Nexentastor on Lenovo SR650 platform
8702 PCI addresses with physaddr > 0xffffffff can't be mapped in
8703 pci/npe DDI_CTLOPS_REGSIZE should be 64-bit aware
8704 want OFF_MAX in the kernel
8705 unsupported 64-bit prefetch memory on pci-pci bridge
Contributed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Albert Lee <trisk@forkgnu.org>
9550 Create hub symlinks for xhci devices
Contributed by: Alexander Pyhalov <apyhalov@gmail.com>
Reviewed by: Andy Stormont <astormont@racktopsystems.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>

@@ -59,10 +59,12 @@
                                                 ILEVEL_0, usb_process },
         { "usb", DDI_NT_NEXUS, "ohci",  DRV_EXACT|TYPE_EXACT,
                                                 ILEVEL_0, usb_process },
         { "usb", DDI_NT_NEXUS, "ehci",  DRV_EXACT|TYPE_EXACT,
                                                 ILEVEL_0, usb_process },
+        { "usb", DDI_NT_NEXUS, "xhci",  DRV_EXACT|TYPE_EXACT,
+                                                ILEVEL_0, usb_process },
         { "usb", DDI_NT_SCSI_NEXUS, "scsa2usb", DRV_EXACT|TYPE_EXACT,
                                                 ILEVEL_0, usb_process },
         { "usb", DDI_NT_UGEN, "scsa2usb",       DRV_EXACT|TYPE_EXACT,
                                                 ILEVEL_0, usb_process },
         { "usb", DDI_NT_NEXUS, "uhci",  DRV_EXACT|TYPE_EXACT,

@@ -187,39 +189,41 @@
         devfsadm_print(debug_mid, "usb_link: minor_fini\n");
         return (DEVFSADM_SUCCESS);
 }
 
 typedef enum {
-        DRIVER_HUBD     = 0,
-        DRIVER_OHCI     = 1,
-        DRIVER_EHCI     = 2,
-        DRIVER_UHCI     = 3,
-        DRIVER_USB_AC   = 4,
-        DRIVER_USB_AS   = 5,
-        DRIVER_HID      = 6,
-        DRIVER_USB_MID  = 7,
-        DRIVER_DDIVS_USBC = 8,
-        DRIVER_SCSA2USB = 9,
-        DRIVER_USBPRN   = 10,
-        DRIVER_UGEN     = 11,
-        DRIVER_VIDEO    = 12,
-        DRIVER_HWAHC    = 13,
-        DRIVER_HWARC    = 14,
-        DRIVER_WUSB_CA  = 15,
-        DRIVER_UNKNOWN  = 16
+        DRIVER_HUBD,
+        DRIVER_OHCI,
+        DRIVER_EHCI,
+        DRIVER_UHCI,
+        DRIVER_XHCI,
+        DRIVER_USB_AC,
+        DRIVER_USB_AS,
+        DRIVER_HID,
+        DRIVER_USB_MID,
+        DRIVER_DDIVS_USBC,
+        DRIVER_SCSA2USB,
+        DRIVER_USBPRN,
+        DRIVER_UGEN,
+        DRIVER_VIDEO,
+        DRIVER_HWAHC,
+        DRIVER_HWARC,
+        DRIVER_WUSB_CA,
+        DRIVER_UNKNOWN
 } driver_defs_t;
 
 typedef struct {
         char    *driver_name;
-        int     index;
+        driver_defs_t   index;
 } driver_name_table_entry_t;
 
 driver_name_table_entry_t driver_name_table[] = {
         { "hubd",       DRIVER_HUBD },
         { "ohci",       DRIVER_OHCI },
         { "ehci",       DRIVER_EHCI },
         { "uhci",       DRIVER_UHCI },
+        { "xhci",       DRIVER_XHCI },
         { "usb_ac",     DRIVER_USB_AC },
         { "usb_as",     DRIVER_USB_AS },
         { "hid",        DRIVER_HID },
         { "usb_mid",    DRIVER_USB_MID },
         { "ddivs_usbc", DRIVER_DDIVS_USBC },

@@ -242,11 +246,12 @@
 usb_process(di_minor_t minor, di_node_t node)
 {
         devfsadm_enumerate_t rules[1];
         char *l_path, *p_path, *buf, *devfspath;
         char *minor_nm, *drvr_nm, *name = (char *)NULL;
-        int i, index;
+        int i;
+        driver_defs_t index;
         int flags = 0;
         int create_secondary_link = 0;
 
         minor_nm = di_minor_name(minor);
         drvr_nm = di_driver_name(node);

@@ -305,10 +310,11 @@
         switch (index) {
         case DRIVER_HUBD:
         case DRIVER_OHCI:
         case DRIVER_EHCI:
         case DRIVER_UHCI:
+        case DRIVER_XHCI:
                 rules[0] = hub_rules[0];        /* For HUBs */
                 name = "hub";
 
                 break;
         case DRIVER_USB_AC: