mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-30 08:07:59 +00:00

Add R-Car Gen4 APMU controller remoteproc driver capable of starting the Cortex-R52 cores in Renesas R8A779G0 V4H/V4M SoC. The APMU IP is in fact a power management unit capable of additional operations, but those are not used by U-Boot so far. This requires slight adjustment to the SPL entry point code, as that is being executed on the Cortex-R52 #0 and the Cortex-R52 #0 enters an endless loop once it starts the rest of the SPL on Cortex-A76 core. The endless loop now checks for content of APMU CRBARP registers and tests whether valid VLD_BARP and BAREN_VALID bits are set, if so, the Cortex-R52 core exits the endless loop and jumps to address started in CRBARP[31:18] register in ARM mode, which is a trampoline code to jump to the final entry point. The trampoline code is in place to avoid limitation of CRBARP[31:18] address field, which limits the core start address to memory addresses aligned to 0x40000 or 256 kiB . The trampoline is placed at 0x40000 aligned address and jumps to the final entry point, which can be at an address with arbitrary alignment at instruction granularity. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
120 lines
3.2 KiB
Text
120 lines
3.2 KiB
Text
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# (C) Copyright 2015
|
|
# Texas Instruments Incorporated - https://www.ti.com/
|
|
#
|
|
|
|
menu "Remote Processor drivers"
|
|
|
|
# REMOTEPROC gets selected by drivers as needed
|
|
# All users should depend on DM
|
|
config REMOTEPROC
|
|
bool
|
|
depends on DM
|
|
|
|
# Please keep the configuration alphabetically sorted.
|
|
config K3_SYSTEM_CONTROLLER
|
|
bool "Support for TI' K3 System Controller"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on ARCH_K3
|
|
depends on OF_CONTROL
|
|
help
|
|
Say 'y' here to add support for TI' K3 System Controller.
|
|
|
|
config REMOTEPROC_RENESAS_APMU
|
|
bool "Support for Renesas R-Car Gen4 APMU start of CR52 processor"
|
|
select REMOTEPROC
|
|
depends on ARCH_RENESAS && RCAR_GEN4 && DM && OF_CONTROL
|
|
help
|
|
Say 'y' here to add support for Renesas R-Car Gen4 Cortex-A52
|
|
processor via the remoteproc framework.
|
|
|
|
config REMOTEPROC_SANDBOX
|
|
bool "Support for Test processor for Sandbox"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on SANDBOX
|
|
help
|
|
Say 'y' here to add support for test processor which does dummy
|
|
operations for sandbox platform.
|
|
|
|
config REMOTEPROC_STM32_COPRO
|
|
bool "Support for STM32 coprocessor"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on ARCH_STM32MP
|
|
depends on OF_CONTROL
|
|
help
|
|
Say 'y' here to add support for STM32 Cortex-M4 coprocessors via the
|
|
remoteproc framework.
|
|
|
|
config REMOTEPROC_TI_K3_ARM64
|
|
bool "Support for TI's K3 based ARM64 remoteproc driver"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on ARCH_K3
|
|
depends on OF_CONTROL
|
|
help
|
|
Say y here to support TI's ARM64 processor subsystems
|
|
on various TI K3 family of SoCs through the remote processor
|
|
framework.
|
|
|
|
config REMOTEPROC_TI_K3_DSP
|
|
bool "TI K3 C66 and C71 remoteproc support"
|
|
select REMOTEPROC
|
|
depends on ARCH_K3
|
|
depends on TI_SCI_PROTOCOL
|
|
help
|
|
Say y here to support TI's C66/C71 remote processor subsystems
|
|
on various TI K3 family of SoCs through the remote processor
|
|
framework.
|
|
|
|
config REMOTEPROC_TI_K3_R5F
|
|
bool "TI K3 R5F remoteproc support"
|
|
select REMOTEPROC
|
|
depends on ARCH_K3
|
|
depends on TI_SCI_PROTOCOL
|
|
help
|
|
Say y here to support TI's R5F remote processor subsystems
|
|
on various TI K3 family of SoCs through the remote processor
|
|
framework.
|
|
|
|
config REMOTEPROC_TI_POWER
|
|
bool "Support for TI Power processor"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on ARCH_KEYSTONE
|
|
depends on OF_CONTROL
|
|
help
|
|
Say 'y' here to add support for TI power processors such as those
|
|
found on certain TI keystone and OMAP generation SoCs.
|
|
|
|
config REMOTEPROC_TI_PRU
|
|
bool "Support for TI's K3 based PRU remoteproc driver"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on TI_PRUSS
|
|
depends on ARCH_K3
|
|
depends on OF_CONTROL
|
|
help
|
|
Say 'y' here to add support for TI' K3 remoteproc driver.
|
|
|
|
config REMOTEPROC_TI_IPU
|
|
bool "Support for TI's K3 based IPU remoteproc driver"
|
|
select REMOTEPROC
|
|
depends on DM
|
|
depends on SPL_DRIVERS_MISC
|
|
depends on SPL_FS_LOADER
|
|
depends on OF_CONTROL
|
|
help
|
|
Say 'y' here to add support for TI' K3 remoteproc driver.
|
|
|
|
config REMOTEPROC_MAX_FW_SIZE
|
|
hex "Maximum size of firmware file that needs to be loaded to the remote processor"
|
|
default 0x10000
|
|
help
|
|
Maximum size of the firmware file (elf, binary) that needs to be
|
|
loaded to the remote processor.
|
|
|
|
endmenu
|