[2.5] Hang on 8xx in head_8xx.S
Pantelis Antoniou
panto at intracom.gr
Fri Feb 14 00:27:42 EST 2003
Hello
I'm trying to make 2.5 work for 8xx processors.
After some tweaking it compiles, but now it hangs
in arch/ppc/kernel/head_8xx.S at the marked point
below.
I know this is not enough to make it work, since
it appears that the calling convention and registers
used for exception are changed between 2.4 <-> 2.5.
I could use some help in trying to understand what's going on.
Regards
Pantelis
/*
* Go back to running unmapped so we can load up new values
* and change to using our exception vectors.
* On the 8xx, all we have to do is invalidate the TLB to clear
* the old 8M byte TLB mappings and load the page table base register.
*/
/* The right way to do this would be to track it down through
* init's THREAD like the context switch code does, but this is
* easier......until someone changes init's static structures.
*/
lis r6, swapper_pg_dir at h
ori r6, r6, swapper_pg_dir at l
tophys(r6,r6)
#ifdef CONFIG_8xx_CPU6
lis r4, cpu6_errata_word at h
ori r4, r4, cpu6_errata_word at l
li r3, 0x3980
stw r3, 12(r4)
lwz r3, 12(r4)
#endif
mtspr M_TWB, r6
lis r4,2f at h
ori r4,r4,2f at l
tophys(r4,r4)
li r3,MSR_KERNEL & ~(MSR_IR|MSR_DR)
mtspr SRR0,r4
mtspr SRR1,r3
---> Gets here <---
rfi
2:
---> Never gets here <---
SYNC /* Force all PTE updates to finish */
tlbia /* Clear all TLB entries */
sync /* wait for tlbia/tlbie to finish */
TLBSYNC /* ... on all CPUs */
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list