The table below depicts the memory layout for the image and for the flash.
Memory layout
Item | Address |
---|---|
OS image loaded at: | 0x00100000 |
OS image begins execution at: | 0x00101e38 |
Flash base address | 0xff000000 |
Monitor flash offset | 0xff800000 |
TSEC1 base address | 0xffe24000(IRQ: 15, 16, 17) |
TSEC2 base address | 0xffe25000 (IRQ: 18,19, 20) |
TSEC3 base address | 0xffe26000 (IRQ: 21, 22, 23) |
TSEC4 base address | 0xffe27000 (IRQ: 24, 25, 26) |
Serial base address | 0xffe04500 (IRQ: 26) |
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 ipaddr 192.168.200.2 => setenv serverip 192.168.200.1 => setenv bootfile ifs-mpc8572ds.spe.raw => setenv loadaddr 0x100000 => setenv bootcmd 'tftpboot $loadaddr $bootfile; go $loadaddr' => setenv bootdelay 2 => saveenv Saving Environment to Flash... Un-Protected 1 sectors Erasing Flash... flash erase done Erased 1 sectors Writing to Flash... done Protected 1 sectors => boot
Speed: 100, full duplex Using MOTO ENET0 device TFTP from server 192.168.200.1; our IP address is 192.168.200.2 Filename 'ifs-mpc8572ds.spe.raw' Load address: 0x100000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ########################################################## done Bytes transferred = 3956736 (3c6000 hex) ## Starting application at 0x00100000 ...
Welcome to QNX Neutrino trunk on the PowerPC 8572DS board
This method requires an SREC image. You have to modify the buildfile to create this format. Change this:
[virtual=ppcbe-spe,raw]
to this:
[virtual=ppcbe-spe,srec]
Rebuild the image. On your target, type:
=>: setenv loads_echo 0 =>: saveenv =>: loads
On your host, copy the image to the serial port that's connected to the board. For example, on a Neutrino host:
cp ifs-mpc8572ds.srec /dev/ser1
At this point, you should see the ROM monitor download the boot image, indicated by a series of dots. You'll also see output similar to this when it finishes downloading:
## First Load Addr = 0x00100000 ## Last Load Addr = 0x0023955B ## Total Size = 0x0013955C = 1283420 Bytes ## Start Addr = 0x00101E38 =>:
Type:
go start_addr
You should now see the QNX Neutrino welcome message on your terminal screen:
System page at phys:0000c000 user:0000c000 kern:0000c000 Starting next program at v00133af4 Welcome to QNX Neutrino 6.4.1 on the PowerPC 8572DS board #
You can test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. ls).
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.
fs-etfs-mpc8572ds2048 -r65536 -D cs=2
etfsctl -d /dev/etfs2 -s
etfsctl -d /dev/etfs2 -f
etfsctl -d /dev/etfs2 -c
The driver command lines below are specific to the Freescale MPC8572DS board. See the online docs for each driver for additional command-line options and other details.
NOTE: Some of these 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.
Component | Buildfile Command | Required Binaries | Required Libraries | Source Location |
---|---|---|---|---|
Startup | startup-mpc8572ds | . | . | src/hardware/startup/boards/mpc8572ds |
Serial | devc-ser8250-mpc8540 -e -c600000000 -b115200 0xffe04500,28 | devc-ser8250-mpc8540 | . | src/hardware/devc/ser8250 |
PCI | pci-mpc8572 pex=3 (PEX controller 3 )
pci-mpc8572 pex=2 (PEX controller 2 ) pci-mpc8572 pex=1 (PEX controller 1 ) pci-mpc8572 pex=0 (PEX controller 0 ) | pci-mpc8572 pci | . | src/hardware/pci/mpc8572 |
Network | io-pkt-v4-hc -d mpc85xx syspage -ptcpip | io-pkt-v4-hc ifconfig | devnp-mpc85xx.so libsocket.so | src/hardware/devnp/mpc85xx |
Network:MPC Security Engine (AKA SEC) | io-pkt-v4-hc -dmpcsec -p tcpip-v6 ipsec -dmpc85xx syspage | io-pkt-v4-hc ifconfig | devnp-mpc85xx.so devnp-mpcsec.so libsocket.so | src/hardware/devnp/mpcsec |
ETFS | fs-etfs-mpc8572ds2048 -r65536 -D cs=2 -m /fs/etfs | fs-etfs-mpc8572ds2048 etfsctl | . | src/hardware/etfs/nand2048/mpc8572ds2048 |
I2C | i2c-mpc8572 -i29 -p0xffe03000 (Interface 1)
i2c-mpc8572 -i29 -p0xffe03100 --u1(Interface 2) | i2c-mpc8572 | . | src/hardware/i2c/mpc8572 |
The value passed to the -c option depends on the CCB clock frequency as displayed by U-Boot at boot time, which may change depending upon board dip switch settings. For instance, CCB:600Mhz translates to -c600000000.
without encryption:
io-pkt-v4-hc -dmpc85xx syspage -ptcpip
with encryption in software:
io-pkt-v4-hc -p tcpip-v6 ipsec -dmpc85xx syspage
with encryption in hardware (for MPC8572E):
io-pkt-v4-hc -dmpcsec -p tcpip-v6 ipsec -dmpc85xx syspage
Run both I2C channels:
i2c-mpc8572 -i29 -p0xffe03000
i2c-mpc8572 -i29 -p0xffe03100 --u1