Date: Fri, 28 Sep 2007 15:46:23 +0200 From: Olivier Houchard <mlfbsd@ci0.org> To: Mark Tinguely <tinguely@casselton.net> Cc: freebsd-arm@freebsd.org, marius.nuennerich@gmx.de Subject: Re: Comment bug in locore.S? Message-ID: <20070928134623.GA25279@ci0.org> In-Reply-To: <200709281258.l8SCwpDA013426@casselton.net> References: <20070928102332.GA23400@ci0.org> <200709281258.l8SCwpDA013426@casselton.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 28, 2007 at 07:58:51AM -0500, Mark Tinguely wrote: > > > > > How about saving the jump address in another register also before the jump: > > > > > > > > ldr r10, .Lvirt_done > > > > ldr pc, .Lvirt_done > > > > > > I tried this but used r9, anyway the register isn't used otherwise and > > > it's contents is R09=c00002a4 after qemu crashes. Is it possible that > > > this would be the right address if the kernel would start at 0x30000000 > > > and not on 0x30008000 physical address? > > > > Ah good point. KERNVIRTADDR should be 0xc0008000, not 0xc0000000. > > As we're mapping it with sections, we don't have enough granularity to map it > > to 0xc0000000. > > Wouldn't it be more appropriate to start the physical/virtual address > on a L1 boundary (1 MB) rather than on a 32K boundary? > Yes it would, but shouldn't matter much. > I notice the style of the Xscale ports to put the physical address of > of the startup L1 before the kernel, and the at91 ports to put this > address after the kernel. > It all depends on the bootloader really. RedBoot won't let you load the kernel at the beginning of the ram, so you have a bit of space between the start of the RAM and the kernel, while the bootloader used on the AT91 loads it directly at PHYSADDR. Anyway, this page table is used so shortly it's no big deal. Regards, Olivier
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070928134623.GA25279>