Subject: Re: ARM 7TDMI aborts
To: Ben Harris <bjh21@netbsd.org>
From: John Fremlin <vii@users.sourceforge.net>
List: port-arm32
Date: 06/02/2001 23:27:25
Ben Harris <bjh21@netbsd.org> writes:
[...]
> > It doesn't give me a handy keyword. For data abt, ldr and str can
> > apparently write back modified base registers, and ldm and stm insns
> > can abort sort of halfway through. I guess this is the ARM6 early abt
> > model?
>
> Writing back modified base registers for LDR and STR is the "Base
> Updated Abort Model", ie late aborts.
So I want the arm7 fixups like I originally tried?
> FWIW, I've just committed changes to make the meanings of the fixup
> functions a little clearer. There's some more optimisation to be
> done there, in that early aborts are a subset of late aborts, so
> they can share a lot of code.
>
> > Bad news is that the port blows up eventually on an abort (with
> > ARM 7 fixups enabled) after (hopefully) jumping into main. It
> > certainly gets to the very end of initarm, but then does nothing
> > for several minutes.
OK, so now I'm cheating and jumping into main directly from initarm
;-)
I get the copyright printed fine, then (this time 100% reproduceable)
I get
panic: uvm_km_suballoc: unable to allocate space in parent map
which I don't understand at all. It shouldn't be running out of memory
and other pmap things have worked.
[...]
> What was the instruction? The things that can't be fixed up seem to
> be:
Hehe, it was a mov iirc - that boot was *seriously* wierd. Not a clue
how it got where it did. :-(
[...]
> That's not good. It'll screw up other users of disassem() (like
> DDB). The abort-fixup code should be printing the address itself.
Agreed.
> I'll look at making it do this.
Cool! But please don't touch cpufunc.c for a moment - I have no CVS
write access and pending changes to it :-(
--
http://ape.n3.net