From owner-freebsd-arm@FreeBSD.ORG Tue May 19 21:00:54 2009 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 223B5106566B for ; Tue, 19 May 2009 21:00:54 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (casselton.net [63.165.140.2]) by mx1.freebsd.org (Postfix) with ESMTP id CA7648FC13 for ; Tue, 19 May 2009 21:00:53 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (localhost [127.0.0.1]) by casselton.net (8.14.3/8.14.3) with ESMTP id n4JL0rNc079699; Tue, 19 May 2009 16:00:53 -0500 (CDT) (envelope-from tinguely@casselton.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=casselton.net; s=ccnMail; t=1242766853; bh=i5VyQP8DyWfLWd0YDsN279xhZTgdOHVgQhbZqb4lmGA=; h=Date:From:Message-Id:To:Subject:In-Reply-To; b=GuTHc94mDIeUSgJDDaas8mC5/jzieXkl369V81E5ahTpc6NJ9hUsrIcANKb5sNcOo 3bwI/m7bMxThGqghNvlPbn0znN/KpfRytJRV5OVnz+MXABFCGxSLElUrq0N1dR7hVJ RYqq0yKakoAQvZBhNM+266gpFpJKz1p2KZF7oDNY= Received: (from tinguely@localhost) by casselton.net (8.14.3/8.14.2/Submit) id n4JL0qNx079696; Tue, 19 May 2009 16:00:52 -0500 (CDT) (envelope-from tinguely) Date: Tue, 19 May 2009 16:00:52 -0500 (CDT) From: Mark Tinguely Message-Id: <200905192100.n4JL0qNx079696@casselton.net> To: chuckr@telenix.org, freebsd-arm@freebsd.org In-Reply-To: <4A12D46B.8040808@telenix.org> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.3.2 (casselton.net [127.0.0.1]); Tue, 19 May 2009 16:00:53 -0500 (CDT) Cc: Subject: Re: crosscompiler and porting notes 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: Tue, 19 May 2009 21:00:54 -0000 sorry for the blank reply. It should have said Looking at the current sources for the GNU assembler, it appears to me that the "gas" sources do not have some new and important ARMv7 commands such as "dmb", "dsb", and "isb" (barriers). There ARMv6 equivalent command, but are not recommended. --- I looked at the Cortex document, the first thing that changed in ARMv7 is the information registers (for example information on the caches). You will need to replace the CPU information and intialization code. It would be nice to get an ARMv7 ARM. Someone with authority, like the FreeBSD Foundation may be needed. --- You will need to write a new cpufunc_asm_XXX.S file of routines. The existing routines assume the pmap will flush the caches on context change. --- I would suggest you start by using the existing memory model of flushing caches on context changes until we learn more on the Cortex cache - are they *really* not effected by the cache coloring problem. If you can get the console working, and are willing to put some test code into somewhere like pmap_bootstrap(), to test if the cache coloring is really fixed, I would write it up. --- I have some rough code for the new ARMv6/ARMv7 TLS registers, the tlb ASID and load and store exclusive. You have plenty to do to get the board up to single user, without having to worry about this other stuff. --Mark.