From owner-freebsd-arm@FreeBSD.ORG Thu Sep 27 21:27:45 2007 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7CE816A417 for ; Thu, 27 Sep 2007 21:27:45 +0000 (UTC) (envelope-from mlfbsd@dong.ci0.org) Received: from dong.ci0.org (dong.ci0.org [IPv6:2001:7a8:2066:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id E7DDB13C457 for ; Thu, 27 Sep 2007 21:27:44 +0000 (UTC) (envelope-from mlfbsd@dong.ci0.org) Received: from dong.ci0.org (localhost.ci0.org [127.0.0.1]) by dong.ci0.org (8.13.8/8.13.8) with ESMTP id l8RMASB5016649; Fri, 28 Sep 2007 00:10:28 +0200 (CEST) (envelope-from mlfbsd@dong.ci0.org) Received: (from mlfbsd@localhost) by dong.ci0.org (8.14.1/8.13.8/Submit) id l8RMARiF016648; Fri, 28 Sep 2007 00:10:27 +0200 (CEST) (envelope-from mlfbsd) Date: Fri, 28 Sep 2007 00:10:27 +0200 From: Olivier Houchard To: Marius Nuennerich Message-ID: <20070927221027.GA16476@ci0.org> References: <20070927171822.0bdec7d9@sol.hackerzberg.local> <20070927170339.GA11021@ci0.org> <20070927224133.5fc9b24f@sol.hackerzberg.local> <20070927214141.GB15654@ci0.org> <20070927231331.5d22bf4a@sol.hackerzberg.local> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070927231331.5d22bf4a@sol.hackerzberg.local> User-Agent: Mutt/1.4.1i Cc: freebsd-arm@freebsd.org Subject: Re: Comment bug in locore.S? X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Sep 2007 21:27:46 -0000 On Thu, Sep 27, 2007 at 11:13:31PM +0200, Marius Nuennerich wrote: > On Thu, 27 Sep 2007 23:41:41 +0200 > Olivier Houchard 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 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 There's something I seriously miss. At this point, r2 should be 0 : ldmia r1, {r1, r2, sp} /* Set initial stack and */ sub r2, r2, r1 /* get zero init data */ mov r3, #0 .L1: str r3, [r1], #0x0004 /* get zero init data */ subs r2, r2, #4 bgt .L1 ldr pc, .Lvirt_done And not 0xc0000070 What are the values of _edata and _end ? If you've been able to do all those stores, the mapping should work anyway, I'm really confused. > 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? > No clue, sorry. Regards, Olivier