
27 May
2003
27 May
'03
1:24 a.m.
I now remember why there is an x86 specific serial driver. Unlike every other chip, the x86 has a separately mapped I/O port address space. Sharing the driver will require some inline functions or macros to bridge the gap.
If continue to take from the Linux kernel model, there are CPU specific macros to read and write in the IO space. I also seem to recall that the spacing of IO addresses is different on each CPU. Some are forced to be 32 bit aligned while others may be word aligned. There is a little bit of work to fit all of the pieces together. Fortunately, the 16550 driver is simple enough to be a reliable test bed.
Are you good with this path?
Cheers.