From owner-freebsd-arm@FreeBSD.ORG Mon Aug 16 16:33:26 2010 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 534181065675 for ; Mon, 16 Aug 2010 16:33:26 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id C7B318FC13 for ; Mon, 16 Aug 2010 16:33:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o7GGRf5D051021; Mon, 16 Aug 2010 10:27:41 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Mon, 16 Aug 2010 10:28:15 -0600 (MDT) Message-Id: <20100816.102815.72112000494883288.imp@bsdimp.com> To: andrew@fubar.geek.nz From: "M. Warner Losh" In-Reply-To: <20100816221321.180cf466@fubar.geek.nz> References: <1281907405.27697.19.camel@xeon.thinmesh.com> <20100815.153437.722022410199781366.imp@bsdimp.com> <20100816221321.180cf466@fubar.geek.nz> X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-arm@FreeBSD.org Subject: Re: FreeBSD EABI ARM & Network boot image howto? 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: Mon, 16 Aug 2010 16:33:26 -0000 In message: <20100816221321.180cf466@fubar.geek.nz> Andrew Turner writes: : On Sun, 15 Aug 2010 15:34:37 -0600 (MDT) : "M. Warner Losh" wrote: : > There was talk about NetBSD making this move too, but I don't know : > what became of it. : I haven't looked at if NetBSD supports it or not. My work was mostly a : weekend hacking to prove it is possible. : : > I'm guessing it won't be a huge deal to make this work, just a bunch : > of elbow grease in the syscalls... : : The main problem is getting a list of syscalls that need to be changed. : I found I could boot to single user mode by only changing stat and : fstat. I'm currently in the process of converting my hack to using the : same method to provide 32 bit and Linux compatability support. Sadly, you're going to have to step through each one and see if it changes. On MIPS, we had to do similar things for n32/n64 support since some syscalls it mattered for. But n32 support is by far the weirdest ABI beast in the jungle. So we're going to have multiple image activators on ARM? Is that the plan? Or is there some other way that you had in mind... : We also need to decide if we follow what Linux has done where it : changed it's syscall ABI when it moved to the EABI. They changed from : reading the instruction from memory to get the syscall number to : storing it in r7. The idea is to reduce the cost of the data cache miss : as the page will be in the instruction cache. I hacked up some code to : do the same but haven't had a chance to properly benchmark the change : yet. I think this is a good change as well. The compat layer can easily cope. Are there other ABI issues we wish to fix at the same time? And will this also help solve the funky alignment issues we've had with ARM elsewhere in the kernel causing problems either in structure sizes or unaligned accesses? Are there other implications we need to worry about? Are you going to try to support both the current ABI and EABI in the current source tree? Warner