How to make SDK 2.01 run on an ETRAX FS

This document describes how to make SDK version 2.01 able to run on the ETRAX FS processor. The Linux kernel and the fundamental parts of the system (things enabled per default) should work. However, the compliance of all the applications included in the SDK hasn’t been tested.

Off course the compiler for ETRAX FS has to be installed. Please download it from and follow the instructions how to build and install it.

How to build a firmware image for ETRAX FS

  • Install a fresh SDK use the “install” script. When asked which product to configure for press enter to use the default.
  • Configure the SDK with “make menuconfig”
    • Select processor = Etrax FS
    • quit and save
  • Append $PATH with the path to the cris-v32 compiler (export PATH=”/path/to/crisv32_compiler/bin:$PATH”)
  • Edit the configure-files/common/common file according to the diff below to accept newer compilers than R60.
-    compiler crisv32-axis-linux-gnu-gcc rev=R60
+    compiler crisv32-axis-linux-gnu-gcc rev=">=R60"
     buildtype crisv32-axis-linux-gnu$LIB
  • Run the “configure” script to download all packages
  • Copy a FS enabled kernelconfig-2.6 to the SDK root directory. If you try to configure Linux 2.6 with a kernelconfig-2.6 file for ETRAX 100LX (or no kernelconfig-2.6 file at all) linux-2.6 will not be able to compile later on. This happens since links are created in include/asm and arch/cris (and perhaps elsewhere) pointing to the wrong architecture (etrax 100lx instead of FS). Off course you can configure the kernel without having a FS configured kernelconfig-2.6 but in that case you have to alter the links by yourself.
  • Create the init_env file (make init_env) and source it (. init_env)
  • To configure the kernel prior to building the images you will have to place a .target-makefrag in the packages/os/linux-2.6 directory. Configuring the kernel is most likely necessary since you have to supply memory settings for your custom board as well as other configuration options. To place the .target-makefrag file in the right directory, run 'make –C packages/os/linux-2.6 crisv32-axis-linux-gnu' from the SDK root directory. Then configure the kernel for your board by executing 'make -C packages/os/linux-2.6 menuconfig' from the SDK root directory.
  • To build the images run make in the SDK root directory.
  • To flash the board use the “boot_etraxfs” script.
    • To write the whole flash using the host NIC eth1: 'boot_etraxfs –F –i /path/to/fimage –d eth1'
    • To write the whole flash except the rescue partition use: 'boot_etraxfs –f –i /path/to/fimage'
    • To upload the kernel image into ram and execute it from there use: 'boot_etraxfs –i /path/to/kimage'
sdk2.01_for_fs.txt · Last modified: 2006/10/13 15:48 (external edit)
All text is available under the terms of the GNU Free Documentation License (see Copyrights for details).