Skip to content

Backport for sa8775p initial bring-up (boot to serial)

Bugzilla: https://bugzilla.redhat.com/2186616

Backport for initial bringup of sa8775p (boot to serial)

Signed-off-by: Adrien Thierry athierry@redhat.com

I didn't include doc-only commits since we don't maintain docs:

dt-bindings: clock: qcom-rpmhcc: document the clock for sa8775p
dt-bindings: arm-smmu: document the smmu on Qualcomm SA8775P
dt-bindings: interconnect: qcom,sa8775p-rpmh: fix a typo
dt-bindings: pinctrl: describe sa8775p-tlmm
dt-bindings: firmware: qcom,scm: add qcom,scm-sa8775p compatible
dt-bindings: clock: qcom,sa8775p-gcc: add the power-domains property
dt-bindings: arm: qcom: add the sa8775p-ride board
dt-bindings: watchdog: qcom-wdt: add qcom,apss-wdt-sa8775p compatible
dt-bindings: mailbox: qcom-ipcc: document the sa8775p platform
dt-bindings: cpufreq: qcom-hw: add a compatible for sa8775p

How to test

  • Apply this MR on top of main-automotive

  • Apply the configs MR: !2389 (merged)

  • Apply this patch:

From 39b41fef6d183f9cf834056aefff44e8b4c2f07a Mon Sep 17 00:00:00 2001
From: Eric Chanudet <echanude@redhat.com>
Date: Thu, 26 Jan 2023 09:13:43 -0500
Subject: [PATCH] HACK: firmware: smccc: disable TRNG

ARM_SMCCC_TRNG_VERSION never returns.

Signed-off-by: Eric Chanudet <echanude@redhat.com>
---
 drivers/firmware/smccc/smccc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/smccc/smccc.c b/drivers/firmware/smccc/smccc.c
index 60ccf3e90d7d..2fe6edb9a6f6 100644
--- a/drivers/firmware/smccc/smccc.c
+++ b/drivers/firmware/smccc/smccc.c
@@ -23,7 +23,7 @@ void __init arm_smccc_version_init(u32 version, enum arm_smccc_conduit conduit)
 	smccc_version = version;
 	smccc_conduit = conduit;
 
-	smccc_trng_available = smccc_probe_trng();
+	smccc_trng_available = false /* smccc_probe_trng() */;
 	if (IS_ENABLED(CONFIG_ARM64_SVE) &&
 	    smccc_version >= ARM_SMCCC_VERSION_1_3)
 		smccc_has_sve_hint = true;
-- 
2.39.2
  • Build the kernel on an arm64 machine
# make dist-configs
# cp redhat/configs/kernel-automotive-5.14.0-aarch64-debug.config .config
# make INSTALL_MOD_PATH=/root/modules_install -j16 Image.gz modules dtbs
# make INSTALL_MOD_PATH=/root/modules_install -j16 modules_install
  • Create an initramfs containing the necessary modules for a serial console
# dracut --drivers="gcc-sa8775p clk-rpmh rpmhpd pinctrl-sa8775p qnoc-sa8775p" --kmoddir=/root/modules_install/lib/modules/5.14.0+ initramfs.img 5.14.0+
  • Create a boot image
# cd ~
# git clone https://android.googlesource.com/platform/system/tools/mkbootimg
# cd centos-stream-9
# ~/mkbootimg/mkbootimg.py --header_version 2 --output boot.img --ramdisk initramfs.img --kernel arch/arm64/boot/Image.gz --dtb arch/arm64/boot/dts/qcom/sa8775p-ride.dtb --pagesize 4096 --kernel_offset 0x80208000 --second_offset 0x81100000 --tags_offset 0x7d00000 --base 0x1208800 --cmdline 'rd.retry=0 console=ttyMSM0,115200,n8 earlycon=qcom_geni,0xa8c000 ignore_loglevel'

rd.retry makes sure dracut doesn't wait for the rootfs to be mounted and drop immediately to an emergency shell.

  • Copy the boot image to a Ride SX 4 sidekick and flash it using fastboot.

The board should boot to an emergency dracut shell.

Edited by Adrien Thierry

Merge request reports