Linux on the ST Microelectronics Nomadik platform

The Nomadik SoC was created by ST Microelectronics in the early 2000s for mobile phone development. For details see the Wikipedia article.



The latest Linaro GCC toolchain is what I usually use to compile recent kernels. For compiling the userspace for Nomadik you need to use a compiler built for ARMv5 or the stuff just won't work. You can use Rob Landleys precompiled ARMv5 binary if you like, it works for me.

Download the toolchain and install it such that it is always in your path. Sometimes the toolchain has been compiled for i686 and then you need to install a i686 multipath library to execute it on an x86_64 machine. A good way to get the cross compiler into your $PATH is to install it in /var/linus/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/ and then add this to a file called /etc/profile.d/

export PATH=$PATH:${CS_BASE}/bin
export MANPATH=$MANPATH:${CS_BASE}/share/doc/gcc-linaro-arm-linux-gnueabihf/man/

The nomadik.mak makefile is what I use to compile kernels for Nomadik

Using these also optionally use a minimal initramfs root filesystem placed in your home directory. (This is to get you to a prompt without a root filesystem installed in the flash.) This root filesystem is created using this script. A prebuilt version can be obtained here:

Copy the rootfs to you home directory and the nomdik.mak file to your linux/ git tree or base dir and simply:

> make -f nomadik.mak config
> make -f nomadik.mak build

Booting a uImage on the Nomadik

The Nomadik uses U-Boot which has an interactive boot loader prompt. Usually you want to boot the uImage from TFTP by first setting up a TFTP server and then issue something like this (with proper constants changed):

setenv serverip;setenv ipaddr;setenv bootfile uImage;tftpboot;bootm

ArchLinux on the Nomadik


This is a pretty straight-forward ARMv5 platform and ArchLinux can easily be brought up on the SD card:

Prebuilt images Nomadik NHK15