Kernel hangs in console_init()
Becky Bruce
Becky.Bruce at freescale.com
Fri Oct 27 06:36:59 EST 2006
On Oct 26, 2006, at 1:19 PM, Scott Wood wrote:
> wei.li4 at 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
More information about the Linuxppc-embedded
mailing list