Subject: Re: [PATCH] Fixup for Amigas with memory at 0x200000
To: Aymeric Vincent <Aymeric.Vincent@labri.fr>
From: Ilpo Ruotsalainen <lonewolf@iki.fi>
List: port-amiga
Date: 01/10/2003 21:38:59
On Fri Jan 10 2003 at 21:35:53 +0200, Ilpo Ruotsalainen wrote:
> 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...).
Hmpf, sent this a few minutes too early. Next iteration with the
"pflusha" instruction removed produced a kernel that booted
successfully. So that seems to be the guilty one, I'm not m68k guru
enough to instantly know why it would die on that...
--
Ilpo Ruotsalainen - <lonewolf@iki.fi> - http://www.iki.fi/lonewolf/