* Kernel hangs in console_init()
@ 2006-10-25 21:33 wei.li4
2006-10-26 18:19 ` Scott Wood
0 siblings, 1 reply; 3+ messages in thread
From: wei.li4 @ 2006-10-25 21:33 UTC (permalink / raw)
To: linuxppc-embedded
Hi All,
I am working on linux 2.6.18-rc2 with my mpc875 demo board, I used
Debugger LEDs to find that kernel stopped in:
while (call < __con_initcall_end) {
(*call)();
call++;
}
which is in console_init() of tty_io.c, what kind of problem could be?
What's the means of 'bctrl' instruction that I found in its assembler?
Thanks,
Wei
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: Kernel hangs in console_init()
2006-10-25 21:33 Kernel hangs in console_init() wei.li4
@ 2006-10-26 18:19 ` Scott Wood
2006-10-26 20:36 ` Becky Bruce
0 siblings, 1 reply; 3+ messages in thread
From: Scott Wood @ 2006-10-26 18:19 UTC (permalink / raw)
To: wei.li4; +Cc: linuxppc-embedded
wei.li4@elf.mcgill.ca wrote:
> Hi All,
>
> I am working on linux 2.6.18-rc2 with my mpc875 demo board, I used
> Debugger LEDs to find that kernel stopped in:
> while (call < __con_initcall_end) {
> (*call)();
> call++;
> }
> which is in console_init() of tty_io.c, what kind of problem could be?
> What's the means of 'bctrl' instruction that I found in its assembler?
It's an indirect function call (i.e. the (*call)(); line) to the address
specified in the CTR register. You need to find out the value of *call
in order to figure out which function is failing. There are probably
only a small number of possibilities that are actually configured into
your kernel (look for console_initcall in files that get built for your
target).
-Scott
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: Kernel hangs in console_init()
2006-10-26 18:19 ` Scott Wood
@ 2006-10-26 20:36 ` Becky Bruce
0 siblings, 0 replies; 3+ messages in thread
From: Becky Bruce @ 2006-10-26 20:36 UTC (permalink / raw)
To: wei.li4; +Cc: linuxppc-embedded
On Oct 26, 2006, at 1:19 PM, Scott Wood wrote:
> wei.li4@elf.mcgill.ca wrote:
>> Hi All,
>>
>> I am working on linux 2.6.18-rc2 with my mpc875 demo board, I used
>> Debugger LEDs to find that kernel stopped in:
>> while (call < __con_initcall_end) {
>> (*call)();
>> call++;
>> }
>> which is in console_init() of tty_io.c, what kind of problem could
>> be?
>> What's the means of 'bctrl' instruction that I found in its
>> assembler?
>
> It's an indirect function call (i.e. the (*call)(); line) to the
> address
> specified in the CTR register. You need to find out the value of
> *call
> in order to figure out which function is failing. There are probably
> only a small number of possibilities that are actually configured into
> your kernel (look for console_initcall in files that get built for
> your
> target).
>
> -Scott
Wei,
For future reference, bctrl is not an instruction, but a simplified
mnemonic. Simplified mnemonics are there to make it easier to read
and write assembly code; for example, you can write "bctrl" instead
of "bcctrl 20,0". These are all listed in appendix F of the
Programming Environments Manual for 32-bit implementations of the
PowerPC Architecture.
You won't find these instructions in the index of the manual, so
whenever you run into an "instruction" that you don't find listed in
the main part of the manual, try appendix F and hopefully that will
help.
Cheers,
B
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-10-26 20:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-25 21:33 Kernel hangs in console_init() wei.li4
2006-10-26 18:19 ` Scott Wood
2006-10-26 20:36 ` Becky Bruce
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).