Hi,
I have done some experiments with phylib and Xilinx ethernet drivers
and I found that mii code show different values for speed and duplex.
I think that the main problem is that there are called miiphy_speed
and miiphy_duplex functions instead of phy parsing functions.
I think that it will be the best to extend
struct phy_driver for
int (*parse_status)(struct phy_device *phydev);
and then reread phydev-speed or phydev-duplex instead of using generic
code which does wrong things.
Then will be good to synchronize FULL/HALF and DUPLEX_FULL/DUPLEX_HALF.
miiphy.h
#define HALF22
#define FULL44
include/linux/ethtool.h
#define DUPLEX_HALF 0x00
#define DUPLEX_FULL 0x01
And of course speeds:
miiphy.h
#define _1000BASET 1000
#define _100BASET 100
#define _10BASET10
include/linux/ethtool.h
#define SPEED_1010
#define SPEED_100 100
#define SPEED_1000 1000
#define SPEED_2500 2500
#define SPEED_1 1
Have someone looked at it? Any comments?
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot