Kernel hangs in early_init
612dlag102 at sneakemail.com
Wed Mar 3 11:14:23 EST 2004
Wolfgang Denk wd-at-denx.de |PPC Linux Embedded| wrote:
> In message <4522-80798 at sneakemail.com> you wrote:
>>Good point, I missed that. However, that particular FAQ doesn't seem
>>to apply. I'm using 2.4.24+ (>2.4.5), the CFG_IMMR value doesn't seem
>>to apply (PPC405GPr, not a MPC8xx system) and I double-checked that
>>the bd_t structure matches. Besides, it's nowhere neer trying to access
>>any of the arguments yet.
> I think it does access arguments. Linux will need parameters like
> clock frequencies, memory sizes etc. Passing wrong paramteters is one
> of the most frequent causes of that particular failure mode.
I know it will access the arguments *eventually*, but it is not
head_4xx.S:_start calls initial_mmu to set up a preliminary map,
then turns on the MMU, branching to "start_here". start_here
calls early_init, which immediately calls reloc_offset in misc.S,
but stops there. In all this, I don't yet see any reference to
the arguments until *after* early_init returns. Then the args
are passed to machine_init.
Since it hangs *before* any reference to the passed in arguments,
I don't believe the problem lies there.
I've homed in on the hang being during a bl to reloc_offset
by using an o'scope and some spin loops, so I'm pretty sure
where it's going.
>>The stack at the time is still where U-Boot left it, near the end of
>>the 128Meg memory. Is this something I should address (pardon the pun)?
> I don't think so.
I think it's something related to a stack, even if it's not
that particular stack. Can someone explain this bit of code
to me? I'm not a PPC ASM hotshot.
/* ptr to current */
lis r2,init_task_union at h
ori r2,r2,init_task_union at l
/* ptr to phys current thread */
addi r4,r4,THREAD /* init task's THREAD */
mtspr SPRG2,r3 /* 0 => r1 has kernel sp */
/* stack */
bl early_init /* We have to do this with MMU on */
Steve Williams "The woods are lovely, dark and deep.
steve at XXXXXXXXXX But I have promises to keep,
http://www.XXXXXXXXXX and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded