I am running a public CVS version of eCos on MCF5208, compiled with the CodeSourcery toolchain.
Ethernet driver for ColdFire 5272/5282 was donated by eCosPro 2 weeks ago (/devs/eth/m68k/mcf52782). Recent Coldfires have same Ethernet controller as 5282. I had to make only trivial changes to create a 5208 port.
I conneted the MCF5208 EVBe to a computer running a sniffer. I use a switch (to see activity LED blinking). Code is broadcasting a DHCP query. Driver outputs nice tracing messages so all command traffic to/from the FEC (Fast Ethernet Controller) is clearly visible.
Driver properly initializes and configures the FEC, puts it into "live" mode, fills the buffer with data and tells it to transmit.
The PHY link is active, but nothing is sent. It looks like the FEC completely ignores the TX request. It does not clear the TX request flag in TDAR or "Ready" flag in the BD. It does not set any error flags in EIR. Nothing happens - it looks like the controller is dead.
I have read the HW spec forwards and backwards. Everything seems OK. The driver knows all the details - register and flag positions, command sequence, buffer alignment, etc. Changelog shows it has been in development for 5 years so I don't really expect to find any trivial errors there.
I'm a bit stumped. I assume I missed something when porting, but the changes were rather simple. I only enabled buffer alignment and set up correct interrupts.
The debug output is at:
Changes to source code are highlighted here:
Any suggestions on how to get FEC up and running?