[driver-discuss] solaris x86 and serial driver

Dana H. Myers Dana.Myers at Sun.COM
Fri Feb 16 10:43:45 PST 2007


jean-francois simon wrote:
> Hi
> 
> Dana H. Myers wrote:
>>
>>> If I am correct i need to modify the call to ddi_regs_map_setup in
>>> asyattach() so as to access the right register (BAR1, to which content I
>>> need to add the offset).
>>
>> I believe so.  It sounds like you'll (unfortunately) need to detect
>> when your hardware is being used (probably from the PCI vendor/device
>> ID) to know when to use BAR1 vs. BAR0.  There's no chance to get your
>> hardware changed? :-)
> 
> 
> We have followed your suggestion. We have an on-board PCI UART that is
> 16550 compatible. It is the XR17D152 from EXAR:
> 
> http://www.exar.com/products/xr17d152v110.pdf

Data!  Excellent.  Thanks.

> It does map the UART through BAR0. I can see that your new asy.c driver
> is working fine with the two legacy ISA (2f8 and 3f8) ports. But I have
> a problem with the PCI uart: When the asy driver tries to probe the PCI
> uart node, it fails when the probe entry point tries to check the
> validity of the regs property in asy_get_io_regnum_pci(). prtconf then
> reports the driver is not attached.
> 
> I feel i need to put a new entry in /kernel/drv/asy.conf . But I am not
> sure what to put in there as a "reg" property that will please the
> driver...

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?

Dana



More information about the driver-discuss mailing list