Flashing images on Qualcomm Snapdragon Ride SX 4 (QAM8775P/QAM8650P)¶
Obtain prebuilt or custom AutoSD images to flash onto your Qualcomm Snapdragon Ride SX4 (QAM8775P/QAM8650P) development board.
Obtain images¶
To flash AutoSD onto your Qualcomm development board, you need the following images:
aboot.img/boot_a.simg- An Android boot image containing the automotive kernel, the initial RAM file system (initramfs), Device Tree Blob (DTB), and the kernel
command line. The boot loader reads the image to start the kernel.
Flash
aboot.img/boot_a.simgto both theboot_aandboot_bpartitions. Because there is no way to predict from which partition newly provisioned boards will boot, flashing both boot partitions ensures a trouble-free boot. rootfs.simg/system_a.simg- A sparse disk image that grows in size as required to accommodate data without storing empty space.
rootfs.simg/system_a.simgcontains the root file system partition with files installed from RPM packages and files generated for configuration purposes. Flashrootfs.simg/system_a.simgto thesystem_apartition. qm_var.simg/system_b.simg-
An optional sparse disk image for the quality-managed (QM) partition, a containerized environment at
/usr/lib/qm/rootfsthat isolates non-critical applications from the rest of the system and provides persistent, mutable storage at/var/qm.A separate QM partition image is generated only when both the
qmsection and a separate QM data partition with a non-zerosizeorrelative_sizeare configured underimage.partitions.var_qmin the manifest. Without a dedicated partition size, QM data resides within the root file system (rootfs.simg/system_a.simg), so Automotive Image Builder does not produce a separate image.Most prebuilt nightly images include a separate QM partition, so you must build a custom image without a
qmsection if you do not want QM, or omit theimage.partitions.var_qmsection if you want QM data embedded in the root file system instead. If your image has a separate QM partition, you must flashqm_var.simg/system_b.simgto thesystem_bpartition to avoid boot errors. vbmeta_a.simg/vbmeta_b.simg-
Verified Boot Metadata (vbmeta) images ensure the bootloader only runs signed code when using Android Verified Boot (AVB) 2.0. The Qualcomm Android Boot Loader (ABL) reads these images to verify the integrity of the boot partitions before loading the kernel.
Prebuilt nightly images do not include a separate vbmeta file because the vbmeta placeholder is embedded in the disk image.
If you build a custom image and use the
--separate-partitionsoption, Automotive Image Builder generates a placeholdervbmeta_aimage that is sufficient for development boards with AVB disabled. You can flash it, but the board can boot without it. Depending on your manifest, the disk image might also contain a placeholder for avbmeta_bpartition. Automotive Image Builder leavesvbmeta_bempty by default, so the--separate-partitionsoption skips it and does not producevbmeta_b.simgunless it contains data after you sign both slots withavbtool.For production use with AVB enabled, you must sign the boot image and generate real vbmeta images by using
avbtool. Flashvbmeta_a.simgto thevbmeta_apartition. Flashvbmeta_b.simgto thevbmeta_bpartition.
You can obtain these images by using one of the following methods:
- Download a prebuilt nightly image from the AutoSD CI pipeline.
- Build a custom Ride SX 4 image with Automotive Image Builder.
Qualcomm image targets and firmware¶
You must use a prebuilt nightly image or a custom image target that is compatible with your board and its firmware. Mismatches between your image and board cause flash and boot failures.
The following table lists the available Ride SX 4 image targets:
| Target | SoC | Firmware | Kernel | Description |
|---|---|---|---|---|
ride4_sa8775p_sx_legacy |
SA8775P | ES13 | kernel-automotive |
Legacy kernel, standard firmware, Rev 1 hardware with a patch kit, Rev 2, or Rev 2.5 hardware |
ride4_sa8775p_sx_legacy_r3 |
SA8775P | ES13 | kernel-automotive |
Legacy kernel, Rev 3 hardware |
ride4_sa8775p_sx |
SA8775P | ES21 | kernel-ivos-qualcomm |
System Control and Management Interface (SCMI)-enabled firmware, Rev 1 hardware with a patch kit, Rev 2, or Rev 2.5 hardware |
ride4_sa8775p_sx_r3 |
SA8775P | ES21 | kernel-ivos-qualcomm |
SCMI-enabled firmware, Rev 3 hardware |
ride4_sa8650p_sx_r3 |
SA8650P | CS4 | kernel-ivos-qualcomm |
SCMI-enabled firmware, Rev 3 SoC |
Download a prebuilt Ride SX 4 nightly image¶
Download and uncompress a prebuilt nightly AutoSD image for Ride SX 4.
Each directory contains aboot.img.xz, rootfs.simg.xz, and qm_var.simg.xz files.
-
List the available images:
-
Set
latestto the name of the image you want to download:where:
<image_name>is the directory name of the prebuilt nightly image, for example:auto-osbuild-ride4_sa8650p_sx_r3-autosd10-qa-regular-aarch64-2357423933.c69ef138.aboot
-
Download the images from the Automotive SIG nightly builds repository:
-
Uncompress the
aboot.img.xz,rootfs.simg.xz, andqm_var.simg.xzfiles:
Next step
Flash the images onto your Ride SX 4 board.
Build a custom Ride SX 4 image¶
To build a custom AutoSD image, use Automotive Image Builder, which is available in the
automotive-image-builder repository.
Prerequisites
- An AArch64 Linux system with internet access
- Podman
- Automotive Image Builder installed as an RPM.
- A custom manifest that adheres to the conventions described in Automotive Image Builder manifests, as demonstrated by the sig-docs/demos
Procedure
-
Create the build container:
-
Build the AutoSD bootc container image and disk image files:
$ aib build \ --distro autosd10 \ --target <ride4_variant> \ --separate-partitions \ --format simg \ <path>/<manifest>.aib.yml \ <container_name> \ <output_directory>where:
<ride4_variant>is the ride4 target that is compatible with your board.--separate-partitionsis the flag that creates per-partition image files:boot_a.simg,system_a.simg,vbmeta_a.simg, andsystem_b.simgif you configured a separate QM data partition in your manifest. Without this flag Automotive Image Builder generates a single disk image. Automotive Image Builder does not build an image for a partition unless it contains data.<path>/<manifest>is the path to your manifest file, for example:demos/minimal-qm/minimal_qm.aib.yml
<container_name>is the name of your AutoSDbootccontainer image, not to be confused with the Automotive Image Builder build container, for example:localhost/autosd-ride4_sa8775p_sx_r3:latest
<output_directory>is the name of the disk image output directory that stores the per-partition image files, for example:autosd-ride4_sa8775p_sx_r3-minimal-qm
Next step
Flash the images onto your Ride SX 4 board.
Flash image¶
Flash the AutoSD images onto your board.
Support documentation for your board and firmware is available on the Qualcomm Createpoint portal. You must register for a Qualcomm ID to log in to this portal.
Prerequisites
- A Qualcomm Snapdragon Ride SX 4 (QAM8775P/QAM8650P) development system
- A USB cable
android-tools- A prebuilt or custom AutoSD image built for a Ride SX 4 target
Procedure
- Connect a USB cable from your workstation to the
USB0port on the board. -
From the workstation, identify the System on Chip (SoC) serial console device.
-
From the workstation, use a TTY application to connect to the SoC device, and log in as the
rootuser.The board’s Future Technology Devices International (FTDI) USB adapter exposes four serial ports as
/dev/ttyUSB<x>:| Port | Interface | Console | | ---- | --------- | ------- | | `/dev/ttyUSB0` | `if00-port0` | Unused | | `/dev/ttyUSB1` | `if01-port0` | Main OS (Linux) | | `/dev/ttyUSB2` | `if02-port0` | TrustZone | | `/dev/ttyUSB3` | `if03-port0` | Safety Island (SAIL) |Note
The workstation in this step must be connected to the SoC device through USB. The workstation must be configured to use
fastboot. -
From the workstation, connect to the SoC serial console at 115200 baud, 8N1. For example, using
picocom: -
Reboot the SoC device and quickly press and hold the down arrow key until you see boot messages on the terminal window.
-
From the workstation, verify that the SoC device is in a fastboot state:
Note
The command returns an ID that confirms the device is ready to flash. In this example, the ID is
c2b86509. -
Flash the partitions with the images:
# fastboot flash boot_a <boot_image_name> # fastboot flash boot_b <boot_image_name> # fastboot flash system_a <root_image_name> # fastboot flash system_b <qm_image_name>where:
<boot_image_name>isaboot.imgfor a prebuilt AutoSD image orboot_a.simgfor a custom AutoSD image.<root_image_name>isrootfs.simgfor a prebuilt AutoSD image orsystem_a.simgfor a custom AutoSD image.<qm_image_name>isqm_var.simgfor a prebuilt AutoSD image orsystem_b.simgfor a custom AutoSD image with a separate QM data partition configured in the manifest. Flashsystem_bonly if your image includes a separate QM data partition. Most prebuilt nightly images include one; if yours does, you must flash it to avoid boot failures. If no separate QM partition is configured, QM data is embedded in the root file system and you can skip this command.
-
Continue to boot the SoC device:
Note
If
fastboot continuedoes not work, perform a complete power cycle: power off the board, wait a few seconds, then power it back on. -
Log in to the operating system (OS) using
rootas the user ID andpasswordas the password.
Additional resources