The tables below depict the memory layout for the image and for the flash.
Item | Address |
---|---|
OS image loaded at: | 0x80010000 |
The interrupt vector table can be found in the buildfile located at src/hardware/startup/boards/omap2420sdp/build
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.
You can build a BSP OS image from the source code or the binary components contained in a BSP package.
For instructions about building a BSP OS image, please refer to the chapter Working with a BSP in the Building Embedded Systems manual.
1. On your host machine, start your favorite terminal program with these settings:
Note: The OMAP2420 SDP board from the factory doesn't have a Boot Loader or ROM Monitor installed. You'll need to initially install the U-Boot boot loader onto the board, using Texas Instruments' Code Composer Studio software, and a suitable JTAG emulator, such as the Spectrum Digital XDS510PP.
Once you've installed the bootloader, you need to configure it with the TFTP server, etc., which will provide the boot image. At this point, the OMAP2420 SDP board is ready to receive a QNX boot image, in raw format.
A raw-format image is simply a binary image, with a header on the beginning, that allows the bootloader to jump to the very beginning of the image (the raw header), where it executes another jump to the first instruction of the image. Later, when the QNX boot image is combined with the native QNX IPL, the boot image will remain in raw format, and the IPL will simply scan past the raw boot header and locate the QNX boot image signature.
2. Start your target. You should see output similar to the following:
U-Boot 1.0.0 (Jan 30 2004 - 07:49:02) U-Boot code: 11000000 -> 11015970 BSS: -> 11019674 DRAM Configuration: Bank #0: 10000000 32 MB Micron StrataFlash MT28F128J3 device initialized Flash: 32 MB In: serial Out: serial Err: serial
3. Once these parameters are configured, use the saveenv command to store your changes. Refer to the U-Boot documentation for more information: www.sourceforge.net/projects/u-boot
After U-boot is configured, boot the ifs-osk.raw image as follows (we'll assume it's in a directory called /xfer/):
tftpboot 10010000 /xfer/ifs-omap2420sdp.raw
You should see output similar to the following:
OMAP2420 SDP# tftpboot 10010000 TFTP from server 10.0.0.5; our IP address is 10.1.0.28; sending through gateway 10.0.0.5 Filename '/xfer/ifs-omap2420sdp.raw'. Load address: 0x80010000 Loading: ################################################################# ################################################################# ########################### done Bytes transferred = 799464 (c32e8 hex) OMAP2420 SDP #
go 80010000
You should see output similar to the following:
CPU0: Dcache: 1024x32 WB CPU0: Icache: 1024x32 CPU0: VFP 410120b2 CPU0: 4107b362: arm1136 rev 2 300MHz System page at phys:802db000 user:fc404000 kern:fc404000 Starting next program at vfe03c03c cpu_startnext: cpu0 -> fe03c03c Welcome to QNX Neutrino Trunk on the Texas Instruments OMAP2420SDP Board # #
4. Once you've established the U-Boot commands to download the image and boot the board, you can also configure U-Boot to save these commands; type the following at the OMAP5912 OSK prompt:
setenv bootcmd tftpboot 80010000 /xfer/ifs-omap2420sdp.raw\; go 80010000 saveenv
To boot the board, enter:
bootd
The following steps describes how to generate the ipl-ifs-omap2420sdp.bin:
Here is the mkflashimage script:
#!/bin/sh # script to build a binary IPL and boot image for the OMAP 2420 SDP board set -v # Convert IPL header into Binary format ${QNX_HOST}/usr/bin/ntoarm-objcopy --input-format=elf32-littlearm --output-format=binary ../src/hardware/ipl/boards/omap2420sdp/arm/le/boot_header.o ./tmp-boot-header.bin # Convert IPL into Binary format ${QNX_HOST}/usr/bin/ntoarm-objcopy --input-format=elf32-littlearm --output-format=binary ../install/armle/boot/sys/ipl-omap2420sdp ./tmp-ipl-omap2420sdp.bin # Cat boot header and ipl together cat ./tmp-boot-header.bin ./tmp-ipl-omap2420sdp.bin > ./tmp-header-ipl-omap2420sdp.bin # Pad Binary IPL to 64K image mkrec -s64k -ffull -r ./tmp-header-ipl-omap2420sdp.bin > ./ipl-omap2420sdp.bin # Combine the IPL with the OS Image cat ./ipl-omap2420sdp.bin ./ifs-omap2420sdp.bin > ./ipl-ifs-omap2420sdp.bin # clean up temporary files rm -f tmp-boot-header.bin tmp-ipl-omap2420sdp.bin tmp-header-ipl-omap2420sdp.bin ipl-omap2420sdp.bin echo "done!!!!!!!"
The following procedure describes how to erase the first 4MB and flash an IPL image using the TI OSTBOOT utility. The TI OMAP2420 OSTBOOT utility should have been successfully installed on the host. These commands assume that the OS image, ifs-omap2420sdp.bin, is less than (4M - 64K) bytes. The working directory is C:/omap2420sdp/.
1. Connect a RS232 null modem cable between the host and the RS232 connector (J400) on the OMAP2420 SDP base board.
2. Set Switch SW1 to SW5 according to the 2nd table on page 10 of "CSST Quick Start Guide for SDP242x"
3. Start the download process from the Windows host with the TI OMAP242x OSTBOOT utility. Using CSST_OMAP242x_V1.7, Click "download" in the "target" pane on the left side. Select the "Erase" tab in the "SDP2420-GP" pane on the right, and erase the entire NAND flash. Select the "Download" tab; click "Add File" and select ipl-ifs- omap2420sdp.bin. Click the "Download" button to start the download process.
4. Reset the target board when CSST_OMAP242x_V1.2 prompts to do so.
5. After the download process finishes, connect the RS232 cable to J9 on the daughter board.
6. Set switch SW1 to SW5 according to the 3rd table on page 14 of the "CSST Quick Start Guide for SDP242x".
7. Reset the board.
Due to issues with TI OSTBOOT utility, an OS image burnt to NAND flash with OSTBOOT doesn’t work. Here is the procedure to download an OS image to memory using sendnto.
1. Start the QNX Momentics IDE on the host.
2. Open a terminal server window. See the IDE documentation for details.
3. Connect the RS232 null modem cable between the host and J9 on the OMAP2420sdp board.
4. Start the target, assuming an IPL has been successfully flashed to the board following the steps in section IV above.
5. When you see the following message:
QNX Neutrino Initial Program Loader for Texas Instruments OMAP2420SDP Commands: Press 'D' for serial download, using the 'sendnto' utility Press 'N' to boot an OS image in NAND flash
Type D to start download process on the target end.
6. In the terminal server window, click the "send file" button in the upper left corner. A popup window will open. Type or browse the correct image file name in the "Filename" box and sendto as the proctocol. Click OK to start the download on the host side.
or using the QNX 'sendnto' utility: sendnto -d/dev/ser1 -b115200 ./ifs-omap2420sdp.bin to download image
7. After the download process finishes, the target will start the OS automatically. You should see output similar to the following:
send image now... download OK... Found image @ 0x81000000 Jumping to startup @ 0x80011A60 CPU0: Dcache: 1024x32 WB CPU0: Icache: 1024x32 CPU0: VFP 410120b2 CPU0: 4107b362: arm1136 rev 2 300MHz System page at phys:802db000 user:fc404000 kern:fc404000 Starting next program at vfe03c03c cpu_startnext: cpu0 -> fe03c03c Welcome to QNX Neutrino Trunk on the Texas Instruments OMAP2420SDP Board #
The following table summarizes the commands to launch the various drivers.
Component | Buildfile Command | Required Binaries | Required Libraries | Source Location |
---|---|---|---|---|
Startup | startup-omap2420sdp | . | . | src/hardware/startup/boards/omap2420sdp |
Serial | devc-seromap -e -F -b115200 -c48000000/16 0x4806A000^2,72 | devc-seromap | . | src/hardware/devc/seromap |
Network | io-pkt-v4 -dsmc9000 ioport=0x08000300,irq=188 -ptcpip | io-pkt-v4 ifconfig | devn-smc9000.so libsocket.so devnp-shim.so | src/hardware/devn/smc9000 |
USB | omap2420sdp_usb_init
io-usb -dohci ioport=0x4805e000,irq=78 | io-usb usb* omap2420sdp_usb_init | devu-ohci.so libusbdi.so | QNX SPD 6.4.x (Binary Only) |
I2C | i2c-omap59xx -p0x48070000 -i56 | i2c-omap59xx | . | src/hardware/i2c/omap59xx |
NAND | fs-etfs-omap2420 -r4096 | fs-etfs-omap2420
etfsctl | . | src/hardware/etfs/nand512/omap2420 |