Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Feb 2013 13:08:36 -0700
From:      Ian Lepore <ian@FreeBSD.org>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        "arm@freebsd.org" <arm@FreeBSD.org>, Kostik Belousov <kostikbel@gmail.com>, Alan Cox <alc@rice.edu>
Subject:   Re: kernel address space & auto-tuning
Message-ID:  <1361045316.1164.48.camel@revolution.hippie.lan>
In-Reply-To: <343AF6FE-05D9-48FB-9385-7EC1A532D057@kientzle.com>
References:  <51192C44.1060204@rice.edu> <1361039490.1164.36.camel@revolution.hippie.lan> <511FD88E.2020403@rice.edu> <1361043297.1164.43.camel@revolution.hippie.lan> <343AF6FE-05D9-48FB-9385-7EC1A532D057@kientzle.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2013-02-16 at 11:59 -0800, Tim Kientzle wrote:
> >> 
> >>> ...  It may be that the important
> >>> part of the change would come next: pick better arbitrary ending
> >>> addresses.
> >> 
> >> Is the location of the register mapping something that the kernel
> >> chooses?  Or is it something that is passed to the kernel at boot-time?
> >> 
> > 
> > As near as I can tell, it's a pretty much arbitrary choice on a per-SoC
> > basis, always hard-coded with a named constant of some sort in kernel
> > source code.  0xE0000000 seems to be a popular choice, with comments
> > about it being the address used to bootstrap the initial devmap.  That
> > appears to be true for only one SoC.  I think maybe there's been some
> > cut and paste propagation here.
> 
> Related to another thread, it would be nice to find
> ways to get more of these per-SoC values out
> of hardcoded constants.
> 
> In this case, the FDT should give the size and physical
> address of the register map.  Can we use that to
> determine the virtual mapping dynamically at runtime?
> 
> Tim

Conceptually, yeah, it'd just be something like 0xffffff00 - size, but
the fdt_immr_addr() routine that finds the PA and size and sets things
up based on them takes the desired VA as an argument.  Maybe a special
value could request that it calculate a VA based on the size it finds in
the data.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1361045316.1164.48.camel>