NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
CraneBoard
Contents
CraneBoard[edit]
Introduction[edit]
Developed with Mistral Solutions, the CraneBoard provides developers a low cost development solution for Sitara AM3517 Cortex-A8 processor. The design offers designers a 4-layer PCB reference to enable their own products. CraneBoard offers peripherals, like CAN and PoE, that are not found on other low cost boards. Industrial, automotive, medical, consumer and a host of other applications can leverage this new low cost alternative to jump start their design and software development.
CraneBoard Out of the box experience[edit]
What's in the box?[edit]
Box contains a CraneBoard wrapped in an ESD Cover, followed by a bubble cover without any cables, documents and accessories.
Is there any factory default software flashed onto this board?[edit]
Yes x-loader, u-boot, kernel and JFFS2 root file system are flashed on the board.
Setup[edit]
- Connect UART cable to a UART port of Windows/Linux Machine.
- Connect Ethernet cable onto Ethernet connector on CraneBoard with another end connected to network port on LAN.
- Have terminal program, such as TeraTerm, HyperTerminal, or Minicom, running on the host machine.
- Configure the terminal program for (BAUD RATE - 115200, DATA - 8 bit, PARITY- none, STOP - 1bit, FLOW CONTROL - none)
Powering CraneBoard[edit]
Power ON the CraneBoard by one of the following options
- External Power Adapter can be used to power the board. (5V +/-3% ; 3A max)
- USB mini B to USB A cable can be used to power the board. Just connect the USB A side to Host machine and USB mini A side of cable to CraneBoard.
- PoE(Power over Ethernet) - If your ethernet supports PoE, you can connect the ethernet cable onto RJ45 connector on the CraneBoard
This should bring up the kernel and a snapshot of the log is shown below :
Texas Instruments X-Loader 1.46 (Nov 29 2010 - 23:10:41)
Starting OS Bootloader...
U-Boot 2009.11 (Nov 29 2010 - 23:14:21)
OMAP34xx/35xx-GP ES1.0, CPU-OPP2 L3-165MHz
Craneboard + LPDDR/NAND
I2C: ready
DRAM: 256 MB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Die ID #3cae0001000000000158b5fd0100d025
Net: davinci_emac_initialize
Ethernet PHY: GENERIC @ 0x00
EMAC ID 3c:2d:b7:90:e8:e2
DaVinci EMAC
Hit any key to stop autoboot: 0
No MMC card found
Booting from nand ...
NAND read: device 0 offset 0x480000, size 0x500000
5242880 bytes read: OK
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-2.6.32
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2103408 Bytes = 2 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux.................................................................................................................................... done, booting the kernel.
Linux version 2.6.32 (sriharsha@localhost.localdomain) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 Mon Nov 29 23:22:22 IST 2010
CPU: ARMv7 Processor [411fc087] revision 7 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: AM3517/05 CRANEBOARD
Memory policy: ECC disabled, Data cache writeback
AM3517 ES3.1 (l2cache iva sgx neon isp )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Reserving 4194304 bytes SDRAM for VRAM
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: console=ttyS2,115200n8 root=/dev/mtdblock4 rw rootfstype=jffs2 eth=3c:2d:b7:90:e8:e2 ip=dhcp
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 251392KB available (3640K code, 320K data, 152K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:368
Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz
GPMC revision 5.0
IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
OMAP GPIO hardware version 2.5
OMAP clockevent source: GPTIMER1 at 32768 Hz
Console: colour dummy device 80x30
Calibrating delay loop... 519.87 BogoMIPS (lpj=2027520)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
mux: Could not set signal i2c2_scl
mux: Could not set signal i2c2_sda
mux: Could not set signal i2c3_scl
mux: Could not set signal i2c3_sda
OMAP DMA hardware revision 4.0
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c_omap i2c_omap.1: bus 1 rev3.12 at 400 kHz
i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz
i2c_omap i2c_omap.3: bus 3 rev3.12 at 400 kHz
Switching to clocksource 32k_counter
musb_hdrc: version 6.0, cppi4.1-dma, otg (peripheral+host), debug=0
AM3517 OTG revision 4ea41001, PHY f0036a2, control 00
musb_hdrc: USB OTG mode controller at d0810000 using DMA, IRQ 71
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NetWinder Floating Point Emulator V0.97 (double precision)
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 491
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
OMAP DSS rev 2.0
OMAP DISPC rev 3.0
OMAP VENC rev 2
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
console [ttyS2] enabled
brd: module loaded
loop: module loaded
omap2-nand driver initializing
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron NAND 256MiB 3,3V 16-bit)
Creating 5 MTD partitions on "omap2-nand.0":
0x000000000000-0x000000080000 : "xloader-nand"
0x000000080000-0x000000400000 : "uboot-nand"
0x000000400000-0x000000480000 : "params-nand"
0x000000480000-0x000000e80000 : "linux-nand"
0x000000e80000-0x000010000000 : "jffs2-nand"
vcan: Virtual CAN interface driver
CAN device driver interface
TI High End CAN Controller Driver 0.7
ti_hecc ti_hecc.1: device registered (reg_base=d0870000, irq=24)
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver dm9601
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: OMAP-EHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.32 ehci_hcd
usb usb1: SerialNumber: ehci-omap.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbtest
tps65910_rtc tps65910_rtc: rtc core: registered tps65910_rtc as rtc0
TPS65910 RTC device successfully registered
tps65910_rtc tps65910_rtc: Power up reset detected.
tps65910_rtc tps65910_rtc: Enabling TPS65910-RTC.
Linux video capture interface: v2.00
OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Power Management for TI OMAP3.
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
emac-mii: probed
tps65910_rtc tps65910_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:00, id=7c0f1)
Sending DHCP requests .
PHY: ffffffff:00 - Link is Up - 100/Full
., OK
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.15.54
IP-Config: Complete:
device=eth0, addr=192.168.15.54, mask=255.255.255.0, gw=192.168.15.1,
host=192.168.15.54, domain=mistral.in, nis-domain=(none),
bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=
Empty flash at 0x00f3132c ends at 0x00f31800
VFS: Mounted root (jffs2 filesystem) on device 31:4.
Freeing init memory: 152K
INIT: version 2.86 booting
Please wait: booting...
Starting udev
udev: starting version 141
udev: deprecated sysfs layout; update the kernel or disable CONFIG_SYSFS_DEPRECATED; some udev features will not work correctly
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd[426]: inotify_add_watch(3, (null), 10) failed: Bad address
udevd-event[905]: error changing netif name eth0 to eth3: Device or resource busy
Remounting root file system...
WARNING: Couldn't open directory /lib/modules/2.6.32: No such file or directory
FATAL: Could not open /lib/modules/2.6.32/modules.dep.temp for writing: No such file or directory
modprobe: FATAL: Could not load /lib/modules/2.6.32/modules.dep: No such file or directory
modprobe: FATAL: Could not load /lib/modules/2.6.32/modules.dep: No such file or directory
root: mount: mounting rootfs on / failed: No such file or directory
Setting up IP spoofing protection: rp_filter.
Configuring network interfaces... udhcpc (v1.13.2) started
Sending discover...
Sending select for 192.168.15.54...
Lease of 192.168.15.54 obtained, lease time 28800
adding dns 192.168.10.51
adding dns 192.168.10.54
done.
Wed Dec 2 19:35:00 UTC 2009
INIT: Entering runlevel: 5
Starting telnet daemon.
modprobe: FATAL: Could not load /lib/modules/2.6.32/modules.dep: No such file or directory
Starting syslogd/klogd: done
Starting thttpd.
_____ _____ _ _
| _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
| | _| .'| . | . | | __| _| . | | | -_| _| _|
|__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
|___| |___|
Arago Project http://arago-project.org am3517-crane ttyS2
Arago 2009.11 am3517-crane ttyS2
am3517-crane login: root
root@am3517-crane:~#
CraneBoard Bringup Guide[edit]
CraneBoard Setup for NAND Booting[edit]
- Make sure CraneBoard is powered OFF
- Connect UART3 on CraneBoard to UART port of Windows/Linux Machine using RS232 Null Modem Cable
- Have Terminal program (TeraTerm, HyperTerminal or Minicom) running on the host machine.
- Configure the Terminal program for (BAUD RATE - 115200, DATA - 8 bit, PARITY- none, STOP - 1bit, FLOW CONTROL - none)
- Perform the switch settings as mention in SW4 Boot switch settings.
- Set SW4 switch settings as follows:
8 7 6 5 4 3 2 1
x x on on on on on off
- Power ON the CraneBoard with an External +5v 3A Power Supply
- NAND should have x-loader, u-boot, kernel and rootfs file system (jffs2) images flashed prior to booting.
- Power on the board by connecting DC Jack cable onto CraneBoard and it will start booting x-loader, u-boot and kernel.
- At very beginning it will wait for 3 seconds of boot delay after loading x-loader. After that it will start booting kernel.
- Stop the auto boot by hitting any key if you want to stop at u-boot prompt.
CraneBoard Setup for MMC booting[edit]
MMC/SD Card Formatting Procedure[edit]
1. Gather all required Tools.
- MMC/SD Card
- MMC/SD Card writer
- MMC/SD Card Formatting/Partitioning Tool (To create a bootable partition on MMC/SD Card)
- Recommended HP USB Disk Storage Format Tool 2.0.6: [[1]]
2. Format the MMC/SD Card for FAT32 FS
- Insert the Card writer/reader into the Windows machine.
- Insert MMC/SD card into the card reader/writer
- Open the HP USB Disk Storage Format Tool.
- Select “FAT32 as File System”.
- Click on “Start”.
- After formatting is done Click “OK”
- Copy MLO, u-boot.bin onto MMC/SD Card
Booting procedure[edit]
- Make sure CraneBoard is powered OFF
- Connect UART3 port on CraneBoard to UART port of Windows/Linux Machine using RS232 Null Modem Cable
- Have Terminal program (TeraTerm, HyperTerminal or Minicom) running on the host machine.
- Configure the Terminal program for (BAUD RATE - 115200, DATA - 8 bit, PARITY- none, STOP - 1bit, FLOW CONTROL - none)
- Insert the MMC/SD card that has kernel, u-boot, MLO images into MMC/SD slot on CraneBoard Board.
- For SD/MMC Booting set SW4 switch as follows
8 7 6 5 4 3 2 1 x x off off off on on on
- Stop the auto boot by hitting any key if you want to stop at u-boot prompt.
- Power ON the CraneBoard board with an External +5v 3A Power Supply
Flashing images onto NAND[edit]
- Format MMC/SD card as mentioned in CraneBoard Hardware Setup and boot from the same.
- Save x-load.bin.ift to be flashed onto NAND as 'mlo' on MMC
- Save u-boot.bin to boot as u-boot.bin on MMC
- Save uImage onto MMC.
- Save rootfs.jffs2 onto MMC.
- Setup the CraneBoard to boot over MMC.
- At u-boot prompt execute the following commands
Initializing MMC and erasing NAND[edit]
mmc init nand erase mw.b 0x81600000 0xFF 0x1400000
X-loader flashing[edit]
nand erase 0 80000 fatload mmc 0 0x81600000 MLO nandecc hw nand write.i 0x81600000 0 80000
U-boot flashing[edit]
nand erase 0x80000 0x400000 fatload mmc 0 0x81600000 u-boot.bin nandecc sw nand write.i 0x81600000 0x80000 0x400000
Kernel flashing[edit]
fatload mmc 0 0x81600000 uImage nand erase 480000 E80000 nandecc sw nand write.i 0x81600000 480000 E80000
File system flashing[edit]
fatload mmc 0 0x81600000 crane_rootfs.jffs2 nand erase E80000 FF0000 nandecc sw nand write.i 0x81600000 E80000 FF0000
ITBOK for CraneBoard[edit]
Building images for CraneBoard[edit]
Openembedded Development Environment[edit]
Introduction[edit]
CraneBoard uses the Openembedded build system. The "Getting started[2]" set of pages will show you how to set up cross development build environment on your Linux desktop or laptop. It will teach you how to check out the most recent source code for the CraneBoard distribution, and how to use the build system to create standard images for X-Loader, U-Boot, Kernel and Root filesystem.
The steps for the entire process are summarized in Quick start, but it is recommended that you read through the detailed instructions in Setting up a Build Environment and the following sections for a better understanding of the process.
Quick start[edit]
This section is for those who just want to get started and don't care for too many explanations along the way. It assumes that you are an experienced developer and that your development machine is running on a relatively recent Linux distribution.
Unless you know what you are doing, it is highly recommended that you do not deviate from this process. For a more detailed description of this process please read "Setting up a build environment [3]". Bitbake version 1.10.2 is required for the OE latest build which can be downloaded from http://download.berlios.de/bitbake/bitbake-1.10.2.tar.gz. The Openembedded project resides in a Git repository. You can find that at git://git.openembedded.org/openembedded. Web interface is: [4]. To obtain Openembedded:
- Install git
- Go to the base directory of your OpenEmbedded environment
- $ cd /stuff/
- Checkout the repository
$ git clone git://git.openembedded.org/openembedded
or for the firewall challenged, try
$ git clone http://repo.or.cz/r/openembedded.git
This is the data you'll be using for all your work.
Create local configuration[edit]
Copy the default local.conf.sample:
$ cd /stuff/ $ cp openembedded/conf/local.conf.sample build/conf/local.conf $ vi build/conf/local.conf
For building .dev branch, in local.conf file, at least three of the following entries should be present. For building CraneBoard :
BBFILES = "/stuff/openembedded/recipes/*/*.bb" DISTRO = "angstrom-2008.1" MACHINE = "am3517-crane"
If you choose to install OE in your home directory, modify local.conf to refer to the OE paths as /home/<username>/ rather than ~/ else It does not recognize *.bb packages.
Setup the environment[edit]
The following command set should be run every time you open a terminal for development.
$ export BBPATH=/stuff/build:/stuff/openembedded $ export PATH=/stuff/bitbake/bin:$PATH
If you have installed BitBake:
$ export BBPATH=/stuff/build:/stuff/openembedded
Start building[edit]
For building x-loader :
$ bitbake -v x-load
For building u-boot for CraneBoard:
$ bitbake -v virtual/bootloader
For building the uImage for CraneBoard :
$ bitbake -v virtual/kernel
or
Example: For building a file system with GUI support:
$ bitbake -v x11-gpe-image
The above command will build X-Loader, U-Boot, Kernel and Root filesystem.
This initial build will take time since it needs to download all the sources. When it completes, you will find the MLO, U-boot, Kernel and root filesystem image in
/stuff/openembedded/tmp/deploy/glibc/images/am3517-crane:
$ ls /stuff/openembedded/tmp/deploy/glibc/images/am3517-crane
Angstrom-x11-gpe-image-glibc-ipk-2010.7-test-20101229-am3517-crane.rootfs.jffs2 Angstrom-x11-gpe-image-glibc-ipk-2010.7-test-20101229-am3517-crane.rootfs.tar Angstrom-x11-gpe-image-glibc-ipk-2010.7-test-20101229-am3517-crane-testlab/ MLO-am3517-crane MLO-am3517-crane-1.46+r18+gitrfc6d5be15c703d21aef0ae0b8c02177721f0445f-r18 u-boot-am3517-crane-2009.11+r68+gitrc0a8fb217fdca7888d89f9a3dee74a4cec865620-r68.bin u-boot-am3517-crane.bin modules-am3517-crane.tgz uImage-2.6.32-r97+gitr5fc29e7b2a76a64a739f857858ef0b98294aa155-am3517-crane.bin uImage-am3517-crane.bin
The "shorter" link name saves typing effort. Your file names may differ slightly from the above since some of them are time-stamped or versioned. At this point, we are ready to update CraneBoard with the x-load, u-boot, kernel that we just built.
ANGSTROM Build[edit]
For building Angstrom root file system Online, please follow the link below:

