TI BeagleBoard
supported in trunk since 45238
Setups might require some customization with booting.
Supported Versions
Version/Model | Launch Date | S/N | OpenWrt Version Supported | Model Specific Notes |
---|---|---|---|---|
C4 | 2009 | - | trunk (r45238) | EBV BeagleBoard (clone) |
OEM source code available at:
Hardware Highlights
SoC | Ram | Flash | Network | USB | Serial | JTag |
---|---|---|---|---|---|---|
TI AM3550@720MHz | 256MiB | 256MiB NAND | 0 | Yes | Yes | Yes |
BeagleBoard-xM, BeagleBone, BeagleBone black have similar hw.
Manufacturer's site: http://beagleboard.org/Products/
Installation
Pressing “USR” button when power is connected OR during the pressing and release of “RESET” button enables booting from SD card.
Available booting from: - onboard NAND - SD card - USB storage
Boot from NAND
Valid uboot, kernel and rootfs should be flashed onto NAND.
Boot from SD card
SD Card Layout
Please check out the article flash.layout. It contains an example and a couple of explanations.
A FAT32 boot partition with the MLO, u-boot.img, devicetree file (*.dtb) and the kernel (zImage).
A ext2 / ext3 / ext4 rootfs partition where you unpack openwrt-...-rootfs.tar.gz to. The partition type depends on Kernel commandline in uboot env vars.
The first partition /dev/mmcblk0p1 is the boot partition which contains the boot loaders (MLO, u-boot.img) and kernel.
ls /mnt/p1/ MLO omap3-beagle.dtb u-boot.img uEnv.txt zImage
Bootpartiton
MLO is the first stage bootloader. OEM/Factory/TI has X-loader by default. There are some X-loader bugs.
OpenWrt uses u-boot for first and second stage.
user.txt oder uEnv.txt (2014, newer) or boot.pcr (older) depending on uboot version can change boot “stuff”.
uEnv.txt:
kernel_file=openwrt-omap-zImage loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file} loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${fdtfile} console=ttyO2,115200n8 optargs="debug init=/etc/preinit" mmcroot=/dev/mmcblk0p2 rw mmcrootfstype=ext2 rootwait rootfstype=${mmcrootfstype} ${optargs} mmcargs=setenv bootargs console=${console} root=${mmcroot} ${mmcrootfstype} verbose debug uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
OEM easy installation
1. Prepare SD card 2.0 Insert SD card anytime, power up board 2. press USR button (skips integrated bootloader on NAND); keep it pressed until 5. 3. press RESET 4. booting can take a while
Errors are signaled via screen color OR visible in serial console.
orange screen : uboot errors
Upgrading OpenWrt
- Overwrite the Kernel image and the content of the rootfs (SD card partition 2 )
Basic configuration
Specific Configuration
Buttons
→ hardware.button on howto use and configure the hardware button(s).
The Beagleboard has two buttons.
BUTTON | Event |
---|---|
Reset | reset |
USR | select boot mode, user specific later |
Hardware
Info
Instruction set: | ARM |
Vendor: | BeagleBoard |
bootloader: | U-Boot |
System-On-Chip: | AM.... |
CPU @Frq | AM335x@720MHz |
Flash size: | 256 MiB |
Flash Chip: | not visible (PoP/Sandwich) |
RAM size: | 256 MiB |
RAM Chip: | not visible (PoP ... package on package) |
Wireless No1: | none |
switch: | none |
Modem: | none |
USB: | Yes 1 x 2.0 , 1 x OTG |
Serial: | Yes |
JTAG: | Yes |
Photos
Opening the case
Note: Since the BeagleBoard ships without a case, this can't void your warranty. :)
Serial
ICD10 to DB9 adapters and some Null modem cable work. Pin 1 is “red” part of adapter cable
There are differences between ICD10(pin header) → DB9(classic serial port) and Null modem cabling.
From 3 identical looking null modem cables only 1 works (different cable types?)
ICD10 → DB9 → Null modem cable → PL2303 serial to USB adapter from VIANCO white case with blue stripe; lsusb: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
JTAG
→ port.jtag general information about the JTAG port, JTAG cable, etc.
How to connect to the JTAG Port of this specific device:
Photo of PCB with markings
Debricking
There is a JTAG
Bootloader Mods
- you could read about bootloader in general
There are several scripts available in uboot. These are inside uboot variables and can be executed with the run command.
bootcmd var in uboot-omap 2013
run findfdt; mmc dev ${mmcdev}; if mmc rescan; then if run userbutton; then setenv bootenv uEnv.txt; else setenv bootenv user.txt; fi; echo SD/MMC found on device ${mmcdev}; if run loadbootenv; then echo Loaded environment from ${bootenv}; run importbootenv; fi; if test -n $uenvcmd;then echo Running uenvcmd ...; run uenvcmd; fi; if run loadimage; then run mmcboot; fi; fi; run nandboot; setenv bootfile zImage; if run loadimage; then run loadfdt; run mmcbootz; fi;
compare to upstream: omap3_beagle uboot git head
run Bootloader manually
unordered (!) examples
run bootcmd run findfdt run validatefdt run loadbootenv run loadramdisk run loadbootscript //in newer u-boot loadimage run bootscript run mmcboot run mmcbootz run nandboot run ramboot
usb - USB sub-system usbboot - boot from USB device
Hardware mods
- as a beginner, you really should inform yourself about soldering in general and then obtain some practical experience!
Bootlogs
Bootlogs from uboot
serial log uEnv.txt case:
Hit any key to stop autoboot: 3 2 1 0 mmc0 is current device gpio: pin 173 (gpio 173) value is 1 gpio: pin 7 (gpio 7) value is 0 SD/MMC found on device 0 reading uEnv.txt 442 bytes read in 5 ms (85.9 KiB/s) Loaded environment from uEnv.txt Importing environment from mmc ... Running uenvcmd ... reading zImage 1860848 bytes read in 144 ms (12.3 MiB/s) reading omap3-beagle.dtb 15169 bytes read in 9 ms (1.6 MiB/s) Kernel image @ 0x80200000 [ 0x000000 - 0x1c64f0 ] ## Flattened Device Tree blob at 80f80000 Booting using the fdt blob at 0x80f80000 Using Device Tree in place at 80f80000, end 80f86b40 Starting kernel ...
serial log user.txt case:
mmc0 is current device gpio: pin 173 (gpio 173) value is 1 gpio: pin 7 (gpio 7) value is 1 SD/MMC found on device 0 reading user.txt ** Unable to read file user.txt ** ** File not found /boot/uImage ** Booting from nand ...
OEM bootlog
OpenWrt bootlog
Notes
A lot of usefull information about this board can be found here:
Links: