[PATCH RFC 04/10] ARM: cortina: Add support for the CS75xx SoC family

Krzysztof Kozlowski krzk at kernel.org
Wed Sep 30 03:20:01 PDT 2026


On 30/09/2026 09:00, Fil Dunsky via B4 Relay wrote:
> From: Fil Dunsky <filipp.dunsky at gmail.com>
> 
> The Cortina Systems CS75xx ("Goldengate G2") are network processors
> with two Cortex-A9 cores, an SCU, GIC, the Cortex-A9 global and private
> timers and a PL310 L2 cache controller. The CS7542 is used, among others,
> in the Securifi Almond+ router.
> 
> The generic DT machine is sufficient for the platform, so only the SMP
> bring-up needs code: the bootloader parks the secondary core in a WFE
> loop that polls a global software register, so boot it by writing the
> physical address of secondary_startup to the register named by the
> cpu-release-addr property and issuing SEV.
> 
> The CPU is a Cortex-A9 r2p1, so select the errata workarounds that apply
> to that revision and can be enabled on a multiplatform kernel. The PL310
> is r3p2 and needs none of the PL310 workarounds.

How is it different from Cortina Gemini?

> 
> Signed-off-by: Fil Dunsky <filipp.dunsky at gmail.com>
> ---
>  arch/arm/Kconfig                |  2 ++
>  arch/arm/Makefile               |  1 +
>  arch/arm/mach-cortina/Kconfig   | 18 +++++++++++
>  arch/arm/mach-cortina/Makefile  |  2 ++
>  arch/arm/mach-cortina/platsmp.c | 71 +++++++++++++++++++++++++++++++++++++++++
>  5 files changed, 94 insertions(+)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 0cc289a7184..c4bfdc115ec 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -377,6 +377,8 @@ source "arch/arm/mach-berlin/Kconfig"
>  
>  source "arch/arm/mach-clps711x/Kconfig"
>  
> +source "arch/arm/mach-cortina/Kconfig"
> +
>  source "arch/arm/mach-davinci/Kconfig"
>  
>  source "arch/arm/mach-digicolor/Kconfig"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 573813ef5e7..f8a7090d047 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -181,6 +181,7 @@ machine-$(CONFIG_ARCH_AXXIA)		+= axxia
>  machine-$(CONFIG_ARCH_BCM)		+= bcm
>  machine-$(CONFIG_ARCH_BERLIN)		+= berlin
>  machine-$(CONFIG_ARCH_CLPS711X)		+= clps711x
> +machine-$(CONFIG_ARCH_CORTINA_CS75XX)	+= cortina

Arch should be rather per entire family, not one SoC.

Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list