The tables below depict the memory layout for the image and for the flash.
Item | Address |
---|---|
OS image loaded at: | 0x80100000 |
NOR flash base address: | 0x10000000 |
The interrupt vector table can be found in the buildfile located at src/hardware/startup/boards/am3517evm/build
This BSP includes a prebuilt Out-Of-Box IFS image designed to support development with the Momentics IDE. This is also the default image created by the BSP and includes the following features:
Apply power to the target board. You should see output on your terminal console, similar to the following:
Texas Instruments X-Loader 1.42 Starting X-loader on MMC Reading boot sector 213268 Bytes Read from MMC Starting OS Bootloader from MMC... Starting OS Bootloader... U-Boot 2009.08 (Dec 08 2009 - 23:00:10) AM35xx-GP ES1.0, L3-165MHz am3517evm board + LPDDR/NAND I2C: ready DRAM: 256 MB NAND: 512 MiB In: serial Out: serial Err: serial I2C read: I/O error HECC U20: port before = 000000FF I2C read: I/O error I2C read: I/O error HECC U20: programmed CAN_STB low I2C read: I/O error HECC U20: port after = 000000FF Die ID #40a600000000000001543b210601a01b Net: davinci_emac_initialize Ethernet PHY: GENERIC @ 0x00 DaVinci EMAC Hit any key to stop autoboot: 0
At this point you can load the image to the AM3517 EVM either over the network with TFTP or via an SD/MMC memory card. The U-Boot bootloader on the AM3517 EVM can then be configured to automatically boot an IFS image using the chosen technique.
Copy the raw OS image ifs-am3517evm.raw onto a mmcsd card, then insert the SD card in J14 MMCSD port and apply power to the target board. After U-boot is started, boot the ifs-am3517evm.raw image in the mmcsd card as follows from the AM3517EVM # prompt:
mmcinit or mmc init (depends on which version of uboot you are using) fatload mmc 0 0x80100000 ifs-am3517evm.raw go 80100000
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:
reading ifs-am3517evm.raw 1536276 bytes read ## Starting application at 0x80100000 ... CPU0: L1 Icache: 256x64 CPU0: L1 Dcache: 256x64 WB CPU0: L2 Dcache: 4096x64 WB CPU0: VFP 410330c1 CPU0: 411fc087: Cortex A8 rev 7 500MHz System page at phys:80011000 user:fc404000 kern:fc404000 Starting next program at vfe043df0 cpu_startnext: cpu0 -> fe043df0 coproc_attach(10): replacing fe065044 with fe064928 coproc_attach(11): replacing fe065044 with fe064928 Welcome to QNX Neutrino 6.4.1 on the Texas Instruments AM3517 EVM (ARMv7 Cortex-A8 core)
Now you can test the OS, simply by executing any shell builtin command or any command residing within the OS image (e.g. ls).
This method requires a raw image, which 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.
Use the setenv command to configure the following parameters: serverip gatewayip netmask bootfile ipaddr ethaddr
Once these parameters are configured, use the saveenv command to store your changes. Refer to the U-Boot documentation for more information.
After U-boot is configured, boot the ifs-am3517evm.raw image as follows from the AM3517EVM # prompt (we'll assume it's in a directory called /qnx/ exported by the TFTP server running at IP address $serverip):
tftpboot 0x80100000 /qnx/ifs-am3517evm.raw
At this point you should see the ROM monitor download the OS image, indicated by a series of number signs. You'll also see output similar to this when it completes downloading:
TFTP from server 10.42.104.16; our IP address is 10.42.104.17 Filename '/root/ifs-am3517.raw'. Load address: 0x80100000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ###### done Bytes transferred = 2355312 (23f070 hex) AM3517EVM #
go 0x80100000
You should see output similar to the following, with the QNX Neutrino welcome message on your terminal screen:
## Starting application at 0x80100000 ... CPU0: L1 Icache: 256x64 CPU0: L1 Dcache: 256x64 WB CPU0: L2 Dcache: 4096x64 WB CPU0: VFP 410330c1 CPU0: 411fc087: Cortex A8 rev 7 500MHz System page at phys:80011000 user:fc404000 kern:fc404000 Starting next program at vfe043df0 cpu_startnext: cpu0 -> fe043df0 coproc_attach(10): replacing fe065044 with fe064928 coproc_attach(11): replacing fe065044 with fe064928 Welcome to QNX Neutrino 6.4.1 on the Texas Instruments AM3517 EVM (ARMv7 Cortex-A8 core)
Read the U-Boot documentation for full details on loading and starting images but the basic technique is to put the above commands into the bootcmd environment variable. It's generally a good idea to save the previous bootcmd value should you need to use it again. The following commands do this:
setenv defbootcmd $bootcmd setenv qnxsdboot 'mmcinit; fatload mmc 0 0x80100000 ifs-am3517evm.raw; go 80100000' setenv qnxtftpboot 'tftpboot 0x80100000 /qnx/ifs-am3517evm.raw; go 80100000' setenv bootcmd run qnxsdboot saveenv
Change the mmcinit to mmc init if required by your U-Boot version. This will setup three environment variables for booting:
Run the mkflashimage script, inside the /images directory of the BSP. The output file from this script is a binary IPL image called ipl-am3517evm.bin and nand-ipl-am3517evm.bin.
The ipl-am3517evm.bin file is used to place a temporary IPL into the board's memory and will not be used in these instructions. For more details on installing the IPL without u-boot, see the release notes for the OMAP3530 Beagle Board.
The NAND IPL imagenand-ipl-am3517evm.binwill be installed into the board's NAND flash from SD card via u-boot. This IPL is padded to 24K.
The following steps describe how to generate the ipl-am3517evm.bin and nand-ipl-am3517evm.bin files:
Here is the mkflashimage script:
#!/bin/sh # script to build a binary IPL and boot image for the TI AM3517 EVM 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/am3517evm/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 ../src/hardware/ipl/boards/am3517evm/arm/le/ipl-am3517evm ./tmp-ipl-am3517evm.bin # Cat boot header and ipl together cat ./tmp-boot-header.bin ./tmp-ipl-am3517evm.bin > ./tmp-header-ipl-am3517evm.bin # Pad Binary IPL to 24K image, this is the image used by boot from UART mkrec -s24k -ffull -r ./tmp-ipl-am3517evm.bin > ./ipl-am3517evm.bin # Pad Binary IPL with Header to 24K image, this is the image to put on NAND and boot from NAND mkrec -s24k -ffull -r ./tmp-header-ipl-am3517evm.bin > ./nand-ipl-am3517evm.bin # clean up temporary files rm -f tmp*.bin echo "done!!!!!!!"
Refer to the AM/OMAP Boot Resource Pages for options for installing the IPL to flash.
You should now have a /fs0p1 directory which you can copy files to.
The following tables summarize the commands to launch the various drivers.
Component | Buildfile Command | Required Binaries | Required Libraries | Source Location |
---|---|---|---|---|
Startup | startup-am3517evm | . | . | src/hardware/startup/boards/am3517evm |
Serial | devc-seromap -e -F -b115200 -c48000000/16 0x49020000^2,74 | devc-seromap | . | src/hardware/devc/seromap |
Ethernet | io-pkt-v4 -dam35xx | io-pkt-v4 ifconfig nicinfo ping | libsocket.so devnp-am35xx.so | src/hardware/devnp/am35xx |
I2C | i2c-omap35xx
For I2C1: i2c-omap35xx -p0x48070000 -i56 --u0 For I2C2: i2c-omap35xx -p0x48072000 -i57 --u1 For I2C3: i2c-omap35xx -p0x48060000 -i61 --u2 | i2c-omap35xx | . | src/hardware/i2c/omap35xx |
SPI | spi-master -d omap3530 base=0x48098000,bitrate=125000,clock=48000000,irq=65,force=1,num_cs=1,channel=1,sdma=1 | spi-master | spi-omap3530.so | src/hardware/spi/omap3530 |
USB OTG Host | io-usb -dam3517-mg ioport=0x5c040400,irq=71 | io-usb usb* | libusbdi.so devu-am3517-mg.so | prebuilt only |
USB EHCI Host | io-usb -dehci-omap3 ioport=0x48064800,irq=77 | io-usb usb* | devu-ehci-omap3.so libusbdi.so | prebuilt only |
CAN | dev-can-am3517 can1 | dev-can-am3517 canctl | . | src/hardware/cani/am3517 |
SD card | For MMCSD1: devb-mmcsd-am3517 cam quiet blk cache=2m mmcsd ioport=0x4809C000,ioport=0x48056000,irq=83,dma=30,dma=61,dma=62
For MMCSD2: devb-mmcsd-am3517 cam quiet blk cache=2m mmcsd ioport=0x480b4000,ioport=0x48056000,irq=86,dma=23,dma=47,dma=48 | devb-mmcsd | libcam.so fs-dos.so cam-disk.so | src/hardware/devb/mmcsd |
Graphics | io-display -dvid=0,did=0 | am3517-evm.conf io-display egl-gears-lite vsync | libGLES_CL.so libffb.so libgf.so devg-omap35xx.so devg-soft3d-fixed.so libdisputil.so | src/hardware/devg/omap35xx |
SGX Graphics Accesserator driver | pvrsrvd | pvrsrvd graphics.conf gles1-egl-gears | libsrv_um.so libglslcompiler.so libIMGegl.so libImgGLESv1_CM.so libImgGLESv2.so libImgOpenVG.so libpvr2d.so libsrv_um.so libWFDdevg.so pvrsrvinit.so wsegl-gf.so libEGLdevg.so libWFDdevg.so libiow.so.1 libGLESv1_CM.so.1 libEGL.so.1 | prebuilt only |
NOR flash | devf-generic -s0x10000000,8m | devf-generic flashctl | . | src/hardware/flash/boards/generic |
NAND flash | fs-etfs-omap3530_micron -r65536 -m /fs/etfs | fs-etfs-omap3530_micron etfsctl | . | src/hardware/etfs/nand2048/omap3530_micron |
RTC | rtc hw /dev/i2c0 | rtc date | . | src/utils/r/rtc |
DMA Manager | resource_seed dma=0,31 | resource_seed | . | src/utils/r/resource_seed |
## MMCSD 1 devb-mmcsd-am3517 cam quiet blk cache=2m mmcsd ioport=0x4809C000,ioport=0x48056000,irq=83,dma=30,dma=61,dma=62 ## MMCSD 2 devb-mmcsd-am3517 cam quiet blk cache=2m mmcsd ioport=0x480b4000,ioport=0x48056000,irq=86,dma=23,dma=47,dma=48
Command:
io-display -dvid=0,did=0
Command:
io-pkt-v4 -dam35xx waitfor /dev/socket ifconfig am0 xx.xx.xx.xx # or dhcp.client
Command:
io-usb -dam3517-mg ioport=0x5c040400,irq=71 -dehci-omap3 ioport=0x48064800,irq=77,verbose=5
Note:
1. Min A to min B usb cable is required.
2. Connect to the micro usb adapter.
3. Start io-usb with the stock options from the bsp build file.
pvrsrvd
Note:
1. io-display must be run first
2. The Composition_Manager patch:patch-641-1672-CompositionMgr.tar need be install first.
# cd am3517_workdir # tar -xvzf patch-641-1672-CompositionMgr.tgz # cd patches/641-1672/target/qnx6 # cp -r armle ../../../../prebuilt/ # cd am3517_workdir # make clean all
3. For the detailed documents about the composition_manager and SGX Graphics Accelerator, you can refer to