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.09 is based on OpenEmbedded and provides developers with a reference set of images including a simple initramfs (cpio) based rootfs.
What’s new in this release
- First release for SA8155p-ADP board.
- Support for Linux kernel 5.14.2.
- SDK release based on dunfell 3.1.10.
- This release provides a simple initramfs (cpio) based rootfs.
Important note(s) about this release
It is expected that the firmware/bootloader files received from Lantronix are used on the board directly.
The Linaro OpenEmbedded RPB version 21.09 for the SA8155p-ADP IoT platform supports the following features:
- It is based on the OpenEmbedded / Yocto Project release 3.1.10 (aka dunfell).
- It is based on Linux kernel 5.14.2.
- The following reference image(s) are released:
bootimage that includes prebuilt kernel and initramfs
- 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
- Boot to console:
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:
- boot image: boot-initramfs-kerneltest-full-image-sa8155p-adp—5.14-r0-sa8155p-adp.img
(with the rootfs image ‘initramfs-test-full.rootfs.cpio.gz’ appended to the kernel image).
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
$ sudo fastboot devices
Typically it will show as below
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):
bootfor the boot image (which includes the kernel Image + initramfs.cpio.gz)
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:
sudo fastboot erase boot_a
sudo fastboot erase dtbo_a
To flash the boot image, from the host PC, run the following command:
sudo fastboot flash boot <boot image file>
Building from sources
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 $ bitbake virtual/kernel
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.14.bb. To rebuild a boot image that includes your kernel changes, you can run the following
$ bitbake virtual/kernel
Assuming the build went fine, the new boot image will be located in the build folder, as
tmp-rpb-glibc/deploy/images/sa8155p-adp/boot-initramfs-kerneltest-full-image-sa8155p-adp.img. You can run the following
fastboot command to boot it on the board:
$ sudo fastboot boot boot-initramfs-kerneltest-full-image-sa8155p-adp--5.14-r0-sa8155p-adp.img
If you want to permanently use a custom kernel image, you can update the boot image and reflash it into the
$ sudo fastboot flash boot boot-initramfs-kerneltest-full-image-sa8155p-adp--5.14-r0-sa8155p-adp.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.
Along with the
sa8155p-adp/boot-initramfs-kerneltest-full-image-sa8155p-adp.img, the build should result in the following files as well, which can be used for generating the final combined boot image as output:
- Image.gz—5.14-r0-sa8155p-adp.bin (kernel)
- sa8155p-adp—5.14-r0-sa8155p-adp.dtb (device tree)
- initramfs-kerneltest-full-image-sa8155p-adp.rootfs.cpio.gz (initramfs.cpio.gz with kernel modules)
$ cat Image.gz--5.14-r0-sa8155p-adp.bin sa8155p-adp--5.14-r0-sa8155p-adp.dtb > Image.gz+dtb (where Image.gz+dtb is the resulting kernel+dtb file)
$ mkbootimg --kernel $kernel+dtb --ramdisk $initramfs --output $output --pagesize 4096 --base 0x80000000 --cmdline "root=/dev/sda6 rw rootwait console=ttyMSM0,115200n8" (where $output is the resulting output boot.img file)
Other files generated from the build which can be of interest are listed below:
- modules—5.14-r0-sa8155p-adp.tgz (kernel modules)
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 bc. $ ./rpb-x86_64-aarch64-toolchain-3.1+linaro.sh
Select the location to install the SDK.
$ cd INSTALLED_LOCATION bc. $ 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
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
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.