Skip site navigation (1)Skip section navigation (2)
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>