Subject: Re: CVS commit: src/sys/dev/pci
To: None <jdolecek@NetBSD.org>
From: Izumi Tsutsui <email@example.com>
Date: 03/06/2005 01:18:42
In article <20050305150509.GA12509@s102-n054.tele2.cz>
> Assuming eaddr is stored in network byte order and the returned
> value being in network byte order too, the code might actually
> be just fine as-is.
No no, the EEPROM is not network device and it just stores data
in uint16_t word. It doesn't have byte-stream data, so we don't
have to do any byteswap ops even on big endian machines.
The problem in the original code is to copy uint16_t data stream
from EEPROM into a uint8_t eaddr array.
Some devices store the first byte in higher 8bit in uint16_t
EEPROM word (ex etc.), others do in lower 8 bit (rtk, vge etc.),
but anyway we can just take eaddr bytes without byteswap ops.
> If you had a chance to try this on big-endian
> machine, let me know :)
Sorry, I don't have the card. Just I've been tired to fix
many FreeBSD derived drivers which are not-well-considered
about endianness ;-p