MMU & cache questions on 8240 (kernel 2.4.6)

Paul Chu (Accusys) paulchu at accusys.com.tw
Thu Jul 12 14:16:02 EST 2001


Hello:

    Thank you for reading my questions.
    I'm porting kernel 2.4.6 to my custom 8240 board without
open firmware or any BIOS like that. I have questions at "head.S"
in the /arch/ppc/kernel directory. I cannot go back to running
unmapped after "MMU_init" and before "load_up_mmu". The
program is as follwos:
        DEBUG_OUT(0xAA)
        lis     r4,2f at h
        ori     r4,r4,2f at l
        tophys(r4,r4)
        li      r3,MSR_KERNEL & ~(MSR_IR|MSR_DR)
        FIX_SRR1(r3,r5)
        mtspr   SRR0,r4
        mtspr   SRR1,r3
        SYNC
        RFI
    2: DEBUG_OUT(0xBB)
This piece of code is from kernel and not modified at all; I'm
sure that the address caculation of "2" is correct. But I just
cannot get 0xBB at my debug port. And, when I disable
cache-enabling code, then this code can run to DEBUG_OUT(0xBB).
My cache-enabling code looks like this:
        mfspr   r3,HID0                 // enable i cache
        li      r4,0
        ori     r4,r4,(HID0_ICE|HID0_ICFI)
        or      r3,r3,r4
        mtspr   HID0,r3
        andc    r3,r3,r4
        ori     r3,r3,HID0_ICE
        mtspr   HID0,r3
        sync
        isync
        mfspr   r3,HID0                 // enable d cache
        ori     r3,r3,(HID0_DCE|HID0_DCI)
        rlwinm  r4,r3,0,22,20
        sync
        mtspr   HID0,r3
        mtspr   HID0,r4
        sync
        isync
Any advices are welcome, thank you !!
Paul Chu
Email: paulchu at accusys.com.tw


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list