[RFC] ARM: add multi_v7_lpae_defconfig

Florian Fainelli f.fainelli at gmail.com
Fri Jan 10 09:56:50 PST 2020


On 1/10/20 9:34 AM, Nicolas Saenz Julienne wrote:
> The only missing configuration option preventing us from using
> multi_v7_defconfig with the RPi4 is ARM_LPAE. It's needed as the PCIe
> controller found on the SoC depends on 64bit addressing, yet can't be
> included as not all v7 boards support LPAE.

You might still be able to map the PCIe space above 4GB by using a super
section though I am not sure how easy that would be to do with
__map_init_section for instance and for the 4GB Pi4, we would not be
able to address the entire DRAM space anyway.

Besides, having a LPAE variant of the multi_v7_defconfig has a lot of
value given that there are a few ARMv7 platforms that support LPAE.

> 
> Introduce multi_v7_lpae_defconfig, built off multi_v7_defconfig, which will
> avoid us having to duplicate and maintain multiple similar configurations.
> 
> Note that merge_into_defconfig was taken from arch/powerpc/Makefile.

Would it make sense to move that make macro to scripts and keep just the
multi_v7_lape_defconfig make target under arch/arm/Makefile?

> 
> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne at suse.de>
> ---
>  arch/arm/Makefile            | 14 ++++++++++++++
>  arch/arm/configs/lpae.config |  1 +
>  2 files changed, 15 insertions(+)
>  create mode 100644 arch/arm/configs/lpae.config
> 
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index db857d07114f..3d157777a465 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -356,6 +356,20 @@ archclean:
>  # My testing targets (bypasses dependencies)
>  bp:;	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/bootpImage
>  
> +# Used to create 'merged defconfigs'
> +# To use it $(call) it with the first argument as the base defconfig
> +# and the second argument as a space separated list of .config files to merge,
> +# without the .config suffix.
> +define merge_into_defconfig
> +	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
> +		-m -O $(objtree) $(srctree)/arch/$(ARCH)/configs/$(1) \
> +		$(foreach config,$(2),$(srctree)/arch/$(ARCH)/configs/$(config).config)
> +	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
> +endef
> +
> +PHONY += multi_v7_lpae_defconfig
> +multi_v7_lpae_defconfig:
> +	$(call merge_into_defconfig,multi_v7_defconfig,lpae)
>  
>  define archhelp
>    echo  '* zImage        - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
> diff --git a/arch/arm/configs/lpae.config b/arch/arm/configs/lpae.config
> new file mode 100644
> index 000000000000..19bab134e014
> --- /dev/null
> +++ b/arch/arm/configs/lpae.config
> @@ -0,0 +1 @@
> +CONFIG_ARM_LPAE=y
> 


-- 
Florian



More information about the linux-arm-kernel mailing list