, <tech-kern@netbsd.org>
From: TAKEMURA Shin <takemura@netbsd.org>
List: tech-kern
Date: 10/21/2001 10:15:02
----- Original Message -----
From: <eeh@netbsd.org>
To: <takemura@netbsd.org>; <tech-kern@netbsd.org>
Sent: Sunday, October 21, 2001 5:58 AM
Subject: Re: 16bit aligned NS16550 variant
> | I'd like to change NS16550 serial driver, 'com' to add 16bit register
> | access support. And I've made the patch(attached).
> |
> | Some embedded companion chip and ASIC have UART compatible
> | function but you must make 16bit access for thier registers.
>
> I object.
> You can take a look at how other ports handle the problem of accessing
> com registers when they have a stride of 16-bits by adding some address
> twiddling inside the bus_space_{read,write}*() macros.
I've found those drivers for NS16550 variant using bus_space_* before
I made the patch and I thought that they were adhoc and dirty hack:-)
But now I think both, bus_space approach and my patch, are OK for me.
> Or you can
> rewrite the bus_space_{read,write}*() macros for your specific port
> to vector through function pointers.
>
> But there is no reason to make all architectures pay this price.
Wojciech Puchar said there was a extension card which have 16bit
aligned registers. You should suppose that variants could be found
on ISA, PCI, PCMCIA and so on. My chip is actually found on ISA bus.
I could rewrite bus_space macros for hpcmips. But I found that i386 have
bus_space macros w/o function table too. Could anyone rewrite the
macros? I'm inexperienced in i386 port.
And I think bus_space stuff should be divided into MI/MD parts if you
solve machine independent chip issue like register arrangement with
bus_space macros.
Takemura