xref: /rk3399_rockchip-uboot/examples/standalone/README.smc91111_eeprom (revision 1bce2aeb6f31043caa0509387d85b786c1d2e147)
11bc15386SPeter TyserThis is the readme for the Das U-Boot standalone program smc91111
21bc15386SPeter Tyser
31bc15386SPeter TyserThe main purpose of this is to manage MAC addresses on platforms
41bc15386SPeter Tyserwhich include the SMC91111 integrated 10/100 MAC Phy, with attached
51bc15386SPeter TyserEEPROMs.
61bc15386SPeter Tyser
71bc15386SPeter Tyser
81bc15386SPeter TyserContents:
91bc15386SPeter Tyser------------------------
101bc15386SPeter Tyser1. Ensuring U-boot's MAC address can be set in hardware
111bc15386SPeter Tyser2. Running the smc91111_eeprom program
121bc15386SPeter Tyser3. Setting MAC addresses
131bc15386SPeter Tyser4. Other things you can do with this
141bc15386SPeter Tyser5. Things to be done.
151bc15386SPeter Tyser
161bc15386SPeter Tyser
171bc15386SPeter Tyser1. Ensuring U-boot's MAC address can be set in hardware
181bc15386SPeter Tyser--------------------------------------------------------------------------
191bc15386SPeter Tyser
201bc15386SPeter TyserOn the Internet - MAC addresses are very important. Short for Media
211bc15386SPeter TyserAccess Control address, a hardware address that uniquely identifies
221bc15386SPeter Tysereach node of a network. When things are not unique - bad things
231bc15386SPeter Tysercan happen.  This is why U-Boot makes it difficult to change MAC
241bc15386SPeter Tyseraddresses.
251bc15386SPeter Tyser
261bc15386SPeter TyserTo find out who has a MAC address, or to purchase MAC addresses, goto
271bc15386SPeter Tyserthe IEEE, at:
281bc15386SPeter Tyserhttp://standards.ieee.org/regauth/oui/index.shtml
291bc15386SPeter Tyser
301bc15386SPeter TyserTo change your MAC address, there can not be a MAC address predefined in
311bc15386SPeter TyserU-Boot. To ensure that this does not occur, check your
321bc15386SPeter Tyserinclude/configs/<board_name>.h file, and check to see that the following
331bc15386SPeter Tysersettings are _not_ or commented out there.
341bc15386SPeter Tyser
351bc15386SPeter Tyser#define HARDCODE_MAC			1
361bc15386SPeter Tyser#define CONFIG_ETHADDR			02:80:ad:20:31:b8
371bc15386SPeter Tyser
381bc15386SPeter TyserThe purpose of HARDCODE_MAC is to hardcode the MAC address in software,
391bc15386SPeter Tyser(not what we want), or to preset it to 02:80:ad:20:31:b8 (not what we
401bc15386SPeter Tyserwant either).
411bc15386SPeter Tyser
421bc15386SPeter TyserYou can check this in a running U-Boot, by doing a power cycle, then
431bc15386SPeter Tyserbefore U-Boot tries to do any networking, running the 'printenv' command
441bc15386SPeter Tyser
451bc15386SPeter Tyser  BOOT> printenv
461bc15386SPeter Tyser
471bc15386SPeter Tyser  ethaddr=02:80:ad:20:31:b8
481bc15386SPeter Tyser
491bc15386SPeter TyserIf you see the 'ethaddr' variable show up, like the above, you need to
501bc15386SPeter Tyserrecompile U-Boot, with the above settings commented out of the
511bc15386SPeter Tyserinclude/configs/<board_name>.h file.
521bc15386SPeter Tyser
531bc15386SPeter Tyser2. Running the smc91111_eeprom program
541bc15386SPeter Tyser---------------------------------------------------------------------
551bc15386SPeter Tyser
561bc15386SPeter TyserAfter Uboot is compiled, there should be three files of interest:
571bc15386SPeter Tyser-rwxr-xr-x    1		8806 2004-10-11 14:00 smc91111_eeprom	    <- ELF
581bc15386SPeter Tyser-rwxr-xr-x    1		3440 2004-10-11 14:00 smc91111_eeprom.bin   <- BIN
591bc15386SPeter Tyser-rwxr-xr-x    1		9524 2004-10-11 14:00 smc91111_eeprom.srec  <- SREC
601bc15386SPeter Tyser
611bc15386SPeter Tyserif there is not, check the examples/Makefile, and ensure there is something
621bc15386SPeter Tyserlike for your architecture:
631bc15386SPeter Tyser
641bc15386SPeter Tyser   ifeq ($(ARCH),blackfin)
651bc15386SPeter Tyser   SREC	  += smc91111_eeprom.srec
661bc15386SPeter Tyser   BIN	  += smc91111_eeprom.bin smc91111_eeprom
671bc15386SPeter Tyser   endif
681bc15386SPeter Tyser
691bc15386SPeter TyserTo load the files: there are two methods: a) serial or b) network. Since
701bc15386SPeter Tyserit is not a good idea to start doing things on the network before the
711bc15386SPeter TyserMAC address is set, this example will do things over serial.
721bc15386SPeter Tyser
731bc15386SPeter Tysera) Loading the elf file via the serial port
741bc15386SPeter Tyser--------------------------------------------
751bc15386SPeter TyserLoading the elf is very easy - just ensure that the location
761bc15386SPeter Tyseryou specify things to load as is not the load address specified
771bc15386SPeter Tyserin the Makefile.
781bc15386SPeter Tyser
791bc15386SPeter TyserBOOT> loadb 0x1000000
801bc15386SPeter Tyser
811bc15386SPeter Tyser## Ready for binary (kermit) download to 0x01000000 at 57600 bps...
821bc15386SPeter Tyser
831bc15386SPeter Tyser(type CNTL-\ then C)
841bc15386SPeter Tyser(Back at local machine)
851bc15386SPeter Tyser----------------------------------------------------
861bc15386SPeter TyserKermit>send ~/u-boot_1.1.1/examples/smc91111_eeprom
871bc15386SPeter TyserKermit>connect
881bc15386SPeter Tyser
891bc15386SPeter TyserConnecting to /dev/ttyS0, speed 57600
901bc15386SPeter Tyser Escape character: Ctrl-\ (ASCII 28, FS): enabled
911bc15386SPeter TyserType the escape character followed by C to get back,
921bc15386SPeter Tyseror followed by ? to see other options.
931bc15386SPeter Tyser----------------------------------------------------
941bc15386SPeter Tyser## Total Size	   = 0x00002266 = 8806 Bytes
951bc15386SPeter Tyser## Start Addr	   = 0x01000000
961bc15386SPeter Tyser
971bc15386SPeter TyserBOOT> bootelf 0x1000000
981bc15386SPeter Tyser
991bc15386SPeter TyserLoading .text @ 0x00001000 (3440 bytes)
1001bc15386SPeter Tyser## Starting application at 0x000010d8 ...
1011bc15386SPeter Tyser
1021bc15386SPeter TyserSMC91111>
1031bc15386SPeter Tyser
1041bc15386SPeter Tyserb) Loading the binary file via the serial port
1051bc15386SPeter Tyser-----------------------------------------------
1061bc15386SPeter TyserFor many toolchains, the entry point is not the load point.
1071bc15386SPeter TyserThe Load point is a hard coded address from the
1081bc15386SPeter Tyserexamples/Makefile. The entry point can be found by doing something
1091bc15386SPeter Tyserlike:
1101bc15386SPeter Tyser
1111bc15386SPeter Tyser  u-boot_1.1.1/examples> bfin-elf-objdump -d smc91111_eeprom |less
1121bc15386SPeter Tyser
1131bc15386SPeter Tyser  smc91111_eeprom:     file format elf32-bfin
1141bc15386SPeter Tyser
1151bc15386SPeter Tyser  Disassembly of section .text:
1161bc15386SPeter Tyser
1171bc15386SPeter Tyser  00001000 <smc91111_eeprom-0xd8>:
1181bc15386SPeter Tyser      1000:
1191bc15386SPeter Tyser  000010d8 <smc91111_eeprom>:
1201bc15386SPeter Tyser
1211bc15386SPeter TyserYou can see that the entry point (or the address that should be
1221bc15386SPeter Tyserjumped to is 0x10d8). This is also the same as the entry point
1231bc15386SPeter Tyserof the elf file.
1241bc15386SPeter Tyser
1251bc15386SPeter TyserNow we load it to the actual load location:
1261bc15386SPeter Tyser
1271bc15386SPeter TyserBOOT> loadb 0x1000
1281bc15386SPeter Tyser
1291bc15386SPeter Tyser## Ready for binary (kermit) download to 0x00001000 at 57600 bps...
1301bc15386SPeter Tyser
1311bc15386SPeter Tyser(Back at pinky.dsl-only.net)
1321bc15386SPeter Tyser----------------------------------------------------
1331bc15386SPeter TyserKermit>send /tftpboot/eeprom.bin
1341bc15386SPeter TyserKermit>connect
1351bc15386SPeter Tyser
1361bc15386SPeter TyserConnecting to /dev/ttyS0, speed 57600
1371bc15386SPeter Tyser Escape character: Ctrl-\ (ASCII 28, FS): enabled
1381bc15386SPeter TyserType the escape character followed by C to get back,
1391bc15386SPeter Tyseror followed by ? to see other options.
1401bc15386SPeter Tyser----------------------------------------------------
1411bc15386SPeter Tyser## Total Size	   = 0x00000d70 = 3440 Bytes
1421bc15386SPeter Tyser## Start Addr	   = 0x00001000
1431bc15386SPeter Tyser
1441bc15386SPeter TyserBOOT> go 0x10D8
1451bc15386SPeter Tyser
1461bc15386SPeter Tyser## Starting application at 0x000010D8 ...
1471bc15386SPeter Tyser
1481bc15386SPeter TyserSMC91111>
1491bc15386SPeter Tyser
1501bc15386SPeter Tyser3. Setting MAC addresses
1511bc15386SPeter Tyser--------------------------------------------------------------------------
1521bc15386SPeter Tyser
1531bc15386SPeter TyserThe MAC address can be stored in four locations:
1541bc15386SPeter Tyser
1551bc15386SPeter Tyser-Boot environmental variable in Flash <- can not change, without
1561bc15386SPeter Tyser					  re-flashing U-boot.
157*1bce2aebSRobert P. J. DayU-Boot environmental variable	       <- can not change, without
1581bc15386SPeter Tyser					  resetting board/U-Boot
159*1bce2aebSRobert P. J. DayLAN91C111 Registers		       <- volatile
160*1bce2aebSRobert P. J. DayLAN91C111 EEPROM		       <- Non-volatile
1611bc15386SPeter Tyser
1621bc15386SPeter TyserIf you have not activated the network, and do not have a hardcoded
1631bc15386SPeter Tyseror pre-assigned MAC address in U-boot, the environmental variables
1641bc15386SPeter Tysershould be blank, and allow you to set things one time.
1651bc15386SPeter Tyser
1661bc15386SPeter TyserTo set the EEPROM MAC address to 12:34:56:78:9A:BC
1671bc15386SPeter Tyser
1681bc15386SPeter TyserSMC91111> W E 20 3412
1691bc15386SPeter Tyser
1701bc15386SPeter TyserWriting EEPROM register 20 with 3412
1711bc15386SPeter TyserSMC91111> W E 21 7856
1721bc15386SPeter Tyser
1731bc15386SPeter TyserWriting EEPROM register 21 with 7856
1741bc15386SPeter TyserSMC91111> W E 22 BC9A
1751bc15386SPeter Tyser
1761bc15386SPeter TyserWriting EEPROM register 22 with bc9a
1771bc15386SPeter TyserEEPROM contents copied to MAC
1781bc15386SPeter TyserSMC91111> P
1791bc15386SPeter Tyser
1801bc15386SPeter TyserCurrent MAC Address in SMSC91111 12:34:56:78:9a:bc
1811bc15386SPeter TyserCurrent MAC Address in EEPROM	 12:34:56:78:9a:bc
1821bc15386SPeter Tyser
1831bc15386SPeter Tyser(CNTRL-C to exit)
1841bc15386SPeter TyserSMC91111> ## Application terminated, rc = 0x0
1851bc15386SPeter Tyser
1861bc15386SPeter TyserBOOT> reset
1871bc15386SPeter TyserU-Boot 1.1.1 (gcc version: 3.3.3)
1881bc15386SPeter TyserRelease Version Beta released on Oct 10 2004 - 00:34:35
1891bc15386SPeter TyserBlackfin support by LG Soft India
1901bc15386SPeter TyserFor further information please check this link http://www.blackfin.uclinux.org
1911bc15386SPeter TyserBOOT> ping 192.168.0.4
1921bc15386SPeter Tyser
1931bc15386SPeter TyserUsing MAC Address 12:34:56:78:9A:BC
1941bc15386SPeter Tyserhost 192.168.0.4 is alive
1951bc15386SPeter Tyser
1961bc15386SPeter Tyser
1971bc15386SPeter Tyser4. Other things that you can do
1981bc15386SPeter Tyser--------------------------------------------------------------------------
1991bc15386SPeter TyserAfter the stand alone application is running, there are a few options:
2001bc15386SPeter Tyser - P : Print the MAC
2011bc15386SPeter Tyser - D : Dump the LAN91C111 EEPROM contents
2021bc15386SPeter Tyser - M : Dump the LAN91C111 MAC contents
2031bc15386SPeter Tyser - C : Copies the MAC address from the EEPROM to the LAN91C111
2041bc15386SPeter Tyser - W : Write a register in the EEPROM or in the MAC
2051bc15386SPeter Tyser
2061bc15386SPeter TyserSMC91111> P
2071bc15386SPeter Tyser
2081bc15386SPeter TyserCurrent MAC Address in SMSC91111 12:34:56:78:9a:bc
2091bc15386SPeter TyserCurrent MAC Address in EEPROM	 12:34:56:78:9a:bc
2101bc15386SPeter Tyser
2111bc15386SPeter TyserSMC91111> D
2121bc15386SPeter Tyser
2131bc15386SPeter TyserIOS2-0	  000	  001	  002	  003	  004	  005	  006	  007
2141bc15386SPeter TyserCONFIG 00:ffff 04:ffff 08:ffff 0c:ffff 10:ffff 14:ffff 18:ffff 1c:ffff
2151bc15386SPeter TyserBASE   01:ffff 05:ffff 09:ffff 0d:ffff 11:ffff 15:ffff 19:ffff 1d:ffff
2161bc15386SPeter Tyser       02:ffff 06:ffff 0a:ffff 0e:0020 12:ffff 16:ffff 1a:ffff 1e:ffff
2171bc15386SPeter Tyser       03:ffff 07:ffff 0b:ffff 0f:ffff 13:ffff 17:ffff 1b:ffff 1f:ffff
2181bc15386SPeter Tyser
2191bc15386SPeter Tyser20:3412 21:7856 22:bc9a 23:ffff 24:ffff 25:ffff 26:ffff 27:ffff
2201bc15386SPeter Tyser28:ffff 29:ffff 2a:ffff 2b:ffff 2c:ffff 2d:ffff 2e:ffff 2f:ffff
2211bc15386SPeter Tyser30:ffff 31:ffff 32:ffff 33:ffff 34:ffff 35:ffff 36:ffff 37:ffff
2221bc15386SPeter Tyser38:ffff 39:ffff 3a:ffff 3b:ffff 3c:ffff 3d:ffff 3e:ffff 3f:ffff
2231bc15386SPeter Tyser
2241bc15386SPeter TyserSMC91111> M
2251bc15386SPeter Tyser
2261bc15386SPeter Tyser    Bank0 Bank1 Bank2 Bank3
2271bc15386SPeter Tyser00  0000  a0b1	3332  0000
2281bc15386SPeter Tyser02  0000  1801	8000  0000
2291bc15386SPeter Tyser04  0000  3412	8080  0000
2301bc15386SPeter Tyser06  0000  7856	003f  0000
2311bc15386SPeter Tyser08  0404  bc9a	02df  3332
2321bc15386SPeter Tyser0a  0000  ffff	02df  3391
2331bc15386SPeter Tyser0c  0000  1214	0004  001f
2341bc15386SPeter Tyser0e  3300  3301	3302  3303
2351bc15386SPeter Tyser
2361bc15386SPeter TyserSMC91111> C
2371bc15386SPeter Tyser
2381bc15386SPeter TyserEEPROM contents copied to MAC
2391bc15386SPeter Tyser
2401bc15386SPeter TyserSMC91111> W E 2A ABCD
2411bc15386SPeter Tyser
2421bc15386SPeter TyserWriting EEPROM register 2a with abcd
2431bc15386SPeter Tyser
2441bc15386SPeter TyserSMC91111> W M 14 FF00
2451bc15386SPeter Tyser
2461bc15386SPeter TyserWriting MAC register bank 1, reg 04 with ff00
247