From owner-freebsd-arm@FreeBSD.ORG Sat Feb 16 19:59:49 2013 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 3D43DA60; Sat, 16 Feb 2013 19:59:49 +0000 (UTC) (envelope-from tim@kientzle.com) Received: from monday.kientzle.com (99-115-135-74.uvs.sntcca.sbcglobal.net [99.115.135.74]) by mx1.freebsd.org (Postfix) with ESMTP id F240EA84; Sat, 16 Feb 2013 19:59:48 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.4/8.14.4) id r1GJxgRC051334; Sat, 16 Feb 2013 19:59:42 GMT (envelope-from tim@kientzle.com) Received: from [192.168.2.143] (CiscoE3000 [192.168.1.65]) by kientzle.com with SMTP id iw4i5ps4trivhjmsv2z4nnfn46; Sat, 16 Feb 2013 19:59:42 +0000 (UTC) (envelope-from tim@kientzle.com) Subject: Re: kernel address space & auto-tuning Mime-Version: 1.0 (Apple Message framework v1283) Content-Type: text/plain; charset=us-ascii From: Tim Kientzle In-Reply-To: <1361043297.1164.43.camel@revolution.hippie.lan> Date: Sat, 16 Feb 2013 11:59:40 -0800 Content-Transfer-Encoding: 7bit Message-Id: <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> To: Ian Lepore X-Mailer: Apple Mail (2.1283) Cc: "arm@freebsd.org" , Kostik Belousov , Alan Cox X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Feb 2013 19:59:49 -0000 >> >>> ... 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