[PATCH v1 2/2] arm: snapdragon: Add RPMH cleanup in board_quiesce_devices()

Balaji Selvanathan balaji.selvanathan at oss.qualcomm.com
Thu Jan 8 11:17:21 CET 2026


Implement board_quiesce_devices() to cleanup RPMH controllers
before booting the kernel. This ensures all RPMH TCS hardware
state is cleared, preventing timeout errors during kernel RPMH
driver initialization.

Signed-off-by: Aswin Murugan <aswin.murugan at oss.qualcomm.com>
Signed-off-by: Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
---
 arch/arm/mach-snapdragon/board.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c
index 5fb3240acc5..194318af228 100644
--- a/arch/arm/mach-snapdragon/board.c
+++ b/arch/arm/mach-snapdragon/board.c
@@ -32,6 +32,7 @@
 #include <usb.h>
 #include <sort.h>
 #include <time.h>
+#include <soc/qcom/rpmh.h>
 
 #include "qcom-priv.h"
 
@@ -709,6 +710,19 @@ static void carve_out_reserved_memory(void)
 	}
 }
 
+/**
+ * board_quiesce_devices() - Quiesce devices before booting kernel
+ *
+ * Called by U-Boot before booting the kernel to ensure all devices
+ * are in a clean state. This is critical for RPMH to prevent kernel
+ * timeout issues during initialization.
+ */
+void board_quiesce_devices(void)
+{
+	/* Clear RPMH TCS configurations before kernel boot */
+	rpmh_rsc_cleanup_all();
+}
+
 /* This function open-codes setup_all_pgtables() so that we can
  * insert additional mappings *before* turning on the MMU.
  */
-- 
2.34.1



More information about the U-Boot mailing list