71 lines
2.4 KiB
Plaintext
71 lines
2.4 KiB
Plaintext
fec.xif
|
|
==========
|
|
|
|
The MiNT-Net xif driver for Firebee onboard ethernet interface,
|
|
based on Freescale DMA API.
|
|
|
|
|
|
Installation and usage
|
|
======================
|
|
|
|
Install MiNT-Net and copy the fecdma.xif into your mint folder.
|
|
Then configure the eth0 interface as usual.
|
|
|
|
Bring up the network interface and assign an specific IP to it:
|
|
ifconfig eth0 addr 192.168.220.101
|
|
|
|
To add an route to an specific host within you network:
|
|
route add 192.168.220.99 eth0
|
|
|
|
You can influence driver mode by renaming the .xif file.
|
|
recognized filenames:
|
|
|
|
"FEC.XIF" => Auto-Negotiate, no promiscuous mode
|
|
"FECP.XIF" => Auto-Negotiate, promiscuous mode
|
|
"FECP10.XIF" => 10Mbit half duplex, promiscuous mode
|
|
"FEC10.XIF" => 10Mbit half duplex, no promiscuous mode
|
|
|
|
|
|
|
|
How it works
|
|
============
|
|
|
|
The core of this driver is the so called DMA cookie.
|
|
This cookie provides us with pointers to the so called Multichannel
|
|
DMA API. That API is provided by Freescale and built into FireTOS.
|
|
Most FEC drivers (and also many others) are built on top of the
|
|
MCDMA API. For more info read the "Multichannel DMA API User's Guide"
|
|
and MCF5475 Reference Manual provided by Freescale.
|
|
|
|
Currently nearly the same Network Buffer Scheme as FireTOS uses,
|
|
is used for packet buffering. It makes use of the
|
|
dma_malloc / dma_free functions provided with FireTOS DMA cookie.
|
|
These functions work on memory areas which aren't affected
|
|
by CPU cache. We could also use cache-visible memory,
|
|
but then we would have to flush the cache (regions) before
|
|
we send / receive data. Another Option is to use a static RAM
|
|
area, but there isn't much space, which forces to use less
|
|
buffer descriptors ( around 3 for rx, 3 for tx ) and that slows
|
|
down transfer speeds alot. So the usage of SRAM is a bit
|
|
problematic. (Altough SRAM access time is faster.)
|
|
|
|
The DMA Cookie also provides us with the Freescale Multichannel
|
|
DMA API + dma utility functions. With these functions we can
|
|
start an so called "DMA task". There are specific DMA
|
|
tasks for Receiving / Transmitting FEC data. It's built within the
|
|
DMA API. So everything we have to do: start the dma task, and
|
|
most of the work is done. The FEC is controlled by the DMA Task,
|
|
and the driver just needs to handle incoming packets and submit
|
|
outgoing packets to the task.
|
|
|
|
While writing this, there is no official release of FireTOS which
|
|
contains the DMA Cookie. So you either have to look for an
|
|
non-official version, or wait until Didier Mequignon releases the
|
|
next FireTOS version.
|
|
|
|
Enjoy!
|
|
|
|
m0n0
|
|
|
|
7. Nov. 2011
|