summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2022-04-04 11:40:10 -0400
committerDan McDonald <danmcd@joyent.com>2022-04-04 11:40:10 -0400
commita05d685e009f36dab43abf2337dbc6d1166f0d2e (patch)
tree70ef183e6e33f96d5faf6aa06a17ad3bb09cc824
parentb4483e81e539aaa80ad253f4c5ec03a50ba5afed (diff)
parent2af7a84a44750559d578033163c65829ae91c171 (diff)
downloadillumos-joyent-a05d685e009f36dab43abf2337dbc6d1166f0d2e.tar.gz
[illumos-gate merge]
commit 2af7a84a44750559d578033163c65829ae91c171 14584 unix: console property should only have one value commit 07a53f3dc8bc5e4d64bde9b92063de65f06dcf19 14604 bios enumerated serial should use 1275 compatible names
-rw-r--r--usr/src/uts/i86pc/io/isa.c7
-rw-r--r--usr/src/uts/i86pc/os/fakebop.c24
2 files changed, 27 insertions, 4 deletions
diff --git a/usr/src/uts/i86pc/io/isa.c b/usr/src/uts/i86pc/io/isa.c
index c8888dded4..2eea45ebe5 100644
--- a/usr/src/uts/i86pc/io/isa.c
+++ b/usr/src/uts/i86pc/io/isa.c
@@ -684,7 +684,7 @@ is_pnpisa(dev_info_t *dip)
/*ARGSUSED*/
static int
isa_ctlops(dev_info_t *dip, dev_info_t *rdip,
- ddi_ctl_enum_t ctlop, void *arg, void *result)
+ ddi_ctl_enum_t ctlop, void *arg, void *result)
{
int rn;
struct ddi_parent_private_data *pdp;
@@ -1245,7 +1245,7 @@ isa_enumerate(int reprogram)
ndi_devi_alloc_sleep(isa_dip, "asy",
(pnode_t)DEVI_SID_NODEID, &xdip);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "compatible", "PNP0500");
+ "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");
@@ -1281,7 +1281,6 @@ isa_enumerate(int reprogram)
* the serial ports there are in the dev_info tree. If any are missing,
* this function will add them.
*/
-
static void
enumerate_BIOS_serial(dev_info_t *isa_dip)
{
@@ -1346,7 +1345,7 @@ enumerate_BIOS_serial(dev_info_t *isa_dip)
ndi_devi_alloc_sleep(isa_dip, "asy",
(pnode_t)DEVI_SID_NODEID, &xdip);
(void) ndi_prop_update_string(DDI_DEV_T_NONE, xdip,
- "compatible", "PNP0500");
+ "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");
diff --git a/usr/src/uts/i86pc/os/fakebop.c b/usr/src/uts/i86pc/os/fakebop.c
index eb91d4a56a..07bc24971f 100644
--- a/usr/src/uts/i86pc/os/fakebop.c
+++ b/usr/src/uts/i86pc/os/fakebop.c
@@ -1448,6 +1448,30 @@ process_boot_environment(struct boot_modules *benv)
continue;
}
+ /*
+ * The loader allows multiple console devices to be specified
+ * as a comma-separated list, but the kernel does not yet
+ * support multiple console devices. If a list is provided,
+ * ignore all but the first entry:
+ */
+ if (strcmp(name, "console") == 0) {
+ char propval[BP_MAX_STRLEN];
+
+ for (uint32_t i = 0; i < BP_MAX_STRLEN; i++) {
+ propval[i] = value[i];
+ if (value[i] == ' ' ||
+ value[i] == ',' ||
+ value[i] == '\0') {
+ propval[i] = '\0';
+ break;
+ }
+
+ if (i + 1 == BP_MAX_STRLEN)
+ propval[i] = '\0';
+ }
+ bsetprops(name, propval);
+ continue;
+ }
if (name_is_blacklisted(name) == B_TRUE)
continue;