linux-mips
[Top] [All Lists]

Re: console stuck

To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Subject: Re: console stuck
From: Ashlesha Shintre <ashlesha@kenati.com>
Date: Sat, 09 Dec 2006 16:09:41 -0800
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>, linux-mips@linux-mips.org
In-reply-to: <457AEA8B.9030605@ru.mvista.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1165630940.7860.7.camel@sandbar.kenati.com> <457AEA8B.9030605@ru.mvista.com>
Reply-to: ashlesha@kenati.com
Sender: linux-mips-bounce@linux-mips.org
Another basic query:

I m pretty sure I cant see my user space messages on the console due to
the fact that the ttyS0 device is not registered --

The board specific platform_init function that I wrote returns non-error
values and executes fine! --

Also, I figured that the ttyS0 uart regsitration is a separate process
that runs independently of the above arch_initcall --
It is spawned from the serial8250_register_ports function which is part
of the __init routines --

The "name" of the uart driver in this case is "serial" and is the struct
uart_driver serial8250_reg defined in the drivers/serial/8250.c file and
not "serial8250" which is the name of the struct device_driver
serial8250_isa_driver

-- how are these two processes -- the arch_initcall encm3_platform_init
function and the __init serial8250_register_ports function related? and
how come they use separate drivers?

Thank you,
Ashlesha.

On Sat, 2006-12-09 at 19:55 +0300, Sergei Shtylyov wrote:
> Hello.
> 
> Ashlesha Shintre wrote:
> > Hi,
> 
> > I m very much confused as to why there is an infinite loop in the
> > __request_resource function in the linux/kernel/resource.c file?
> 
>     It has 2 exit points (return statements).
> 
> > The serial console is getting stuck at this point.
> 
>     Then there's something very wrong with your resources...
> 
> >>for (;;) {
> >>                tmp = *p;
> >>                if (!tmp || tmp->start > end) {
> >>                        new->sibling = tmp;
> >>                        *p = new;
> >>                        new->parent = root;
> >>                        return NULL;
> >>                }
> >>                p = &tmp->sibling;
> >>                if (tmp->end < start){
> >>                        printk("tmp->end = %d\n",tmp->end);
> >>                        printk("tmp->start = %d\n",tmp->start);
> >>                        printk("*********!!!!!!!*******sibling?!!\n");
> >>                        continue;
> >>                }
> >>                return tmp;
> > 
> > 
> > Thanks and Regards,
> > Ashlesha.
> 
> WBR, Sergei
> 


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