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: