From owner-freebsd-mips@FreeBSD.ORG Mon Mar 1 14:28:23 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33BDB1065670 for ; Mon, 1 Mar 2010 14:28:23 +0000 (UTC) (envelope-from c.jayachandran@gmail.com) Received: from mail-px0-f198.google.com (mail-px0-f198.google.com [209.85.216.198]) by mx1.freebsd.org (Postfix) with ESMTP id 0F1C48FC13 for ; Mon, 1 Mar 2010 14:28:22 +0000 (UTC) Received: by pxi36 with SMTP id 36so1033069pxi.13 for ; Mon, 01 Mar 2010 06:28:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:cc:content-type; bh=jzt5jhm8K8VO8R4T3yDr/BHpEOsQVb5adRIDRXbEzm8=; b=hFT4u++o/xe78CbMR4bVWukE31pHR0FWZbz+ETZQNLKzrMrBSMrDYsYpTfX1Vj5mEQ drfbURx1/HrX5l+ws9OZw86yQEgT1YJLs2wDyCMiOh+AT0vEIFimaF2ikcfoTF2e34YH voCYS/HQ/RU7VKeJ/oqPs3aoBm7WITMR1bsOc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=G0HIcprSdsueDyNsbHy7Dbt3d2lv8TfC8XKoD+9dKX2bIoBowChH/xAfycUHdpQ+Nq TvjxQYJnaE/IaP7uDalDJJXbQOiiYvNWEoLQAIaR1H+R+d4HILkzL+OygxXaFFXdhR5+ Yo4l5jALJ7CVVkV24GW2bzYp5SzY5PkWj3iKI= MIME-Version: 1.0 Received: by 10.141.125.9 with SMTP id c9mr2544153rvn.36.1267453698432; Mon, 01 Mar 2010 06:28:18 -0800 (PST) Date: Mon, 1 Mar 2010 19:58:18 +0530 Message-ID: <98a59be81003010628g6099768erc397bc90841840f8@mail.gmail.com> From: "C. Jayachandran" To: freebsd-mips@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: Subject: n32 support patches X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Mar 2010 14:28:23 -0000 I'm in the process of getting n32 ABI support for the RMI processors. The plan is have n32 compiled kernel with 64-bit register_t and physaddr_t and 32 bit long and pointer types. I've attached two patches, one for support for n32 in toolchain and one for n32 support in kernel compilation. With this I am able to compile the kernel and user space with n32, and the boot-up reaches until init. There is a lot more work on user-space and kernel (esp in mips/mips/*.S) before it can complete boot-up. Please review and let me know if you have any comments or objections on this approach. The patches are: http://sites.google.com/site/cjayachandran/files/n32-toolchain.patch Toolchain support for N32 - Adds the linker emulations needed for n32 - Common preprocessor defines for ABI (_ABI_MIPS_SIM and _ABI???). - Sets the long double type as 64 bit (this should be 128 bit in n32, but there is some work needed to get the 128 bit soft-float working). http://sites.google.com/site/cjayachandran/files/n32-kernel.patch N32 compilation - makefiles and conf - Adds ldscript.mips.n32. - Some cleanup in Makefile.mips, add ABI flags - bsd.cpu.mk CFLAGS for n32 compilation and linking I have introduced a TARGET_N32 similart to TARGET_64 for n32 compilation. But I think on the long term, we need clean up the different flags that affect architecture and ABI. Currently there is an overlap between the TARGET_CPUTYPE flag, the ISA_ flags and the TARGET_ flags. Regards, JC.