Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

adder875 boot fail

0 views
Skip to first unread message

Jingyu Liu

unread,
Nov 15, 2009, 2:42:36 PM11/15/09
to
Hi there,

I have a adder875 board and I am trying to run linux 2..6.30 on it.
However, the kernel can't bootup and fails at head_8xx.S. I've traced
the code down and found it fails at the following point:

=====================================================
mtspr SPRN_M_TWB, r6
lis r4,2f@h
ori r4,r4,2f@l
tophys(r4,r4)
li r3,MSR_KERNEL & ~(MSR_IR|MSR_DR)
mtspr SPRN_SRR0,r4
mtspr SPRN_SRR1,r3
rfi

/* Load up the kernel context */
2:
SYNC /* Force all PTE updates to finish */
tlbia /* Clear all TLB entries */
sync /* wait for tlbia/tlbie to finish */
TLBSYNC /* ... on all CPUs */

====================================================

The kernel hangs after rfi instruction. It's supposed to return to
where "2:" is, but it doesn't.

Can anyone help? Thanks a lot

Jingyu

steve_s...@hotmail.com

unread,
Nov 15, 2009, 9:25:15 PM11/15/09
to
Hi Jingyu.

On Nov 15, 2:42 pm, Jingyu Liu <jyli...@gmail.com> wrote:
> =====================================================
>         mtspr   SPRN_M_TWB, r6
>         lis     r4,2f@h
>         ori     r4,r4,2f@l
>         tophys(r4,r4)
>         li      r3,MSR_KERNEL & ~(MSR_IR|MSR_DR)
>         mtspr   SPRN_SRR0,r4
>         mtspr   SPRN_SRR1,r3
>         rfi
>
> /* Load up the kernel context */
> 2:
>         SYNC                    /* Force all PTE updates to finish */
>         tlbia                   /* Clear all TLB entries */
>         sync                    /* wait for tlbia/tlbie to finish */
>         TLBSYNC                 /* ... on all CPUs */
>
> ====================================================
>
> The kernel hangs after rfi instruction. It's supposed to return to
> where "2:" is, but it doesn't.


The rfi instruction will have it run at whatever was in r4
(what got loaded into SRR0). Since you know it failed
at that point (have a BDI debugger?), can you look at
r4 and see if that looks like the correct physical
address for where this code is?

In particular, this code uses tophys() which uses
KERNELBASE. For that to be correct, you need to
make sure that KERNELLOAD in arch/ppc/Makefile
and PAGE_OFFSET in include/linux/page.h are
set to the same value (I've just used the default
0xc0000000).

Regards,
Steve

Jingyu Liu

unread,
Nov 17, 2009, 12:29:34 AM11/17/09
to
Thanks Steve. I don't have BDI. I printed messages to console for
tracing. I'll take a look if the address is the cause.

Jingyu

0 new messages