ECM-BF609 uClinux Software User Manual
Introduction
Bluetechnix offers a Board Support Package that is based on the U-Boot boot loader and the Buildroot with Linux kernel.
Support
- blackfin.uclinux.org has a great documentation Wiki: https://docs.blackfin.uclinux.org
- For other questions and issues belonging to uClinux and Blackfin, you may search in the official Blackfin uClinux forum
Development host setup
We are using Linux distribution Ubuntu 10.04 LTS on the development host.
- Ubuntu uses dash as the preferred shell. However, we want bash. So, reconfigure /bin/sh to point to /bin/bash instead of /bin/dash:
sudo dpkg-reconfigure dash
Select no when asked if it should link dash to /bin/sh.
- You probably need access to the serial console (UART1) which is available via the USB-UART converter.
- We recommend to install a TFTP Server.
- Optionally, you may want to set up a DHCP Server.
Releases
Release 1.0.1
- Release date
- 2015-09-22
- Supported hardware
- eCM-BF609-C-C-Q25S256F8
- eCM-BF609-C-I-Q25S256F8
- eDEV-BF609
- Download path
- https://support.becom-group.com/releases/blackfin/eCM-bf609/
- Base board support package
- Analog Devices 2013R1-RC1
- Used tool chain
- Analog Devices 2013R1-RC1
- Release Notes
- For information about supported features have a look at the #Support Matrix
- Changes
- - Fixed Ethernet PHY connection problems
Release 1.0.0
- Release date
- 2013-12-02
- Supported hardware
- eCM-BF609-C-C-Q25S256F8
- eCM-BF609-C-I-Q25S256F8
- eDEV-BF609
- Download path
- https://support.becom-group.com/releases/blackfin/eCM-bf609/
- Base board support package
- Analog Devices 2013R1-RC1
- Used tool chain
- Analog Devices 2013R1-RC1
- Release Notes
- For information about supported features have a look at the Support Matrix
- Known issues
- - Ethernet PHY may not start correctly (workaround: additional reset).
Support Matrix
We are working on basic support for our core module. This matrix gives you the current status.
Legend:
- OK = supported
- ? = unknown
- NO = not supported (software)
- N/A = combination not allowed/not available/not relevant (hardware)
Bluetechnix offers custom development services! Feel free to contact us if you are missing support for specific hardware!
eCM-BF609 | ||||||||||||||||
U-Boot | uClinux | |||||||||||||||
eDEV-BF6xx | Ethernet | {{#switch: OK | OK | OK | OK | OK | OK | OK | #default = OK
}} || {{#switch: OK |
OK | OK | OK | OK | OK | OK | #default = OK
}} |
SD-card | {{#switch: ? | ? | ? | ? | ? | ? | ? | #default = ?
}} || {{#switch: OK |
OK | OK | OK | OK | OK | OK | #default = OK
}} | |
USB-OTG | {{#switch: ? | ? | ? | ? | ? | ? | ? | #default = ?
}} || {{#switch: OK |
OK | OK | OK | OK | OK | OK | #default = OK
}} | |
Audio | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} | |
HDMI | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: OK |
OK | OK | OK | OK | OK | OK | #default = OK
}} | |
ISM-MT9M131 | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} | |
ISM-MT9P031 | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} | |
ISM-MT9M024 | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} | |
CAN | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} | |
LVDS | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} | |
Touchscreen | {{#switch: NO | NO | NO | NO | NO | NO | NO | #default = NO
}} || {{#switch: NO |
NO | NO | NO | NO | NO | NO | #default = NO
}} |
NOTE: HDMI is not enabled by default in the kernel configuration. For inforation how to configure HDMI see here.
Getting started with eDEV-BF609
- Plug in your eCM-BF609 on your eDEV-BF609.
- Default dip switch settings:
S1 00000001 S2 11111000 S4 1010 S6 1100
- Connect to the Board (X13) to your computer with a mini USB cable.
- Use your Serial Terminal Program of your choice with the following settings:
Baudrate: 115200 FlowControl: NONE Parity: None Stop Bits: 1 Data: 8Bit
- If you like, connect Ethernet.
- Connect 12V DC to the power connector.
NOTE: After power up the reset button must be pressed and hold for 1 seconds to boot correctly.
Install software sources
Download and extract the newest releases of the Buildroot und the U-Boot boot loader. For Release 1.0.0 we used tool chain 2013R1_RC1 from https://sourceforge.net/projects/adi-toolchain/files/. You have to add the path of your tool chain to your PATH variable.
The U-Boot boot loader
The main task for the boot loader is to initialize hardware appropriately (especially the RAM), and to load the Linux kernel. Via environment variables, you can configure U-Boot as you wish: Network settings, where to load the Linux kernel from, set up the kernel's command line, etc.
In most cases, you will not need to change and recompile U-Boot, but simply alter the environment variables so that U-Boot's behaviour fits your needs.
U-Boot development
Build the u-boot for the eCM-BF608
cd bf609-u-boot make ecm-bf609
Environment storage
The u-Boot environment is usually saved in the SPI flash.
Linux loading and parameters
Set the U-Boot variable bootcmd according to your wishes:
set bootcmd run ramboot
- Loads the uImage via TFTP.
set bootcmd run flashboot
- Loads uImage from SPI flash.
Updating
NOTE: You can also update U-Boot from Linux. Here, we talk about updating U-Boot with a running U-Boot.
You need to have your network configured. Set at least ipaddr, serverip, and ethaddr.
run update
Linux kernel development
- Change the buildroot configuration:
cd bf609-buildroot make menuconfig
- Change the kernel configuration:
make linux-menuconfig
- Store your current kernel config:
cp output/build/linux-custom/.config linux/linux-kernel/arch/blackfin/configs/ECM-BF609_defconfig
- Build kernel
make
- Write uImage to flash
In u-Boot type: tftp $(loadaddr) uImage;sf probe 1;sf erase 0x40000 0x7c0000;sf write $(loadaddr) 0x40000 $(filesize) The uImgae gets loaded over TFTP and gets stored in the SPI flash at address 0x40000.
Knowledge base
In alphabetical order.
Ethernet
eDEV-BF609 | ≥V1.0 |
{{{4}}} | |
{{{5}}} | {{{6}}} |
{{{7}}} | {{{8}}} |
{{{9}}} | {{{10}}} |
{{{11}}} | {{{12}}} |
{{{13}}} | {{{14}}} |
{{{15}}} | {{{16}}} |
{{{17}}} | {{{18}}} |
{{{19}}} | {{{20}}} |
- Unit test for Linux (You must have TFTP server running on 192.168.0.2 which provides the file 1MBrandomfile for the test to be successful):
/unit_tests/ethernet.sh
- U-Boot default network configuration:
- IP address 192.168.0.15
- Server IP address 192.168.0.2
SD card
eDEV-BF609 | ≥V1.0 |
{{{4}}} | |
{{{5}}} | {{{6}}} |
{{{7}}} | {{{8}}} |
{{{9}}} | {{{10}}} |
{{{11}}} | {{{12}}} |
{{{13}}} | {{{14}}} |
{{{15}}} | {{{16}}} |
{{{17}}} | {{{18}}} |
{{{19}}} | {{{20}}} |
- Unit test /dev/mmcblk0
/unit_tests/sd.sh
USB OTG
eDEV-BF609 | ≥V1.0 |
{{{4}}} | |
{{{5}}} | {{{6}}} |
{{{7}}} | {{{8}}} |
{{{9}}} | {{{10}}} |
{{{11}}} | {{{12}}} |
{{{13}}} | {{{14}}} |
{{{15}}} | {{{16}}} |
{{{17}}} | {{{18}}} |
{{{19}}} | {{{20}}} |
- The Linux driver for USB Host is automatically loaded (part of the kernel).
- If you want to test the port in device mode, then you have to load a gadget kernel module. For available gadgets, look into
bf609-buildroot/linux/linux-kernel/drivers/gadget/
- Note: Do not use the USB Host mode (e.g. connect a USB flash disk) while a gadget module is loaded. (We observed that the driver crashes.)
- Unit test; assumes that a USB disk is plugged into the USB-OTG port)
/unit/tests/usb.sh
HDMI
eDEV-BF609 | ≥V1.0 |
{{{4}}} | |
{{{5}}} | {{{6}}} |
{{{7}}} | {{{8}}} |
{{{9}}} | {{{10}}} |
{{{11}}} | {{{12}}} |
{{{13}}} | {{{14}}} |
{{{15}}} | {{{16}}} |
{{{17}}} | {{{18}}} |
{{{19}}} | {{{20}}} |
You have to eanbele the v4l2 and display driver.
Device Drivers ---> <*> Multimedia support ---> [*] Cameras/video grabbers support [*] Media Controller API (EXPERIMENTAL) [*] V4L platform devices ---> <*> Blackfin Video Display Driver [ ] Autoselect ancillary drivers (tuners, sensors, i2c, frontends) Encoders, decoders, sensors and other helper chips ---> <*> Analog Devices ADV7511 HDMI transmitter
- Unit test
Prepare a 720p yuv file and transfer it to your board.
tftp -r image.yuv -g 192.168.0.2
Use v4l2_video_display to play this file on your tv.
v4l2_video_display -F image.yuv