Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

SMC LAN91C111

Altera_Forum
Honored Contributor II
909 Views

Has anyone run into problems relating to byte order and or endian-ness using the SMC 91C111 ethernet chip with uClinux? I'm unable to ping my board at this point. For example, assume I want to ping my board, 00:01:02:03:04:05, from a linux box running ethereal, 06:07:08:09:10:11. In Ethereal, the packet looks as expected: Ethernet Destination & Source, followed by the IP Header, followed by 0x08 through 0x36, in ascending order. However, when I dump the packet in the smc_rcv routine (in the smc91111.c driver), the addresses come out as: 

 

02:03:00:01:06:07 04:05:10:11:08:09 

 

The IP Header information is similarly permuted. This would appear to be some kind of byte-order issue. However, the packet payload (0x08-0x36) remains in correct order on both sides. Plus, this should all be done in 32-bit reads, so that confuses me as well. I can get the OS to accept the packet by swapping around the address bytes to fix the observed 'incorrectness'. But, this is surely not the correct fix, and I'd imagine someone else must have encountered this(?). 

 

 

Thanks in advance, 

 

Ryan
0 Kudos
0 Replies
Reply