* linuxppc_2_4_devel patch for arch/ppc/kernel/gen550_dbg.c
@ 2003-06-05 21:46 Mark A. Greer
2003-06-05 22:25 ` linas
0 siblings, 1 reply; 2+ messages in thread
From: Mark A. Greer @ 2003-06-05 21:46 UTC (permalink / raw)
To: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 175 bytes --]
This patch add in the check to see if the UART already appears to be
initialized that is in arch/ppc/boot/common/ns16550.c.
Please apply if there are no objections.
Mark
--
[-- Attachment #2: gen550.patch --]
[-- Type: text/plain, Size: 2028 bytes --]
===== arch/ppc/kernel/gen550_dbg.c 1.3 vs edited =====
--- 1.3/arch/ppc/kernel/gen550_dbg.c Fri Apr 25 11:01:46 2003
+++ edited/arch/ppc/kernel/gen550_dbg.c Wed Jun 4 17:17:12 2003
@@ -57,6 +57,7 @@
unsigned long serial_init(int chan, void *ignored)
{
unsigned long com_port;
+ unsigned char lcr, dlm;
/* We need to find out which type io we're expecting. If it's
* 'SERIAL_IO_PORT', we get an offset from the isa_io_base.
@@ -79,22 +80,38 @@
/* How far apart the registers are. */
shift = rs_table[chan].iomem_reg_shift;
+
+ /* save the LCR */
+ lcr = serial_inb(com_port + (UART_LCR << shift));
/* Access baud rate */
- serial_outb(com_port + (UART_LCR << shift), 0x80);
+ serial_outb(com_port + (UART_LCR << shift), UART_LCR_DLAB);
+ dlm = serial_inb(com_port + (UART_DLM << shift));
- /* Input clock. */
- serial_outb(com_port + (UART_DLL << shift),
+ /*
+ * Test if serial port is unconfigured
+ * We assume that no-one uses less than 110 baud or
+ * less than 7 bits per character these days.
+ * -- paulus.
+ */
+ if ((dlm <= 4) && (lcr & 2)) {
+ /* port is configured, put the old LCR back */
+ serial_outb(com_port + (UART_LCR << shift), lcr);
+ }
+ else {
+ /* Input clock. */
+ serial_outb(com_port + (UART_DLL << shift),
(rs_table[chan].baud_base / SERIAL_BAUD) & 0xFF);
- serial_outb(com_port + (UART_DLM << shift),
- (rs_table[chan].baud_base / SERIAL_BAUD) >> 8);
- /* 8 data, 1 stop, no parity */
- serial_outb(com_port + (UART_LCR << shift), 0x03);
- /* RTS/DTR */
- serial_outb(com_port + (UART_MCR << shift), 0x03);
+ serial_outb(com_port + (UART_DLM << shift),
+ (rs_table[chan].baud_base / SERIAL_BAUD) >> 8);
+ /* 8 data, 1 stop, no parity */
+ serial_outb(com_port + (UART_LCR << shift), 0x03);
+ /* RTS/DTR */
+ serial_outb(com_port + (UART_MCR << shift), 0x03);
- /* Clear & enable FIFOs */
- serial_outb(com_port + (UART_FCR << shift), 0x07);
+ /* Clear & enable FIFOs */
+ serial_outb(com_port + (UART_FCR << shift), 0x07);
+ }
return (com_port);
}
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: linuxppc_2_4_devel patch for arch/ppc/kernel/gen550_dbg.c
2003-06-05 21:46 linuxppc_2_4_devel patch for arch/ppc/kernel/gen550_dbg.c Mark A. Greer
@ 2003-06-05 22:25 ` linas
0 siblings, 0 replies; 2+ messages in thread
From: linas @ 2003-06-05 22:25 UTC (permalink / raw)
To: Mark A. Greer; +Cc: linuxppc-dev
On Thu, Jun 05, 2003 at 02:46:42PM -0700, Mark A. Greer wrote:
> This patch add in the check to see if the UART already appears to be
[...]
> + * We assume that no-one uses less than 110 baud or
> + * less than 7 bits per character these days.
> + * -- paulus.
'These days' is a relative term, but last I looked, a few years ago,
I still had a freind who was using a 6-bit airline protocol on a
synchronoous serial port.
Yes, 6-bits means capital letters only. (26 alpha + 10 num + misc=64)
The protocol was still being used in many travel agencies to support
older terminals. Our travel agency received it encapsulated in
TCP on top of frame-relay. The airlines provides a router which
sucks in frame-relay, and spits out 6-bit synch. serial. We used
a serial cable to hook up a linux box, and converted the 6-bit
protocol into the tcp over ethernet that we wanted.
Thought you might enjoy reading this. I'll skip over the detailed
description of the four different end-of-message markers in the protocol.
--linas
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-06-05 22:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-05 21:46 linuxppc_2_4_devel patch for arch/ppc/kernel/gen550_dbg.c Mark A. Greer
2003-06-05 22:25 ` linas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).