summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorDan McDonald <danmcd@mnx.io>2022-05-18 00:35:00 -0400
committerDan McDonald <danmcd@mnx.io>2022-05-18 00:35:00 -0400
commitbaac7cebc69e995ea935f1318f395a564ef90eed (patch)
treea9d42dc3c336cf29f46769ced98f60b3fe3cbcd3 /usr
parentbc6675686004ce88cff6faa2aac43d446bd19bf4 (diff)
parentd4039345c8fe6e54a31d17d91e86e393fdcf401b (diff)
downloadillumos-joyent-baac7cebc69e995ea935f1318f395a564ef90eed.tar.gz
[illumos-gate merge]
commit d4039345c8fe6e54a31d17d91e86e393fdcf401b 14628 ancient devicedb should be removed commit 68c72dd193abdcff98b7e21c4f9d7a4ba41d284b 14672 Add cxgbe alias for T62100-KR
Diffstat (limited to 'usr')
-rw-r--r--usr/src/cmd/boot/filelist/i386/filelist.ramdisk1
-rw-r--r--usr/src/pkg/manifests/driver-network-cxgbe.p5m3
-rw-r--r--usr/src/pkg/manifests/system-boot-real-mode.p5m7
-rw-r--r--usr/src/pkg/manifests/system-kernel.p5m3
-rw-r--r--usr/src/uts/common/io/i8042.c5
-rw-r--r--usr/src/uts/i86pc/io/isa.c11
-rw-r--r--usr/src/uts/intel/Makefile.files2
-rw-r--r--usr/src/uts/intel/config/Makefile10
-rw-r--r--usr/src/uts/intel/io/acpica/acpi_enum.c174
-rw-r--r--usr/src/uts/intel/io/acpica/isapnp_devs.c111
-rw-r--r--usr/src/uts/intel/io/acpica/master_ops.c433
-rw-r--r--usr/src/uts/intel/io/pci/pci_boot.c44
-rw-r--r--usr/src/uts/intel/os/driver_aliases1
-rw-r--r--usr/src/uts/intel/os/master428
-rw-r--r--usr/src/uts/intel/sys/acpica.h34
15 files changed, 234 insertions, 1033 deletions
diff --git a/usr/src/cmd/boot/filelist/i386/filelist.ramdisk b/usr/src/cmd/boot/filelist/i386/filelist.ramdisk
index 53d3936483..14d55d22da 100644
--- a/usr/src/cmd/boot/filelist/i386/filelist.ramdisk
+++ b/usr/src/cmd/boot/filelist/i386/filelist.ramdisk
@@ -1,6 +1,5 @@
boot/acpi/tables
boot/solaris/bootenv.rc
-boot/solaris/devicedb/master
etc/cluster/nodeid
etc/dacf.conf
etc/devices/devid_cache
diff --git a/usr/src/pkg/manifests/driver-network-cxgbe.p5m b/usr/src/pkg/manifests/driver-network-cxgbe.p5m
index e303cce7de..bbef613268 100644
--- a/usr/src/pkg/manifests/driver-network-cxgbe.p5m
+++ b/usr/src/pkg/manifests/driver-network-cxgbe.p5m
@@ -135,6 +135,7 @@ driver name=t4nex perms="* 0666 root sys" clone_perms="t4nex 0666 root sys" \
alias=pciex1425,6488 \
alias=pciex1425,6489 \
alias=pciex1425,648a \
- alias=pciex1425,648b devlink=type=ddi_ctl:devctl;minor1=t4nex\tt4nex\M2
+ alias=pciex1425,648b \
+ alias=pciex1425,6492 devlink=type=ddi_ctl:devctl;minor1=t4nex\tt4nex\M2
license cr_Sun license=cr_Sun
license lic_CDDL license=lic_CDDL
diff --git a/usr/src/pkg/manifests/system-boot-real-mode.p5m b/usr/src/pkg/manifests/system-boot-real-mode.p5m
index f6258f950f..a98e191b26 100644
--- a/usr/src/pkg/manifests/system-boot-real-mode.p5m
+++ b/usr/src/pkg/manifests/system-boot-real-mode.p5m
@@ -38,14 +38,7 @@ $(i386_ONLY)dir path=boot/solaris group=sys
$(i386_ONLY)hardlink path=boot/solaris.xpm target=splashimage.xpm
$(i386_ONLY)file path=boot/solaris/bootenv.rc group=sys \
original_name=SUNWrmodr:boot/solaris/bootenv.rc preserve=renamenew
-$(i386_ONLY)dir path=boot/solaris/devicedb group=sys
-$(i386_ONLY)file path=boot/solaris/devicedb/master group=sys \
- original_name=SUNWrmod:boot/solaris/devicedb/master preserve=true
$(i386_ONLY)file path=boot/splashimage.xpm group=sys
-$(i386_ONLY)dir path=usr group=sys
-$(i386_ONLY)dir path=usr/lib
-$(i386_ONLY)dir path=usr/lib/fs group=sys
-$(i386_ONLY)dir path=usr/lib/fs/ufs group=sys
$(i386_ONLY)legacy pkg=SUNWrmodr desc="Realmode Modules, (Root)" \
name="Realmode Modules, (Root)"
$(i386_ONLY)legacy pkg=SUNWrmodu desc="Realmode Modules, (Usr)" \
diff --git a/usr/src/pkg/manifests/system-kernel.p5m b/usr/src/pkg/manifests/system-kernel.p5m
index ad90b0329a..62e8a909c5 100644
--- a/usr/src/pkg/manifests/system-kernel.p5m
+++ b/usr/src/pkg/manifests/system-kernel.p5m
@@ -659,8 +659,7 @@ driver name=ufm perms="ufm 0666 root sys"
$(i386_ONLY)driver name=vgatext \
alias=pciclass,000100 \
alias=pciclass,030000 \
- alias=pciclass,030001 \
- alias=pnpPNP,900
+ alias=pciclass,030001
driver name=vnic perms="* 0666 root sys" clone_perms="vnic 0666 root sys"
driver name=wc perms="* 0600 root sys"
legacy pkg=SUNWckr \
diff --git a/usr/src/uts/common/io/i8042.c b/usr/src/uts/common/io/i8042.c
index cebfe4cf6c..a620e1fa42 100644
--- a/usr/src/uts/common/io/i8042.c
+++ b/usr/src/uts/common/io/i8042.c
@@ -1535,7 +1535,10 @@ alloc_kb_mouse(dev_info_t *i8042_dip, int nodes_needed)
int acpi_off = 0;
char *acpi_prop;
- /* don't alloc unless acpi is off */
+ /*
+ * If ACPI enumeration is not disabled and has taken place, return
+ * early and do nothing.
+ */
if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
DDI_PROP_DONTPASS, "acpi-enum", &acpi_prop) == DDI_PROP_SUCCESS) {
if (strcmp("off", acpi_prop) == 0) {
diff --git a/usr/src/uts/i86pc/io/isa.c b/usr/src/uts/i86pc/io/isa.c
index 2eea45ebe5..9f382ead98 100644
--- a/usr/src/uts/i86pc/io/isa.c
+++ b/usr/src/uts/i86pc/io/isa.c
@@ -1206,13 +1206,20 @@ isa_enumerate(int reprogram)
ndi_devi_enter(isa_dip, &circ);
+ /*
+ * Check whether ACPI enumeration is disabled.
+ *
+ * Note this property may also be set if ACPI ISA enumeration has
+ * failed, to communicate that to the i8042 nexus.
+ */
if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
DDI_PROP_DONTPASS, "acpi-enum", &acpi_prop) == DDI_PROP_SUCCESS) {
+ /* 0 == match == false */
acpi_enum = strcmp("off", acpi_prop);
ddi_prop_free(acpi_prop);
}
- if (acpi_enum) {
+ if (acpi_enum != 0) {
if (acpi_isa_device_enum(isa_dip)) {
ndi_devi_exit(isa_dip, circ);
if (isa_resource_setup() != NDI_SUCCESS) {
@@ -1246,7 +1253,6 @@ isa_enumerate(int reprogram)
(pnode_t)DEVI_SID_NODEID, &xdip);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
"compatible", "pnpPNP,500");
- /* This should be gotten from master file: */
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
"model", "Standard PC COM port");
(void) ndi_prop_update_int_array(DDI_DEV_T_NONE, xdip,
@@ -1346,7 +1352,6 @@ enumerate_BIOS_serial(dev_info_t *isa_dip)
(pnode_t)DEVI_SID_NODEID, &xdip);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
"compatible", "pnpPNP,500");
- /* This should be gotten from master file: */
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
"model", "Standard PC COM port");
(void) ndi_prop_update_int_array(DDI_DEV_T_NONE, xdip,
diff --git a/usr/src/uts/intel/Makefile.files b/usr/src/uts/intel/Makefile.files
index bf5d51e9a7..c062f7400f 100644
--- a/usr/src/uts/intel/Makefile.files
+++ b/usr/src/uts/intel/Makefile.files
@@ -251,7 +251,7 @@ ACPICA_OBJS += \
utxferror.o utxfinit.o utxfmutex.o utresdecode.o \
utstrsuppt.o utstrtoul64.o \
\
- acpi_enum.o acpica_ec.o acpica.o ahids.o master_ops.o \
+ acpi_enum.o acpica_ec.o acpica.o ahids.o isapnp_devs.o \
osl_ml.o osl.o
diff --git a/usr/src/uts/intel/config/Makefile b/usr/src/uts/intel/config/Makefile
index b5019e887f..35233a76e2 100644
--- a/usr/src/uts/intel/config/Makefile
+++ b/usr/src/uts/intel/config/Makefile
@@ -51,13 +51,11 @@ SECCONFIG = device_policy priv_names
BOOTIMAGE = splashimage.xpm
ALTBOOTIMAGE = solaris.xpm # Temporary, for compatibility
BOOTENVRC = bootenv.rc
-DEVMASTER = master
FILEMODE = 644
ROOTETC = $(ROOT)/etc
ROOTETCSEC = $(ROOTETC)/security
ROOTBOOT = $(ROOT)/boot
BOOTSOLARIS = $(ROOTBOOT)/solaris
-BOOTDEVICEDB = $(BOOTSOLARIS)/devicedb
SRCFILES = $(CONFIGFILES:%=$(SRCDIR)/%) $(SECCONFIG:%=$(SRCDIR)/%)
SRCFILES += $(BOOTIMAGE:%=$(SRCDIR)/%)
@@ -66,7 +64,6 @@ SRCFILES += $(DEVMASTER:%=$(SRCDIR)/%)
ROOTCONFIGFILES = $(CONFIGFILES:%=$(ROOTETC)/%) $(SECCONFIG:%=$(ROOTETCSEC)/%)
ROOTCONFIGFILES += $(BOOTIMAGE:%=$(ROOTBOOT)/%)
ROOTCONFIGFILES += $(BOOTENVRC:%=$(BOOTSOLARIS)/%)
-ROOTCONFIGFILES += $(DEVMASTER:%=$(BOOTDEVICEDB)/%)
ROOTALTBOOTIMAGE = $(ALTBOOTIMAGE:%=$(ROOTBOOT)/%)
#
@@ -101,19 +98,12 @@ $(ROOTBOOT)/%: $(ROOTBOOT) $(SRCDIR)/%
$(ROOTBOOT)/solaris.xpm: $(ROOTBOOT)/splashimage.xpm
$(RM) $@; $(LN) $(ROOTBOOT)/splashimage.xpm $@
-
$(BOOTSOLARIS):
$(INS) -s -d -m $(DIRMODE) $@
$(BOOTSOLARIS)/%: $(BOOTSOLARIS) $(SRCDIR)/%
$(INS.file)
-$(BOOTDEVICEDB):
- $(INS) -s -d -m $(DIRMODE) $@
-
-$(BOOTDEVICEDB)/%: $(BOOTDEVICEDB) $(SRCDIR)/%
- $(INS.file)
-
$(SRCDIR)/priv_names: $(PRIVS_DEF) $(PRIVS_AWK)
$(AWK) -f $(PRIVS_AWK) < $(PRIVS_DEF) -v pnamesfile=$@
diff --git a/usr/src/uts/intel/io/acpica/acpi_enum.c b/usr/src/uts/intel/io/acpica/acpi_enum.c
index 2ac211f0d7..8643431801 100644
--- a/usr/src/uts/intel/io/acpica/acpi_enum.c
+++ b/usr/src/uts/intel/io/acpica/acpi_enum.c
@@ -19,12 +19,11 @@
* CDDL HEADER END
*/
/*
- * Copyright 2018, Joyent, Inc.
- * Copyright (c) 2012 Gary Mills
- *
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
+ * Copyright (c) 2012 Gary Mills
+ * Copyright 2018, Joyent, Inc.
* Copyright 2021 Racktop Systems, Inc.
*/
@@ -53,11 +52,9 @@ typedef struct intrs {
uint_t i_alloc;
} intrs_t;
-static char keyboard_alias[] = "keyboard";
-static char mouse_alias[] = "mouse";
-#define ACPI_ENUM_DEBUG "acpi_enum_debug"
+static uint32_t acpi_enum_debug = 0x00;
#define PARSE_RESOURCES_DEBUG 0x0001
-#define MASTER_LOOKUP_DEBUG 0x0002
+#define ISAPNP_LOOKUP_DEBUG 0x0002
#define DEVICES_NOT_ENUMED 0x0004
#define PARSE_RES_IRQ 0x0008
#define PARSE_RES_DMA 0x0010
@@ -66,9 +63,7 @@ static char mouse_alias[] = "mouse";
#define PARSE_RES_ADDRESS 0x0080
#define ISA_DEVICE_ENUM 0x1000
#define PROCESS_CIDS 0x2000
-static unsigned long acpi_enum_debug = 0x00;
-static char USED_RESOURCES[] = "used-resources";
static dev_info_t *usedrdip = NULL;
static intrs_t used_interrupts;
static unsigned short used_dmas = 0;
@@ -164,7 +159,7 @@ add_used_io_mem(struct regspec *io, int io_count)
used_io_mem_t *used;
for (i = 0; i < io_count; i++) {
- used = (used_io_mem_t *)kmem_zalloc(sizeof (used_io_mem_t),
+ used = kmem_zalloc(sizeof (used_io_mem_t),
KM_SLEEP);
used->start_addr = io[i].regspec_addr;
used->length = io[i].regspec_size;
@@ -559,7 +554,7 @@ parse_resources(ACPI_HANDLE handle, dev_info_t *xdip, char *path)
return (status);
break;
}
- io = (struct regspec *)kmem_zalloc(sizeof (struct regspec) *
+ io = kmem_zalloc(sizeof (struct regspec) *
MAX_PARSED_ACPI_RESOURCES, KM_SLEEP);
current_ptr = buf.Pointer;
last_ptr = (char *)buf.Pointer + buf.Length;
@@ -678,7 +673,7 @@ parse_resources(ACPI_HANDLE handle, dev_info_t *xdip, char *path)
/* keyboard mouse is under i8042, everything else under isa */
static dev_info_t *
-get_bus_dip(char *nodename, dev_info_t *isa_dip)
+get_bus_dip(const char *nodename, dev_info_t *isa_dip)
{
static dev_info_t *i8042_dip = NULL;
struct regspec i8042_regs[] = {
@@ -687,8 +682,8 @@ get_bus_dip(char *nodename, dev_info_t *isa_dip)
};
int i8042_intrs[] = {0x1, 0xc};
- if (strcmp(nodename, keyboard_alias) != 0 &&
- strcmp(nodename, mouse_alias) != 0)
+ if (strcmp(nodename, "keyboard") != 0 &&
+ strcmp(nodename, "mouse") != 0)
return (isa_dip);
if (i8042_dip)
@@ -706,27 +701,6 @@ get_bus_dip(char *nodename, dev_info_t *isa_dip)
return (i8042_dip);
}
-/*
- * put content of properties (if any) to dev info tree at branch xdip
- * return non-zero if a "compatible" property was processed, zero otherwise
- *
- */
-static int
-process_properties(dev_info_t *xdip, property_t *properties)
-{
- int rv = 0;
-
- while (properties != NULL) {
- (void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- properties->name, properties->value);
- if (strcmp(properties->name, "compatible") == 0)
- rv = 1;
- properties = properties->next;
- }
-
- return (rv);
-}
-
void
eisa_to_str(ACPI_INTEGER id, char *np)
{
@@ -772,13 +746,13 @@ process_cids(ACPI_OBJECT *rv, device_id_t **dd)
switch (obj.Type) {
case ACPI_TYPE_INTEGER:
eisa_to_str(obj.Integer.Value, tmp_cidstr);
- d = mf_alloc_device_id();
+ d = kmem_zalloc(sizeof (device_id_t), KM_SLEEP);
d->id = strdup(tmp_cidstr);
d->next = *dd;
*dd = d;
break;
case ACPI_TYPE_STRING:
- d = mf_alloc_device_id();
+ d = kmem_zalloc(sizeof (device_id_t), KM_SLEEP);
d->id = strdup(obj.String.Pointer);
d->next = *dd;
*dd = d;
@@ -834,8 +808,7 @@ create_compatible_property(dev_info_t *dip, device_id_t *ids)
d = d->next;
}
- /* create string array */
- strs = (char **)kmem_zalloc(list_len * sizeof (char *), KM_SLEEP);
+ strs = kmem_zalloc(list_len * sizeof (char *), KM_SLEEP);
i = 0;
d = ids;
while (d != NULL) {
@@ -866,17 +839,16 @@ isa_acpi_callback(ACPI_HANDLE ObjHandle, uint32_t NestingLevel, void *a,
{
_NOTE(ARGUNUSED(NestingLevel, b))
- ACPI_BUFFER rb;
- ACPI_DEVICE_INFO *info = NULL;
- char *path = NULL;
- char *hidstr = NULL;
- char tmp_cidstr[8]; /* EISAID size */
- dev_info_t *dip = (dev_info_t *)a;
- dev_info_t *xdip = NULL;
- device_id_t *d, *device_ids = NULL;
- const master_rec_t *m;
- int compatible_present = 0;
- int status;
+ ACPI_BUFFER rb;
+ ACPI_DEVICE_INFO *info = NULL;
+ char *path = NULL;
+ char *hidstr = NULL;
+ char tmp_cidstr[8]; /* EISAID size */
+ dev_info_t *dip = (dev_info_t *)a;
+ dev_info_t *xdip = NULL;
+ device_id_t *d, *device_ids = NULL;
+ const isapnp_desc_t *m;
+ int status;
/*
* get full ACPI pathname for object
@@ -947,13 +919,13 @@ isa_acpi_callback(ACPI_HANDLE ObjHandle, uint32_t NestingLevel, void *a,
switch (rv->Type) {
case ACPI_TYPE_INTEGER:
eisa_to_str(rv->Integer.Value, tmp_cidstr);
- d = mf_alloc_device_id();
+ d = kmem_zalloc(sizeof (device_id_t), KM_SLEEP);
d->id = strdup(tmp_cidstr);
d->next = device_ids;
device_ids = d;
break;
case ACPI_TYPE_STRING:
- d = mf_alloc_device_id();
+ d = kmem_zalloc(sizeof (device_id_t), KM_SLEEP);
d->id = strdup(rv->String.Pointer);
d->next = device_ids;
device_ids = d;
@@ -970,52 +942,33 @@ isa_acpi_callback(ACPI_HANDLE ObjHandle, uint32_t NestingLevel, void *a,
/*
* Add _HID last so it's at the head of the list
*/
- d = mf_alloc_device_id();
+ d = kmem_zalloc(sizeof (device_id_t), KM_SLEEP);
d->id = strdup(hidstr);
d->next = device_ids;
device_ids = d;
/*
- * master_file_lookup() expects _HID first in device_ids
+ * isapnp_desc_lookup() expects _HID first in device_ids
*/
- if ((m = master_file_lookup(device_ids)) != NULL) {
- /* PNP description found in master table */
+ if ((m = isapnp_desc_lookup(device_ids)) != NULL) {
+ /* PNP description found in isapnp table */
if (!(strncmp(hidstr, "ACPI", 4))) {
dip = ddi_root_node();
} else {
- dip = get_bus_dip(m->name, dip);
+ dip = get_bus_dip(m->ipnp_name, dip);
}
- ndi_devi_alloc_sleep(dip, m->name,
+ ndi_devi_alloc_sleep(dip, m->ipnp_name,
(pnode_t)DEVI_SID_NODEID, &xdip);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "model", m->description);
- compatible_present = process_properties(xdip, m->properties);
- } else {
- /* for ISA devices not known to the master file */
- if (!(strncmp(hidstr, "PNP03", 5))) {
- /* a keyboard device includes PNP03xx */
- dip = get_bus_dip(keyboard_alias, dip);
- ndi_devi_alloc_sleep(dip, keyboard_alias,
- (pnode_t)DEVI_SID_NODEID, &xdip);
- (void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "compatible", "pnpPNP,303");
+ "model", (char *)m->ipnp_model);
+
+ if (m->ipnp_compat != NULL) {
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "model", "PNP03xx keyboard");
- } else {
- if (!(strncmp(hidstr, "PNP0F", 5))) {
- /* a mouse device include PNP0Fxx */
- dip = get_bus_dip(mouse_alias, dip);
- ndi_devi_alloc_sleep(dip, mouse_alias,
- (pnode_t)DEVI_SID_NODEID, &xdip);
- (void) ndi_prop_update_string(DDI_DEV_T_NONE,
- xdip, "compatible", "pnpPNP,f03");
- (void) ndi_prop_update_string(DDI_DEV_T_NONE,
- xdip, "model", "PNP0Fxx mouse");
- } else {
- (void) parse_resources(ObjHandle, xdip, path);
- goto done;
- }
+ "compatible", (char *)m->ipnp_compat);
}
+ } else {
+ (void) parse_resources(ObjHandle, xdip, path);
+ goto done;
}
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip, "acpi-namespace",
@@ -1024,21 +977,14 @@ isa_acpi_callback(ACPI_HANDLE ObjHandle, uint32_t NestingLevel, void *a,
(void) parse_resources(ObjHandle, xdip, path);
/* Special processing for mouse and keyboard devices per IEEE 1275 */
- /* if master entry doesn't contain "compatible" then we add default */
- if (strcmp(m->name, keyboard_alias) == 0) {
+ if (strcmp(m->ipnp_name, "keyboard") == 0) {
(void) ndi_prop_update_int(DDI_DEV_T_NONE, xdip, "reg", 0);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "device-type", keyboard_alias);
- if (!compatible_present)
- (void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "compatible", "pnpPNP,303");
- } else if (strcmp(m->name, mouse_alias) == 0) {
+ "device-type", "keyboard");
+ } else if (strcmp(m->ipnp_name, "mouse") == 0) {
(void) ndi_prop_update_int(DDI_DEV_T_NONE, xdip, "reg", 1);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "device-type", mouse_alias);
- if (!compatible_present)
- (void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "compatible", "pnpPNP,f03");
+ "device-type", "mouse");
}
/*
@@ -1057,7 +1003,10 @@ done:
device_id_t *next;
next = d->next;
- mf_free_device_id(d);
+ if (d->id != NULL)
+ strfree(d->id);
+
+ kmem_free(d, sizeof (device_id_t));
d = next;
}
@@ -1131,7 +1080,7 @@ used_res_io_mem(char *nodename, int *count, used_io_mem_t **head)
int i;
*count *= 2;
- io = (int *)kmem_zalloc(sizeof (int)*(*count), KM_SLEEP);
+ io = kmem_zalloc(sizeof (int)*(*count), KM_SLEEP);
for (i = 0; i < *count; i += 2) {
used_io_mem_t *prev;
if (used != NULL) {
@@ -1144,7 +1093,7 @@ used_res_io_mem(char *nodename, int *count, used_io_mem_t **head)
}
(void) ndi_prop_update_int_array(DDI_DEV_T_NONE, usedrdip,
nodename, (int *)io, *count);
- kmem_free(io, sizeof (int)*(*count));
+ kmem_free(io, sizeof (int) * (*count));
*head = NULL;
}
@@ -1159,15 +1108,15 @@ acpi_isa_device_enum(dev_info_t *isa_dip)
char *acpi_prop;
if (ddi_prop_lookup_string(DDI_DEV_T_ANY, ddi_root_node(),
- DDI_PROP_DONTPASS, ACPI_ENUM_DEBUG, &acpi_prop) ==
+ DDI_PROP_DONTPASS, "acpi_enum_debug", &acpi_prop) ==
DDI_PROP_SUCCESS) {
- long data;
- if (ddi_strtol(acpi_prop, NULL, 0, &data) == 0) {
- acpi_enum_debug = (unsigned long)data;
+ unsigned long data;
+ if (ddi_strtoul(acpi_prop, NULL, 0, &data) == 0) {
+ acpi_enum_debug = (uint32_t)data;
e_ddi_prop_remove(DDI_DEV_T_NONE, ddi_root_node(),
- ACPI_ENUM_DEBUG);
+ "acpi_enum_debug");
e_ddi_prop_update_int(DDI_DEV_T_NONE,
- ddi_root_node(), ACPI_ENUM_DEBUG, data);
+ ddi_root_node(), "acpi_enum_debug", data);
}
ddi_prop_free(acpi_prop);
}
@@ -1177,22 +1126,26 @@ acpi_isa_device_enum(dev_info_t *isa_dip)
}
if (acpica_init() != AE_OK) {
- cmn_err(CE_WARN, "!isa_enum: init failed");
- /* Note, pickup by i8042 nexus */
+ cmn_err(CE_WARN, "!acpi_isa_device_enum: init failed");
+ /*
+ * Note: `acpi-enum` is a private boolean property that is
+ * respected both as a user-set property (by the isa nexus
+ * which calls us), and set by us on failure (here) to
+ * communicate to the i8042 nexus that ACPI enumeration has
+ * not taken place and that it must enumerate.
+ */
(void) e_ddi_prop_update_string(DDI_DEV_T_NONE,
ddi_root_node(), "acpi-enum", "off");
return (0);
}
- usedrdip = ddi_find_devinfo(USED_RESOURCES, -1, 0);
+ usedrdip = ddi_find_devinfo("used-resources", -1, 0);
if (usedrdip == NULL) {
- ndi_devi_alloc_sleep(ddi_root_node(), USED_RESOURCES,
+ ndi_devi_alloc_sleep(ddi_root_node(), "used-resources",
(pnode_t)DEVI_SID_NODEID, &usedrdip);
}
- process_master_file();
-
/*
* Do the actual enumeration. Avoid AcpiGetDevices because it
* has an unnecessary internal callback that duplicates
@@ -1201,7 +1154,6 @@ acpi_isa_device_enum(dev_info_t *isa_dip)
(void) AcpiWalkNamespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
UINT32_MAX, isa_acpi_callback, NULL, isa_dip, NULL);
- free_master_data();
used_res_interrupts();
used_res_dmas();
used_res_io_mem("device-memory", &used_mem_count, &used_mem_head);
diff --git a/usr/src/uts/intel/io/acpica/isapnp_devs.c b/usr/src/uts/intel/io/acpica/isapnp_devs.c
new file mode 100644
index 0000000000..61b624e521
--- /dev/null
+++ b/usr/src/uts/intel/io/acpica/isapnp_devs.c
@@ -0,0 +1,111 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#include <sys/acpica.h>
+#include <sys/kmem.h>
+#include <sys/types.h>
+
+/*
+ * For historical reasons certain ISA or onboard devices have their name in
+ * the device tree altered and other changes made.
+ *
+ * If a device ID matches here, we will create the devi node name, model, and
+ * (if set) compatible property. The compatible property should already be in
+ * 1275 form, and _overwrites_ any identifier from enumeration.
+ *
+ * In most cases, ISA-like devices not present in this table _will not be
+ * enumerated_. Serial ports are a special case handled because of bugs in
+ * old ACPI tables, see enumerate_BIOS_serial() in the isa(4D) nexus.
+ */
+static const isapnp_desc_t isapnp_descs[] = {
+ /*
+ * This wildcard entry catches anything in the PNP keyboard class, and
+ * sets it compatible with the IBM Enhanced 101/102-key, to which
+ * kb8042 actually binds
+ */
+ { "PNP03", B_TRUE, "keyboard", "pnpPNP,303", "System keyboard" },
+
+ /* ecpp(4D) binds to "lp" */
+ { "PNP0400", B_FALSE, "lp", NULL, "Standard LPT printer port" },
+ { "PNP0401", B_FALSE, "lp", NULL, "ECP printer port" },
+ { "ISY0060", B_FALSE, "lp", NULL, "Parallel port" },
+
+ /* asy(4D) binds to "asy" */
+ { "PNP0500", B_FALSE, "asy", NULL, "Standard PC COM port" },
+ { "PNP0501", B_FALSE, "asy", NULL, "16550A-compatible COM port" },
+ { "ISY0020", B_FALSE, "asy", NULL, "Serial port" },
+
+ /* fdc(4D) binds to "fdc" */
+ { "PNP0700", B_FALSE, "fdc", NULL,
+ "PC standard floppy disk controller" },
+ { "PNP0701", B_FALSE, "fdc", NULL,
+ "Standard floppy controller supporting MS Device Bay Spec" },
+ { "ISY0050", B_FALSE, "fdc", NULL,
+ "Floppy disk controller" },
+
+ /* tpm(4D) binds to "tpm" */
+ { "PNP0C31", B_FALSE, "tpm", NULL, "Generic Trusted Platform Module" },
+ { "ATM1200", B_FALSE, "tpm", NULL, "Generic Trusted Platform Module" },
+ { "IFX0102", B_FALSE, "tpm", NULL, "Generic Trusted Platform Module" },
+ { "BCM0101", B_FALSE, "tpm", NULL, "Generic Trusted Platform Module" },
+ { "NSC1200", B_FALSE, "tpm", NULL, "Generic Trusted Platform Module" },
+
+ /*
+ * This wildcard entry catches anything in the PNP mouse class, and
+ * sets it compatible with the Microsoft PS/2-style, to which
+ * mouse8042 actually binds.
+ */
+ { "PNP0F", B_TRUE, "mouse", "pnpPNP,f03", "System mouse" },
+
+ { "ISY0030", B_FALSE, "mouse", "pnpPNP,f03", "System mouse" },
+ { "SYN010B", B_FALSE, "mouse", "pnpPNP,f03", "Synaptics mouse pad" },
+
+ { NULL, B_FALSE, NULL, NULL, NULL },
+};
+
+/*
+ * Return the first record found matching the pnpid list
+ */
+const isapnp_desc_t *
+isapnp_desc_lookup(const device_id_t *pnpid)
+{
+ const device_id_t *d;
+ const isapnp_desc_t *m;
+
+ while (pnpid != NULL) {
+ for (m = isapnp_descs; m->ipnp_id != NULL; m++) {
+ if (m->ipnp_prefix) {
+ if (strncmp(pnpid->id, m->ipnp_id,
+ strlen(m->ipnp_id)) == 0) {
+ return (m);
+ }
+ } else if (strcmp(pnpid->id, m->ipnp_id) == 0) {
+ return (m);
+ }
+ }
+ pnpid = pnpid->next;
+ }
+
+ return (NULL);
+}
diff --git a/usr/src/uts/intel/io/acpica/master_ops.c b/usr/src/uts/intel/io/acpica/master_ops.c
deleted file mode 100644
index 676950c5db..0000000000
--- a/usr/src/uts/intel/io/acpica/master_ops.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#include <sys/kobj.h>
-#include <sys/kobj_lex.h>
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-#include <sys/sunndi.h>
-#include <sys/acpi/acpi.h>
-#include <sys/acpica.h>
-
-#define masterfile "/boot/solaris/devicedb/master"
-
-/*
- * Internal definitions
- */
-
-typedef enum {
- MF_UNEXPECTED = -1,
- MF_IDENT,
- MF_STRING,
- MF_EOF,
- MF_NEWLINE,
- MF_EQUALS,
- MF_BIT_OR
-} mftoken_t;
-
-typedef enum {
- MF_INIT,
- MF_DEVID,
- MF_NAME,
- MF_DEVTYPE,
- MF_BUSTYPE,
- MF_BEFNAME,
- MF_DESCRIPTION,
- MF_PROPNAME,
- MF_PROPASSIGN,
- MF_PROPVAL,
- MF_VERSION_DONE,
- MF_VALID_DONE,
- MF_ERROR_DONE
-} mfparse_t;
-
-
-static master_rec_t *master_list = NULL;
-
-device_id_t *
-mf_alloc_device_id()
-{
- return ((device_id_t *)kmem_zalloc(sizeof (device_id_t), KM_SLEEP));
-}
-
-void
-mf_free_device_id(device_id_t *d)
-{
- if (d->id != NULL)
- strfree(d->id);
-
- kmem_free(d, sizeof (device_id_t));
-}
-
-static property_t *
-mf_alloc_property()
-{
- return ((property_t *)kmem_zalloc(sizeof (property_t), KM_SLEEP));
-}
-
-static void
-mf_free_property(property_t *p)
-{
- if (p->name != NULL)
- strfree(p->name);
-
- if (p->value != NULL)
- strfree(p->value);
-
- kmem_free(p, sizeof (property_t));
-}
-
-static master_rec_t *
-mf_alloc_master_rec()
-{
- return ((master_rec_t *)kmem_zalloc(sizeof (master_rec_t), KM_SLEEP));
-}
-
-static void
-mf_free_master_rec(master_rec_t *m)
-{
- device_id_t *d;
- property_t *p;
-
- if (m->name != NULL)
- strfree(m->name);
-
- if (m->description != NULL)
- strfree(m->description);
-
- d = m->device_ids;
- while (d != NULL) {
- device_id_t *next;
-
- next = d->next;
- mf_free_device_id(d);
- d = next;
- }
-
- p = m->properties;
- while (p != NULL) {
- property_t *next;
-
- next = p->next;
- mf_free_property(p);
- p = next;
- }
-
- kmem_free(m, sizeof (master_rec_t));
-}
-
-void
-free_master_data()
-{
- master_rec_t *m;
-
- m = master_list;
- while (m != NULL) {
- master_rec_t *next;
-
- next = m->next;
- mf_free_master_rec(m);
- m = next;
- }
- master_list = NULL;
-}
-
-/*
- * Unfortunately, kobj_lex() is too sophisticated for our needs
- */
-static mftoken_t
-mf_lex(struct _buf *file, char *val, size_t size)
-{
- char *cp;
- int ch, badquote;
- size_t remain;
- mftoken_t token = MF_UNEXPECTED;
-
- if (size < 2)
- return (token); /* MF_UNEXPECTED */
-
- cp = val;
-
- /* skip leading whitespace */
- while ((ch = kobj_getc(file)) == ' ' || ch == '\t')
- ;
-
- /* strip comments */
- if (ch == '#') {
- while ((ch = kobj_getc(file)) != '\n' && ch != '\r' &&
- ch != -1)
- ;
- }
-
- remain = size - 1;
- *cp++ = (char)ch;
- switch (ch) {
- case -1:
- token = MF_EOF;
- break;
- case '\n':
- case '\r':
- token = MF_NEWLINE;
- break;
- case '=':
- token = MF_EQUALS;
- break;
- case '|':
- token = MF_BIT_OR;
- break;
- case '"':
- remain++;
- cp--;
- badquote = 0;
- while (!badquote && (ch = kobj_getc(file)) != '"') {
- switch (ch) {
- case '\n':
- case -1:
- remain = size - 1;
- cp = val;
- *cp++ = '\n';
- badquote = 1;
- /* since we consumed the newline/EOF */
- (void) kobj_ungetc(file);
- break;
- default:
- if (--remain == 0) {
- token = MF_UNEXPECTED;
- goto out;
- }
- *cp++ = (char)ch;
- break;
- }
- }
- token = MF_STRING;
- break;
- default:
- do {
- if (--remain == 0) {
- token = MF_UNEXPECTED;
- break;
- }
-
- token = MF_IDENT;
- *cp++ = (char)(ch = kobj_getc(file));
-
- /* if terminating character, break out */
- if ((ch == -1) || (ch == ' ') || (ch == '\t') ||
- (ch == '\n') || (ch == '\r') || (ch == '=') ||
- (ch == '|')) {
- (void) kobj_ungetc(file);
- remain++;
- cp--;
- break;
- }
-
- if ((ch == '#') || (ch == '"'))
- token = MF_UNEXPECTED;
- } while (token != MF_UNEXPECTED);
- break;
- }
-out:
- *cp = '\0';
-
- return (token);
-}
-
-static master_rec_t *
-get_line(struct _buf *file)
-{
- master_rec_t *m = NULL;
- device_id_t *d = NULL;
- property_t *p = NULL;
- mftoken_t token;
- char tokval[MAXPATHLEN];
- mfparse_t parse_state;
-
- parse_state = MF_INIT;
- token = mf_lex(file, tokval, sizeof (tokval));
- while (token != MF_EOF) {
- switch (parse_state) {
- case MF_INIT:
- m = mf_alloc_master_rec();
- parse_state = MF_DEVID;
- /*FALLTHROUGH*/
- case MF_DEVID:
- if (token == MF_IDENT) {
- d = mf_alloc_device_id();
- d->id = strdup(tokval);
- d->next = m->device_ids;
- m->device_ids = d;
- parse_state = MF_NAME;
- } else if (token != MF_NEWLINE)
- parse_state = MF_ERROR_DONE;
- break;
- case MF_NAME:
- if (token == MF_IDENT) {
- m->name = strdup(tokval);
- parse_state = MF_DEVTYPE;
- } else if (token == MF_BIT_OR) {
- parse_state = MF_DEVID;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_DEVTYPE:
- if (token == MF_IDENT) {
- /* device_type not used */
- parse_state = MF_BUSTYPE;
- } else if (token == MF_NEWLINE) {
- /* version line ignored */
- parse_state = MF_VERSION_DONE;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_BUSTYPE:
- if (token == MF_IDENT) {
- /* bus_type ignored */
- parse_state = MF_BEFNAME;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_BEFNAME:
- if (token == MF_IDENT) {
- /* realmode driver name ignored */
- parse_state = MF_DESCRIPTION;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_DESCRIPTION:
- if (token == MF_STRING) {
- m->description = strdup(tokval);
- parse_state = MF_PROPNAME;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_PROPNAME:
- if (token == MF_IDENT) {
- p = mf_alloc_property();
- p->name = strdup(tokval);
- parse_state = MF_PROPASSIGN;
- } else if (token == MF_NEWLINE) {
- parse_state = MF_VALID_DONE;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_PROPASSIGN:
- if (token == MF_EQUALS) {
- parse_state = MF_PROPVAL;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_PROPVAL:
- if (token == MF_STRING || token == MF_IDENT) {
- p->value = strdup(tokval);
- p->next = m->properties;
- /* delete properties which begin with '$' */
- if (*p->name == '$') {
- mf_free_property(p);
- } else
- m->properties = p;
- p = NULL;
- parse_state = MF_PROPNAME;
- } else
- parse_state = MF_ERROR_DONE;
- break;
- case MF_VERSION_DONE:
- case MF_VALID_DONE:
- case MF_ERROR_DONE:
- /* terminating states handled outside switch() */
- break;
- }
-
- if (parse_state == MF_VERSION_DONE) {
- /* ignore version line */
- mf_free_master_rec(m);
- parse_state = MF_INIT;
- } else if (parse_state == MF_VALID_DONE) {
- /* valid line */
- break;
- } else if (parse_state == MF_ERROR_DONE) {
- mf_free_master_rec(m);
- if (p != NULL)
- mf_free_property(p);
- /*
- * Error in master file. Should never happen
- * since master file is not user-edited. Eat rest
- * of line to attempt error recovery
- */
- cmn_err(CE_NOTE, "!error in %s", masterfile);
- while (token != MF_NEWLINE && token != MF_EOF)
- token = mf_lex(file, tokval, sizeof (tokval));
- parse_state = MF_INIT;
- continue;
- }
-
- token = mf_lex(file, tokval, sizeof (tokval));
- }
-
- return (m);
-}
-
-void
-process_master_file()
-{
- struct _buf *file;
- master_rec_t *m;
-
- if ((file = kobj_open_file(masterfile)) == (struct _buf *)-1) {
- cmn_err(CE_WARN, "!cannot open master file: %s", masterfile);
- return;
- }
-
- while ((m = get_line(file)) != NULL) {
- m->next = master_list;
- master_list = m;
- }
-
- kobj_close_file(file);
-}
-
-/*
- * Return the first master file record found matching pnpid list
- */
-const master_rec_t *
-master_file_lookup(device_id_t *pnpid)
-{
- master_rec_t *m;
- device_id_t *d;
-
- while (pnpid != NULL) {
- m = master_list;
- while (m != NULL) {
- d = m->device_ids;
- while (d != NULL) {
- if (strcmp(pnpid->id, d->id) == 0)
- return (m);
- d = d->next;
- }
- m = m->next;
- }
- pnpid = pnpid->next;
- }
-
- return (NULL);
-}
diff --git a/usr/src/uts/intel/io/pci/pci_boot.c b/usr/src/uts/intel/io/pci/pci_boot.c
index 6d72fe6507..d5de14a9bc 100644
--- a/usr/src/uts/intel/io/pci/pci_boot.c
+++ b/usr/src/uts/intel/io/pci/pci_boot.c
@@ -1740,6 +1740,18 @@ enumerate_bus_devs(uchar_t bus, int config_op)
}
}
+/*
+ * As a workaround for devices which is_pciide() (below, which see) would not
+ * match due to device issues, check an undocumented device tree property
+ * 'pci-ide', the value of which is a 1275 device identifier.
+ *
+ * Should a device matching this (in normal 'compatible' order) be found, and
+ * the device not otherwise bound, it will be have its node name changed to
+ * 'pci-ide' so the pci-ide driver will attach.
+ *
+ * This can be set via `eeprom pci-ide=pciXXXX,YYYY` (see eeprom(8)) or
+ * otherwise added to bootenv.rc.
+ */
static int
check_pciide_prop(uchar_t revid, ushort_t venid, ushort_t devid,
ushort_t subvenid, ushort_t subdevid)
@@ -1790,18 +1802,22 @@ static int
is_pciide(uchar_t basecl, uchar_t subcl, uchar_t revid,
ushort_t venid, ushort_t devid, ushort_t subvenid, ushort_t subdevid)
{
- struct ide_table { /* table for PCI_MASS_OTHER */
+ struct ide_table {
ushort_t venid;
ushort_t devid;
} *entry;
- /* XXX SATA and other devices: need a way to add dynamically */
+ /*
+ * Devices which need to be matched specially as pci-ide because of
+ * various device issues. Commonly their specification as being
+ * PCI_MASS_OTHER or PCI_MASS_SATA despite our using them in ATA mode.
+ */
static struct ide_table ide_other[] = {
- {0x1095, 0x3112},
- {0x1095, 0x3114},
- {0x1095, 0x3512},
- {0x1095, 0x680}, /* Sil0680 */
- {0x1283, 0x8211}, /* ITE 8211F is subcl PCI_MASS_OTHER */
+ {0x1095, 0x3112}, /* Silicon Image 3112 SATALink/SATARaid */
+ {0x1095, 0x3114}, /* Silicon Image 3114 SATALink/SATARaid */
+ {0x1095, 0x3512}, /* Silicon Image 3512 SATALink/SATARaid */
+ {0x1095, 0x680}, /* Silicon Image PCI0680 Ultra ATA-133 */
+ {0x1283, 0x8211}, /* Integrated Technology Express 8211F */
{0, 0}
};
@@ -1820,7 +1836,7 @@ is_pciide(uchar_t basecl, uchar_t subcl, uchar_t revid,
}
entry = &ide_other[0];
- while (entry->venid) {
+ while (entry->venid != 0) {
if (entry->venid == venid && entry->devid == devid)
return (1);
entry++;
@@ -1832,9 +1848,9 @@ static int
is_display(uint_t classcode)
{
static uint_t disp_classes[] = {
- 0x000100,
- 0x030000,
- 0x030001
+ 0x000100, /* pre-class code VGA Compatible */
+ 0x030000, /* VGA Compatible */
+ 0x030001 /* VGA+8514 Compatible */
};
int i, nclasses = sizeof (disp_classes) / sizeof (uint_t);
@@ -2209,7 +2225,7 @@ process_devfunc(uchar_t bus, uchar_t dev, uchar_t func, uchar_t header,
*
* If it is, check if any other higher precedence driver listed in
* driver_aliases will claim the node by calling
- * ddi_compatibile_driver_major. If so, clear pciide and do not
+ * ddi_compatible_driver_major. If so, clear pciide and do not
* create a pci-ide node or any other special handling.
*
* If another driver does not bind, set the node name to pci-ide
@@ -2473,7 +2489,7 @@ static struct {
};
static int
-pciIdeAdjustBAR(uchar_t progcl, int index, uint_t *basep, uint_t *lenp)
+pciide_adjust_bar(uchar_t progcl, int index, uint_t *basep, uint_t *lenp)
{
int hard_decode = 0;
@@ -2616,7 +2632,7 @@ add_reg_props(dev_info_t *dip, uchar_t bus, uchar_t dev, uchar_t func,
if (subclass != PCI_MASS_IDE)
progclass = (PCI_IDE_IF_NATIVE_PRI |
PCI_IDE_IF_NATIVE_SEC);
- hard_decode = pciIdeAdjustBAR(progclass, j,
+ hard_decode = pciide_adjust_bar(progclass, j,
&base, &len);
} else if (value == 0) {
/* skip base regs with size of 0 */
diff --git a/usr/src/uts/intel/os/driver_aliases b/usr/src/uts/intel/os/driver_aliases
index d681f815c5..6d53aed86f 100644
--- a/usr/src/uts/intel/os/driver_aliases
+++ b/usr/src/uts/intel/os/driver_aliases
@@ -1787,7 +1787,6 @@ usbsprl "usb67b,aaa2"
vgatext "pciclass,000100"
vgatext "pciclass,030000"
vgatext "pciclass,030001"
-vgatext "pnpPNP,900"
vmxnet "pci15ad,720"
vmxnet3s "pci15ad,7b0"
vr "pci1106,3043"
diff --git a/usr/src/uts/intel/os/master b/usr/src/uts/intel/os/master
deleted file mode 100644
index b860e1b405..0000000000
--- a/usr/src/uts/intel/os/master
+++ /dev/null
@@ -1,428 +0,0 @@
-version 1.0
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
-#
-# Device tree database
-# - Records in this file can be in an arbitrary order.
-# - Records are terminated by newlines, and fields are separated
-# by any number of spaces and/or tabs.
-# - Quotes can be used in any field to allow white space.
-# - Other than comments (lines such as this beginning with '#")
-# and the "Version" string no other tokens are understood.
-#
-# Database format:-
-#
-# <dev ids> <name> <dev type> <bus> <realmode dvr> <dev desc> <properties>
-#
-# Where:-
-# dev ids List of unique device identifiers, separated by the
-# "or" character '|' when more than one ID should
-# match the same entry.
-#
-# name The device name. When the device ID matches
-# an entry in the device database, the "name"
-# property is set to this value, and the "compatible"
-# property is set to the device ID. If no device
-# database entry matched, then the node will just have
-# the device ID for the "name" property. This allows
-# us to specify the Solaris driver name for a device
-# when we know what it is. PCI devices are typically
-# listed in /etc/driver_aliases so we just map the
-# name back to the device ID and let driver_aliases
-# take care of the driver name mapping.
-#
-# dev type The device type. Valid values are:
-#
-# com ... Serial ports
-# mem ... Memory extender cards
-# mfc ... Multi-function card
-# msd ... Mass storage device (eg scsi or ide)
-# net ... Network devices
-# plat ... Platform bef
-# oth ... Miscellaneous (including sound cards)
-# ptr ... Mice, etc.
-# vid ... Video/graphics cards
-# prt ... Parallel ports
-#
-# bus The bus type (eg all, isa, pnpisa, eisa, pci)
-#
-# realmode dvr The realmode driver for bootable devices,
-# otherwise "none".
-# Note, realmode driver is no longer being used.
-# The entry is there for backward compatibility.
-#
-# dev desc Freeform descriptive device text
-#
-# properties Optional additional device properties of the form
-# name=value eg ipl=3. Properties are added to the
-# device tree node passed to the kernel. This field
-# is also used to make this database "extensible".
-# Properties which begin with a dollar sign are
-# are used to pass information to the Configuration
-# Assistant, but are not added to the device tree.
-# For example, the $forceload property tells the
-# Configuration Assistant that it must always load
-# the specified bef in order for that bef to set
-# additional properties on the node.
-#
-#
-# ISA/EISA devices
-# id is the config file name (without leading "!" and trailing ".cfg")
-#
-SVI0101 SVI0101 oth all none "Sun Fire B100x BSC"
-PNP0300 keyboard key all none "IBM PC/XT keyboard controller (83-key)"
-PNP0302 keyboard key all none "IBM PC/XT keyboard controller (84-key)"
-PNP0301 keyboard key all none "IBM PC/AT keyboard controller (86-key)"
-PNP0303 keyboard key all none "IBM Enhanced (101/102-key, PS/2 mouse support)"
-PNP0304 keyboard key all none "Olivetti Keyboard (83-key)"
-PNP0305 keyboard key all none "Olivetti Keyboard (102-key)"
-PNP0306 keyboard key all none "Olivetti Keyboard (86-key)"
-PNP0307 keyboard key all none "Microsoft Windows(R) Keyboard"
-PNP0308 keyboard key all none "General Input Device Emulation Interface (GIDEI) legacy"
-PNP0309 keyboard key all none "Olivetti Keyboard (A101/102 key)"
-PNP030A keyboard key all none "AT&T 302 keyboard"
-PNP030B keyboard key all none "Reserved by Microsoft"
-PNP0320 keyboard key all none "Japanese 101-key keyboard"
-PNP0321 keyboard key all none "Japanese AX keyboard"
-PNP0322 keyboard key all none "Japanese 106-key keyboard A01"
-PNP0323 keyboard key all none "Japanese 106-key keyboard 002/003"
-PNP0324 keyboard key all none "Japanese 106-key keyboard 001"
-PNP0325 keyboard key all none "Japanese Toshiba Desktop keyboard"
-PNP0326 keyboard key all none "Japanese Toshiba Laptop keyboard"
-PNP0327 keyboard key all none "Japanese Toshiba Notebook keyboard"
-PNP0340 keyboard key all none "Korean 84-key keyboard"
-PNP0341 keyboard key all none "Korean 86-key keyboard"
-PNP0342 keyboard key all none "Korean Enhanced keyboard"
-PNP0343 keyboard key all none "Korean Enhanced keyboard 101b"
-PNP0343 keyboard key all none "Korean Enhanced keyboard 101c"
-PNP0344 keyboard key all none "Korean Enhanced keyboard 103"
-PNP0400 lp prt all none "Standard LPT printer port"
-PNP0401 lp prt all none "ECP printer port"
-PNP0500 asy com all none "Standard PC COM port"
-PNP0501 asy com all none "16550A-compatible COM port"
-# IRDA device is untested
-# PNP0510 asy com all none "Generic IRDA-compatible device"
-PNP0700 fdc oth all none "PC standard floppy disk controller"
-PNP0701 fdc oth all none "Standard floppy controller supporting MS Device Bay Spec"
-PNP0C31|ATM1200|IFX0102|BCM0101|NSC1200 tpm oth all none "Generic Trusted Platform Module"
-PNP0F00 msm ptr all none "Microsoft bus mouse"
-PNP0F01 mouse ptr all none "Microsoft Serial Mouse"
-PNP0F02 mouse ptr all none "Microsoft InPort Mouse"
-PNP0F03 mouse ptr all none "Microsoft PS/2-style Mouse"
-PNP0F04 mouse ptr all none "Mouse Systems Mouse"
-PNP0F05 mouse ptr all none "Mouse Systems 3-Button Mouse (COM2)"
-PNP0F06 mouse ptr all none "Genius Mouse (COM1)"
-PNP0F07 mouse ptr all none "Genius Mouse (COM2)"
-PNP0F08 mouse ptr all none "Logitech Serial Mouse"
-PNP0F09 mouse ptr all none "Microsoft BallPoint Serial Mouse"
-PNP0F0A mouse ptr all none "Microsoft Plug and Play Mouse"
-PNP0F0B mouse ptr all none "Microsoft Plug and Play BallPoint Mouse"
-PNP0F0C mouse ptr all none "Microsoft-compatible Serial Mouse"
-PNP0F0D mouse ptr all none "Microsoft-compatible InPort-compatible Mouse"
-PNP0F0E mouse ptr all none "Microsoft-compatible PS/2-style Mouse"
-PNP0F0F mouse ptr all none "Microsoft-compatible Serial BallPoint-compatible Mouse"
-PNP0F10 mouse ptr all none "Texas Instruments QuickPort Mouse"
-PNP0F11 mouse ptr all none "Microsoft-compatible Bus Mouse"
-PNP0F12 mouse ptr all none "Logitech PS/2-style Mouse"
-PNP0F13 mouse ptr all none "PS/2 Port for PS/2-style Mice"
-PNP0F14 mouse ptr all none "Microsoft Kids Mouse"
-PNP0F15 logi ptr all none "Logitech bus mouse"
-PNP0F16 mouse ptr all none "Logitech SWIFT device"
-PNP0F17 mouse ptr all none "Logitech-compatible serial mouse"
-PNP0F18 mouse ptr all none "Logitech-compatible bus mouse"
-PNP0F19 mouse ptr all none "Logitech-compatible PS/2-style Mouse"
-PNP0F1A mouse ptr all none "Logitech-compatible SWIFT Device"
-PNP0F1B mouse ptr all none "HP Omnibook Mouse"
-PNP0F1C mouse ptr all none "Compaq LTE Trackball PS/2-style Mouse"
-PNP0F1D mouse ptr all none "Compaq LTE Trackball Serial Mouse"
-PNP0F1E mouse ptr all none "Microsoft Kids Trackball Mouse"
-PNP0F1F mouse ptr all none "Reserved by Microsoft Input Device Group"
-PNP0F20 mouse ptr all none "Reserved by Microsoft Input Device Group"
-PNP0F21 mouse ptr all none "Reserved by Microsoft Input Device Group"
-PNP0F22 mouse ptr all none "Reserved by Microsoft Input Device Group"
-PNP0F23 mouse ptr all none "Reserved by Microsoft Input Device Group"
-PNP0FFF mouse ptr all none "Reserved by Microsoft Systems"
-SYN010B mouse ptr all none "Synaptics mouse pad"
-ICU1900|PNP0E00|PNP0E01|PNP0E02 pcic oth all pcic.bef "PCMCIA controller"
-ADS7180 sbpro oth all sbpro.bef "ADS Sound Blaster"
-AZT1008 sbpro oth all sbpro.bef "Aztech AZT1008 Sound Device"
-CSC0000 sbpro oth all sbpro.bef "Sound Blaster"
-PNPB002 sbpro oth all sbpro.bef "Sound Blaster"
-PNPB003 sbpro oth all sbpro.bef "Sound Blaster"
-CTL0001 sbpro oth all sbpro.bef "Sound Blaster"
-CTL0031 sbpro oth all sbpro.bef "Sound Blaster"
-CTL0041 sbpro oth all sbpro.bef "Sound Blaster"
-CTL0043 sbpro oth all sbpro.bef "Creative Labs Sound Blaster 16 Vibra"
-CTL0044 sbpro oth all sbpro.bef "Creative Labs Sound Blaster AWE64 Gold"
-CTL0045 sbpro oth all sbpro.bef "Sound Blaster"
-ESS1681 sbpro oth all sbpro.bef "Sound Blaster"
-ESS1868 sbpro oth all sbpro.bef "ESS ES1868 AudioDrive"
-ESS6881 sbpro oth all sbpro.bef "Sound Blaster"
-CSC0001|PNPB02F|CTL7001|CTL7002 joyst oth all joyst.bef "Game port (Joy stick)"
-PNPB006 none oth all none "Audio MIDI interface (MPU401 UART)"
-ALRB200 none oth eisa none "ALR math coprocessor"
-AST8250 none mem eisa none "AST Premmia GX Extended Memory Configuration"
-CPQ4411|CPQ4410|SNIAAC1 ncrs msd eisa ncrs.bef "Compaq 32-Bit Fast-SCSI-2 Controller"
-CPQ4020 csa msd eisa none "Compaq SMART Array Controller"
-ICU01F0 mwss oth all mwss.bef "Windows Sound System Compatible"
-ICU0210 logi ptr all none "Logitech bus mouse"
-ICU0211 msm ptr all none "Microsoft bus mouse"
-ICU0580 tmc msd all none "Future Domain TMC-850 SCSI controller"
-ICU05F0 usc msd all none "Ultrastor ULTRA14F SCSI Controller"
-SUN0005 display vid all none "Sub-VGA Display Adapter"
-SUN0006 display vid all none "XGA Display Adapter" compatible="pnpPNP,900"
-PNP0900|ISY0010 display vid all none "VGA Compatible Display Adapter" compatible="pnpPNP,900"
-PNP0931 display vid all none "Chips & Tech VGA Display Adapter" compatible="pnpPNP,900"
-ISY0020 asy com all com.bef "Serial port"
-SUN0030 asy com all boca.bef "Boca board serial port" $forceload=yes
-USR0006|USR0002|SUP1381|HSM0240 asy com pnpisa none "Serial port w/ built in modem"
-ISY0030 mouse ptr all ps2ms.bef "PS/2 mouse"
-ISY0040|PNP0600|PNP0680 ata msd all ata.bef "IDE controller"
-ISY0050 fdc oth all fdc.bef "Floppy disk controller"
-ISY0060 lp prt all lpt.bef "Parallel port"
-SUN0010 p9000 vid all none "P9000 VLB VGA graphics adapter"
-SUN0020 p9100 vid all none "P9100 VLB VGA graphics adapter"
-PNP0902 display vid all none "VGA w/ 8514/A compatible graphics adapter" compatible="pnpPNP,900"
-WYS7901 none oth eisa none "CPU board"
-WYS7D01 none mem eisa none "Memory board"
-SUN0001 none oth all none "ISA Plug and play configuration ports"
-PNP8231|ATK1500|ADV55AA|PNP828C|CSI2203 pcn net all pcn.bef "AMD PCnet-ISA 79C960/PCnet-32 79C965 Ethernet"
-PNP0300|PNP0301|PNP0302|PNP0303|PNP0304|PNP0305|PNP0306|PNP0307|PNP0308|PNP0309|PNP030A|PNP030B|PNP0320|PNP0321|PNP0322|PNP0323|PNP0324|PNP0325|PNP0326|PNP0327|PNP0340|PNP0341|PNP0342|PNP0343|PNP0344 keyboard key all key.bef "System keyboard"
-PNP0C01 motherboard oth all none "Motherboard"
-CTL0051|PNPFFFF none oth pnpisa none "Unspecified device"
-#
-# PCI devices
-# IEEE 1275 defined name format: pciVVVV,DDDD
-# where VVVV and DDDD are the vendor and device id fields from
-# the configuration space.
-#
-# Only add entries for devices with befs.
-# Please keep in numeric order.
-#
-pci1000,1 pci1000,1 msd pci ncrs.bef "Symbios Logic 53c810 SCSI"
-pci1000,2 pci1000,2 msd pci ncrs.bef "Symbios Logic 53c820 SCSI"
-pci1000,3 pci1000,3 msd pci ncrs.bef "Symbios Logic 53c825 SCSI"
-pci1000,4 pci1000,4 msd pci ncrs.bef "Symbios Logic 53c815 SCSI"
-pci1000,6 pci1000,6 msd pci ncrs.bef "Symbios Logic 53c865 SCSI"
-pci1000,c pci1000,c msd pci ncrs.bef "Symbios Logic 53c895 SCSI"
-pci1000,f pci1000,f msd pci ncrs.bef "Symbios Logic 53c875 SCSI"
-pci1000,8f pci1000,8f msd pci ncrs.bef "Diamond Fireport 40 (SYM53C876)"
-pci1011,2 pci1011,2 net pci dnet.bef "DEC 21040 Ethernet"
-pci1011,9 pci1011,9 net pci dnet.bef "DEC 21140 Fast Ethernet"
-pci1011,14 pci1011,14 net pci dnet.bef "DEC 21041 Ethernet"
-pci1011,19 pci1011,19 net pci dnet.bef "DEC 21142/21143 Fast Ethernet"
-pci1022,2000 pci1022,2000 net pci pcn.bef "AMD 79C970 PCnet Ethernet"
-pci103c,104c pci103c,104c net pci pcn.bef "HP 'Tweety' PCnet Fast Ethernet"
-pci10b7,9000 pci10b7,9000 net pci elxl.bef "3Com 3C900-TPO Etherlink XL"
-pci10b7,9001 pci10b7,9001 net pci elxl.bef "3Com 3C900-COMBO Etherlink XL"
-pci10b7,9004 pci10b7,9004 net pci elxl.bef "3Com 3C900B-TPO Etherlink XL"
-pci10b7,9005 pci10b7,9005 net pci elxl.bef "3Com 3C900B-COMBO Etherlink XL"
-pci10b7,9006 pci10b7,9006 net pci elxl.bef "3Com 3C900B-TPC Etherlink XL"
-pci10b7,9050 pci10b7,9050 net pci elxl.bef "3Com 3C905-TX Fast Etherlink XL 10/100"
-pci10b7,9051 pci10b7,9051 net pci elxl.bef "3Com 3C905-T4 Fast Etherlink XL 10/100"
-pci10b7,9055 pci10b7,9055 net pci elxl.bef "3Com 3C905B-TX Fast Etherlink XL 10/100"
-pci10b7,9056 pci10b7,9056 net pci elxl.bef "3Com 3C905B-T4 Fast Etherlink XL 10/100"
-pci10b7,9200 pci10b7,9200 net pci elxl.bef "3Com 3C905C-TX-M Fast Etherlink XL 10/100"
-pci10b7,9800 pci10b7,9800 net pci elxl.bef "3Com 3C980-TX Fast Etherlink Server 10/100"
-pci10b7,9805 pci10b7,9805 net pci elxl.bef "3Com 3C980C-TXM Fast Etherlink Server 10/100"
-pci10b8,2001 pci10b8,2001 net pci dnet.bef "SMC9332BDT Fast Ethernet"
-pci1109,1400 pci1109,1400 net pci dnet.bef "Cogent EM110TX Fast Ethernet"
-pci1109,2400 pci1109,2400 net pci dnet.bef "Cogent EM440 Fast Ethernet"
-pci14e4,1644 pci14e4,1644 net pci none "Broadcom 5700 Gigabit Ethernet"
-pci14e4,1645 pci14e4,1645 net pci none "Broadcom 5701 Gigabit Ethernet"
-pci14e4,1647 pci14e4,1647 net pci none "Broadcom 5703C Gigabit Ethernet"
-pci14e4,1648 pci14e4,1648 net pci none "Broadcom 5704C Gigabit Ethernet"
-pci14e4,16a7 pci14e4,16a7 net pci none "Broadcom 5703S Gigabit Ethernet"
-pci14e4,16c7 pci14e4,16c7 net pci none "Broadcom 5703 Gigabit Ethernet"
-pci14e4,16a8 pci14e4,16a8 net pci none "Broadcom 5704S Gigabit Ethernet"
-pci14e4,165d pci14e4,165d net pci none "Broadcom 5705M Gigabit Ethernet"
-pci14e4,165e pci14e4,165e net pci none "Broadcom 5705MA3 Gigabit Ethernet"
-pci14e4,1677 pci14e4,1677 net pci none "Broadcom 5751 Gigabit Ethernet"
-pci14e4,167d pci14e4,167d net pci none "Broadcom 5751M Gigabit Ethernet"
-pci14e4,1659 pci14e4,1659 net pci none "Broadcom 5721 Gigabit Ethernet"
-pci14e4,1696 pci14e4,1696 net pci none "Broadcom 5782 Gigabit Ethernet"
-pci14e4,169c pci14e4,169c net pci none "Broadcom 5788 Gigabit Ethernet"
-pci10de,57 pci10de,cb84 net pci none "NVIDIA CK8-04 Gigabit Ethernet"
-pci10de,56 pci10de,cb84 net pci none "NVIDIA CK8-04 Gigabit Ethernet"
-pci10de,57 pci10f1,2865 net pci none "NVIDIA CK8-04 Gigabit Ethernet"
-pci10de,56 pci10f1,2865 net pci none "NVIDIA CK8-04 Gigabit Ethernet"
-pci10de,57 pci10f1,2895 net pci none "NVIDIA CK8-04 Gigabit Ethernet"
-pci10de,56 pci10f1,2895 net pci none "NVIDIA CK8-04 Gigabit Ethernet"
-pci10de,268 pci10de,268 net pci none "NVIDIA MCP51 Gigabit Ethernet"
-pci10de,269 pci10de,269 net pci none "NVIDIA MCP51 Gigabit Ethernet"
-pci10de,372 pci10de,372 net pci none "NVIDIA MCP55 Gigabit Ethernet"
-pci10de,373 pci10de,373 net pci none "NVIDIA MCP55 Gigabit Ethernet"
-pci10de,37 pci10de,37 net pci none "NVIDIA MCP04 Gigabit Ethernet"
-pci10de,38 pci10de,38 net pci none "NVIDIA MCP04 Gigabit Ethernet"
-pci10de,3ee pci10de,3ee net pci none "NVIDIA MCP61 Gigabit Ethernet"
-pci10de,38 pci10de,3ef net pci none "NVIDIA MCP61 Gigabit Ethernet"
-pci10de,38 pci10de,e6 net pci none "NVIDIA nForce3 250Gb Gigabit Ethernet"
-pci10de,38 pci10de,df net pci none "NVIDIA nForce3 250Gb Gigabit Ethernet"
-pci10ec,8139 pci10ec,8139 net pci none "Realtek 8139 Fast Ethernet"
-pci8086,1029 pci8086,1029 net pci iprb.bef "Intel Pro/100 Network Adapter"
-pci8086,1030 pci8086,1030 net pci iprb.bef "Intel InBusiness 10/100 Network Adapter"
-pci8086,1031 pci8086,1031 net pci iprb.bef "Intel Pro/100 VE Ethernet"
-pci8086,1032 pci8086,1032 net pci iprb.bef "Intel Pro/100 VE Ethernet"
-pci8086,1038 pci8086,1038 net pci iprb.bef "Intel 82559 PRO/100 VM Ethernet"
-pci8086,1039 pci8086,1039 net pci iprb.bef "Intel 82801DB Ethernet 82562ET/EZ PHY"
-pci8086,103d pci8086,103d net pci iprb.bef "Intel 82801DB PRO/100 VE Ethernet"
-pci8086,1050 pci8086,1050 net pci iprb.bef "Intel 82562EZ PRO/100 VE Ethernet"
-pci8086,1059 pci8086,1059 net pci iprb.bef "Intel 82551QM PRO/100 VE Ethernet"
-pci8086,1068 pci8086,1068 net pci iprb.bef "Intel 82562ET/EZ/GT/GZ - PRO/100 VE Ethernet"
-pci8086,1069 pci8086,1069 net pci iprb.bef "Intel 82562EM/EX/GX - PRO/100 VM Ethernet"
-pci8086,1229 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.1009 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.100c pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.1012 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.1013 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.1015 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.1016 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,1229.8086.1017 pci8086,1229 net pci iprb.bef "Intel Pro100/B Fast Ethernet"
-pci8086,2449 pci8086,2449 net pci iprb.bef "Intel i815/82559 Ethernet"
-pci8086,27dc pci8086,27dc net pci iprb.bef "Intel ICH7 82801G Ethernet"
-pci101a,f2d scsi msd pci none "NCR PDS/PQS 53C896-based PCI SCSI Adapter" compatible="pci101a,f2d"
-pci101a,f2e scsi msd pci none "NCR PDS/PQS 53C896-based PCI SCSI Adapter" compatible="pci101a,f2e"
-pci101a,f2f scsi msd pci none "NCR PDS/PQS 53C896-based PCI SCSI Adapter" compatible="pci101a,f2f"
-#
-# Special entry for ncrpqs: node and driver are both named 'ncrpqs'
-# deviceid is vid=illegal PCI vid, did=NCR PQS's vid
-# On resulting devinfo node with no SSVID/SSID:
-# name="ncrpqs"
-# compatible="ncrpqs\0pci1000,f\0pciclass..."
-# on nodes with:
-# compatible="ncrpqs\0pci1000,1000\0pci1000,f\0pciclass..."
-pciffff,101a ncrpqs msd pci none "NCR PDS/PQS 53C875-based PCI SCSI Adapter"
-#
-# pci class entries:
-#
-# PCI Class entries with 2 byte class codes are treated as wildcard class
-# specifiers (with the 3rd byte (programming interface) as the wildcard). Hence,
-# the following entry will match ALL devices whose pci classes begin with "0101"
-# (any programming interface version)
-pciclass,0101 pci-ide msd pciclass ata.bef "IDE controller"
-pci1095,3112 pci-ide msd pci ata.bef "Silicon Image 3112 SATA Controller"
-pci1095,3114 pci-ide msd pci ata.bef "Silicon Image 3114 SATA Controller"
-pci1095,3512 pci-ide msd pci ata.bef "Silicon Image 3512 SATA Controller"
-pciclass,030000|pciclass,000100 display vid pciclass none "VGA compatible display adapter"
-pciclass,030001 display vid pciclass none "VGA+8514 compatible display adapter"
-pci1000,b pci1000,b msd pci symhisl.bef "Symbios SYM53C896 Ultra2 SCSI"
-pci1000,12 pci1000,12 msd pci symhisl.bef "Symbios SYM53C895A Ultra2 SCSI"
-pci1000,20 pci1000,20 msd pci symhisl.bef "Symbios SYM53C1010 Ultra3 SCSI"
-pci1000,21 pci1000,21 msd pci symhisl.bef "Symbios SYM53C1010-66 Ultra3 SCSI"
-pci1000,30 pci1000,30 msd pci none "LSI Logic 1020/1030 Ultra320 SCSI HBA"
-pci1000,50 pci1000,50 msd pci none "LSI Logic 1064 SAS/SATA HBA"
-pci8086,1000 pci8086,1000 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1001 pci8086,1001 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1004 pci8086,1004 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1008 pci8086,1008 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1009 pci8086,1009 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,100d pci8086,100d net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,100e pci8086,100e net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,100f pci8086,100f net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1010 pci8086,1010 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1011 pci8086,1011 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1012 pci8086,1012 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1013 pci8086,1013 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1014 pci8086,1014 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1015 pci8086,1015 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1016 pci8086,1016 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1017 pci8086,1017 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1018 pci8086,1018 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1019 pci8086,1019 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,101a pci8086,101a net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,101d pci8086,101d net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,101e pci8086,101e net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1026 pci8086,1026 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1027 pci8086,1027 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1028 pci8086,1028 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,105a pci8086,105a net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,105b pci8086,105b net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,105c pci8086,105c net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,105e pci8086,105e net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,105f pci8086,105f net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1060 pci8086,1060 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1061 pci8086,1061 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1062 pci8086,1062 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1063 pci8086,1063 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1075 pci8086,1075 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1076 pci8086,1076 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1077 pci8086,1077 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,1079 pci8086,1079 net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,107a pci8086,107a net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,107b pci8086,107b net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,107c pci8086,107c net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,107d pci8086,107d net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,107e pci8086,107e net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci8086,108a pci8086,108a net pci none "Intel(R) PRO/1000 Server Adapter Driver"
-pci9005,8000 pci9005,8000 msd pci adpu320.bef "Adaptec SCSI Card 29320A(H1B) - Ultra320 SCSI"
-pci9005,8010 pci9005,8010 msd pci adpu320.bef "Adaptec SCSI Card 39320 - Ultra320 SCSI"
-pci9005,8011 pci9005,8011 msd pci adpu320.bef "Adaptec SCSI Card 39320D - Ultra320 SCSI"
-pci9005,8012 pci9005,8012 msd pci adpu320.bef "Adaptec SCSI Card 29320 - Ultra320 SCSI"
-pci9005,8014 pci9005,8014 msd pci adpu320.bef "Adaptec SCSI Card 29320LP - Ultra320 SCSI"
-pci9005,8015 pci9005,8015 msd pci adpu320.bef "Adaptec SCSI Card 39320(H2B) - Ultra320 SCSI"
-pci9005,8016 pci9005,8016 msd pci adpu320.bef "Adaptec SCSI Card 39320A - Ultra320 SCSI"
-pci9005,8017 pci9005,8017 msd pci adpu320.bef "Adaptec SCSI Card 29320ALP(H1B) - Ultra320 SCSI"
-pci9005,801d pci9005,801d msd pci adpu320.bef "Adaptec SCSI Card AIC-7902B - Ultra320 SCSI"
-pci9005,801e pci9005,801e msd pci adpu320.bef "Adaptec SCSI Card AIC-7901A - Ultra320 SCSI"
-pci9005,801f pci9005,801f msd pci adpu320.bef "Adaptec AIC-7902 - Ultra320 SCSI"
-pci9005,285 pci9005,285 msd pci none "Adaptec AdvancedRAID Controller"
-pci1028,a pci1028,a msd pci none "PERC 3/DI RAID Controller"
-pci1028,e pci1028,e msd pci none "PERC 4/DI RAID Controller"
-pci1028,f pci1028,f msd pci none "PERC 4/DI RAID Controller"
-pci1028,493 pci1028,493 msd pci none "PERC 3/DC RAID Controller"
-pci1028,518 pci1028,518 msd pci none "PERC 4/DC RAID Controller"
-pci1028,520 pci1028,520 msd pci none "PERC 4/SC RAID Controller"
-pci1000,532 pci1000,532 msd pci none "MegaRAID SCSI 320-2x"
-pci9005,cf pci9005,cf msd pci cadp160.bef "Adaptec AIC-7899 Ultra160 SCSI"
-pci9005,8f pci9005,8f msd pci cadp160.bef "Adaptec AIC-7892 Ultra160 SCSI"
-pci9005,c0 pci9005,c0 msd pci cadp160.bef "Adaptec 39160 Ultra160 SCSI HBA"
-pci9005,80 pci9005,80 msd pci cadp160.bef "Adaptec 29160/N/LP Ultra160 SCSI HBA"
-pci9004,5078 pci9004,5078 msd pci adp.bef "Adaptec AIC-7850 SCSI"
-pci9004,5578 pci9004,5578 msd pci adp.bef "Adaptec AIC-7855 SCSI"
-pci9004,6075 pci9004,6075 msd pci adp.bef "Adaptec AHA-7560 SCSI"
-pci9004,6078 pci9004,6078 msd pci adp.bef "Adaptec AHA-7860 SCSI"
-pci9004,6178 pci9004,6178 msd pci adp.bef "Adaptec AHA-7861 SCSI"
-pci9004,6278 pci9004,6278 msd pci adp.bef "Adaptec AHA-7862 SCSI"
-pci9004,7078 pci9004,7078 msd pci adp.bef "Adaptec AIC-7870 SCSI"
-pci9004,7178 pci9004,7178 msd pci adp.bef "Adaptec AHA-2940/2940W SCSI"
-pci9004,7278 pci9004,7278 msd pci adp.bef "Adaptec AHA-3940/3940W SCSI"
-pci9004,7478 pci9004,7478 msd pci adp.bef "Adaptec AHA-2944W Differential SCSI"
-pci9004,7578 pci9004,7578 msd pci adp.bef "Adaptec AHA-7875 SCSI"
-pci9004,8078 pci9004,8078 msd pci adp.bef "Adaptec AIC-7880 UltraSCSI"
-pci9004,8178 pci9004,8178 msd pci adp.bef "Adaptec AHA-2940U/2940UW UltraSCSI"
-pci9004,8278 pci9004,8278 msd pci adp.bef "Adaptec AHA-7882 UltraSCSI"
-pci9004,8478 pci9004,8478 msd pci adp.bef "Adaptec AHA-7884 SCSI"
-pci9004,8578 pci9004,8578 msd pci adp.bef "Adaptec AHA-7885 SCSI"
-pci9004,7860 pci9004,7860 msd pci adp.bef "Adaptec AHA-2940W/2940UW Rev B Ultra SCSI Adapter"
-pci9004,7880 pci9004,7880 msd pci adp.bef "Adaptec AHA-2940W/2940UW Rev B Ultra SCSI Adapter"
-pci9004,7881 pci9004,7881 msd pci adp.bef "Adaptec AHA-2940W/2940UW Rev B Ultra SCSI Adapter"
-pci9004,7891 pci9004,7891 msd pci adp.bef "Adaptec AHA-2940W/2940UW Dual Ultra SCSI Adapter"
-pci9004,7892 pci9004,7892 msd pci adp.bef "Adaptec AHA-3940AUW Dual-channel Ultra/Wide SCSI Adapter"
-pci9004,7895 pci9004,7895 msd pci adp.bef "Adaptec AIC-7895 Ultra SCSI Controller"
-pci9005,a180 pci9005,a180 msd pci cadp.bef "Adaptec AHA-2940U2W Ultra-II SCSI Controller"
-pci9005,e100 pci9005,e100 msd pci cadp.bef "Adaptec AHA-2950U2B Ultra-II SCSI Controller"
-pci9005,f500 pci9005,f500 msd pci cadp.bef "Adaptec AHA-3950U2B Dual Ultra-II SCSI Controller"
-pci9005,5f pci9005,5f msd pci cadp.bef "Adaptec AIC-7896 SCSI"
-pci9005,1f pci9005,1f msd pci cadp.bef "Adaptec AIC-7890AB SCSI Controller"
-pci9005,a100 pci9005,a100 msd pci cadp.bef "Adaptec AHA-2940u2b Scsi Controller"
-pci9005,2180 pci9005,2180 msd pci cadp.bef "Adaptec AHA-2940u2-OEM Scsi Controller"
diff --git a/usr/src/uts/intel/sys/acpica.h b/usr/src/uts/intel/sys/acpica.h
index e15ccc78a7..6f5ba8e01b 100644
--- a/usr/src/uts/intel/sys/acpica.h
+++ b/usr/src/uts/intel/sys/acpica.h
@@ -32,6 +32,10 @@
#ifndef _SYS_ACPICA_H
#define _SYS_ACPICA_H
+#include <sys/ddi.h>
+#include <sys/sunddi.h>
+#include <sys/acpi/acpi.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -138,32 +142,22 @@ typedef struct iflag {
#define ACPI_DEVCFG_PCI 0x8
/*
- * master_ops.c
+ * isapnp_devs.c
*/
typedef struct device_id {
struct device_id *next;
char *id;
} device_id_t;
-typedef struct property {
- struct property *next;
- char *name;
- char *value;
-} property_t;
-
-typedef struct master_rec {
- struct master_rec *next;
- device_id_t *device_ids;
- char *name;
- char *description;
- property_t *properties;
-} master_rec_t;
-
-extern const master_rec_t *master_file_lookup(device_id_t *);
-extern device_id_t *mf_alloc_device_id(void);
-extern void mf_free_device_id(device_id_t *);
-extern void process_master_file(void);
-extern void free_master_data(void);
+typedef struct isapnp_desc {
+ const char *ipnp_id; /* device ID */
+ boolean_t ipnp_prefix; /* prefix match? */
+ const char *ipnp_name; /* dev tree name */
+ const char *ipnp_compat; /* dev tree compatible */
+ const char *ipnp_model; /* dev tree model */
+} isapnp_desc_t;
+
+extern const isapnp_desc_t *isapnp_desc_lookup(const device_id_t *);
/*
* Function prototypes