AT91SAM9M10 Special Page
Introduction
Hi! Welcome to the Linux4SAM page dedicated to the newly introduced AT91SAM9M10 SOC. This page provides the latest information on this MPU in the same way as elsewhere on the site Linux4SAM. Each component is detailed in its own section just below. As is always done for the material we publish on Linux4SAM, These special releases will be integrated in each component release cycle and the associated Open Source upstream project. The embedded video decoder can be used with GStreamer components provided: Check the video decoder solution section for get it started. | |
Basic components
Pre-built binaries
Boot capabilities matrix
Here is :

a summary of the boot feature for each board

the solution chosen for the Linux4SAM pre-built binaries.
| Product | Boot from DataFlash (SPI0 CS0) | Boot from DataFlash (SPI0 CS1) | Boot from NAND Flash | Boot from SD card | Boot from NOR Flash | Boot from Internal Flash 1 |
| at91sam9m10ekes | 2 | | | | | |
Sources and build process are described in the
AT91Bootstrap application note page on
http://www.atmel.com.
You can also retrieve latest sources from
ftp://www.at91.com/pub/at91bootstrap.

Check additional information in the dedicated
AT91Bootstrap page.
U-boot 1.3.4 experimental binaries
U-boot 1.3.4 experimental sources

Check additional information in the dedicated
U-Boot page.
Pre-built images
Linux4SAM AT91SAM9M10 Experimental Patches
AT91 Linux kernel sources summary table

From left to right, each patch applies on top of the previous source tree.

Check additional information in the dedicated
Linux Kernel page.
Open source embedded distribution solutions
Angstom 2008.1 binaries

Check how to flash the roof filesystem on board in
OpenEmbedded / Angstrom page.

Beware, some other information in those pages do not apply on this release of the distribution.
How to build Angstrom for AT91SAM9M10
Note that building an entire distribution is a long process. It also requires a big amount of free disk space ; at least :
- ~650 MByte of source archives downloaded for Internet
- ~5 GByte of compiled packages and tools
This documentation is largely inspired by the following resources :
To build the binary specified just above, you will have to go through the following steps.
Pre-requires
Here are the reference pages for setting up an OpenEmbedded building environment.
Note however that most of time, on a development host, those packages are often already installed.
Building environment
A step-by-step comprehensive installation is explained in the
OpenEmbedded Getting Started page. The following lines have to be considered as an add-on that is AT91 specific or that can facilitate your setup.
Have a look at the
OEDirectoryTree to figure out what your working environment tree will look like.
Getting BitBake
Take it through the
BitBake build tool website and take the latest archive tarball. follow the advice: simply install it in your
OEDirectoryTree and make a generic link:
tar xvzf bitbake-1.8.18.tar.gz
ln -s bitbake-1.8.18 bitbake
Getting OpenEmbedded
Once in your
OEDirectoryTree, download a snapshot of the OpenEmbedded database using the GIT Souce Code Management tool.
git clone git://git.openembedded.org/openembedded
or using HTTP protocol:
git clone http://repo.or.cz/r/openembedded.git
Then create a local branch based on OpenEmbedded
stable/2009 branch:
cd openembedded
git checkout -b stable_2009_mybranch origin/stable/2009
cd ..
AT91 OpenEmbedded / Angstrom overlay tree or patch
In addition to the upstream recipes, we also have a set of our own recipes or modifications of the original ones. So, the following patch applies to the tree that you just checkouted.

note however that the goal of this patch is to merge the most of it bits into the mainstream OE tree.
Then download and install this patch:
cd openembedded
zcat ../oe_angstrom_at91xxx.diff.gz | patch -p1
cd ..
Setup local configuration and environment variables
The local configuration file is derived from the example file
openembedded/conf/local.conf.sample . The local configuration is located in
build/conf/local.conf .

Read comments in it as it will bring you valuable information and allow you to adapt it to your own environment and building host (directory structure for example). Choose the proper
machine type: we will use
at91sam9m10ekes for this setup:
MACHINE = "at91sam9m10ekes"
In addition, some environment variables have to be set before running a build process. We setup those variables via a little script
env-oe.sh: Download it and place it in your
OEDirectoryTree.
#!/bin/sh
export OETREE=`pwd`
BBPATH=${OETREE}/:${OETREE}/build/:${OETREE}/openembedded/
echo "Setting up dev env for Ångström"
if [ -z ${ORG_PATH} ] ; then
ORG_PATH=${PATH}
export ORG_PATH
fi
if [ -z ${ORG_LD_LIBRARY_PATH} ] ; then
ORG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export ORG_LD_LIBRARY_PATH
fi
PATH=${OETREE}/bitbake/bin:${ORG_PATH}
LD_LIBRARY_PATH=
export PATH LD_LIBRARY_PATH BBPATH
export LANG=C
export BB_ENV_EXTRAWHITE="MACHINE DISTRO OETREE ANGSTROM_MODE ANGSTROMLIBC LIBC"
echo "Altered environment for OE Development"
Then,
source this script :
source ./env-oe.sh
Start building
Begin with a little set of packages :
bitbake base-image

even a minimal image will require a big amount of time because of the cross-toolchain building process.
The
console and
graphical images are built using the following recipes respectively :
TODO
bitbake angstrom-console-image-demo
bitbake angstrom-x11-image-demo
AT91SAM9M10 embedded video decoder solutions
Check the
Gstreamer plugin page.
Notes
1: Only available on products with embedded Flash
2: On board DataFlash chip