Dan Mick wrote: > >> But, there's a bug in the Open Solaris 10 (build 72) enumeration code in >> /usr/src/uts/i86pc/io/isa.c, isa_alloc_nodes(), line 611: >> /* serial ports */ >> for (i = 0; i < 2; i++) { >> ndi_devi_alloc_sleep(isa_dip, "asy", >> (pnode_t)DEVI_SID_NODEID, &xdip); >> (void) ndi_prop_update_int_array(DDI_DEV_T_NONE, xdip, >> "reg", (int *)&asy_regs[i], 3); >> (void) ndi_prop_update_int(DDI_DEV_T_NONE, xdip, >> "interrupts", asy_intrs[i]); >> (void) ndi_devi_bind_driver(xdip, 0); >> } > > That code is only executed if ACPI enumeration is not enabled (which > is quite abnormal) and, in that case, is a best hope that the > "standard COM1 and COM2" are available. > >> There's a similar bug in /usr/src/uts/i86pc/io/isa.c, >> enumerate_BIOS_serial() where they assume only 2 serial ports, also. > > BIOS serial 'standards' were such a joke that we consciously chose to > only use the first two slots in the table at 40:0. This is an > antiquated method of serial discovery that, again, is a final hope. > ACPI will override this > and the loop above if it exists. > >> They hardcode the number of serial ports that they will build properties >> for!!! I need six, they'll only give me 2!! Ooops. I guess this is >> why my 'reg' value was 'FFFF'. Nice! > > Not all information is in yet, but no, the explanation above is not > correct. Somehow, either the ACPI tables actually say port 0xFFFF, or > we're misreading the addresses they do say (since you're getting more > than 2 ports, and they have I/O addresses that came from somewhere). > > I think the "reg" property as specified in the original .conf file that Dave was using was specified incorrectly. He was using, for instance:
name="asy" parent="isa" instance=0 reg=0x3f8 interrupts=4 interrupt-priorities=12; and changed it to: name="asy" parent="isa" instance=0 reg=1,0x3f8,8 interrupts=4 interrupt-priorities=12; I would concentrate on the handling of the "reg" property from the .conf file if I wanted to figure out why he got 3 instances (instead of 0). max _______________________________________________ driver-discuss mailing list driver-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/driver-discuss