Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: syssrc
In <200005240804.BAA03756%nb00.nas.nasa.gov@localhost>
soren%netbsd.org@localhost wrote:
> Module Name: syssrc
> Committed By: soren
> Date: Wed May 24 08:04:25 UTC 2000
>
> Modified Files:
> syssrc/sys/dev/ic: i82557.c
>
> Log Message:
> The EEPROM is little-endian.
I think using le16toh() in fxp_read_eeprom() is wrong.
The 93c46 EEPROM can be accessed only in 16bit word and
fxp_read_eeprom() just returns u_int16_t data.
There is no endianness dependency.
The problem is caused by using bcopy() to copy
myea[] (which is u_int16_t) to enaddr[] (which is u_int8_t).
It should be just like:
enaddr[0] = myea[0] & 0xff;
enaddr[1] = myea[0] >> 8;
enaddr[2] = myea[1] & 0xff;
enaddr[3] = myea[1] >> 8;
enaddr[4] = myea[2] & 0xff;
enaddr[5] = myea[2] >> 8;
Then no byte-swap code is needed.
---
Izumi Tsutsui
tsutsui%ceres.dti.ne.jp@localhost
Home |
Main Index |
Thread Index |
Old Index