From a80490c53e6eb77c21156cca5670599f13366d61 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Fri, 28 Sep 2018 00:37:19 +0100 Subject: [PATCH] allwinner: Unify platform.mk files For the two different platforms we support in the Allwinner port we mostly rely on header files covering the differences. This leads to the platform.mk files in the respective directories to be almost identical. To avoid further divergence and make sure that one platform doesn't break accidentally, let's create a shared allwinner-common.mk file and include that from the platform directory. Signed-off-by: Andre Przywara --- plat/allwinner/common/allwinner-common.mk | 54 +++++++++++++++++++++++ plat/allwinner/sun50i_a64/platform.mk | 50 +-------------------- plat/allwinner/sun50i_h6/platform.mk | 52 ++-------------------- 3 files changed, 59 insertions(+), 97 deletions(-) create mode 100644 plat/allwinner/common/allwinner-common.mk diff --git a/plat/allwinner/common/allwinner-common.mk b/plat/allwinner/common/allwinner-common.mk new file mode 100644 index 000000000..15888a8dc --- /dev/null +++ b/plat/allwinner/common/allwinner-common.mk @@ -0,0 +1,54 @@ +# +# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. +# +# SPDX-License-Identifier: BSD-3-Clause +# + +include lib/xlat_tables_v2/xlat_tables.mk + +AW_PLAT := plat/allwinner + +PLAT_INCLUDES := -Iinclude/plat/arm/common \ + -Iinclude/plat/arm/common/aarch64 \ + -I${AW_PLAT}/common/include \ + -I${AW_PLAT}/${PLAT}/include + +PLAT_BL_COMMON_SOURCES := drivers/console/${ARCH}/console.S \ + drivers/ti/uart/${ARCH}/16550_console.S \ + ${XLAT_TABLES_LIB_SRCS} \ + ${AW_PLAT}/common/plat_helpers.S \ + ${AW_PLAT}/common/sunxi_common.c + +BL31_SOURCES += drivers/arm/gic/common/gic_common.c \ + drivers/arm/gic/v2/gicv2_helpers.c \ + drivers/arm/gic/v2/gicv2_main.c \ + drivers/delay_timer/delay_timer.c \ + drivers/delay_timer/generic_delay_timer.c \ + lib/cpus/${ARCH}/cortex_a53.S \ + plat/common/plat_gicv2.c \ + plat/common/plat_psci_common.c \ + ${AW_PLAT}/common/sunxi_bl31_setup.c \ + ${AW_PLAT}/common/sunxi_cpu_ops.c \ + ${AW_PLAT}/common/sunxi_pm.c \ + ${AW_PLAT}/${PLAT}/sunxi_power.c \ + ${AW_PLAT}/common/sunxi_security.c \ + ${AW_PLAT}/common/sunxi_topology.c + +# The bootloader is guaranteed to only run on CPU 0 by the boot ROM. +COLD_BOOT_SINGLE_CPU := 1 + +# Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4. +ERRATA_A53_835769 := 1 +ERRATA_A53_843419 := 1 +ERRATA_A53_855873 := 1 + +MULTI_CONSOLE_API := 1 + +# The reset vector can be changed for each CPU. +PROGRAMMABLE_RESET_ADDRESS := 1 + +# Allow mapping read-only data as execute-never. +SEPARATE_CODE_AND_RODATA := 1 + +# BL31 gets loaded alongside BL33 (U-Boot) by U-Boot's SPL +RESET_TO_BL31 := 1 diff --git a/plat/allwinner/sun50i_a64/platform.mk b/plat/allwinner/sun50i_a64/platform.mk index 221665471..b03249932 100644 --- a/plat/allwinner/sun50i_a64/platform.mk +++ b/plat/allwinner/sun50i_a64/platform.mk @@ -4,51 +4,5 @@ # SPDX-License-Identifier: BSD-3-Clause # -include lib/xlat_tables_v2/xlat_tables.mk - -AW_PLAT := plat/allwinner - -PLAT_INCLUDES := -Iinclude/plat/arm/common/ \ - -Iinclude/plat/arm/common/aarch64 \ - -I${AW_PLAT}/common/include \ - -I${AW_PLAT}/${PLAT}/include - -PLAT_BL_COMMON_SOURCES := drivers/console/${ARCH}/console.S \ - drivers/ti/uart/${ARCH}/16550_console.S \ - ${XLAT_TABLES_LIB_SRCS} \ - ${AW_PLAT}/common/plat_helpers.S \ - ${AW_PLAT}/common/sunxi_common.c - -BL31_SOURCES += drivers/arm/gic/common/gic_common.c \ - drivers/arm/gic/v2/gicv2_helpers.c \ - drivers/arm/gic/v2/gicv2_main.c \ - drivers/delay_timer/delay_timer.c \ - drivers/delay_timer/generic_delay_timer.c \ - lib/cpus/${ARCH}/cortex_a53.S \ - plat/common/plat_gicv2.c \ - plat/common/plat_psci_common.c \ - ${AW_PLAT}/common/sunxi_bl31_setup.c \ - ${AW_PLAT}/common/sunxi_cpu_ops.c \ - ${AW_PLAT}/common/sunxi_pm.c \ - ${AW_PLAT}/sun50i_a64/sunxi_power.c \ - ${AW_PLAT}/common/sunxi_security.c \ - ${AW_PLAT}/common/sunxi_topology.c - -# The bootloader is guaranteed to only run on CPU 0 by the boot ROM. -COLD_BOOT_SINGLE_CPU := 1 - -# Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4. -ERRATA_A53_835769 := 1 -ERRATA_A53_843419 := 1 -ERRATA_A53_855873 := 1 - -MULTI_CONSOLE_API := 1 - -# The reset vector can be changed for each CPU. -PROGRAMMABLE_RESET_ADDRESS := 1 - -# Allow mapping read-only data as execute-never. -SEPARATE_CODE_AND_RODATA := 1 - -# BL31 gets loaded alongside BL33 (U-Boot) by U-Boot's SPL -RESET_TO_BL31 := 1 +# The differences between the platform are covered by the include files. +include plat/allwinner/common/allwinner-common.mk diff --git a/plat/allwinner/sun50i_h6/platform.mk b/plat/allwinner/sun50i_h6/platform.mk index 4fb8986d6..5c21eadb2 100644 --- a/plat/allwinner/sun50i_h6/platform.mk +++ b/plat/allwinner/sun50i_h6/platform.mk @@ -4,53 +4,7 @@ # SPDX-License-Identifier: BSD-3-Clause # -include lib/xlat_tables_v2/xlat_tables.mk +# The differences between the platform are covered by the include files. +include plat/allwinner/common/allwinner-common.mk -AW_PLAT := plat/allwinner -AW_DRIVERS := drivers/allwinner - -PLAT_INCLUDES := -Iinclude/plat/arm/common \ - -Iinclude/plat/arm/common/aarch64 \ - -I${AW_PLAT}/common/include \ - -I${AW_PLAT}/${PLAT}/include - -PLAT_BL_COMMON_SOURCES := drivers/console/${ARCH}/console.S \ - drivers/mentor/i2c/mi2cv.c \ - drivers/ti/uart/${ARCH}/16550_console.S \ - ${XLAT_TABLES_LIB_SRCS} \ - ${AW_PLAT}/common/plat_helpers.S \ - ${AW_PLAT}/common/sunxi_common.c - -BL31_SOURCES += drivers/arm/gic/common/gic_common.c \ - drivers/arm/gic/v2/gicv2_helpers.c \ - drivers/arm/gic/v2/gicv2_main.c \ - drivers/delay_timer/delay_timer.c \ - drivers/delay_timer/generic_delay_timer.c \ - lib/cpus/${ARCH}/cortex_a53.S \ - plat/common/plat_gicv2.c \ - plat/common/plat_psci_common.c \ - ${AW_PLAT}/common/sunxi_bl31_setup.c \ - ${AW_PLAT}/common/sunxi_cpu_ops.c \ - ${AW_PLAT}/common/sunxi_pm.c \ - ${AW_PLAT}/sun50i_h6/sunxi_power.c \ - ${AW_PLAT}/common/sunxi_security.c \ - ${AW_PLAT}/common/sunxi_topology.c - -# The bootloader is guaranteed to only run on CPU 0 by the boot ROM. -COLD_BOOT_SINGLE_CPU := 1 - -# Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4. -ERRATA_A53_835769 := 1 -ERRATA_A53_843419 := 1 -ERRATA_A53_855873 := 1 - -MULTI_CONSOLE_API := 1 - -# The reset vector can be changed for each CPU. -PROGRAMMABLE_RESET_ADDRESS := 1 - -# Allow mapping read-only data as execute-never. -SEPARATE_CODE_AND_RODATA := 1 - -# BL31 gets loaded alongside BL33 (U-Boot) by U-Boot's SPL -RESET_TO_BL31 := 1 +PLAT_BL_COMMON_SOURCES += drivers/mentor/i2c/mi2cv.c -- GitLab