Table of Contents

Build System

The following applies to

Use always the PTXdist version the BSP was developed for.

Preparing the development host

Please note:
Ubuntu 10.04 or newer required for the toolchain.

To install PTXdist you need a Linux OS like Ubuntu. The BSP needs some additional packages which are normally not installed. These packages are:

For development it is recommended to have an tftp server for image download and update and an nfs server for network mounted rootfs configured and running.

Build system installation

Use always the buildsystem version the BSP was developed for

After installing all packages download PTXdist source, configure, compile and install. See download page for links.

Extract the package ptxdist-<version>.tar.bz2 to a temporary directory and call:

$ ./configure
$ make
$ sudo make install

This will install PTXdist to /usr/local. Afterwards please configure PTXdist with:

$ ptxdist setup 

You have to setup the following things:

Toolchain installation

See download page for links to toolchain download. If using precompiled toolchain install to /opt. Otherwise following the documentation for building toolchains.

Normally the toolchain is alredy configured in the BSP. So nothing further to setup.

Installation of the BSP

Extract the package TQC-ARM-BSP-REV<version>.tgz to any directory (e.g. /opt or /home):

$ cd /opt/projekte
$ tar -xvf TQC-ARM-BSP-REV<version>.tgz
$ cd TQC-ARM-BSP-REV<version>

Using the build system

Getting help

The manual is your friend. See Downloads where to get it.

Configuration

To configure the system (e.g. add additional packages) you can start the PTXdist menu:

$ ptxdist menu

To add additional packages to your root filesystem simply use the ptxdist tool. The ncurses based UI is the same that is used by the linux kernel with “make menuconfig”. It can be used the following way:

Dependencies between packages should be “automagically” resolved. Software is organized in sections.

Compilation

Select one of the supported hardware platforms (platformconfig)

BSP 0102:

up to BSP 0101:

Select one of the supported software configs (ptxconfig)

BSP 0102:

and start building the images.

$ ptxdist platform configs/platforms/tqma35/<platformname>/platformconfig
$ ptxdist select configs/systems/<config name>/ptxconfig
$ ptxdist collection configs/platforms/tqma35/ptxcollection
$ ptxdist go
$ ptxdist images

PTXdist downloads some packages. If it reports some errors please

Adding own packages

PTXdist needs a package for every bit you need in your root FS. To add your software, files etc. you have to provide local packages. Follow the instructions of the developers section in the PTXdist manual. PTXdist provides templates as starting point for own packages. Type

$ ptxdist newpackage

to see what package templates exist.

Adapting BSP for an own product

The BSP was developed for the starterkit. To use it in a product with special needs or a different basebord we suggest to define an own platform. To start with it make a copy of the platform definition and select the new platform definition

$ cd <BSPROOT>
$ cp -r <BSPROOT>/configs/platforms/tqma35/<used-platform> to <BSPROOT>/configs/platforms/tqma35/<your-cool-platform>
$ ptxdist platform <BSPROOT>/configs/platforms/<your-cool-platform>/platformconfig

To start configuring your new platform type

$ ptxdist platformconfig

The first thing to change should be the platform name. Adapt things like kernel configuration, image creation etc. to your needs.

The new system will be built under <BSPROOT>/platform-<platformname_from_platformconfig>

The software in the rootfs BSP was selected to give a starting point. To use it in a product with special needs we suggest to define an own software configuration. To start with it make a copy of software config and select the new software configuration

$ cd <BSPROOT>
$ cp -r <BSPROOT>/configs/systems/<config name> to <BSPROOT>/configs/systems/<your-cool-config>
$ ptxdist select <BSPROOT>/configs/systems/<your-cool-config>/ptxconfig

Please read the build system documentation howto go further.

Deployment

Finally, you will find the built images in platform-<platformname>/images.

To update bootloader / kernel in a running system you have to copy the images in your tftp directory.

If you rename the images to the names defined in the bootloader environment you can use the update scripts from the bootloader :

To update your root file system in NOR flash follow these instructions:

erase ${ramdisk_addr} <last address>
tftp ${loadaddr} <Rootfs-Image>
cp.b ${loadaddr} ${ramdisk_addr} ${filesize}

This can be automated using u-boot env:

setenv rootfs rootfs.jffs2
setenv ramdisk_end <last address>
setenv prg_rootfs ’tftpboot ${loadaddr} ${rootfs}; erase ${ramdisk_addr} ${ramdisk_end}; cp.b ${loadaddr} ${ramdisk_addr} ${filesize};’

Then you can call

to update the root file system.

Using different boot media

NOR

U-Boot is stored on NOR. This is factory default.

NFS

To boot the TQMa35 from network you need a working bootloader in NOR which is able to get the kernel image over tftp and to provide the kernel with commandline settigns for NFS. You have to provide the images via tftp and nfs and to configure the bootloader to work with your tftp-server and your nfs-server.

eMMC

Currently only rootfs on eMMC is supported.

Modify your u-boot env to support root file system on eMMC (it is assumed that the first partition is used and ext2 is used as the file system):

setenv emmcargs ’setenv bootargs rootfstype=ext2 root=/dev/mmcblk0p1 ro rootwait’
setenv flash_emmc ’run emmcargs addcons <other command line args>; bootm ${kernel_addr}’
setenv bootcmd 'run flash_emmc'

To write the file system data to the eMMC card partition:

SD-card

Currently only rootfs on SD-card is supported.

Modify your u-boot env to support root file system on eMMC (it is assumed that the first partition is used and ext2 is used as the file system):

setenv sdargs ’setenv bootargs rootfstype=ext2 root=/dev/mmcblk0p1 ro rootwait’
setenv flash_emmc ’run sdargs addcons <other command line args>; bootm ${kernel_addr}’
setenv bootcmd 'run flash_emmc'

To write the file system data to the SD card partition,