[PATCH 6/6] remoteproc: amd_mbv_bram: Add RPMsg support
Krzysztof Kozlowski
krzk at kernel.org
Thu Oct 15 02:51:00 PDT 2026
On Wed, Oct 14, 2026 at 02:34:26PM -0700, Ben Levinsky wrote:
> Register named reserved-memory carveouts and expose the firmware
> resource table after it has been loaded into BRAM. This lets remoteproc
> create virtqueues backed by reserved shared DDR without deriving
> carveout roles from DT node names. Map the shared-memory carveouts with
> the common rproc_mem_entry_ioremap_wc() and rproc_mem_entry_iounmap()
> callbacks.
>
> Use the mailbox framework to send virtqueue notification IDs. Defer
> received notifications to process context before dispatching them to
> the remoteproc virtqueues. Keep mailbox payload storage valid until
> transmit completion and order write-combined vring updates before each
> kick.
>
> For designs where the mailbox and remote processor share a clock, request
> the mailbox channels only after enabling that clock, while the processor
> is still held in reset. Release the channels before disabling the clock
> during stop.
>
> The mailboxes are optional. Without them the driver keeps supporting
> load, start, and stop only.
>
> Select the mailbox framework, the AMD PL Mailbox controller and the
> virtio RPMsg bus, which the driver uses for notifications and RPMsg
> channels. Selecting MAILBOX while depending on GPIOLIB creates a
> Kconfig recursive dependency, because GPIOLIB is selected by drivers
> that are reachable from MAILBOX, so select GPIOLIB as well instead of
> depending on it. The driver always needs GPIO for the reset line.
> Depend on HAS_IOMEM, which the selected mailbox controller and the
> write-combined carveout mappings require.
>
> Assisted-by: LLM sparse
> Signed-off-by: Ben Levinsky <ben.levinsky at amd.com>
> ---
> drivers/remoteproc/Kconfig | 6 +-
> drivers/remoteproc/amd_mbv_bram_rproc.c | 231 +++++++++++++++++++++++-
> 2 files changed, 235 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
> index 5b56b2dcc725..9ebbbf76289f 100644
> --- a/drivers/remoteproc/Kconfig
> +++ b/drivers/remoteproc/Kconfig
> @@ -25,7 +25,11 @@ config REMOTEPROC_CDEV
>
> config AMD_MBV_BRAM_REMOTEPROC
> tristate "AMD MicroBlaze/V BRAM-based remoteproc support"
> - depends on OF && COMMON_CLK && (GPIOLIB || COMPILE_TEST)
> + depends on OF && COMMON_CLK && HAS_IOMEM
> + select GPIOLIB
> + select MAILBOX
> + select AMD_PL_MAILBOX
You should not select user-visible symbols.
Best regards,
Krzysztof
More information about the linux-arm-kernel
mailing list