Host development system
Item | Address |
---|---|
OS image loaded at: | 0x200000 |
Flash base address | 0xFE000000 |
U-BOOT base address in flash | 0xFE000000 |
IPL-OS image base address in flash | 0xFE100000 |
Flash file system base address in flash | 0xFE300000 |
Step 1: Build the BSP
You can build a BSP OS image from the source code. For instructions about building a BSP OS image, please refer to the chapter Working with a BSP in the Building Embedded Systems manual.
Step 2: Connect your hardware
1.Connect the serial cable to the first serial port of the MPC8439E MDS CPU card to the first serial port of your host machine (e.g. ser1 on a Neutrino host).
Note: If you have a Neutrino host with a serial mouse, you may have to move the mouse to the second serial port on your host, because some terminal programs require the first serial port.
2.Connect an RJ-45 Ethernet cable to P3-Enet4 on your target.
On your host machine, start your favorite terminal program with these settings:
Then, apply power to the target. You should see output similar to the following:
Clock configuration: Coherent System Bus: 133 MHz Core: 333 MHz QE: 200 MHz BRG: 100 MHz Local Bus Controller: 133 MHz Local Bus: 66 MHz DDR: 266 MHz SEC: 133 MHz I2C1: 133 MHz CPU: MPC8323E, Rev: 11 at 333.333 MHz Board: Freescale MPC8323ERDB I2C: ready DRAM: DDR RAM: 64 MB FLASH: 16 MB PCI clock is 66MHz In: serial Out: serial Err: serial Net: UEC: PHY is Generic MII (2430d80) FSL UEC0: Full Duplex FSL UEC0: Speed 100BT FSL UEC0: Link is up UEC: PHY is Generic MII (2430d80) FSL UEC1: Full Duplex FSL UEC1: Speed 100BT FSL UEC1: Link is up FSL UEC0, FSL UEC1 Hit any key to stop autoboot: 0 =>
Step 3: Setup the environment
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-mpc8323erdb.raw => setenv loadaddr 0x200000 => setenv bootcmd 'tftpboot $loadaddr $bootfile; go $loadaddr' => setenv bootdelay 2 => saveenv Saving Environment to Flash... Un-Protected 2 sectors Erasing Flash... .. done Erased 2 sectors Writing to Flash... done Protected 2 sectors
Step 4: Boot the IFS image
You can use TFTP download (the default) or serial download to transfer the image from your host to the target:
Step 4A: TFTP download
This method requires a raw image, which the buildfile creates by default.
Once the above setup is complete, you can run the load command at the => prompt to download the image:
=> 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:
Using FSL UEC0 device TFTP from server 10.42.97.136; our IP address is 10.42.104.42 Filename '/root/ifs-mpc8323erdb.raw'. Load address: 0x200000 Loading: ################################################################# ################################################################# ################################################################# ######################################### done Bytes transferred = 1208216 (126f98 hex) ## Starting application at 0x00200000 ... System page at phys:0000b000 user:0000b000 kern:0000b000 Starting next program at v00244860 Welcome to QNX Neutrino Trunk on the Freescale MPC8323E RDB board # #
Step 4B: Using the U-Boot ROM monitor via Serial port download
1.Apply power to the target board and press any key to stop autobooting. You should see the U-Boot ROM monitor output.
2.You can use the serial port to transfer an OS image to the board. This method requires a raw image, which the buildfile creates by default.
3.Use loadb to download the OS image through the serial port. You should see the ROM monitor waiting for transfer:
=> loadb 0x200000 115200 ## Ready for binary (kermit) download to 0x00200000 at 115200 bps..
4.On your host PC, run kermit to send the appropriate binary file. If you are using hyperterm; go to the pull-down menu Transfer and select Send File...; you will get the Send File pop-up window. In the Send file window, select the Kermit Protocol and the correct OS image filename, and then click Send to download the image. This download method will take several minutes to complete. Once complete, you sould see the following message:
## Total Size = 0x00121368 = 1184616 Bytes ## Start Addr = 0x00200000 =>
5.Start the OS image:
=> go 0x200000
You should now see the QNX Neutrino welcome message on your terminal screen:
## Starting application at 0x00200000 ... System page at phys:0000b000 user:0000b000 kern:0000b000 Starting next program at v00244860 Welcome to QNX Neutrino Trunk on the Freescale MPC8323E RDB board #
You can now 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 "Summary of driver commands" section.
You may be able to repair a flash by reprogramming it using an ICE or a flash programmer.
The commands below will destroy any data sitting in flash at an offset of 3 MB for a length of 13 MB.
The mkflash script creates a 2 MB flash image (in binary format) that you can download to the MPC8323E RDB board. This 2 MB image contains the following:
To reformat the flash partition, do the following (for an 16 MB flash part):
1. Enter the following command to start the flash filesystem driver:
devf-generic -s0xfe000000,16M
2. To prepare the area for the partition, enter the following command:
flashctl -p/dev/fs0 -l13M -o3M -ve
In order to avoid erasing the ROM monitor and IPL-OS images (which are located in the first 3 MB of flash), use the -o option to erase starting at offset 3MB (i.e. -o3M) and use the -l option to specify the length of flash to erase(i.e. -l13M). This leaves the top part of the flash intact with the U-BOOT, the IPL, and the OS image. Both the -o and -l options can be used at the same time.
3. Format the partition:
flashctl -p/dev/fs0p0 -l13M -o3M -vf
4. Slay, and then restart the driver: slay devf-generic &
devf-generic -s0xfe000000,16M & }
You should now have a /fs0p0 directory that you can copy files to.
On your target board, you can use U-BOOT to transfer an IPL-OS flash image flash_img to the target board RAM, and then program it to the flash.
1.Use tftp to download the image:
=> tftp 0x200000 flash_img Using FSL UEC0 device TFTP from server 10.42.104.16; our IP address is 10.42.104.17 Filename 'flash_img'. Load address: 0x200000 Loading: ################################################################# ################################################################# ################################################################# ##################################### done done Bytes transferred = 1184768 (121400 hex)
2.Use protect to turn off the flash protection:
=> protect off all Un-Protect Flash Bank # 1
3.Use erase to erase 2 MB of flash (from 0xfe100000 to 0xfe2fffff):
=> erase 0xfe100000 0xfe2fffff ................ done
=> cp.b 0x200000 0xfe100000 0x121400 Copy to Flash... done
=> setenv bootcmd 'go 0xfe100000' => saveenv Saving Environment to Flash... Un-Protected 1 sectors Erasing Flash... flash erase done Erased 1 sectors Writing to Flash... done Protected 1 sectors
## Starting application at 0xFE100000 ... QNX Neutrino IPL for MPC8323E RDB Board Scanning for image @ 0xFE101000 Found image @ 0xFE101100 Jumping to startup @ 0x0020221C System page at phys:0000c000 user:0000c000 kern:0000c000 Starting next program at v00233d54 Welcome to QNX Neutrino Trunk on the Freescale MPC8323E RDB board #
The following table summarizes the commands to launch the various drivers.
Component | Buildfile Command | Required Binaries | Required Libraries | Source Location |
---|---|---|---|---|
Startup | startup-mpc8323e-rdb | . | . | src/hardware/startup/boards/mpc8323e-rdb |
Serial | devc-ser8250 -e -F -c133000000 -b115200 0xe0004500,0x09 0xe0004600,0x0A | devc-ser8250 | . | src/hardware/devc/ser8250 |
Flash (NOR) | devf-generic -s0xfe000000,16M | devf-generic flashctl | . | src/hardware/flash/boards/generic |
PCI | pci-mpc83xx | pci-mpc83xx pci | . | src/hardware/pci/mpc83xx |
Network | io-pkt-v4 -ducc_8323 mac=00049fef0301,phy=4,mode=MII,speed=100,channel=3 -ptcpip | io-pkt-v4 ifconfig | devn-ucc_8323.so libsocket.so | src/hardware/devn/ucc_8323 |
I2C | For I2C interface 1: i2c-mpc5200 -p0xe0003000 -c88000000 -i14 --u1
For I2C interface 2: i2c-mpc5200 -p0xe0003100 -c88000000 -i15 --u0 | i2c-mpc5200 | . | src/hardware/i2c/mpc8520 |
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.
Configuration options: