The MPC8313E-RDB REVC board contains eTSEC1: five 10/100/1000 BaseT RJ-45 interface using Vitesse VSC7385 L2 switch and eTSEC2: one 10/100/1000 BaseT RJ-45 interface using Marvell 88E1111 PHY( lower-right-most is TSEC2, other five are eTSEC1).
The MPC8313E-RDB board contains a Vitesse VSC7385 L2 switch connected to TSEC1 device. This switch essentially requires to load/execute a Vitesse firmware before booting any OS on the MPC8313E-RDB platform, in order to be able to use TSEC1. This firmware comes factory preloaded on MPC8313E-RDB board's NOR flash.
U-Boot 1.3.0 (Dec 22 2008 - 11:19:29) MPC83XX Reset Status: CPU: e300c3, MPC8313E, Rev: 21 at 333.333 MHz, CSB: 166 MHz Board: Freescale MPC8313ERDB I2C: ready DRAM: 128 MB FLASH: 8 MB NAND: 32 MiB In: serial Out: serial Err: serial Net: TSEC0, TSEC1 [PRIME] Hit any key to stop autoboot: 0 => => cp.b fe710000 40000 11000; go 40004 ## Starting application at 0x00040004 ... VSC7385 Version = 0x273850e9 Value in IRAM matches binary, total bytes 0x2000 loaded ## Application terminated, rc = 0x0 =>
Firmware Loader Program: => tftp 1000000 /xfer/vsc7385_load.bin => protect off fe710000 fe72ffff => erase fe710000 fe72ffff => cp.b 1000000 fe710000 10408 <- This is the hex size of vsc7385_load.bin returned by tftp => protect on all Firmware Image => tftp 1000000 /xfer/vsc2bin => protect off fe7f0000 fe7f3fff => erase fe7f0000 fe7f3fff => cp.b 1000000 fe7f0000 1ff8 <- This is the hex size of vsc2bin returned by tftp => protect on all
This method requires a raw image, which the buildfile creates by default. On your target, type the following, filling in the appropriate IP addresses and ifs file:
=> setenv ethact TSEC1 => setenv ipaddr 172.18.80.142 => setenv serverip 172.18.80.174 => setenv bootfile ifs-mpc8313rdb.raw => setenv loadaddr 0x200000 => setenv ldswitch 'cp.b fe710000 40000 11000; go 40004' => setenv bootcmd 'tftpboot $loadaddr $bootfile; run ldswitch; go $loadaddr' => setenv bootdelay 2 => saveenv Saving Environment to Flash... Un-Protected 1 sectors Erasing Flash... . done Erased 1 sectors Writing to Flash... done Protected 1 sectors => boot
At this point you should see the ROM monitor download the boot image, indicated by a series of number signs. You'll also see output similar to this when it completes downloading:
Speed: 100, full duplex Using TSEC1 device TFTP from server 10.42.97.136; our IP address is 10.42.104.42 Filename 'ifs-mpc8313rdb.raw'. Load address: 0x200000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ############################## done Bytes transferred = 1483860 (16a454 hex) ## Starting application at 0x00200000 ...
Welcome to QNX Neutrino 6.4.0 on the Freescale MPC8313E RDB board
Once the initial image is running, you can update the OS image using the network and flash drivers. For sample command lines, please see the " Driver Command Summary" section.
devf-generic -s0xFE000000,8M
flashctl -p/dev/fs0 -l1M -o6M -ve
flashctl -p/dev/fs0p0 -l1M -o6M -vf
slay devf-generic & devf-generic -s0xFE000000,8M &
The following table summarizes the commands to launch the various drivers.
Component | Buildfile Command | Required Binaries | Required Libraries | Source Location |
---|---|---|---|---|
Startup | startup-mpc8313e-rdb | . | . | src/hardware/startup/boards/mpc8313e-rdb |
Serial | devc-ser8250 -e -F -c166000000 -b115200 0xe0004500,0x09 0xe0004600,0x0A | devc-ser8250 | . | src/hardware/devc/ser8250 |
Flash (NOR) | devf-generic -s 0xFE000000,8M | devf-generic flashctl | . | src/hardware/flash/boards/generic |
Flash (Nand) | fs-etfs-mpc8313erdb512 -D cs=1 -m /fs/etfs | mpc8313erdb512 etfsctl | . | src/hardware/etfs/nand512/mpc8313erdb512 |
PCI | pci-mpc8313 | pci-mpc8313 pci | . | src/hardware/pci/mpc8313 |
Network | eTSEC1: io-pkt-v4 -d mpc85xx pci=0,syspage,emu_phy=0,irq_tx=32,irq_rx=33,irq_err=34
eTSEC2: io-pkt-v4 -d mpc85xx pci=1,ioport=0xe0025000,irq_tx=35,irq_rx=36,irq_err=37 Both: io-pkt-v4 -dmpc85xx pci=0,syspage,emu_phy=0,irq_tx=32,irq_rx=33,irq_err=34 -d mpc85xx pci=1,ioport=0xe0025000,irq_tx=35,irq_rx=36,irq_err=37 | io-pkt-v4-hc ifconfig | devnp-mpc85xx.so libsocket.so | prebuilt binary only: prebuilt/ppcbe/lib/dll/devnp-mpc85xx.so |
I2C | For I2C interface 1: i2c-mpc5200 -p0xe0003000 -c88000000 -i14 --u0
For I2C interface 2: i2c-mpc5200 -p0xe0003100 -c88000000 -i15 --u1 | i2c-mpc5200 | . | src/hardware/i2c/mpc5200 |
SPI | spi-master -d mpc8349 | spi-master | spi-mpc8349.so | src/hardware/spi/mpc8349 |
USB | io-usb -d ehci-8313 ioport=0xe0023100,irq=38 | io-ubs usb* | devu-ehci-8313.so libusbdi.so class drivers | prebuilt binary only: prebuilt/ppcbe/lib/dll/devu-ehci-8313.so |
RTC | Set OS clock from RTC: rtc hw /dev/i2c0
Set RTC from OS clock: rtc -s hw /dev/i2c0 | rtc date | . | QNX640 prebuilt binary only: NOTE: requires I2C driver to be running first |
WDT | wdtkick-mpc83xx | wdtkick-mpc83xx | . | src/hardware/support/wdtkick-mpc83xx
NOTE: To enable the WatchDog Timer, Please pass -w option to startup: startup-mpc8313e-rdb -w |
Some of the drivers are commented out in the default buildfile. To use the drivers in the target hardware, you'll need to uncomment them in your buildfile, rebuild the image, and load the image into the board.
For eTSEC1:five 10/100/1000 BaseT RJ-45 interface using Vitesse VSC7385 L2 switch:
io-pkt-v4 -dmpc85xx pci=0,syspage,emu_phy=0,irq_tx=32,irq_rx=33,irq_err=34
setenv ldswitch 'cp.b fe710000 40000 11000; go 40004'
setenv bootcmd 'tftpboot $loadaddr $bootfile; run ldswitch; go
For eTSEC2: one 10/100/1000 BaseT RJ-45 interface using Marvell 88E1111 PHY:
io-pkt-v4 -d mpc85xx pci=1,ioport=0xe0025000,irq_tx=35,irq_rx=36,irq_err=37
For Both eTSEC1 and eTSEC2:
io-pkt-v4 -dmpc85xx pci=0,syspage,emu_phy=0,irq_tx=32,irq_rx=33,irq_err=34 -d mpc85xx pci=1,ioport=0xe0025000,irq_tx=35,irq_rx=36,irq_err=37
None