Dana H. Myers wrote:
I think it will be a little more work to please the driver; I suspect
the reason asy chokes on the PCI UART is that it has many more than
just the 8 registers for 16550 compatibility, and is, in fact, a
multi-function device.
What's the output of prtconf -v for the Exar UART device?
I have found that my problem was that there wasn't any PCI IO defined
reg property under the PCI DUART node. There is only one BAR (BAR0) for
that EXAR device, and the BIOS set it as PCI MEM. I will talk to our
BIOS people and see if they can change this.
In the meantime I have patched the asy.c driver as follows
switch (reglist[i].pci_phys_hi & PCI_ADDR_MASK) {
// case PCI_ADDR_IO: /* I/O bus reg property */
case PCI_ADDR_MEM32: /* MEM bus reg property */
if (regnum == -1) /* use only the first one */
regnum = i;
break;
and the driver now attaches all right:
pci13a8,152, instance #2 (NOTE: the 2 first instances are ISA)
System software properties:
name='interrupt-priorities' type=int items=1
value=0000000c
Driver properties:
name='uart' type=string items=1 dev=(106,2)
value='16550A'
Hardware properties:
name='interrupts' type=int items=1
value=00000001
name='device-id' type=int items=1
value=00000152
name='vendor-id' type=int items=1
value=000013a8
name='reg' type=byte items=40
value=00.28.03.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.10.28.03.02.00.00.00.00.00.00.00.00.00.00.00.00.00.04.00.00
Interrupt Specifications:
Interrupt Priority=0xc (ipl 12), vector=0xa (10)
Device Minor Nodes:
dev=(106,2)
dev_path=/[EMAIL PROTECTED],0/pci1022,[EMAIL
PROTECTED]/pci13a8,[EMAIL PROTECTED]:2
spectype=chr type=minor
dev_link=/dev/term/0
dev=(106,131074)
dev_path=/[EMAIL PROTECTED],0/pci1022,[EMAIL
PROTECTED]/pci13a8,[EMAIL PROTECTED]:2,cu
spectype=chr type=minor
dev_link=/dev/cua/0
But since the EXAR has two UART 16500 ports (1st set of 16550 8 regs is
at off 0x000 and 2nd is at 0x200), I am trying to have solaris call the
driver twice, so that I can fix the offset to point to the right set of
16550 registers. And thus i am hoping I will have two PCI uart instances
created.
I have modified asy.conf as follows:
#
# Copyright (c) 1999 by Sun Microsystems, Inc.
# All rights reserved.
#
#pragma ident "@(#)asy.conf 1.12 99/03/18 SMI"
interrupt-priorities=12;
name="asy" parent="/devices/[EMAIL PROTECTED],0/pci1022,[EMAIL PROTECTED]" ;
name="asy" parent="/devices/[EMAIL PROTECTED],0/pci1022,[EMAIL PROTECTED]" ;
But the asy driver is only called once for the PCI. (it is called twice
for the ISA devices).
Is there anything I can do to fix this?
Thanks a lot
-jf simon
_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss