123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- This is the readme for the Das U-Boot standalone program smc91111
- The main purpose of this is to manage MAC addresses on platforms
- which include the SMC91111 integrated 10/100 MAC Phy, with attached
- EEPROMs.
- Contents:
- ------------------------
- 1. Ensuring U-boot's MAC address can be set in hardware
- 2. Running the smc91111_eeprom program
- 3. Setting MAC addresses
- 4. Other things you can do with this
- 5. Things to be done.
- 1. Ensuring U-boot's MAC address can be set in hardware
- --------------------------------------------------------------------------
- On the Internet - MAC addresses are very important. Short for Media
- Access Control address, a hardware address that uniquely identifies
- each node of a network. When things are not unique - bad things
- can happen. This is why U-Boot makes it difficult to change MAC
- addresses.
- To find out who has a MAC address, or to purchase MAC addresses, goto
- the IEEE, at:
- http://standards.ieee.org/regauth/oui/index.shtml
- To change your MAC address, there can not be a MAC address predefined in
- U-Boot. To ensure that this does not occur, check your
- include/configs/<board_name>.h file, and check to see that the following
- settings are _not_ or commented out there.
- #define HARDCODE_MAC 1
- #define CONFIG_ETHADDR 02:80:ad:20:31:b8
- The purpose of HARDCODE_MAC is to hardcode the MAC address in software,
- (not what we want), or to preset it to 02:80:ad:20:31:b8 (not what we
- want either).
- You can check this in a running U-Boot, by doing a power cycle, then
- before U-Boot tries to do any networking, running the 'printenv' command
- BOOT> printenv
- ethaddr=02:80:ad:20:31:b8
- If you see the 'ethaddr' variable show up, like the above, you need to
- recompile U-Boot, with the above settings commented out of the
- include/configs/<board_name>.h file.
- 2. Running the smc91111_eeprom program
- ---------------------------------------------------------------------
- After Uboot is compiled, there should be three files of interest:
- -rwxr-xr-x 1 8806 2004-10-11 14:00 smc91111_eeprom <- ELF
- -rwxr-xr-x 1 3440 2004-10-11 14:00 smc91111_eeprom.bin <- BIN
- -rwxr-xr-x 1 9524 2004-10-11 14:00 smc91111_eeprom.srec <- SREC
- if there is not, check the examples/Makefile, and ensure there is something
- like for your architecture:
- ifeq ($(ARCH),blackfin)
- SREC += smc91111_eeprom.srec
- BIN += smc91111_eeprom.bin smc91111_eeprom
- endif
- To load the files: there are two methods: a) serial or b) network. Since
- it is not a good idea to start doing things on the network before the
- MAC address is set, this example will do things over serial.
- a) Loading the elf file via the serial port
- --------------------------------------------
- Loading the elf is very easy - just ensure that the location
- you specify things to load as is not the load address specified
- in the Makefile.
- BOOT> loadb 0x1000000
- ## Ready for binary (kermit) download to 0x01000000 at 57600 bps...
- (type CNTL-\ then C)
- (Back at local machine)
- ----------------------------------------------------
- Kermit>send ~/u-boot_1.1.1/examples/smc91111_eeprom
- Kermit>connect
- Connecting to /dev/ttyS0, speed 57600
- Escape character: Ctrl-\ (ASCII 28, FS): enabled
- Type the escape character followed by C to get back,
- or followed by ? to see other options.
- ----------------------------------------------------
- ## Total Size = 0x00002266 = 8806 Bytes
- ## Start Addr = 0x01000000
- BOOT> bootelf 0x1000000
- Loading .text @ 0x00001000 (3440 bytes)
- ## Starting application at 0x000010d8 ...
- SMC91111>
- b) Loading the binary file via the serial port
- -----------------------------------------------
- For many toolchains, the entry point is not the load point.
- The Load point is a hard coded address from the
- examples/Makefile. The entry point can be found by doing something
- like:
- u-boot_1.1.1/examples> bfin-elf-objdump -d smc91111_eeprom |less
- smc91111_eeprom: file format elf32-bfin
- Disassembly of section .text:
- 00001000 <smc91111_eeprom-0xd8>:
- 1000:
- 000010d8 <smc91111_eeprom>:
- You can see that the entry point (or the address that should be
- jumped to is 0x10d8). This is also the same as the entry point
- of the elf file.
- Now we load it to the actual load location:
- BOOT> loadb 0x1000
- ## Ready for binary (kermit) download to 0x00001000 at 57600 bps...
- (Back at pinky.dsl-only.net)
- ----------------------------------------------------
- Kermit>send /tftpboot/eeprom.bin
- Kermit>connect
- Connecting to /dev/ttyS0, speed 57600
- Escape character: Ctrl-\ (ASCII 28, FS): enabled
- Type the escape character followed by C to get back,
- or followed by ? to see other options.
- ----------------------------------------------------
- ## Total Size = 0x00000d70 = 3440 Bytes
- ## Start Addr = 0x00001000
- BOOT> go 0x10D8
- ## Starting application at 0x000010D8 ...
- SMC91111>
- 3. Setting MAC addresses
- --------------------------------------------------------------------------
- The MAC address can be stored in four locations:
- -Boot environmental variable in Flash <- can not change, without
- re-flashing U-boot.
- U-Boot environental variable <- can not change, without
- resetting board/U-Boot
- LAN91C111 Registers <- volitle
- LAN91C111 EEPROM <- Non Volitle
- If you have not activated the network, and do not have a hardcoded
- or pre-assigned MAC address in U-boot, the environmental variables
- should be blank, and allow you to set things one time.
- To set the EEPROM MAC address to 12:34:56:78:9A:BC
- SMC91111> W E 20 3412
- Writing EEPROM register 20 with 3412
- SMC91111> W E 21 7856
- Writing EEPROM register 21 with 7856
- SMC91111> W E 22 BC9A
- Writing EEPROM register 22 with bc9a
- EEPROM contents copied to MAC
- SMC91111> P
- Current MAC Address in SMSC91111 12:34:56:78:9a:bc
- Current MAC Address in EEPROM 12:34:56:78:9a:bc
- (CNTRL-C to exit)
- SMC91111> ## Application terminated, rc = 0x0
- BOOT> reset
- U-Boot 1.1.1 (gcc version: 3.3.3)
- Release Version Beta released on Oct 10 2004 - 00:34:35
- Blackfin support by LG Soft India
- For further information please check this link http://www.blackfin.uclinux.org
- BOOT> ping 192.168.0.4
- Using MAC Address 12:34:56:78:9A:BC
- host 192.168.0.4 is alive
- 4. Other things that you can do
- --------------------------------------------------------------------------
- After the stand alone application is running, there are a few options:
- - P : Print the MAC
- - D : Dump the LAN91C111 EEPROM contents
- - M : Dump the LAN91C111 MAC contents
- - C : Copies the MAC address from the EEPROM to the LAN91C111
- - W : Write a register in the EEPROM or in the MAC
- SMC91111> P
- Current MAC Address in SMSC91111 12:34:56:78:9a:bc
- Current MAC Address in EEPROM 12:34:56:78:9a:bc
- SMC91111> D
- IOS2-0 000 001 002 003 004 005 006 007
- CONFIG 00:ffff 04:ffff 08:ffff 0c:ffff 10:ffff 14:ffff 18:ffff 1c:ffff
- BASE 01:ffff 05:ffff 09:ffff 0d:ffff 11:ffff 15:ffff 19:ffff 1d:ffff
- 02:ffff 06:ffff 0a:ffff 0e:0020 12:ffff 16:ffff 1a:ffff 1e:ffff
- 03:ffff 07:ffff 0b:ffff 0f:ffff 13:ffff 17:ffff 1b:ffff 1f:ffff
- 20:3412 21:7856 22:bc9a 23:ffff 24:ffff 25:ffff 26:ffff 27:ffff
- 28:ffff 29:ffff 2a:ffff 2b:ffff 2c:ffff 2d:ffff 2e:ffff 2f:ffff
- 30:ffff 31:ffff 32:ffff 33:ffff 34:ffff 35:ffff 36:ffff 37:ffff
- 38:ffff 39:ffff 3a:ffff 3b:ffff 3c:ffff 3d:ffff 3e:ffff 3f:ffff
- SMC91111> M
- Bank0 Bank1 Bank2 Bank3
- 00 0000 a0b1 3332 0000
- 02 0000 1801 8000 0000
- 04 0000 3412 8080 0000
- 06 0000 7856 003f 0000
- 08 0404 bc9a 02df 3332
- 0a 0000 ffff 02df 3391
- 0c 0000 1214 0004 001f
- 0e 3300 3301 3302 3303
- SMC91111> C
- EEPROM contents copied to MAC
- SMC91111> W E 2A ABCD
- Writing EEPROM register 2a with abcd
- SMC91111> W M 14 FF00
- Writing MAC register bank 1, reg 04 with ff00
|