Re: Serial driver abstraction...

Ralf Baechle (ralf@mailhost.uni-koblenz.de)
26 Jul 1995 18:31:35 GMT


In article <9507242217.AA10034@tsx-11.MIT.EDU>, tytso@ATHENA.MIT.EDU (Theodore Ts'o) writes:
|> Date: Mon, 24 Jul 1995 14:10:45 -0400
|> From: mucci@cs.utk.edu

|> Where can I get a copy of amiga_ser.c? It wasn't in your tar file...

Take a look into tsx-11.mit.edu:/pub/linux/680x0/src/. That's where the
newest kernels are located.

|> You misunderstand me. If you are assuming that everyone has a 8250, then
|> you shouldn't need an extra abstraction layer --- you should just be
|> able to change the inline functions for serial_out() and serial_in(),
|> which is the abstract interface to the registers on the 8250 UART.
|> There should very little changes that you need to make for a new
|> architecture. As I mentioned before, when Linus ported serial.c to the
|> Alpha, he had to add precisely two extra #ifdef's. Two extra #ifdef's
|> don't justify an entire new abstraction layer.
|>
|> If, on the other hand, you want to allow the serial driver to share code
|> with non-8250 based serial driver --- such as the many intelligent
|> serial boards that are out there --- then the abstractions which you
|> are using aren't good enough to support these non-8250 UART serial
|> devices. And let me assure you, they most certainly exist.
|>
|> Why don't I turn the question around. What's so different about the
|> access method to the 8250 UART's in the Amiga such that you need to
|> write a new layer, instead of just making minor modifications to
|> selected portions of the serial.c driver?

The Amiga uses a completely different hardware structure. Everything that
is in common with the usual PC serial hardware are the 1488/1489 driver
chips. But they don't need drivers. The new abstractions layer is justified,
really.

Ralf