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

Simon Glass sjg at chromium.org
Thu Jan 8 18:41:52 CET 2026


Hi Balaji,

On Thu, 8 Jan 2026 at 03:17, Balaji Selvanathan
<balaji.selvanathan at oss.qualcomm.com> wrote:
>
> 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
>

What are RPMH and TCS? Can you add a dummy driver for this hardware
and mark it with DM_FLAG_OS_PREPARE ?

Regards,
Simon


More information about the U-Boot mailing list