Date: Mon, 19 Jan 2009 17:33:17 +0100 From: Rafal Jaworowski <raj@semihalf.com> To: Daan Vreeken <Daan@vehosting.nl> Cc: FreeBSD-Embedded@freebsd.org, freebsd-ppc@freebsd.org Subject: Re: PowerPC embedded board? Message-ID: <4974AB4D.9040204@semihalf.com> In-Reply-To: <200901191618.06297.Daan@vehosting.nl> References: <200901191259.50518.Daan@vehosting.nl> <49747ABA.9090606@semihalf.com> <200901191618.06297.Daan@vehosting.nl>
index | next in thread | previous in thread | raw e-mail
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..). Rafalhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4974AB4D.9040204>
