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,68 **** --- 59,70 ---- 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,225 **** 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_defs_t; typedef struct { char *driver_name; ! int 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 }, { "usb_ac", DRIVER_USB_AC }, { "usb_as", DRIVER_USB_AS }, { "hid", DRIVER_HID }, { "usb_mid", DRIVER_USB_MID }, { "ddivs_usbc", DRIVER_DDIVS_USBC }, --- 189,229 ---- devfsadm_print(debug_mid, "usb_link: minor_fini\n"); return (DEVFSADM_SUCCESS); } typedef enum { ! 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; ! 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,252 **** 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 flags = 0; int create_secondary_link = 0; minor_nm = di_minor_name(minor); drvr_nm = di_driver_name(node); --- 246,257 ---- 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; ! 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,314 **** --- 310,320 ---- 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: