[U-Boot] [RFC PATCH 2/5] arm: v7R: Add initial support

Alexander Graf agraf at suse.de
Tue Apr 24 13:05:46 UTC 2018


On 04/24/2018 02:54 PM, Lokesh Vutla wrote:
> From: Michal Simek <michal.simek at xilinx.com>
>
> The Cortex-R* processors are a mid-range CPUs for use in deeply-embedded,
> real-time systems. It implements the ARMv7-R architecture, and includes
> Thumb-2 technology for optimum code density and processing throughput.
>
> Except for MPU(Memory Protection Unit) and few CP15 registers, most of the
> features are compatible with v7 architecture. So,reuse the same armv7
> folder and introduce a new config CPU_V7R in order to differentiate
> from v7 based platforms.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
> ---
>   arch/arm/Kconfig           | 7 +++++++
>   arch/arm/Makefile          | 2 ++
>   arch/arm/cpu/armv7/start.S | 2 ++
>   3 files changed, 11 insertions(+)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 7212fc5afa..de36ab6701 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -192,6 +192,11 @@ config CPU_V7M
>   	select THUMB2_KERNEL
>   	select SYS_CACHE_SHIFT_5
>   
> +config CPU_V7R
> +	bool
> +        select HAS_THUMB2

spaces vs tabs?

> +	select SYS_CACHE_SHIFT_6
> +
>   config CPU_PXA
>   	bool
>   	select SYS_CACHE_SHIFT_5
> @@ -208,6 +213,7 @@ config SYS_CPU
>   	default "arm1136" if CPU_ARM1136
>   	default "arm1176" if CPU_ARM1176
>   	default "armv7" if CPU_V7
> +        default "armv7" if CPU_V7R

same here

>   	default "armv7m" if CPU_V7M
>   	default "pxa" if CPU_PXA
>   	default "sa1100" if CPU_SA1100
> @@ -223,6 +229,7 @@ config SYS_ARM_ARCH
>   	default 6 if CPU_ARM1176
>   	default 7 if CPU_V7
>   	default 7 if CPU_V7M
> +	default 7 if CPU_V7R
>   	default 5 if CPU_PXA
>   	default 4 if CPU_SA1100
>   	default 8 if ARM64
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 4fa8b38397..f4bc1f250d 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -18,6 +18,7 @@ arch-$(CONFIG_CPU_ARM1136)	=-march=armv5
>   arch-$(CONFIG_CPU_ARM1176)	=-march=armv5t
>   arch-$(CONFIG_CPU_V7)		=$(call cc-option, -march=armv7-a, \
>   				 $(call cc-option, -march=armv7, -march=armv5))
> +arch-$(CONFIG_CPU_V7R)		=-march=armv7-r
>   arch-$(CONFIG_ARM64)		=-march=armv8-a
>   
>   # On Tegra systems we must build SPL for the armv4 core on the device
> @@ -41,6 +42,7 @@ tune-$(CONFIG_CPU_PXA)		=-mcpu=xscale
>   tune-$(CONFIG_CPU_ARM1136)	=
>   tune-$(CONFIG_CPU_ARM1176)	=
>   tune-$(CONFIG_CPU_V7)		=
> +tune-$(CONFIG_CPU_V7R)		=
>   tune-$(CONFIG_ARM64)		=
>   
>   # Evaluate tune cc-option calls now
> diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
> index 937f7051fe..97cd830dc5 100644
> --- a/arch/arm/cpu/armv7/start.S
> +++ b/arch/arm/cpu/armv7/start.S
> @@ -82,7 +82,9 @@ switch_to_hypervisor_ret:
>   
>   	/* the mask ROM code should have PLL and others stable */
>   #ifndef CONFIG_SKIP_LOWLEVEL_INIT
> +#ifdef CONFIG_CPU_V7

Shouldn't this be V7A now?


Alex

>   	bl	cpu_init_cp15
> +#endif
>   #ifndef CONFIG_SKIP_LOWLEVEL_INIT_ONLY
>   	bl	cpu_init_crit
>   #endif




More information about the U-Boot mailing list