Hi Robert,
Thank you very much.
By checking buddy variable I noticed u-boot detected a Zippy board
instead of a Zippy2 board. That's why kernel tried to load the
enc28j60 driver instead of the ks8851 one.
It looks like Zippy2 boards shipped by Digikey (5 May 2010) have
default eeprom values for Zippy.
One should update these values using i2c-tools or writeeprom.sh
(recipes/i2c-tools/
omap3-writeprom.bb -- by koen).
Procedure using i2c-tools:
1.- Dump EEPROM contents using i2cdump:
#> i2cdump 2 0x50
These are the default values:
0 1 2 3 4 5 6 7 8 9 a b c d e f
0123456789abcdef
00: 00 01 00 01 01 00 00 00 ff ff ff ff ff ff ff
ff .?.??...........
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
Meanings:
00 01 -> vendor id
00 01 -> device id (
http://www.elinux.org/
BeagleBoardPinMux#Vendor_and_Device_IDs) As you can see deveideid is
0x01 (Zippy)
01-> revision
other values -> environtment variables.
2.- Byte in address 0x03 should be changed to 0x02 to indicate Zippy2.
To do so: #> i2cset 2 0x50 0x03 0x02
Then, use i2cdump again to check the new value:
0 1 2 3 4 5 6 7 8 9 a b c d e f
0123456789abcdef
00: 00 01 00 02 01 00 00 00 ff ff ff ff ff ff ff
ff .?.??...........
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ................
3.- Reboot
Now, U-boot will detect Zippy2 and will export "buddy=zippy2".
As Robert Nelson said,
Add buddy='${buddy}' to bootargs in u-boot
if you use mmc booting script, as I do:
# setenv mmcargs ${mmcargs} buddy='${buddy}'
Reboot again.