Comment bug in locore.S?

Marius Nuennerich marius.nuennerich at gmx.de
Thu Sep 27 14:13:26 PDT 2007


On Thu, 27 Sep 2007 23:41:41 +0200
Olivier Houchard <mlfbsd at ci0.org> wrote:

> On Thu, Sep 27, 2007 at 10:41:33PM +0200, Marius Nuennerich wrote:
> > On Thu, 27 Sep 2007 19:03:39 +0200
> > Olivier Houchard <mlfbsd at ci0.org> wrote:
> > 
> > > On Thu, Sep 27, 2007 at 05:18:22PM +0200, Marius Nuennerich wrote:
> > > > Hi all,
> > > > 
> > > 
> > > Hi Marius,
> > > 
> > > > I'm still trying to boot FreeBSD on the neo1973. So far I managed to
> > > > put bytes over the serial console so I can see where I am. At the
> > > > moment the (virtual) machine crashes in locore.S (1.16) line 170:
> > > > ldr pc, .Lvirt_done
> > > > 
> > > > qemu: fatal: Trying to execute code outside RAM or ROM at 0xc0008???
> > > > 
> > > > Which I don't understand because the section should be mapped by the
> > > > MMU to 0x30008??? at that time.
> > > > 
> > > > In line 137 the sequence in the comment is described as
> > > > /* # of sections, PA|attr, VA */
> > > > but in line 185 the order is
> > > > n_sec, VA, PA|attr
> > > > 
> > > > Is the comment wrong?
> > > > 
> > > 
> > > No the comment is right, 0xc0000000 should be mapped.
> > > Did you define STARTUP_PAGETABLE_ADDR ? It's not marked as such, but it is
> > > mandatory now.
> > 
> > Yes, in the kernel config there are these lines:
> > makeoptions     KERNPHYSADDR=0x30008000
> > makeoptions     KERNVIRTADDR=0xc0000000
> > options         KERNPHYSADDR=0x30008000
> > options         KERNVIRTADDR=0xc0000000
> > options         PHYSADDR=0x30000000
> > options         STARTUP_PAGETABLE_ADDR=0x30800000
> > 
> > It's from Andrew Turners config file which he posted on
> > http://wiki.openmoko.org/wiki/FreeBSD
> > in the tarball.
> > 
> 
> Hmmm, I really see no reason why the PA <=> PA mapping would work, but not
> the VA <=> PA one.
> I'll try to setup qemu. Can it provide useful informations about its 
> internal state, ie CPU registers, TLB, etc ?

Yes, it looks like this:
qemu: fatal: Trying to execute code outside RAM or ROM at 0xc0008030

R00=30800000 R01=c01afdb8 R02=c0000070 R03=00000000
R04=3000824c R05=3000808c R06=00000002 R07=30008050
R08=33f17fdc R09=00000000 R10=00000041 R11=50000020
R12=33f14934 R13=c019b140 R14=33f8b9e8 R15=c0008030
PSR=60000153 -ZC- A svc32
s00=00000000(       0) s01=00000000(       0)
d00=0000000000000000(       0) s02=00000000(       0)
s03=00000000(       0) d01=0000000000000000(       0)
s04=00000000(       0) s05=00000000(       0)
d02=0000000000000000(       0) s06=00000000(       0)
s07=00000000(       0) d03=0000000000000000(       0)
s08=00000000(       0) s09=00000000(       0)
d04=0000000000000000(       0) s10=00000000(       0)
s11=00000000(       0) d05=0000000000000000(       0)
s12=00000000(       0) s13=00000000(       0)
d06=0000000000000000(       0) s14=00000000(       0)
s15=00000000(       0) d07=0000000000000000(       0)
s16=00000000(       0) s17=00000000(       0)
d08=0000000000000000(       0) s18=00000000(       0)
s19=00000000(       0) d09=0000000000000000(       0)
s20=00000000(       0) s21=00000000(       0)
d10=0000000000000000(       0) s22=00000000(       0)
s23=00000000(       0) d11=0000000000000000(       0)
s24=00000000(       0) s25=00000000(       0)
d12=0000000000000000(       0) s26=00000000(       0)
s27=00000000(       0) d13=0000000000000000(       0)
s28=00000000(       0) s29=00000000(       0)
d14=0000000000000000(       0) s30=00000000(       0)
s31=00000000(       0) d15=0000000000000000(       0)
FPSCR: 00000000

Can someone explain to me what the sxx= and dxx= value mean?

Regards,
Marius


More information about the freebsd-arm mailing list