NameLast modifiedSizeLicense

Parent Directory Parent Directory
folder rpb -
folder rpb-wayland -


The Linaro Qualcomm Landing Team is pleased to announce the new release of the Linaro OpenEmbedded RPB release for Qualcomm™ SA8155p-ADP IoT platform. The Linaro OpenEmbedded RPB release 21.10 is based on OpenEmbedded and provides developers with a reference set of images including a console only image configuration.

What’s new in this release

  • Second release for SA8155p-ADP board (includes major kernel upgrade).
  • Support for Linux kernel 5.15-rc6.
  • SDK release based on dunfell 3.1.10.
  • This release provides a rpb console image based rootfs.

Important note(s) about this release

It is expected that the firmware/bootloader files received from Lantronix / Intrinsyc are used on the board directly.

New Features in this release

The Linaro OpenEmbedded RPB version 21.10 for the SA8155p-ADP IoT platform supports the following new features:

  • low speed IO (UART, SPI, I2C, GPIO)
  • Socinfo
  • Crypto (QCE), dm-crypt/QCE, PRNG

Features supported in this release

With this release, the Linaro OpenEmbedded RPB version 21.10 supports the following features
on the SA8155p-ADP IoT platform :

  • It is based on the OpenEmbedded / Yocto Project release 3.1.10 (aka dunfell).
  • It is based on Linux kernel 5.15-rc6.
  • The following reference image(s) are released:
    • boot image that includes prebuilt kernel and initrd
    • rpb-console-image image that includes core packages as well as typical development packages (headless)
  • All images are configured with a password less root account.
  • The following features are supported on the SA8155p-ADP platform:
    • Boot to console:
      • Storage: UFS
      • TSENS and thermal sensors cooling
      • Cpufreq, PSCI with support for cpuidle, SMP, hotplug and restart.
      • IOMMU, CMA, memory reservation, KASLR
      • USB 3.0 Host – (Mouse, Keyboard, Storage, Ethernet)
      • UFS ICE
      • SMEM SCM
    • low speed IO (UART, SPI, I2C, GPIO)
    • Socinfo
    • Crypto (QCE), dm-crypt/QCE, PRNG

Information about the SA8155p-ADP IoT platform

For more information about the SA8155p-ADP IoT platform, please check the following website:

Download and preparation

Before starting, download necessary file(s). This should include:

RPB console initrd based images:
  • boot image: boot-sa8155p-adp.img
  • One of rootfs images:
    • rpb-console-image-sa8155p-adp.rootfs.ext4.gz
    • rpb-console-image-test-sa8155p-adp.rootfs.ext4.gz

Non-HLOS images / meta for the SA8155p-ADP IoT platform shipped by Lantronix / Intrinsyc are available here:

For example, for obtaining the Non-HLOS images / meta from Intrinsyc, follow these steps:

1. To ‘register’ on the Intrinsyc site, use:

2. The latest version of the non-HLOS images / meta shipped by Intrinsyc is:

  • BSP 3.0 – snapdragon-auto-gen3-la-1-0’, which was released on ’02 Dec 2020’.

3. Download this and use the instructions inside to flash the ‘stock’ meta on the board.

NOTE-1: This release is mainly tested with Qualcomm provided Non-HLOS images / meta version – ‘SA8155P.UBUN.1.0-00005-STD.PROD-1’
NOTE-2: This release is also tested (sanity checks only) with Intrinsyc provided Non-HLOS images / meta version – ‘BSP 3.0 – snapdragon-auto-gen3-la-1-0’

Make sure that you have fastboot tool installed. It can be either a part of “android-tools” package (Fedora, old Debian/Ubuntu) or a separate package (“android-tools-fastboot” or just “fastboot”, contemporary Debian/Ubuntu).

Connect host computer to SA8155p-adp board. Board must be powered off (unplugged from power).
The DIP switch setting (S3) for Boot from UFS should be:

  • 1 -> ON
  • 2 -> OFF
  • 3 -> OFF
  • 4 -> OFF
  • 5 -> OFF
  • 6 -> OFF
  • 7 -> OFF
  • 8 -> OFF.

Boot SA8155p-adp board into fastboot mode.
  • Connect the USB3 Type A between the Linux PC and the board.
  • Connect the power supply.

Board should boot into fastboot mode.

Check to make sure device is connected and in fastboot mode

$ fastboot devices

Typically it will show as below

de82318	fastboot

Linaro OpenEmbedded RPB

Linaro OpenEmbedded Reference Platform Build (RPB) is a reference implementation of an OpenEmbedded based distribution developed by Linaro. It provides examples and guidelines for users to create their own distribution based on OpenEmbedded.

For more information about Linaro OpenEmbedded RPB, please check this document.

Flashing the prebuilt images

The default partition scheme, provided by the board manufacturer, has the following partition(s):

RPB console initrd based images:
  • boot for the boot image (which includes the kernel Image)
  • userdata for the main root file system image

To erase the default/AOSP images on the board, from the host PC, run the following commands.
Note that these are mandatory steps for running the Linaro SA8155p-ADP OpenEmbedded RPB releases:

$ fastboot erase boot_a
$ fastboot erase dtbo_a

To flash the boot image, from the host PC, run the following command:

$ fastboot flash boot <boot image file>

To flash the root file system image, download the image file with the extension .img.gz and run:

$ gunzip rpb-console-image.rootfs.img.gz
$ fastboot erase userdata
$ fastboot flash userdata rpb-console-image.rootfs.img
Running the rpb-console-image

If you have flashed the console image, when booting the board you will end up in a login prompt on the serial console (login username is root).

Building from sources

To checkout the 21.10 XML file corresponding to the release use the following ‘repo init’ command:

$ repo init -u https://github.com/96boards/oe-rpb-manifest.git -b qcom/release -m sa8155p-adp/21.10.xml
$ repo sync

The boot image and the root file system are completely built from sources, using OpenEmbedded build system. It is recommended to setup the build environment using the following instructions. For Qualcomm SA8155p-ADP IoT platform, sa8155p-adp is to be used as MACHINE. For example you can use following commands:

$ MACHINE=sa8155p-adp DISTRO=rpb . setup-environment
RPB console initrd based images:
$ bitbake rpb-console-image

For more information about OpenEmbedded and the Yocto project please refer to the Yocto Project Documentation

How to get and customize the kernel source code

To rebuild the kernel you can use the OpenEmbedded workflow and update the kernel recipe, located in the build environment in ./layers/meta-qcom/recipes-kernel/linux/linux-linaro-qcomlt_5.15.bb. To rebuild a boot image that includes your kernel changes, you can run the following bitbake command:

$ bitbake virtual/kernel

Assuming the build went fine, the new boot image will be located in the build folder, as:

RPB console initrd based images:

tmp-rpb-glibc/deploy/images/sa8155p-adp/boot-sa8155p-adp.img. You can run the following fastboot command to boot it on the board:

$ fastboot boot boot-sa8155p-adp.img

If you want to permanently use a custom kernel image, you can update the boot image and reflash it into the boot partition:

$ fastboot flash boot boot-sa8155p-adp.img
Simple initramfs based images:

A simple initramfs image with test utilities can be built using:

$ bitbake initramfs-test-image

The build should result in the following files, which can be used for generating the final combined boot image as output:

  • Image.gz—5.15-r0-sa8155p-adp.bin (kernel)
  • sa8155p-adp—5.15-r0-sa8155p-adp.dtb (device tree)
  • initramfs-test-image-sa8155p-adp.rootfs.cpio.gz (initramfs.cpio.gz)
  • modules—5.15-r0-sa8155p-adp.tgz (kernel modules)

Here are the steps for creating the simple initramfs based image:

$ cat Image.gz--5.15-r0-sa8155p-adp.bin sa8155p-adp--5.15-r0-sa8155p-adp.dtb > Image.gz+dtb
(where Image.gz+dtb is the resulting kernel+dtb file)
$ cat initramfs-test-image-sa8155p-adp.rootfs.cpio.gz modules--5.15-r0-sa8155p-adp.tgz > initramfs-test-image-w-modules-sa8155p-adp.rootfs.cpio.gz
(where initramfs-test-image-w-modules-sa8155p-adp.rootfs.cpio.gz is the initramfs file)
$ mkbootimg --kernel $kernel+dtb --ramdisk $initramfs --output $output --pagesize 4096 --base 0x80000000 --cmdline "root=/dev/sda9 rw rootwait console=ttyMSM0,115200n8"
(where $output is the resulting output boot.img file)

You can run the following fastboot command to boot it on the board:

$ fastboot boot boot.img

If you want to permanently use a custom kernel image, you can update the boot image and reflash it into the boot partition:

$ fastboot flash boot boot.img

Note that the boot img should not be more than 60M in size to ensure it can be successfully flashed onto the boot partition.

How to install and use the SDK release

Download rpb-x86_64-aarch64-toolchain-3.1+linaro.sh and follow the next steps,

$ chmod +x rpb-x86_64-aarch64-toolchain-3.1+linaro.sh
$ ./rpb-x86_64-aarch64-toolchain-3.1+linaro.sh

Select the location to install the SDK.

$ cd INSTALLED_LOCATION
$ source environment-setup-aarch64-linaro-linux

Then you can have access to the cross-compilers and libraries that comes with the SDK.

$ aarch64-linaro-linux-gcc -v

Feedback and Support

For any bug related to this release, please submit issues to the Linaro Bug tracking system. To submit a bug, follow this link.

Bugs will be reviewed and prioritized by the team. For any bug report it is recommended to provide as much information as possible, and at the very list please include the name of the release you are using as well as the boot log (output of dmesg).

How to contribute

We very much encourage developers to use and contribute to our releases. For kernel specific contributions please use the linux-arm-msm mailing list.