ampio123,
When it comes to the Vitesse VSC7385 chip and how it functions and interfaces on the MPC8313E-RDB board, what it can and cannot do relates to:
1) The MPC8313E is a 2 port ethernet device and so when it comes to the Linux support on that chip (i.e. the Linux BSP from Freescale), it will only support 2 ports, eth0 and eth1 which are mapped to the two TSEC ethernet devices. The "eth1" port is connected to a Marvel PHY chip which connects to the lower right port of the 6 port ethernet physical connector box and the "eth0" is connected to the Vitesse VSC7385 which is then connected to the remaining 5 external ports. So as far as Linux and U-boot are concerned, there are only 2 ports that the software sees which one of those ports connects to a switch. So in other words, the board and associated software act the same as if there were two ports with one of them connected to a 6 port switch.
2) With the above, when it comes to assigning IP addresses, Linux and U-boot only see 2 ports, not six, so you cannot create unique Layer 3 IP addresses for each port as the software does not control them.
3) In my review of the schematics, the 7385 is connected to the address and data bus of the 8313, so it looks like in theory it could be possible to program the 7385 as the 7385 chip apparently is a semi-smart switch chip and even has an 8051 micro-controller in the chip. In a quick look at the product brief, it has a fair amount of features, but I didn't see any mention that it could do layer 3 routing, so what all you could do with the chip depends on getting the info from Vitesse on what it can or cannot do, and for that you'll need to work with a Vitesse sales person, as you cannot download their detailed specifications without having a Non-Disclosure Agreement (NDA) signed with them.
So it looks like that if you want to do more with the 7385 than the free software that Freescale provides you (which uses the 7385 as an onboard simple Ethernet Layer 2 switch), you'll need to work with Vitesse to get the information you need and they also might be able to point you in the direction of additional software drivers from them or their partners.
If you don't already have a relationship with Vitesse, here is a web link to download the product brief (which you can download and read without an NDA):
http://www.vitesse.com/products/download.php?fid=269&number=VSC7385
Here is a link to their Ethernet family of products (including Ethernet switches):
http://www.vitesse.com/products/group.php?id=8
Hope this helps :smileyhappy:
- abartky
Serge,
Last year I had a similar problem. I don't have notes on how I got to having that problem, but I did take some notes on how I recovered from it. Hopefully it may help you as well.
For the Vitesse Switch to work on the MPC8313E-RDB board, it must be loaded and initialized by u-boot before booting linux. If you boot Linux without having it properly loaded and started under U-boot, the Freescal Linux distribution will not initialize the switch as it will initialize the ETSECs, but not the switch.
For the switch to be loaded properly, you must have both the switch firmware and the switch firmware loader setup properly for U-boot to load and start the switch. I am guessing that your switch chip is not coming up because the firmware and/or the firmware loader are not setup in Flash memory.
Here are my log notes on how I loaded the vsc7385.bin file to flash (these were done using ETSEC2 and tftp to get the necessary Vitesse Switch files from my Linux how machine):
6/16/2007, 3:25 PM Looks like I found the key missing step.
Here are the relevant environment variable commands:
=> printenv bootcmd
bootcmd=run run_vscld1; run ramargs addtty;bootm fe100000 fe300000 fe700000
=> printenv run_vscld1
run_vscld1=cp.b fe710000 40000 11000; go 40004
In looking at the memory map in the documentation
- fe710000 is the base address for the VSC7385 firmware loader (vsc7385_load.bin)
- fe7fe000 is the base address for the VSC7385 firmware
Both the firmware and the firmware loader must be copied into Flash
.
- Instructions show steps for loading firmware @ fe7fe000 - fe7fffff
- They do not show steps for loading firmware loader @ fe710000 - fe72ffff
Instructions for loading the Firmware loader into flash memory should be something like:
=> tftp 1000000 /tftpboot/vsc7385_load.bin
=> protect off fe710000 fe72ffff
=> erase fe710000 fe72ffff
=> cp.b 1000000 fe710000 $filesize
=> protect on all
6/16/2007, 3:37 PM Looks like it worked, here is the actual capture
=> protect on all
Protect Flash Bank # 1
=> tftp 1000000 /tftpboot/vsc7385_load.bin
Speed: 1000, full duplex
Using TSEC0 device
TFTP from server 192.168.2.129; our IP address is 192.168.2.193
Filename '/tftpboot/vsc7385_load.bin'.
Load address: 0x1000000
Loading: #############
done
Bytes transferred = 66536 (103e8 hex)
=> protect off fe710000 fe72ffff
Un-Protected 2 sectors
=> erase fe710000 fe72ffff
.. done
Erased 2 sectors
=> cp.b 1000000 fe710000 $filesize
Copy to Flash... done
=> protect on all
Protect Flash Bank # 1
To make sure it loaded OK (and also previous load of firmware was OK), run_vscld1 is run to make sure that it loads OK.
=> run run_vscld1
## Starting application at 0x00040004 ...
VSC7385 Version = 0x273850e9
Value in IRAM matches binary, total bytes 0x2000 loaded
## Application terminated, rc = 0x0
=>
Next I set TSEC0 (ETSEC1) to be active and pinged the host to make sure everything was working:
=> setenv ethact TSEC0
=> ping 192.168.2.129
Speed: 1000, full duplex
Using TSEC0 device
host 192.168.2.129 is alive
=>
If you need to setup the actual firmware to flash (again assuming you have TFTP working OK) you can do the following command to tftp the file and burn it to Flash memory:
=> run burn_vscfw
Speed: 1000, full duplex
Using TSEC1 device
TFTP from server 192.168.2.129; our IP address is 192.168.2.193
Filename '/tftpboot/vsc2bin'.
Load address: 0x100000
Loading: ##
done
Bytes transferred = 8184 (1ff8 hex)
Error: start address not on sector boundary
Error: start address not on sector boundary
Copy to Flash... done
Hope this helps,
Cheers,
abartky