Skip to contentSkip to conversation

phylib + mii + <phy>_parse_status

U-Boot Michal Simek 2 participants 2 messages Aug 25, 2011

lore
Share & tools
lore
#0 lore raw

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 HALF 22
#define FULL 44

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 _10BASET                10

include/linux/ethtool.h

#define SPEED_10                10
#define SPEED_100               100
#define SPEED_1000              1000
#define SPEED_2500              2500
#define SPEED_10000             10000

Have someone looked at it? Any comments?

Thanks,
Michal

Signature · 4 lines
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
#1 lore raw
Quoted 17 lines · On Thursday, August 25, 2011 03:56:50 Michal Simek wrote:

Then will be good to synchronize FULL/HALF and DUPLEX_FULL/DUPLEX_HALF.

miiphy.h
#define HALF 22
#define FULL 44

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 _10BASET                10
Quoted 8 lines

include/linux/ethtool.h

#define SPEED_10                10
#define SPEED_100               100
#define SPEED_1000              1000
#define SPEED_2500              2500
#define SPEED_10000             10000

Have someone looked at it? Any comments?

ive glanced at unification of these defines in the past and couldnt see any reason as to why it couldnt be done ... it just touched a bunch of drivers i had no way of testing, and didnt feel like embarking on another tree wide cleanup at that time. i can only do so many before i get bored ;).
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110825/9db0b3bf/attachment.pgp