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