Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
adder875 boot fail
- 11-15-2009
- Jingyu Liu
November 15, 2009, 7:42 pm

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
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

Re: adder875 boot fail

3D%3D3D%3D

3D%3D3D%

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
Site Timeline
- » Feedback about Leon3/V8 procesor/boards?
- — Next thread in » Embedded Linux
-
- » mmap returning MAP_FAILED
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » ottenere alim duale da trafo singolo
- — The site's Newest Thread. Posted in » Electronics Hobby (Italian)
-
- » soldermaska zastÄ™pcza
- — The site's Last Updated Thread. Posted in » Electronics (Polish)
-