aboutsummaryrefslogtreecommitdiffstats
meta-lsi
========

This is the official OpenEmbedded/Yocto BSP layer for LSI’s family of
Axxia Mobile & Enterprise Communication Processors.


Supported MACHINES
------------------

Boards Supported by this layer (Please refer to the associate .conf for more
information):

	* axxiapowerpc - Axxia 3000 PPC Mobile & Enterprise Communication 
                        Processors family

	* axxiaarm - Axxia 5000 ARM Mobile & Enterprise Communication 
                    Processors family 

NOTE: Machines are divided by architecture. By building Linux for axxiaarm 
machine (e.g.), you will build binaries for all available ARM targets. 


Reference Boards
----------------

Junction – Reference board for the Axxia 3420 line of Communication Processor
devices. The 3420 device combines a PowerPC CPU subsystem with up to 2 PowerPC
476FP Cores along with advanced packet-processing acceleration engines.
 
El Paso – Reference board for the Axxia 3440 line of Communication Processor
devices. The 3440 device combines a PowerPC CPU subsystem with up to 4 PowerPC
476FP Cores along with advanced packet-processing acceleration engines.
 
Galveston – Reference board for the Axxia 3500 line of Communication Processor
devices. The 3500 device combines a PowerPC CPU subsystem with up to 6 PowerPC
476FP Cores along with advanced packet-processing acceleration engines.
 
Amarillo – Reference board for the Axxia 5500 line of Communication Processor
devices. The 5500 device combines an ARM CPU subsystem with up to 16 Cortex-A15
Cores along with advanced packet-processing acceleration engines.

 
Sources
-------

git://git.yoctoproject.org/meta-lsi
http://git.yoctoproject.org/git/meta-lsi
https://github.com/lsigithub/meta-lsi


Dependencies
------------

This layer depends on:
Poky
URI: git://git.yoctoproject.org/poky.git
branch: dora
revision: HEAD

OpenEmbedded
URI: git://git.openembedded.org/openembedded-core
branch: dora
revision: HEAD


Building the meta-lsi BSP layer
-------------------------------

To begin using the Yocto Project build tools, you must first setup your work
environment and verify that that you have the required host packages installed
on the system you will be using for builds. 

Check the YOCTO Reference Manual for the system you are using and verify you
have the minimum required packages installed. 
http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html

Note: You may also require packages: u-boot-tools (mkimage) and
device-tree-compiler (dtc)

1. Create an empty build directory and verify that the partition has at least
50Gb of free space. Next set an environment variable, YOCTO, to the full path.

   $ cd $HOME
   $ df -h .  # verify output shows adequate space available
   $ mkdir yocto
   $ cd yocto
   $ export YOCTO=$HOME/yocto # should also add this to your ~/.bashrc file. 

2. Clone the Yocto Project build tools (Poky) environment.

   $ cd $YOCTO
   $ git clone git://git.yoctoproject.org/poky.git
   $ cd poky
   $ git checkout dora

3. Clone the LSI meta layer. This provides meta data for building images for the
LSI specific board types.

   $ cd $YOCTO/poky
   $ git clone git://git.yoctoproject.org/meta-lsi.git
   $ cd meta-lsi
   $ git checkout dora

4. The Open Embedded project provides many useful layers and packages such as
networking. Download the Open Embedded Yocto Project hosted repository with the
following.

   $ cd $YOCTO/poky
   $ git clone https://github.com/openembedded/meta-oe.git
   $ cd meta-oe
   $ git checkout dora

5. Create the build directory. The name is optional and will default to 'build',
however it helps to choose a name to match the board type. For example, we will
use axxia.

   $ cd $YOCTO
   $ source poky/oe-init-bild-env axxia

6. Edit the conf/bblayers.conf file

   $ pwd (you should be at $YOCTO/axxia)
   $ vi conf/bblayers.conf

Edit BBLAYERS variable as follows. Replace references to $YOCTO below with the
actual value you provided in step 1.

   BBLAYERS ?= " \
            $YOCTO/poky/meta \
            $YOCTO/poky/meta-yocto \
            $YOCTO/poky/meta-yocto-bsp \
            $YOCTO/poky/meta-oe/meta-oe \
            $YOCTO/poky/meta-oe/meta-networking \
            $YOCTO/poky/meta-lsi \
            "

7. Edit the conf/local.conf file:
   $ vi conf/local.conf

7.1 Depending on your processor, set these two options that control how much
parallelism BitBake should use:

  BB_NUMBER_THREADS = "12"
  PARALLEL_MAKE = "-j 12"

7.2 Select a specific machine to target the build with:

  MACHINE = "axxiaarm"
  or
  MACHINE = "axxiapowerpc"

7.3 Select the root filesystem image compression type (can set multiple types):

  IMAGE_FSTYPES += "ext2"
  IMAGE_FSTYPES += "tar.gz"

7.4 Select the custom bootloader as preferred:

  PREFERRED_PROVIDER_virtual/bootloader = "u-boot-lsi"

7.5 Select the KERNEL type:
   for standard
   PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"

   for preempt-rt
   PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"

7.6 Select the KERNEL version:
   for 3.4
   PREFERRED_VERSION_linux-yocto = "3.4%"

   for 3.10
   PREFERRED_VERSION_linux-yocto = "3.10%"
  
7.7 Select the KERNEL repository to use. Meta-lsi is able to build the kernel 
from 3 sources: LSI GITHUB public, LSI GITHUB private and YOCTO kernel repo 
depending on LSI_SRC variable from local.conf:

a. by default (missing to set LSI_SRC) or setting

   LSI_SRC = "linux-yocto"

   will build from Yocto (axxia) repos:
   3.10: http://git.yoctoproject.org/git/linux-yocto-3.10 
        standard/axxia/base branch
   3.4: http://git.yoctoproject.org/git/linux-yocto-3.14 
        standard/axxia/base branch

b. LSI_SRC = "lsi-public"

   will build kernel from GitHub public repos:
   3.10: https://github.com/lsigithub/lsi_axxia_yocto_public_3.10
   3.4: https://github.com/lsigithub/lsi_axxia_yocto_public

c. LSI_SRC = "lsi-tip"
   
   will build kernel from GitHub private repos (require authentication):
   3.10: https://github.com/lsigithub/lsi_axxia_yocto_3.10
   3.4: https://github.com/lsigithub/lsi_axxia_yocto

7.8 Other optional settings for saving disk space and build time:
   
   DL_DIR = "/<some-shared-location>/downloads"
   SSTATE_DIR = "/<some-shared-location>/sstate-cache

8. Select the image type and start the build
   $ cd $YOCTO/axxia
   $ bitbake <image type>

Available root filesystem types:
   * lsi-image-small 
     A small image for use in simulation, flash, or as a ram disk. Should be
     sufficient to use the RTE. 

   * lsi-image-sim 
     An image for use in simulation. 

   * lsi-image-large
     A more complete image.

Once complete the images for the target machine will be available in the output
directory 'tmp/deploy/images/$MACHINE'.

9. Images generated:

* <image type>-<machine name>.ext2 (rootfs in EXT2 format)
* <image type>-<machine name>.tar.gz (rootfs in tar+GZIP format)
* modules-<machine name>.tgz (modules in tar+GZIP format)
* zImage and zImage-<machine name> (Linux Kernel binary, in u-boot wrapped 
format)
* u-boot.img and u-boot-<machine name>.img (U-Boot Img)
* u-boot-spl.img and u-boot-spl-<machine name>.img (U-Boot SPL - only for ARM)
* <target name>.dtb
* FIT images, 3 types:
	* fdt.fit-<target name> (DTB in fit image format)
	* linux.fit-<target name> (Kernel binary in fit image format)
	* multi.fit-<target name> (Kernel binary + DTB in fit image format)


Guidelines for submitting patches
---------------------------------

Please submit any patches against meta-lsi BSPs to the meta-lsi
mailing list (meta-lsi@yoctoproject.org) and cc: the maintainers.  

Mailing list:
	https://lists.yoctoproject.org/listinfo/meta-lsi

When creating patches, please use something like:
	git format-patch -s --subject-prefix='meta-lsi][PATCH' origin

When sending patches, please use something like:
	git send-email --to meta-lsi@yoctoproject.org --cc <maintainers> 
		      <generated patch>


Maintenance
-----------

Maintainers: Daniel Dragomir <daniel.dragomir@windriver.com>
	     Lucian Creanga <lucian.creanga@windriver.com>

Please see the meta-lsi/MAINTAINERS file for more details.


License
-------

All metadata is MIT licensed unless otherwise stated. Souce code included
in tree for individual recipes is under the LICENSE stated in each recipe
(.bb file) unless otherwise stated.