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 <[email protected]>
> ---
>  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


Reply via email to