Port-amiga archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] Fixup for Amigas with memory at 0x200000



On Fri Jan 10 2003 at 20:18:22 +0200, Ilpo Ruotsalainen wrote:
> > Just tried booting my '060 A1200 with patched -current, gray screen
> > nothing else... (I know the -current is otherwise good, so it must be
> > this patch.)
> 
> I know this much now: It certainly finishes start_c(). It either doesn't
> ever enter start_c_finish() or CUSTOMADDR (or the mappings) are hosed.

After some debugging I've managed to narrow it down to this:

LMMUenable_start:

/* enable the MMU */
#if defined(M68040) || defined(M68060)
        RELOC(mmutype, %a0)
        cmpl    #MMU_68040,%a0@
        jne     Lenable030
        movl    #0xdff180,%a0
        movw    #0xa00,%a0@
        pflusha
        movl    #0xdff180,%a0
        movw    #0x00a,%a0@
        movl    #0xc000,%d0
        .word   0x4e7b, 0x0003          | movec %d0,%tc
        jmp     Lunshadow:l
#endif /* M68040 || M68060 */
/* ENABLE, SRP_ENABLE, 8K pages, 8bit A-level, 11bit B-level */
Ltc:    .long   0x82d08b00
Lenable030:
        movl    #0xdff180,%a0
        movw    #0x0a0,%a0@
        lea     Ltc,%a0
        pmove   %a0@,%tc
        jmp     Lunshadow:l

LMMUenable_end:

With the code looking like this, I end up with RED screen. Which seems
to say it dies on the "pflusha" instruction (unless that instruction
changes MMU mappings or such? I'd think it's the movec that changes them
but I don't know really almost anything about 68k MMUs...).

-- 
Ilpo Ruotsalainen - <lonewolf%iki.fi@localhost> - http://www.iki.fi/lonewolf/



Home | Main Index | Thread Index | Old Index