Keil Logo

NXP TWR-VF65GS10 Reference

Learning Platform

This page contains information and links that help you to create your own Linux image on the NXP TWR-VF65GS10 board in order to be able to debug your system with DS-MDK and ULINKpro.
The following buttons let you download a pre-configured Linux image for use with DS-MDK, as well as the debug symbols and the kernel sources for Linux kernel debugging. All are based on the Toradex OpenEmbedded (core):

 Linux Image  Debug Symbols  Kernel Source

Hardware Setup

TWR-VF65GS10 HW Setup

Connect a Micro-USB cable to J3. This will power the board and give you access to the UART of the Cortex-A core in DS-MDK.

For the debug connection, connect a supported debug adapter to the 20-pin debug header labeled J11.

To boot from SD card, insert on into socket J14.

This page contains the following information:

  • Create a Linux Image describes how to build your own Linux image for the NXP TWR-VF65GS10 board and how to add DS-MDK specific settings to the image.
  • RPMsg-OpenAMP example explains the required steps to be able to use the RPMsg-OpenAMP module for inter-processor communication.

Create a Linux Image

This section describes the steps that need to be taken in order to build a Linux image for the TWR-VF65GS10 board using the Yocto process.

Required Software

A Linux system is required to run the build process. While it is possible to use a Linux virtual machine, the process is significantly slower. The Linux host needs to have following packages installed:

sudo apt-get install libsdl1.2-dev xterm sed cvs
subversion coreutils texi2html docbook-utils python-pysqlite2
help2man make gcc g++ desktop-file-utils libgl1-mesa-dev
libglu1-mesa-dev mercurial autoconf automake
groff curl lzop asciidoc git texinfo chrpath

Use bash instead of dash as default system shell. If necessary, reconfigure bash/dash:

sudo dpkg-reconfigure dash

Install the repo utility:

mkdir ~/bin
curl > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH

Build the Image

Download the Yocto recipe from the Freescale Community repository:

mkdir fsl-community-bsp
cd fsl-community-bsp
repo init -u -b morty
repo sync

Setup the environment running:

MACHINE=twr-vf65gs10 DISTRO=poky
. ./setup-environment build-core-image-base

Set Linux-toradex as preferred provider, in vybrid-fslc/build-core-image-base/conf/local.conf add the line:

PREFERRED_PROVIDER_virtual/kernel = "linux-toradex"

In the same local.conf file and add the following line:

EXTRA_IMAGE_FEATURES += "package-management dev-pkgs tools-sdk tools-debug tools-profile eclipse-debug"

Build the image recipe:

bitbake core-image-base

To get the latest Toradex commit, change the following lines in vybrid-fslc/sources/meta-freescale-3rdparty/recipes-kernel/linux/

SRCREV = "..."


SRCREV = "7cfa3211be32063f41fc49573c6047f96d47c841"
COMPATIBLE_MACHINE = "(vf|twr-vf65gs10)"

Use the following .config file

In order to be able to run the menuconfig utility, change the following line in ~/oe-core/layers/openembedded-core/meta/lib/oe/

sh_cmd = "oe-gnome-terminal-phonehome " + pidfile + " " + sh_cmd


sh_cmd = bb.utils.which(os.getenv('PATH'), "oe-gnome-terminal-phonehome") + " " + pidfile + " " + sh_cmd

Generate the image modules as specified in the .config file and add any other configuration flags you wish by running:

bitbake -c menuconfig linux-toradex
bitbake -c compile -f linux-toradex
bitbake -c deploy linux-toradex

A small fix needs to be done in order that the RPMSG module works correctly. In build/source/drivers/rpmsg/vf610_rpmsg.c, change the lines 109 and 110:

vring_interrupt(0, rpdev->vq[0]);
vring_interrupt(1, rpdev->vq[1]);


if (rpdev->vq[0]!=NULL) vring_interrupt(0, rpdev->vq[0]);
if (rpdev->vq[1]!=NULL) vring_interrupt(1, rpdev->vq[1]);

Compile and build the Linux image:

bitbake -c compile -f linux-toradex
bitbake -c deploy linux-toradex
bitbake -k angstrom-lxde-image   

The output files will be in the folder ~/vybrid-fslc/build-core-image-base/tmp/deploy/images/twr-vf65gs10.

Write the image to the SD card:

sudo dd if=image_file_name of=/dev/sdx bs=1M

When booting Linux, stop it in the U-Boot and execute the following commands:

  setenv bootargs "no_console_suspend clk_ignore_unused uart_from_osc console=${console},${baudrate} root=${mmcroot}"
  setenv mmcargs "no_console_suspend clk_ignore_unused uart_from_osc console=${console},${baudrate} root=${mmcroot}"
  setenv fdt_file "imx6sx-sdb-m4.dtb"

Note Note

This will prevent the device from going into power down which is required for a debug connection to the Cortex-M4 core while runnig Linux.

RPMsg-OpenAMP example

In order to run the example, it is necessary to type modprobe imx_rpmsg_tty in the Linux device so as to create the RPMSG channel. For more information on how to debug the RPMsg Linux kernel module, please visit the RPMsg page.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.