Skip to content

Add initial changes for Nord RRD board - #3097

Open
Viswanath Kraleti (vkraleti) wants to merge 13 commits into
qualcomm-linux:masterfrom
vkraleti:nord-on-master
Open

Add initial changes for Nord RRD board#3097
Viswanath Kraleti (vkraleti) wants to merge 13 commits into
qualcomm-linux:masterfrom
vkraleti:nord-on-master

Conversation

@vkraleti

Copy link
Copy Markdown
Contributor

This PR adds initial bring-up support for the Qualcomm Nord RRD (IQ10 RRD) board.
It provides a machine config and packagegroups following the existing per-SoC-family pattern,
builds the kernel from the staging/nord branch (since Nord isn't in qcom-next yet),
registers Nord's DTB/FIT metadata, adds a UFS partitioning scheme, a boot firmware recipe,
and backports NSP/HPASS/QUPv3 firmware blobs from linux-firmware.git.

CI gets a KAS config and build workflow coverage for nord-rrd.

The kernel branch override, and the qcom-dtb-metadata and qcom-partition-conf patches,
are temporary and already submitted/tracked upstream for removal once merged.

@vkraleti

Copy link
Copy Markdown
Contributor Author

Submitted qualcomm-linux/meta-qcom-distro#459 to add Nord boot bins to exception list.

Comment thread recipes-bsp/firmware-boot/firmware-qcom-boot-nord.inc

@roshs189 roshs189 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the final Licence file LICENSE.qcom-2 or LicenseRef-LICENSE.qcom-2? The zip has LICENSE.qcom-2 file.

Comment thread recipes-kernel/linux/qcom-dtb-metadata_1.1.bb
@vkraleti
Viswanath Kraleti (vkraleti) force-pushed the nord-on-master branch 2 times, most recently from 0d06b51 to 0ac3eb9 Compare September 10, 2026 06:54
The Nord SoC kernel changes are not yet available in the 'qcom-next'
branch, but are currently part of the 'staging/nord' branch.

Add a linux-qcom-next bbappend that uses machine-specific overrides
(SOC_FAMILY "nord") to point the kernel source at 'staging/nord' and
its matching SRCREV, and to update LINUX_VERSION to reflect that
branch's base.

Drop this bbappend and let SRCBRANCH, SRCREV and LINUX_VERSION fallback
to qcom-next's defaults once Nord SoC support merges into 'qcom-next'.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
…_FAMILY overrides

QcomFitImageMatrixTests cached kernel-source DTB/DTBO output filenames
per provider recipe name, using a single representative machine to
stand in for every machine built by that provider. This breaks once a
SOC_FAMILY-scoped SRCREV/SRCBRANCH override (e.g. linux-qcom-next's
Nord override, built from 'staging/nord' instead of the default
'qcom-next') makes machines under the same provider resolve to
different kernel source trees: the representative machine picked
first (alphabetically) pins the cache to its own tree, so DTBs that
only exist in the other tree are reported missing.

This showed up as test_fit_dtb_compatible_combos_exist_in_kernel_sources
failing with "qcom_nord-qam -> nord-rrd" and
"qcom_qam8x97p-qam -> nord-ride-sx" reported as missing, even though
those DTBs exist in the staging/nord source that was never unpacked.

Resolve SRCREV alongside the existing per-machine KERNEL_DEVICETREE
lookup in _resolve_machine_provider(), and rework
_provider_output_files() to unpack once per distinct (provider,
SRCREV) pair actually used by any machine, unioning DTB/DTBO outputs
across all of them instead of assuming one representative machine's
source speaks for the whole provider. This generalizes to any future
SOC_FAMILY-scoped kernel source override, not just Nord.

Assisted-by: Claude Code:claude-sonnet-5
Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Nord SoC (qam8x97p) and its board variant (nord-qam) have no entries
in the upstream qcom-dtb-metadata repository. Without them, the kernel
FIT image cannot be built with Nord configurations.

Add a patch that registers the Nord SoC msm-id (0x288) and qam8x97p
variant (0x2b2) in qcom-metadata.dts.

This patch should be dropped once the Nord support is merged into the
upstream qcom-dtb-metadata repository.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The Nord platform supports two board types — RideSX(qcom,qam8x97p-qam)
and RRD(qcom,nord-qam). Add entries for both compatibles in
fit-dtb-compatible-linux-qcom.inc, mapping them to the coresponding DTB
so that he FIT image loader can select the correct DTB at boot.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Nord NSP, HPASS and QUPv3 firmware blobs, were added upstream in
linux-firmware.git as separate commits. Backport them as patches
to support firmware loading on Nord RRD board.

oe-core's linux-firmware recipe pins the 20260810 release snapshot,
which predates all three upstream commits. The raw upstream patches
carry WHENCE generated against a newer tree, so applying them
unmodified fails during do_patch with "WHENCE: patch does not apply".
Rebase the WHENCE hunks in the NSP and HPASS patches onto the actual
context present in the pinned snapshot, to cleanly apply patches.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Nord RRD has no partitioning scheme defined in the upstream qcom-ptool
project. Without it, flashing boot firmware and HLOS images onto board
is not possbile.

Add a patch that defines the UFS partition layout and contents.xml.in
for Nord RRD, covering the QTEE, UEFI and systemd-boot stack, along
with the corresponding test checksums.

This patch has been submitted upstream; drop it once merged into
qcom-ptool.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Add recipe to deliver boot firmware for Nord RRD board. This enables
UEFI compatible boot flow and ensures integration with flat build targets.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The Nord SoC is new to meta-qcom and has no entry in
packagegroup-machine-essential, so Nord images would miss the
SoC-specific kernel modules that other families get through
their own -soc packages.

Define a new package with known Nord-soc specific kernel modules,
following the pattern used by the other qcom-<soc>-soc packages.
The exact module list is a placeholder until the real Nord kernel
module names are confirmed.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Without a board specific packagegroup, there is no structured
way to pull firmware and Hexagon DSP binaries into images. Add
packagegroup-nord-rrd.bb with the standard borad firmware and
hexagon-dsp-binaries split, following the same pattern used by
other board packagegroups (e.g. packagegroup-purwa-iot-evk).

Hexagon-dsp-binaries packagegroup intentionally left empty
as a placeholder until the real Nord Hexagon DSP binaries
are available.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
linux-firmware-qcom-nord-[audio|compute|qupv3fw] pkgs are not yet part
of default linux-firmware recipe. They only exist as packages in the
linux-firmware bbappend gaurded by :qcom override. Due to this
yocto-check-layer is flagging packagegroup-nord-rrd.bb recipe for
referencing qcom-only pkgs without a qcom override guard.

Moving those packages under RRECOMMENDS:${PN}-firmware:qcom, makes the
packagegroup consistent with where the packages are actually defined.

Assisted-by: Claude Code:claude-sonnet-5
Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The IQ10 RRD is a new Qualcomm board based on the Nord SoC. Add
a machine conf to build Yocto image for this hardware, to kick
start software bring-up and validation on this platform.

Add conf/machine/include/qcom-nord.inc, following the format used
by other SoC families for setting SOC_FAMILY, other required common
qcom includes, and selecting the armv8-6a-crypto CPU tune.

Add conf/machine/nord-rrd.conf requiring the new qcom-nord.inc, wiring
up the board's firmware packagegroups, CDT and boot firmware providers.

In this initial bring-up configuration; CDT provider is a placeholder
until is available.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Without a KAS configuration file, developers and CI systems have
no standardized way to set up the correct layers, MACHINE and
build configuration for Nord RRD.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
The Nord RRD machine configuration is new and not yet covered by CI.
Without a build job for this target, regressions can go undetected.

As Nord is currently enabled only in the `staging/nord` branch built as
part of linux-qcom-next kernel, exclude it from 6.18 kernel variants.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants