The Virtual Machine includes a pre-installed Yocto Project build environment including the Linux BSP for TQMT104x.
Using Yocto Project
Prerequisites
Initialize the build environment by executing
cd /opt/tq-powerarch-bsp/yocto loadenv
Among other things this creates the Build Directory /opt/tq-powerarch-bsp/yocto/build
and a default Local Configuration File /opt/tq-powerarch-bsp/yocto/build/conf/local.conf
.
After the script runs, your current working directory is set to the Build Directory. Later, when the build completes, the Build Directory contains all the files created during the build.
All subsequent tasks need to be executed from within the Build Directory.
Yocto Local Configuration File
The file /opt/tq-powerarch-bsp/yocto/build/conf/local.conf
holds configuration variables that define the BSP build process.
In the scope of the TQMT104x, these are:
Variable | Valid Values | Description |
---|---|---|
MACHINE | tqmt1042-stk | Defines target architecture / hardware platform |
tqmt1042-64b-stk |
||
tqmt1040-stk |
||
tqmt1040-64b-stk |
||
FSL_RCW | TQMT1042_SERDES86 | Selects RCW w/ specific SerDes configuration for using a TQMT1040/TQMT1042 on STKT104x |
TQMT1042_SERDES88 |
||
TQMT1042_SERDES8E 1) |
||
TQMT1040_SERDES66 |
||
KERNEL_DEVICETREE | fsl/tqmt1042.dtb | Selects device tree blob |
fsl/tqmt1042_serdes8e.dtb 2) |
||
fsl/tqmt1040.dtb |
Following excerpt from local.conf
file shows the default configuration (# = commented out):
FSL_RCW = "TQMT1042_SERDES86" #FSL_RCW = "TQMT1042_SERDES88" #FSL_RCW = "TQMT1042_SERDES8E" #FSL_RCW = "TQMT1040_SERDES66" #MACHINE = "tqmt1042-stk" MACHINE = "tqmt1042-64b-stk" #MACHINE = "tqmt1040-stk" #MACHINE = "tqmt1040-64b-stk" KERNEL_DEVICETREE = "fsl/tqmt1042.dtb" #KERNEL_DEVICETREE = "fsl/tqmt1042_serdes8e.dtb" #KERNEL_DEVICETREE = "fsl/tqmt1040.dtb"
Whenever you wish to deviate from the default BSP configuration, e.g. select a different RCW, simply edit the local.conf
file accordingly.
For a full documentation of Yocto Project in general and the local.conf
file in particular, please see:
Build BSP images
To build an BSP image execute
bitbake <image name>
from within the Build Directory, where <image name>
can be one of the following:
Image name | Description |
---|---|
core-image-minimal | A small image just capable of allowing a device to boot. |
core-image-full-cmdline | A console-only image with more full-featured Linux system functionality installed. |
This will effectively
- Build U-Boot for the TQMT104[02] module on STKT104x starterkit
- Build the Linux Kernel for the TQMT104[02] module on STKT104x starterkit
- Build a small-size minimal root file system
- Build a self-contained, bootable NOR flash and SD card image
- Deploy U-Boot, kernel uImage, device tree, NOR flash and SD card image and root file system to:
/opt/tq-powerarch-bsp/yocto/build/tmp/deploy/images/tqmt1042-64b-stk
Names of possible root file systems images can be obtained by typing:
ls /opt/tq-powerarch-bsp/yocto/poky/meta*/recipes*/images/*.bb
Note that not all images may be buildable in the default yocto configuration. Tests have been performed with “core-image-minimal” only. For a description of the scope of these images / root file systems, please see the yocto documentation.
Note that the building process may take a large amount of time, depending on the hardware resources of your host system.
Build U-Boot only
bitbake u-boot
Build Linux kernel only
bitbake kernel
Manual builds
U-Boot and the Linux kernel can also be build outside Yocto Project.
Linux kernel & device tree
Checkout devel branch:
cd /opt/tq-powerarch-bsp/linux/ git checkout 4.4_devel
Initialize the build environment:
The file environment
required by the loadenv
script is missing in the VM.
Please download the following file and put it in the /opt/tq-powerarch-bsp/linux/
directory before running the loadenv
script.
- environment
source /opt/tq-powerarch-sdk64/environment-setup-ppc64e5500-poky-linux # Remove "-Wl," from LDFLAGS as the Makefiles from Das U-Boot and Linux call the # linker directly and not GCC for linking. export LDFLAGS="${LDFLAGS//-Wl,/}" # Use packages from the build system. This fixes e.g. 'make menuconfig' export PKG_CONFIG_PATH= export PKG_CONFIG_SYSROOT_DIR= export LOADENV_USER=tq
loadenv
Configure:
make 85xx/tqmt1042_defconfig make 85xx/<TQ-MODULE>_defconfig
<TQ-MODULE>
can be either tqmt1042_64
or tqmt1042
.
Build the kernel and device tree:
make uImage make fsl/tqmt1042.dtb
U-Boot
Initialize the build environment:
cd /opt/tq-powerarch-bsp/u-boot/ loadenv
Configure and start the build:
make <TQ-MODULE>[_SDCARD]_defconfig make
<TQ-MODULE>
can be either TQMT1040
or TQMT1042
.
If the optional [_SDCARD]
is given U-Boot is built for booting from SD card, otherwise it is built for booting from NOR flash.
In case you want to modify some aspects of the U-Boot configuration (e.g. selecting another RCW) you can do so by executing:
make menuconfig
The RCW is implicitly built and included in the U-Boot image, to build a “stand-alone” RCW binary simply execute:
make fsl_rcw.bin