Naon Embedded Linux Kit (NELK)

From DAVE Developer's Wiki
Revision as of 08:54, 10 May 2012 by SampleUser (talk | contribs) (The big picture)

Jump to: navigation, search
Info Box
Naon am387x-dm814x.png Applies to Naon

Introduction[edit | edit source]

What is[edit | edit source]

Major software components of an embedded linux system are:

  • bootloader
  • operating system kernel
  • root file system, including user-space application and libraries
  • tool chain (on development host)

Naon Embedded Linux Kit (NELK for short) provides all the necessary stuff required to set up the developing environment to:

  • build the bootloader (U-Boot)
  • build and run Linux operating system on Naon-based systems
  • build Linux applications that will run on the target.

The kit is composed by:

  • hardware platform composed by Naon system-on-module (SOM for short) and carrier board. Supported carrier boards are:
    • DDS
    • NADP (coming soon)
  • U-Boot bootloader sources
  • Linux kernel sources
  • Technical documentation such hardware manuals, mechanical drawings, reference schematics, application notes etc.

The documentation related to the software issues helps the user to start and configure the bootloader and the operating system quickly by hiding most of complexity of underlying hardware. For more details about hardware characteristics Naon, please refer to Hardware Manual (TBD). Access to source files is granted to registered kit owners' only.

What is not[edit | edit source]

The kit is not a complete Linux programming guide nor a Linux Reference Guide. Internet provides tons of information, tutorials and examples about writing applications and drivers for this operating system and how to work with it from the user's point of view (just try to type “Linux programming” in your favourite search engine for example). As the kit is heavily based on open-source community-maintained software projects, NELK does not provide exhaustive documentation for these software items but it points out where to find the information on the Internet or books. For example, for the U-Boot bootloader, the kit does not list all the commands it handles but provides the link to the on-line documentation and to the public mailing list used by its community.

For novice users who have no experience at all about embedded Linux systems, reading of this section is recommended.

Support service[edit | edit source]

Technical support is delivered through email exclusively. Only registered kit owners' can access the support service. The address is Technical support and access to download area are lifetime for processor module buyers and one year for the other customers.

The big picture[edit | edit source]

The heart of Naon SOM is Texas Instruments DaVinci Digital Media Processor TMS320DM8148 ( From software standpoint, Texas Instruments supports this processor - and its derivatives such as Sitara AM387x - through so-called Linux EZ Software Development Kit (EZSDK for short). EZSDK releases are publishedon a regular basis. For more details please refer to:

Naon Embedded Linux Kit, in turn, is directly derived from EZSDK. Hence NELK documentation often refers to EZSDK resources.

The following table shows how NELK releases are related to EZSDK releases.

NELK version
1.0.0 2.0.0
Relese date May 2012 September 2012
Naon module (PCb version) CS021211A tbd
Supported carrier boards DDS DDS
Naon Adapter
U-Boot version 2010.06-nelk-1.0.0 tbd
Linux version 2.6.37-nelk-1.0.0 tbd
Drivers SPI NOR Flash (boot)
Keypad controller
Touch screen controller
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
SGX 3D accelerator
HDVICP2 codec engine
SPI NOR Flash (boot)
Keypad controller
Touch screen controller
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
SGX 3D accelerator
HDVICP2 codec engine
TI EZSDK 5.03 (December 2011) 5.04 (April 2012)

Dave adds to the latest EZSDK the customization required to support Dave's platforms (e.g. Naon)

For this reason most of the documentation provided by TI itself is valid in the SDK provided by us too. Anyway some customization is required

NELK contains all the required software to develop Linux application on Naon platform:

  • u-boot bootloader source code and pre-build binaries
  • Linux kernel source code and pre-build binaries
  • pre-build OMX libraries (most OMX source code is under NDA from TI)
  • gstreamer source code
  • sample development (huge!) root file system
  • sample production (small enough to fit Naon on-board storage) root file system
  • tools and utilities

Naon overview[edit | edit source]

Please refer to Naon SOM for an overview about Naon system-on-module architecture.

Quick start[edit | edit source]

Quick start procedure depends on the carrier board you are working with. Please click on the appropriate link below:

Developing environment[edit | edit source]

NELK Layout[edit | edit source]

NELK MMC Layout[edit | edit source]

The MMC provided with NELK is used for

  • Naon MMC boot
  • NELK demo root file system storage
  • NELK development image storage

The MMC is divided into three partition:

  • the first (FAT32) partition is used for MMC booting
  • the second (FAT32) partition in used for:
    • NELK DVDK image (include source code!)
    • documentation and binary images (see readme.html inside this partition for more information)
  • the third partition (ext3) is used for Naon root file system

NELK DVDK Layout[edit | edit source]

The base directory where the NELK is installed is


Here the user can find the following subdirectories:

  • arm-2009q1: is where the CodeSourcery toolchain is installed
  • rfs: is where the root file system is installed. Inside this there are more subdirectories
    • nelk: this is the default (huge) root file system. Usually it's used only development environment (via NFS)
    • nelk-min: this is the sample, minimal, root file system. It can be used at starting point for manually create a production root file system.
  • sdk-x.xx.xx.xx: is where the EZSDK, plus the Dave customization, is installed (e.g sdk-
    • this directory is usually named EZSDK_INSTALL_DIR inside Makefile and build scripts

HowTo Build[edit | edit source]

Generally speaking, if you are using Dave Virtual Development Kit building the whole kit is a matter of:

  1. startup and login into the virtual machine
  2. enter the EZSDK_INSTALL_DIR directory
  3. execute make all && sudo make install

The make all command will build all the components of the development kit (e.g. U-Boot binaries, Linux kernel, custom libraries and utilities) while make install install them into the root file system

For a more detailed explanation of Development Environment see Development Environment HowTo (NELK)