Re: UART detection?

From: mohanlal jangir
Date: Thu Apr 01 2004 - 08:55:00 EST


Hi Rui Santos,
Thanks for your replies. I try to explain my question in detail.

In file serial.c, there is one array rs_table defined as follows:
static struct serial_state rs_table[RS_TABLE_SIZE] = {
SERIAL_PORT_DFNS /* Defined in serial.h */
};

Above array is initialized with following structures.

{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */

Therefore IO address and IRQ of the UARTs are hardcoded. I want to know, is
their no way to find these values at run time?

Also I add another question here. Can I use addresses 0x3F8, 0x2F8 directly
in driver? Don't I need to remap these addresses? For example, is it ok to
say
register_data = readb(0x3F8 + some_register_offset);

Regards
Mohanlal

----- Original Message -----
From: "Rui Santos" <rsantos@xxxxxxxxxxxx>
To: "'mohanlal jangir'" <mohanlal@xxxxxxxxxxx>
Cc: <linux-kernel@xxxxxxxxxxxxxxx>
Sent: Thursday, April 01, 2004 6:06 PM
Subject: RE: UART detection?


> Hi,
>
> I do not fully understand what you mean by 'detect this inside a kernel
> module'. I think you want to compile it as a module and the modprobe it to
> get the module messages.
>
> If you compile the serial as a module on:
> - Device Drivers -> Character Devices -> Serial Drivers -> 8250/16550
Serial
> you will get a module called serial.o
>
> Remember that if you want do use modprobe to redirect the module messages,
> You need to turn off the 'Automatic Module loadind when compiling the
> kernel. You can do this ao Loadable Module Support -> Automatic Kernel
> Module Loading.
>
> Hope it helps
> Regards,
> Rui Santos
>
>
>
> -----Mensagem original-----
> De: mohanlal jangir [mailto:mohanlal@xxxxxxxxxxx]
> Enviada: quinta-feira, 1 de Abril de 2004 12:24
> Para: Rui Santos
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Assunto: Re: UART detection?
>
> I want to detect this inside a kernel module. Any way to do it?
>
> Regards
> Mohanlal
>
> ----- Original Message -----
> From: "Rui Santos" <rsantos@xxxxxxxxxxxx>
> To: "'mohanlal jangir'" <mohanlal@xxxxxxxxxxx>
> Sent: Thursday, April 01, 2004 4:56 PM
> Subject: RE: UART detection?
>
>
> > Hi,
> >
> > You can find them on the kernel boot messages.
> > Something like: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> >
> > This log is usualy found at /var/log/messages
> >
> > Regards
> > Rui Santos
> >
> >
> > -----Mensagem original-----
> > De: linux-kernel-owner@xxxxxxxxxxxxxxx
> > [mailto:linux-kernel-owner@xxxxxxxxxxxxxxx] Em nome de mohanlal jangir
> > Enviada: quinta-feira, 1 de Abril de 2004 12:02
> > Para: linux-kernel@xxxxxxxxxxxxxxx
> > Assunto: UART detection?
> >
> > How can I find in a kernel module, how many UARTs are present in my
> system?
> > And how can I find their IO address and IRQ?
> >
> > Regards
> > Mohanlal
> >
> >
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel"
in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
> >
> >
>
>
>
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/