Subject: Re: Current EFIKA status?
To: Frank Wille <frank@phoenix.owl.de>
From: Matt Sealey <matt@genesi-usa.com>
List: port-ofppc
Date: 10/05/2007 20:11:21
The ONLY peripheral that requires BestComm is Ethernet.

Everything else you can use by CPU polling, PIO and MMIO. ATA is dog slow in
PIO mode, though, USB 1.1 is always going to be a dog (there isn't any scope for
DMA even on the PC..), audio is the least of your troubles. PCI works on
Linux with no running DMA task for it (there is one in Efika firmware for
TX direction though and documentation on the Freescale site..)

For the Pegasos, you do not need *ANY* (that is to say, any, whatsoever, not
even a single line) support for the Northbridge except if you want to use
Ethernet. What you need is an RTAS interface and to use the PCI management
functions from there. RTAS will also handle the RTC for you.

The MPC52xx family is a 603e core; that's already supported. You need to
handle the interrupt controller.. and maybe a timer (does NetBSD use the
timebase or decrementer already?). The rest - ATA, USB, AC97 is just a
simple matter of pointing the chip drivers you already have, at the right
register offset. The firmware HAS set everything up for you already.

I don't know how many times i need to express this information but the
only thing stopping you from having a port is to STOP relying on the
Open Firmware client interface for abstraction and implement the
interrupt controller. Too much time has been wasted on trying to expose a
network device or a block device from the device tree... the OpenBSD
port to Pegasos was not this complicated, even in the slightest.

-- 
Matt Sealey <matt@genesi-usa.com>
Genesi, Manager, Developer Relations

Frank Wille wrote:
> Masao Uebayashi wrote:
> 
>>>> but my PPC assembly knowledge is very limited.
>>> Most likely you will get away without any assembly. At least in the
>>> bus_space(9) and bus_dma(9) part, as you can use existing routines.
>> Don't you need to handle SDMA (BestComm) to use ATA / PCI?
> 
> Unless you want to do it by polling, the BestComm should be used for DMA.
> But AFAIK also Linux had some problem with their Efika ATA-driver at first.
> 
> We would need support for the whole MPC52xx family. Something similar to
> sys/arch/powerpc/ibm4xx. I gave up on that, because I don't believe being
> capable of introducing a whole new cpu-family into NetBSD alone.
> 
> Maybe somebody with more experience likes to join and I would be happy to
> help.
> 
> The Pegasos is an easier target for the beginning. There we are lacking any
> support for the MV64361 Discovery II, but at least the rest is more or less
> standard.
>