linux-mips
[Top] [All Lists]

Re: broken devfs-support in SGI Zilog8530 serial driver

To: Borsenkow Andrej <Andrej.Borsenkow@mow.siemens.ru>
Subject: Re: broken devfs-support in SGI Zilog8530 serial driver
From: raoul@shuttle.de (Raoul Borenius)
Date: Fri, 29 Mar 2002 14:26:50 +0100
Cc: "'Raoul Borenius'" <raoul@shuttle.de>, linux-mips@oss.sgi.com, devfs@oss.sgi.com
In-reply-to: <000001c1d711$2492f070$1fc1f2a3@mow.siemens.ru>
References: <20020329103244.GA15765@bunny.shuttle.de> <000001c1d711$2492f070$1fc1f2a3@mow.siemens.ru>
Sender: owner-linux-mips@oss.sgi.com
User-agent: Mutt/1.3.28i
Hi Andrej,

On Fri, Mar 29, 2002 at 02:01:54PM +0300, Borsenkow Andrej wrote:
> > I'm not sure if this is a devfs or mips problem so I'm sending it
> > to both lists.
> > 
> > I just compiled my own mips-kernel from oss.sgi.com:/cvs to get
> > devfs-support. Unfortunately there seems to be a problem with the
> > serial-driver at least in the linux_2_4 branch:
> > 
> > SGI Zilog8530 serial driver version 1.00
> > devfs_register(ttyS): could not append to parent, err: -17
> 
> This means that somebody else registered ttyS (and cua) before Zilog8530
> driver attempted to do it. The possible reason could be that driver
> calls tty_register_devfs itself in this case it must set
> TTY_DRIVER_NO_DEVFS flag to prevent the same nodes registered by
> tty_register_driver.

Yeah, but I think the serial ports should be placed under /dev/tts/* and
/dev/cua/*, shouldn't they?

Which driver could have registered /dev/ttyS? if I search the
kernel-sources under arch/mips I get

testserv (raoul) ~/linux_2_4/linux/arch/mips> find . -name \*.c | xargs grep 
ttyS
./arc/arc_con.c:        "ttyS",
./au1000/common/serial.c:       printk("Testing ttyS%d (0x%04lx, 0x%04x)...\n", 
state->line,
./au1000/common/serial.c:       serial_driver.name = "ttyS";
./au1000/common/serial.c:               printk(KERN_INFO "ttyS%02d%s at 0x%04lx 
(irq = %d) is a %s\n",
./au1000/common/serial.c:       printk(KERN_INFO "ttyS%02d at %s 0x%04lx (irq = 
%d) is a %s\n",
./au1000/common/serial.c:       name:           "ttyS",
./au1000/pb1000/setup.c:                strcat(argptr, " console=ttyS0,115200");
./au1000/pb1500/setup.c:                strcat(argptr, " console=ttyS0,115200");
./baget/vacserial.c:    serial_driver.name = "ttyS";
./baget/vacserial.c:            printk(KERN_INFO "ttyS%02d%s at 0x%04x (irq = 
%d) is a %s\n",
./baget/vacserial.c:    name:           "ttyS",
./baget/vacserial.c:    autoconfig(info);       /* autoconfigure ttyS0, 
whatever that is */
./cobalt/setup.c:char arcs_cmdline[CL_SIZE] = { "console=ttyS0,115200 
root=/dev/hda1" };
./dec/promcon.c:    name:       "ttyS",
./galileo-boards/ev64120/promcon.c:     "ttyS",
./galileo-boards/ev64120/setup.c:char arcs_cmdline[CL_SIZE] = { 
"console=ttyS0,115200 "
./galileo-boards/ev96100/setup.c:               strcat(argptr, " 
console=ttyS0,115200");
./ite-boards/generic/it8172_setup.c:            strcat(argptr, " 
console=ttyS0,115200");
./jmr3927/rbhma3100/setup.c:            strcat(argptr, " console=ttyS1,115200");
./kernel/gdb-stub.c: *    (gdb) target remote /dev/ttyS1
./mips-boards/atlas/atlas_setup.c:      if ((argptr = strstr(argptr, 
"console=ttyS0")) == NULL) {
./mips-boards/atlas/atlas_setup.c:              strcpy(serial_console, 
"ttyS0,");
./mips-boards/atlas/atlas_setup.c:      if ((argptr = strstr(argptr, 
"kgdb=ttyS")) != NULL) {
./mips-boards/atlas/atlas_setup.c:              argptr += strlen("kgdb=ttyS");
./mips-boards/atlas/atlas_setup.c:                      printk("KGDB: Uknown 
serial line /dev/ttyS%c, "
./mips-boards/atlas/atlas_setup.c:                             "falling back to 
/dev/ttyS1\n", *argptr);
./mips-boards/atlas/atlas_setup.c:              printk("KGDB: Using serial line 
/dev/ttyS%d for session\n",
./mips-boards/atlas/atlas_setup.c:              prom_printf("KGDB: Using serial 
line /dev/ttyS%d for session, "
./mips-boards/malta/malta_setup.c:              strcat(argptr, " 
console=ttyS0,38400");
./mips-boards/malta/malta_setup.c:      if ((argptr = strstr(argptr, 
"kgdb=ttyS")) != NULL) {
./mips-boards/malta/malta_setup.c:              argptr += strlen("kgdb=ttyS");
./mips-boards/malta/malta_setup.c:                      printk("KGDB: Uknown 
serial line /dev/ttyS%c, "
./mips-boards/malta/malta_setup.c:                             "falling back to 
/dev/ttyS1\n", *argptr);
./mips-boards/malta/malta_setup.c:              printk("KGDB: Using serial line 
/dev/ttyS%d for session\n",
./mips-boards/malta/malta_setup.c:              prom_printf("KGDB: Using serial 
line /dev/ttyS%d for session, "
./philips/nino/prom.c:  strcpy(arcs_cmdline, "console=tty0 
console=ttyS0,115200");
./sgi-ip22/ip22-setup.c:                        console_setup ("ttyS1");
./sgi-ip22/ip22-setup.c:                        console_setup ("ttyS0");
./sgi-ip22/ip22-setup.c:        console_setup("ttyS0");
testserv (raoul) ~/linux_2_4/linux/arch/mips>


but I have not compiled support for arc console (when do you need that
btw?) and all other drivers do not apply to IP22 AFAIK.

My .config is attached below.

Regards

Raoul

Attachment: config-2.4.18-cvs-mips-20020328
Description: Text document

<Prev in Thread] Current Thread [Next in Thread>