
On 26 Mar 2010 at 15:55, w.wegner@astro-kom.de wrote:
phytype is matched against the last entry of phyinfo erroneously:
phy_info_t phyinfo[] = { {0x0022561B, "AMD79C784VC"}, /* AMD 79C784VC */ [...] {0, 0} };
ouch, things are even worse... I did not quote enough of the source code of mcfmii.c:
#ifndef CONFIG_SYS_UNSPEC_PHYID # define CONFIG_SYS_UNSPEC_PHYID 0 #endif #ifndef CONFIG_SYS_UNSPEC_STRID # define CONFIG_SYS_UNSPEC_STRID 0 #endif [...]
phy_info_t phyinfo[] = { {0x0022561B, "AMD79C784VC"}, /* AMD 79C784VC */ [...] #if defined(CONFIG_SYS_UNSPEC_PHYID) && defined(CONFIG_SYS_UNSPEC_STRID) {CONFIG_SYS_UNSPEC_PHYID, CONFIG_SYS_UNSPEC_STRID}, #endif {0, 0} };
So the list phyinfo is terminated by a double {0, 0}, {0, 0}.
Can phyid == 0x0 be used as a simple termination condition, or could this be a valid phy id?
Wolfgang