> Tantalisingly close to it working, however I'm getting some strange behaviour. After a reset the device is pingable on 192.168.0.1 from my PC, until I run e.g. ifconfig eth0, or telnet 192.168.0.2 at which point the LEDs on the RJ45 socket go off and the link drops until I reset again.
Think I know why - the RJ45 light may have gone off but my little light went on
"In VDM Mode, the SCSn must be controlled with SPI Frame unit by
the External Host. (Refer to the Figure 4)"
(2.2.2 in the manual)
[VDM is variable length data mode - you can send/receive 1,2,4 or
'until you drop CS' bytes]
So to work without a chip select actually requires you alter
platform/wiznet.c not to use VDM transactions. Right now it uses them
for all the block transfers so presumably once the first transaction
using VDM happens life gets weird because every following transaction
is treated as a copy into the next register/memory offset.
So spi_transaction() and spi_transaction_u() in that case would need
to split block transfers into 4/2/1 byte transactions and send a
series of them. So if called with ctrl bits set for VDM
while(len >= 4) {
send offset
send ctrl | 3
send 4 bytes data
offset += 4;
len -= 4;
}
if (len & 2) {
.. | 2
}
if (len & 1)
etc
I'd forgotten about that bit of the 5500 stuff.
Alan