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