Difference between revisions of "Naon Embedded Linux Kit (NELK)"

From DAVE Developer's Wiki
Jump to: navigation, search
(The big picture)
 
(88 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
 
{{InfoBoxTop}}
 
{{InfoBoxTop}}
{{AppliesToNaon}}
+
{{AppliesToNaonFamily}}
 +
{{Applies To NaonEVB-Lite}}
 +
{{Applies To NaonEVB-Mid}}
 
{{InfoBoxBottom}}
 
{{InfoBoxBottom}}
  
 
==Introduction==
 
==Introduction==
===What is===
+
 
Major software components of an embedded linux system are:
+
[[File:DELK_01.png|500px]]
 +
 
 +
Major software components of an [[Embedded Linux]] system are:
 
* bootloader
 
* bootloader
 
* operating system kernel
 
* operating system kernel
 
* root file system, including user-space application and libraries
 
* root file system, including user-space application and libraries
 
* tool chain (on development host)
 
* tool chain (on development host)
 +
 +
===What is===
 +
 
Naon Embedded Linux Kit (NELK for short) provides all the necessary stuff required to set up the developing environment to:
 
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 the bootloader (U-Boot)
* build and run Linux operating system on Naon-based systems
+
* build and run Linux operating system on '''DAVE Embedded Systems''' DM814x/AM387x-based SOMs (Naon, Maya, Dido)
 
* build Linux applications that will run on the target.
 
* build Linux applications that will run on the target.
 
The kit is composed by:
 
The kit is composed by:
* hardware platform composed by Naon system-on-module (SOM for short) and carrier board. Supported carrier boards are:
+
* hardware platform composed by Naon/Maya/Dido system-on-module (SOM for short), carrier board and adapters
** [[DDS carrier board | DDS]]
+
* supported carrier boards are:
** NADP (coming soon)
+
** [[NaonEVB-Lite]]
 +
** [[NaonEVB-Mid]]
 +
* adapters for the NaonEVB-Mid are:
 +
** [[ADD-ON_DVI-RX]]
 +
** [[ADD-ON_KS]]
 +
** [[ADD-ON_PCIe-extension]]
 
* U-Boot bootloader sources
 
* U-Boot bootloader sources
 
* Linux kernel sources
 
* Linux kernel sources
 
* Technical documentation such hardware manuals, mechanical drawings, reference schematics, application notes etc.  
 
* 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.
+
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 the [http://www.dave.eu/files/naon/naon-hm.pdf Hardware Manual]. Access to source files is granted to registered kit owners' only.
 +
 
 
===What is not===
 
===What is not===
 
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.
 
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.
Line 29: Line 41:
  
 
=== Support service ===
 
=== Support service ===
Technical support is delivered through email exclusively. Only registered kit owners' can access the support service. The address is [mailto:support-naon@dave.eu support-naon@dave.eu]. Technical support and access to download area are lifetime for processor module buyers and one year for the other customers.
+
Technical support is delivered through email exclusively. Only kit owners can access the support service. The addresses are:
 +
* [mailto:support-naon@dave.eu support-naon@dave.eu]
 +
* [mailto:support-maya@dave.eu support-maya@dave.eu]
 +
* [mailto:support-dido@dave.eu support-dido@dave.eu]
 +
 
 +
Technical support and access to download area are lifetime for processor module buyers and one year for the other customers.
  
 
=== The big picture ===
 
=== The big picture ===
The heart of Naon SOM is Texas Instruments DaVinci Digital Media Processor TMS320DM8148 (http://www.ti.com/product/tms320dm8148). From software standpoint, Texas Instruments supports this processor - and its derivatives such as Sitara AM387x http://www.ti.com/product/am3874 - through so-called Linux EZ Software Development Kit (EZSDK for short). EZSDK releases are publishedon a regular basis. For more details please refer to:
+
The heart of Naon/Maya/Dido SOMs is Texas Instruments DaVinci Digital Media Processor TMS320DM8148 (http://www.ti.com/product/tms320dm8148). From software standpoint, Texas Instruments supports this processor - and its derivatives such as Sitara AM387x http://www.ti.com/product/am3874 - through so-called Linux EZ Software Development Kit (EZSDK for short). EZSDK releases are published on a regular basis. For more details please refer to:
 
* http://www.ti.com/tool/linuxezsdk-davinci
 
* http://www.ti.com/tool/linuxezsdk-davinci
 
* http://processors.wiki.ti.com/index.php/Category:EZSDK
 
* http://processors.wiki.ti.com/index.php/Category:EZSDK
Line 40: Line 57:
 
{| class="wikitable"  
 
{| class="wikitable"  
 
!
 
!
!colspan="2" | NELK version
+
!colspan="5" | NELK version
 
|-
 
|-
 
|Release number
 
|Release number
 
|1.0.0
 
|1.0.0
 
|2.0.0
 
|2.0.0
 +
|3.0.0
 +
|4.0.0
 +
|4.1.1
 
|-
 
|-
 
|Status
 
|Status
 +
|Obsolete
 +
|Distributed as release candidate only
 +
|Obsolete
 +
|Obsolete
 
|Released
 
|Released
|Planned
 
 
|-
 
|-
|Relese date
+
|Release date
 
|May 2012
 
|May 2012
 
|September 2012
 
|September 2012
 +
|December 2012
 +
|April 2013
 +
|March 2014
 
|-
 
|-
|Naon module (PCb version)
+
|'''Release notes'''
|CS021211A
+
|[[NELK_Release_Notes#Rel._1.0.0 | v1.0.0]]
|tbd
+
|[[NELK_Release_Notes#Rel._2.0.0 | v2.0.0]]
 +
|[[NELK_Release_Notes#Rel._3.0.0 | v3.0.0]]
 +
|[[NELK_Release_Notes#Rel._4.0.0 | v4.0.0]]
 +
|[[NELK_Release_Notes#Rel._4.1.1 | v4.1.1]]
 +
|-
 +
|SOM PCB version
 +
|Naon: CS021211A
 +
|Naon: CS021211A
 +
|Naon: CS021211A
 +
|Naon: CS021211A<br>Maya: CS133012A<br>Dido: CS204812
 +
|Naon: CS021211A<br>Maya: CS133012A<br>Dido: CS204812
 
|-
 
|-
 
|Supported carrier boards
 
|Supported carrier boards
|DDS
+
|[[:Category:NaonEVB-Lite|NaonEVB-Lite (PCB CS051412)]]
|DDS<br>Naon Adapter
+
|[[:Category:NaonEVB-Lite|NaonEVB-Lite]]<br>[[:Category:NaonEVB-Mid|NaonEVB-Mid]]
 +
|[[:Category:NaonEVB-Lite|NaonEVB-Lite]]<br>[[:Category:NaonEVB-Mid|NaonEVB-Mid]]
 +
|[[:Category:NaonEVB-Lite|NaonEVB-Lite]]<br>[[:Category:NaonEVB-Mid|NaonEVB-Mid]]
 +
|[[:Category:NaonEVB-Lite|NaonEVB-Lite]]<br>[[:Category:NaonEVB-Mid|NaonEVB-Mid]]
 
|-
 
|-
 
|U-Boot version
 
|U-Boot version
|2010.06-nelk-1.0.0
+
|2010.06-nelk-0.9.0
 
|2010.06-nelk-2.0.0
 
|2010.06-nelk-2.0.0
 +
|2010.06-nelk-3.0.0
 +
|2010.06-nelk-4.0.0
 +
|2010.06-nelk-4.1.1
 
|-
 
|-
 
|Linux version
 
|Linux version
 
|2.6.37-nelk-1.0.0
 
|2.6.37-nelk-1.0.0
 
|2.6.37-nelk-2.0.0
 
|2.6.37-nelk-2.0.0
 +
|2.6.37-nelk-3.0.0
 +
|2.6.37-nelk-4.0.0
 +
|2.6.37-nelk-4.1.1
 
|-  
 
|-  
 
|Drivers
 
|Drivers
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine
+
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>Video Output port VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>Video output port VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine<br>Nand 8-bit<br>USB Host<br>USB OTG<br>Video Input port VIN0<br>
+
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>Video output port VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine<br>Nand 8-bit<br>USB Host<br>USB OTG ([[NaonEVB-Mid]] only)<br>Video Input port VIN0 ([[NaonEVB-Mid]] only)<br>
 +
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>Video output port VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine<br>Nand 8-bit<br>USB Host<br>USB OTG ([[NaonEVB-Mid]] only)<br>Video Input port VIN0 ([[NaonEVB-Mid]] only)<br>Video Input port VIN1 (additional host required)<br>SATA<br>[[NELK Power Management|Suspend to RAM]]<br>[[NELK Power Management|OPP Support]]<br>[[:Category:DWM|DWM]] on SDIO ([[:Category:NaonEVB-Lite|NaonEVB-Lite]] only)
 +
<br>
 +
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>Video output port VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine<br>Nand 8-bit<br>USB Host<br>USB OTG ([[NaonEVB-Mid]] only)<br>Video Input port VIN0 ([[NaonEVB-Mid]] only)<br>Video Input port VIN1 (additional host required)<br>SATA<br>[[NELK Power Management|Suspend to RAM]]<br>[[NELK Power Management|OPP Support]]<br>[[:Category:DWM|DWM]] on SDIO ([[:Category:NaonEVB-Lite|NaonEVB-Lite]] only)<br>Support for Maya and Dido SOMs<br>PMIC RTC (battery powered)<br>CPU info on /proc filesystem<br>eth0 and eth1 MAC address set on U-Boot<br>Updated Memory Map<br>CPSW mode (dual emac vs switch) selectable on u-boot<br>PCI Express (Dido)
 +
|valign="top" | SPI NOR Flash (boot)<br>EEPROM<br>Keypad controller<br>Touch screen controller<br>ADC<br>EMAC0 RMII (Fast Ethernet)<br>EMAC1 RGMII (Gigabit Ethernet)<br>SD/MMC1<br>Video output port VOUT0 (24 bit)<br>UART0 (2-wire)<br>SPI0 (boot flash)<br>I2C0<br>I2C1 (DDC HDMI)<br>I2C2<br>HDMI<br>GPIO<br>SGX 3D accelerator<br>HDVICP2 codec engine<br>Nand 8-bit<br>USB Host<br>USB OTG ([[NaonEVB-Mid]] only)<br>Video Input port VIN0 ([[NaonEVB-Mid]] only)<br>Video Input port VIN1 (additional host required)<br>SATA<br>[[NELK Power Management|Suspend to RAM]]<br>[[NELK Power Management|OPP Support]]<br>[[:Category:DWM|DWM]] on SDIO ([[:Category:NaonEVB-Lite|NaonEVB-Lite]] only)<br>Support for Maya and Dido SOMs<br>PMIC RTC (battery powered)<br>CPU info on /proc filesystem<br>eth0 and eth1 MAC address set on U-Boot<br>Updated Memory Map<br>CPSW mode (dual emac vs switch) selectable on u-boot<br>PCI Express (Dido)
 
|-
 
|-
 
|TI EZSDK
 
|TI EZSDK
 
|5.03 (December 2011)
 
|5.03 (December 2011)
 
|5.04 (April 2012)
 
|5.04 (April 2012)
 +
|5.05.01.04 (July 2012)
 +
|5.05.02.00 (Dec 2012)
 +
|5.05.02.00 (Dec 2012)
 
|}
 
|}
  
  
Dave adds to the latest EZSDK the customization required to support Dave's platforms (e.g. [[:Category:Naon|Naon]])
+
'''DAVE Embeddded Systems''' adds to the latest EZSDK the customization required to support '''DAVE Embeddded Systems''' platforms ([[:Category:Naon|NAON]], [[:Category:Maya|MAYA]] and [[:Category:Dido|DIDO]])
  
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
+
For this reason most of the documentation provided by TI remains valid for the NELK development kit. However, some customization is required, in particular at bootloader and linux kernel levels.
  
NELK contains all the required software to develop Linux application on [[:Category:Naon|Naon]] platform:
+
NELK contains all the required software to develop Linux application on [[:Category:Naon|NAON]], [[:Category:Maya|MAYA]] and [[:Category:Dido|DIDO]] platforms:
  
* u-boot bootloader source code and pre-build binaries
+
* U-Boot bootloader source tree and pre-built binaries
* Linux kernel source code and pre-build binaries
+
* Linux kernel source tree and pre-built binaries
 
* pre-built OMX libraries (most OMX source code is under NDA from TI)
 
* pre-built OMX libraries (most OMX source code is under NDA from TI)
* gstreamer source code
+
* gstreamer source tree
 
* sample development (huge!) root file system
 
* sample development (huge!) root file system
 
* sample production (small enough to fit Naon on-board storage) root file system
 
* sample production (small enough to fit Naon on-board storage) root file system
 
* tools and utilities
 
* tools and utilities
  
==Naon overview==
+
=== Release notes ===
Please refer to [[Naon SOM]] for an overview about Naon system-on-module architecture.
+
 
 +
 
 +
{{ImportantMessage|text=Please refer to [[NELK Release Notes]] for detailed NELK information related to the features and updates introduced with the latest release.}}
 +
 
 +
==Naon/Maya/Dido overview==
 +
Please refer to [[:Category:Naon|NAON]], [[:Category:Maya|MAYA]], [[:Category:Dido|DIDO]] for an overview about the DM814x/AM387x-based system-on-module architecture.
 +
 
 
==Quick start==
 
==Quick start==
 
Quick start procedure depends on the carrier board you are working with. Please click on the appropriate link below:
 
Quick start procedure depends on the carrier board you are working with. Please click on the appropriate link below:
* [[DDS carrier board#Quick start|DDS Quick Start]]
+
* [[NaonEVB-Lite#Quick start|NaonEVB-Lite Quick Start]]
* Quick start (NADP) (coming soon)
+
* [[NaonEVB-Mid#Quick start|NaonEVB-Mid Quick Start]]
  
 
==Developing environment==
 
==Developing environment==
 +
===TI DM8148 EZSDK software organization===
 +
Please refer to this page for an introduction of EZSDK software organization:
 +
[[TI DM8148 EZSDK software organization]].
 +
 +
For detailed documentation on software development using the TI EZSDK, please refer to the [http://processors.wiki.ti.com/index.php/Category:EZSDK_Software_Developers_Guide EZSDK Software Developers Guide]
 +
 
=== NELK Layout ===
 
=== NELK Layout ===
  
Line 107: Line 171:
  
 
The MMC provided with NELK is used for
 
The MMC provided with NELK is used for
* Naon MMC boot
+
* Naon/Maya/Dido MMC boot
 
* NELK demo root file system storage
 
* NELK demo root file system storage
* NELK development image storage
+
* NELK DVDK virtual machine image
  
 
The MMC is divided into three partition:
 
The MMC is divided into three partition:
 
* the first (FAT32) partition is used for [[Boot_sequence_(Naon)#MMC_Booting|MMC booting]]
 
* the first (FAT32) partition is used for [[Boot_sequence_(Naon)#MMC_Booting|MMC booting]]
* the second (FAT32) partition in used for:
+
* the second partition (ext3) is used for Naon root file system
** NELK DVDK image (include source code!)
+
* the third (NTFS) partition is used for:
** documentation and binary images (see readme.html inside this partition for more information)
+
** NELK DVDK image (including source code and pre-installed toolchain and build system)
* the third partition (ext3) is used for Naon root file system
+
** documentation and binary images (please refer to the readme.html file inside this partition for more information)
  
 
==== NELK DVDK Layout ====
 
==== NELK DVDK Layout ====
Line 128: Line 192:
 
Here the user can find the following subdirectories:
 
Here the user can find the following subdirectories:
 
* arm-2009q1: is where the CodeSourcery toolchain is installed
 
* arm-2009q1: is where the CodeSourcery toolchain is installed
* rfs: is where the root file system is installed. Inside this there are more subdirectories
+
* rfs: is where the root file system is installed. Inside this directory there are two subdirectories
 
** nelk: this is the default (huge) root file system. Usually it's used only development environment (via NFS)
 
** 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.
+
** nelk-min: this is the sample, minimal, root file system. It can be used as 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-5.03.01.15)
+
* sdk-x.xx.xx.xx: is where the EZSDK, plus the '''DAVE Embeddded Systems''' customization, is installed (e.g sdk-5.05.02.00)
 
** this directory is usually named ''EZSDK_INSTALL_DIR'' inside Makefile and build scripts
 
** this directory is usually named ''EZSDK_INSTALL_DIR'' inside Makefile and build scripts
 +
* Git repositories cloned from '''DAVE Embeddded Systems''' public git repositories ('''git.dave.eu''') for the following components:
 +
** EZSDK - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx
 +
** Linux - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx/board-support/linux-omap3.git
 +
** U-Boot - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx/board-support/u-boot-omap3-arago.git
 +
** gstreamer_ti - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx/component-sources/gstreamer_ti
 +
 +
The NELK git repositories can be synchronized with '''DAVE Embeddded Systems''' public git repositories using the <code>git pull</code>. Access to '''DAVE Embeddded Systems''' public git repositories will be granted to users who will send a RSA ssh key, as described in [[How_to_update_NELK#RSA_key_generation | this guide]].
 +
 +
==== NELK Update package ====
 +
 +
For customers who have already installed the full DVDK, an update package can be used to upgrade to the most recent NELK version. The compressed archive (nelk-x.y.x.tar.bz2) contains:
 +
 +
* The new SDK release (sdk-x.xx.xx.xx)
 +
* The new root file system (e.g.: rfs/nelk-x.xx.xx.x-sdk
 +
* A symbolic link (''rfs/nelk'') to the new root file system
 +
 +
For the complete procedure for NELK updating, please refer to [[How to update NELK]]
  
 
=== HowTo Build ===
 
=== HowTo Build ===
  
Generally speaking, if you are using [[:Category:DVDK|Dave Virtual Development Kit]] building the whole kit is a matter of:
+
Generally speaking, if you are using [[:Category:DVDK|'''DAVE Embeddded Systems''' Virtual Development Kit]] building the whole kit is a matter of:
 
# startup and login into the virtual machine
 
# startup and login into the virtual machine
 
# enter the ''EZSDK_INSTALL_DIR'' directory
 
# enter the ''EZSDK_INSTALL_DIR'' directory
# execute <code>make all && sudo make install</code>
+
# launch build and install commands
 +
 
 +
The <code>make all</code> command builds all the components of the development kit (e.g. [[:Category:U-Boot|U-Boot binaries]], [[:Category:Linux|Linux kernel]], custom libraries and utilities) while the <code>sudo -E make install</code> command installs them into the root file system
  
The <code>make all</code> command will build all the components of the development kit (e.g. [[:Category:U-Boot|U-Boot binaries]], [[:Category:Linux|Linux kernel]], custom libraries and utilities) while <code>make install</code> install them into the root file system
+
For a more detailed explanation of the Development Environment, please refer to [[Development Environment HowTo (NELK)]]
  
For a more detailed explanation of Development Environment see [[Development Environment HowTo (NELK)]]
+
==Use cases==
 +
Please refer to [[Uses cases with Naon Embedded Linux Kit]]. See also [[NELK Power Management]] for a detailed description on how power management is implemented in NELK.

Latest revision as of 14:18, 16 November 2016

Info Box
Naon am387x-dm814x.png Applies to Naon
Maya 03.png Applies to Maya
Dido-main.png Applies to Dido
Dds vista tre quarti.png Applies to NaonEVB-Lite
Naon-evb-mid top.png Applies to NaonEVB-Mid

Introduction[edit | edit source]

DELK 01.png

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)

What is[edit | edit source]

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 DAVE Embedded Systems DM814x/AM387x-based SOMs (Naon, Maya, Dido)
  • build Linux applications that will run on the target.

The kit is composed by:

  • hardware platform composed by Naon/Maya/Dido system-on-module (SOM for short), carrier board and adapters
  • supported carrier boards are:
  • adapters for the NaonEVB-Mid are:
  • 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 the Hardware Manual. 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 kit owners can access the support service. The addresses are:

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/Maya/Dido SOMs is Texas Instruments DaVinci Digital Media Processor TMS320DM8148 (http://www.ti.com/product/tms320dm8148). From software standpoint, Texas Instruments supports this processor - and its derivatives such as Sitara AM387x http://www.ti.com/product/am3874 - through so-called Linux EZ Software Development Kit (EZSDK for short). EZSDK releases are published on 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
Release number 1.0.0 2.0.0 3.0.0 4.0.0 4.1.1
Status Obsolete Distributed as release candidate only Obsolete Obsolete Released
Release date May 2012 September 2012 December 2012 April 2013 March 2014
Release notes v1.0.0 v2.0.0 v3.0.0 v4.0.0 v4.1.1
SOM PCB version Naon: CS021211A Naon: CS021211A Naon: CS021211A Naon: CS021211A
Maya: CS133012A
Dido: CS204812
Naon: CS021211A
Maya: CS133012A
Dido: CS204812
Supported carrier boards NaonEVB-Lite (PCB CS051412) NaonEVB-Lite
NaonEVB-Mid
NaonEVB-Lite
NaonEVB-Mid
NaonEVB-Lite
NaonEVB-Mid
NaonEVB-Lite
NaonEVB-Mid
U-Boot version 2010.06-nelk-0.9.0 2010.06-nelk-2.0.0 2010.06-nelk-3.0.0 2010.06-nelk-4.0.0 2010.06-nelk-4.1.1
Linux version 2.6.37-nelk-1.0.0 2.6.37-nelk-2.0.0 2.6.37-nelk-3.0.0 2.6.37-nelk-4.0.0 2.6.37-nelk-4.1.1
Drivers SPI NOR Flash (boot)
EEPROM
Keypad controller
Touch screen controller
ADC
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
SD/MMC1
Video Output port VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
I2C0
I2C1 (DDC HDMI)
I2C2
HDMI
GPIO
SGX 3D accelerator
HDVICP2 codec engine
SPI NOR Flash (boot)
EEPROM
Keypad controller
Touch screen controller
ADC
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
SD/MMC1
Video output port VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
I2C0
I2C1 (DDC HDMI)
I2C2
HDMI
GPIO
SGX 3D accelerator
HDVICP2 codec engine
Nand 8-bit
USB Host
USB OTG (NaonEVB-Mid only)
Video Input port VIN0 (NaonEVB-Mid only)
SPI NOR Flash (boot)
EEPROM
Keypad controller
Touch screen controller
ADC
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
SD/MMC1
Video output port VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
I2C0
I2C1 (DDC HDMI)
I2C2
HDMI
GPIO
SGX 3D accelerator
HDVICP2 codec engine
Nand 8-bit
USB Host
USB OTG (NaonEVB-Mid only)
Video Input port VIN0 (NaonEVB-Mid only)
Video Input port VIN1 (additional host required)
SATA
Suspend to RAM
OPP Support
DWM on SDIO (NaonEVB-Lite only)


SPI NOR Flash (boot)
EEPROM
Keypad controller
Touch screen controller
ADC
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
SD/MMC1
Video output port VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
I2C0
I2C1 (DDC HDMI)
I2C2
HDMI
GPIO
SGX 3D accelerator
HDVICP2 codec engine
Nand 8-bit
USB Host
USB OTG (NaonEVB-Mid only)
Video Input port VIN0 (NaonEVB-Mid only)
Video Input port VIN1 (additional host required)
SATA
Suspend to RAM
OPP Support
DWM on SDIO (NaonEVB-Lite only)
Support for Maya and Dido SOMs
PMIC RTC (battery powered)
CPU info on /proc filesystem
eth0 and eth1 MAC address set on U-Boot
Updated Memory Map
CPSW mode (dual emac vs switch) selectable on u-boot
PCI Express (Dido)
SPI NOR Flash (boot)
EEPROM
Keypad controller
Touch screen controller
ADC
EMAC0 RMII (Fast Ethernet)
EMAC1 RGMII (Gigabit Ethernet)
SD/MMC1
Video output port VOUT0 (24 bit)
UART0 (2-wire)
SPI0 (boot flash)
I2C0
I2C1 (DDC HDMI)
I2C2
HDMI
GPIO
SGX 3D accelerator
HDVICP2 codec engine
Nand 8-bit
USB Host
USB OTG (NaonEVB-Mid only)
Video Input port VIN0 (NaonEVB-Mid only)
Video Input port VIN1 (additional host required)
SATA
Suspend to RAM
OPP Support
DWM on SDIO (NaonEVB-Lite only)
Support for Maya and Dido SOMs
PMIC RTC (battery powered)
CPU info on /proc filesystem
eth0 and eth1 MAC address set on U-Boot
Updated Memory Map
CPSW mode (dual emac vs switch) selectable on u-boot
PCI Express (Dido)
TI EZSDK 5.03 (December 2011) 5.04 (April 2012) 5.05.01.04 (July 2012) 5.05.02.00 (Dec 2012) 5.05.02.00 (Dec 2012)


DAVE Embeddded Systems adds to the latest EZSDK the customization required to support DAVE Embeddded Systems platforms (NAON, MAYA and DIDO)

For this reason most of the documentation provided by TI remains valid for the NELK development kit. However, some customization is required, in particular at bootloader and linux kernel levels.

NELK contains all the required software to develop Linux application on NAON, MAYA and DIDO platforms:

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

Release notes[edit | edit source]

200px-Emblem-important.svg.png Please refer to NELK Release Notes for detailed NELK information related to the features and updates introduced with the latest release. 200px-Emblem-important.svg.png

Naon/Maya/Dido overview[edit | edit source]

Please refer to NAON, MAYA, DIDO for an overview about the DM814x/AM387x-based 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]

TI DM8148 EZSDK software organization[edit | edit source]

Please refer to this page for an introduction of EZSDK software organization: TI DM8148 EZSDK software organization.

For detailed documentation on software development using the TI EZSDK, please refer to the EZSDK Software Developers Guide

NELK Layout[edit | edit source]

NELK MMC Layout[edit | edit source]

The MMC provided with NELK is used for

  • Naon/Maya/Dido MMC boot
  • NELK demo root file system storage
  • NELK DVDK virtual machine image

The MMC is divided into three partition:

  • the first (FAT32) partition is used for MMC booting
  • the second partition (ext3) is used for Naon root file system
  • the third (NTFS) partition is used for:
    • NELK DVDK image (including source code and pre-installed toolchain and build system)
    • documentation and binary images (please refer to the readme.html file inside this partition for more information)

NELK DVDK Layout[edit | edit source]

The base directory where the NELK is installed is

/home/shared/devel/dave/naon-DAA/sw/linux/sdk

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 directory there are two 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 as starting point for manually create a production root file system.
  • sdk-x.xx.xx.xx: is where the EZSDK, plus the DAVE Embeddded Systems customization, is installed (e.g sdk-5.05.02.00)
    • this directory is usually named EZSDK_INSTALL_DIR inside Makefile and build scripts
  • Git repositories cloned from DAVE Embeddded Systems public git repositories (git.dave.eu) for the following components:
    • EZSDK - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx
    • Linux - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx/board-support/linux-omap3.git
    • U-Boot - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx/board-support/u-boot-omap3-arago.git
    • gstreamer_ti - /home/shared/devel/dave/naon-DAA/sw/linux/sdk/sdk-x.xx.xx.xx/component-sources/gstreamer_ti

The NELK git repositories can be synchronized with DAVE Embeddded Systems public git repositories using the git pull. Access to DAVE Embeddded Systems public git repositories will be granted to users who will send a RSA ssh key, as described in this guide.

NELK Update package[edit | edit source]

For customers who have already installed the full DVDK, an update package can be used to upgrade to the most recent NELK version. The compressed archive (nelk-x.y.x.tar.bz2) contains:

  • The new SDK release (sdk-x.xx.xx.xx)
  • The new root file system (e.g.: rfs/nelk-x.xx.xx.x-sdk
  • A symbolic link (rfs/nelk) to the new root file system

For the complete procedure for NELK updating, please refer to How to update NELK

HowTo Build[edit | edit source]

Generally speaking, if you are using DAVE Embeddded Systems 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. launch build and install commands

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

For a more detailed explanation of the Development Environment, please refer to Development Environment HowTo (NELK)

Use cases[edit | edit source]

Please refer to Uses cases with Naon Embedded Linux Kit. See also NELK Power Management for a detailed description on how power management is implemented in NELK.