From owner-freebsd-embedded@FreeBSD.ORG Mon Jan 19 16:33:21 2009 Return-Path: Delivered-To: FreeBSD-Embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8EE09106564A; Mon, 19 Jan 2009 16:33:21 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from semihalf.com (semihalf.com [206.130.101.55]) by mx1.freebsd.org (Postfix) with ESMTP id 541358FC18; Mon, 19 Jan 2009 16:33:21 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from mail.semihalf.com (mail.semihalf.com [83.15.139.206]) by semihalf.com (8.13.1/8.13.1) with ESMTP id n0JGXIOO008714; Mon, 19 Jan 2009 09:33:19 -0700 Message-ID: <4974AB4D.9040204@semihalf.com> Date: Mon, 19 Jan 2009 17:33:17 +0100 From: Rafal Jaworowski Organization: Semihalf MIME-Version: 1.0 To: Daan Vreeken References: <200901191259.50518.Daan@vehosting.nl> <49747ABA.9090606@semihalf.com> <200901191618.06297.Daan@vehosting.nl> In-Reply-To: <200901191618.06297.Daan@vehosting.nl> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: FreeBSD-Embedded@freebsd.org, freebsd-ppc@freebsd.org Subject: Re: PowerPC embedded board? X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jan 2009 16:33:22 -0000 Hi Daan, Daan Vreeken wrote: >>> Searching the internet I've already stumbled upon the Efika [1] and >>> SAM440 [2] boards, which both look promising, but as far as my >>> Google-skills go, it looks like both boards need more work to get FreeBSD >>> fully functional on them. >>> I'm thinking of buying a couple of boards and helping an interested >>> developer by either setting up a compile & test environment that is >>> accessible over ssh, or donating an entire board (or both :) >> Both MPC5200 (Efika) and PPC440 (SAM440 and others) require quite a bit of >> work to turn into a reliable system to be used in a commercial product. >> They are both at a very similar stage: the kernel initially boots, >> interrupt controller driver ready, console (UART), work is in progress >> towards getting user-space pieces together, getting single user shell etc. >> In both cases virtually all remaining on-chip peripherals need respective >> drivers newly developed. > > Given enough hardware documentation, I have no problem with writing a couple > of drivers. The thing I'm not familiar with, is the lower level development > of getting a new platform to run FreeBSD. (I have never touched FreeBSD's VM > subsystem for example.) > What would be needed to get either of these boards to a single user shell? We're almost there with regards to running from ramdisk based mini-root fs. In case of a more elaborate (full) environment you'd need some kind of storage for the root fs: 1. MPC5200 - built-in ATA controller (getting this to work with DMA will be painful as relies on bringing operation to the microcode-based BestComm engine first) - built-in USB (OHCI), should be relatively easy, with a bit of luck only bus attachment is required 2. 440EP - no integrated S/ATA, the SAM board you mentioned has some external Silicon Image controller, so a driver would be needed for that - built-in USB (not sure if this has any standard host I/F implementation though) >>> So I've got some questions : >>> o Are there more interresting boards I could/should consider? (Or even >>> boards that can already run FreeBSD?) >>> o What board is most likely to grow FreeBSD support in the near future? >>> o What parts are currently missing to get these boards up and running? >> Ready to use and stable is the port for higher-end PowerPC systems: >> PowerQUICC MPC85xx series based on the E500 (BookE) core. You'll find all >> integrated peripherals supported, although the default environment with >> regards to the floating point support is running with emulation and not >> native hard-floats (due to various implemetations of the FPU, or the lack >> of). > > What would be needed to get hardware floating point to be supported? Is it > something that could be imported from NetBSD? Note we're talking about hard-floats for Book-E systems, which are very different from the traditional PowerPC FPU. Since NetBSD doesn't have support for any Book-E system, so it wouldn't be of direct help I think. There are at least two ways to support this: - gcc level - newer gcc (4.2.x IIRC) are able to produce machine code for native E500 FP - interface libc with native E500 FP Neither should be enormously difficult, so let me know if you'd like to work on this :-) The problem is in varieties: some Book-E cores don't have the FP APU and from the FreeBSD/powerpc project perspective we'd need something flexible and uniform enough so that different core variations still work (not to mention the traditional, AIM, PowerPC FPU..). Rafal