Add some boilerplate, Makefiles, Kbuild. A generic barebox-dt-2nd.img image can be build for A64 SoC using the sunxi_v8_defconfig. This image can be booted from u-boot and has been tested on Pine64+, it should work on other A64 SoC such as the pinephone, and other Pine64 boards, it might also work on H6 SoC which uses the same sd/mmc controler. Signed-off-by: Jules Maselbas <jmaselbas@xxxxxxxx> --- arch/arm/Kconfig | 14 ++++++++++++++ arch/arm/Makefile | 1 + arch/arm/configs/sunxi_v8_defconfig | 12 ++++++++++++ arch/arm/mach-sunxi/Kconfig | 12 ++++++++++++ arch/arm/mach-sunxi/Makefile | 1 + arch/arm/mach-sunxi/common.c | 0 include/mach/sunxi/barebox-arm.h | 7 +++++++ 7 files changed, 47 insertions(+) create mode 100644 arch/arm/configs/sunxi_v8_defconfig create mode 100644 arch/arm/mach-sunxi/Kconfig create mode 100644 arch/arm/mach-sunxi/Makefile create mode 100644 arch/arm/mach-sunxi/common.c create mode 100644 include/mach/sunxi/barebox-arm.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 9b90c8009a..fa163f182c 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -109,6 +109,19 @@ config ARCH_SOCFPGA select CPU_V7 select COMMON_CLK +config ARCH_SUNXI + bool "Allwinner SoCs" + depends on 64BIT + select CLKDEV_LOOKUP + select COMMON_CLK + select COMMON_CLK_OF_PROVIDER + select GPIOLIB + select HAVE_PBL_MULTI_IMAGES + select OFDEVICE + select OFTREE + select PINCTRL + select RELOCATABLE + config ARCH_TEGRA bool "NVIDIA Tegra" depends on 32BIT @@ -256,6 +269,7 @@ source "arch/arm/mach-omap/Kconfig" source "arch/arm/mach-pxa/Kconfig" source "arch/arm/mach-rockchip/Kconfig" source "arch/arm/mach-socfpga/Kconfig" +source "arch/arm/mach-sunxi/Kconfig" source "arch/arm/mach-stm32mp/Kconfig" source "arch/arm/mach-versatile/Kconfig" source "arch/arm/mach-vexpress/Kconfig" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 6785432c52..d562892a98 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -96,6 +96,7 @@ machine-$(CONFIG_ARCH_ROCKCHIP) += rockchip machine-$(CONFIG_ARCH_SAMSUNG) += samsung machine-$(CONFIG_ARCH_SOCFPGA) += socfpga machine-$(CONFIG_ARCH_STM32MP) += stm32mp +machine-$(CONFIG_ARCH_SUNXI) += sunxi machine-$(CONFIG_ARCH_VERSATILE) += versatile machine-$(CONFIG_ARCH_VEXPRESS) += vexpress machine-$(CONFIG_ARCH_TEGRA) += tegra diff --git a/arch/arm/configs/sunxi_v8_defconfig b/arch/arm/configs/sunxi_v8_defconfig new file mode 100644 index 0000000000..ebadd1c950 --- /dev/null +++ b/arch/arm/configs/sunxi_v8_defconfig @@ -0,0 +1,12 @@ +CONFIG_ARCH_SUNXI=y +CONFIG_64BIT=y +CONFIG_BOARD_ARM_GENERIC_DT=y +CONFIG_ARCH_SUN50I_A64=y +CONFIG_DRIVER_SERIAL_NS16550=y +CONFIG_MCI=y +CONFIG_MCI_SUNXI_SMHC=y +CONFIG_CMD_DMESG=y +CONFIG_MCI_STARTUP=y +CONFIG_FS_FAT=y +CONFIG_IMAGE_COMPRESSION_XZKERN=y +CONFIG_MMU=y diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig new file mode 100644 index 0000000000..e8d23772c2 --- /dev/null +++ b/arch/arm/mach-sunxi/Kconfig @@ -0,0 +1,12 @@ +if ARCH_SUNXI + +config ARCH_SUN50I_A64 + bool "Allwinner A64 SoC" + select CPU_V8 + select CPU_SUPPORTS_64BIT_KERNEL + select CLOCKSOURCE_ARM_ARCHITECTED_TIMER + select PINCTRL_SUN50I_A64 + help + Allwinner A64 (sun50iw1) SoC + +endif diff --git a/arch/arm/mach-sunxi/Makefile b/arch/arm/mach-sunxi/Makefile new file mode 100644 index 0000000000..f95691b59a --- /dev/null +++ b/arch/arm/mach-sunxi/Makefile @@ -0,0 +1 @@ +obj-y += common.o diff --git a/arch/arm/mach-sunxi/common.c b/arch/arm/mach-sunxi/common.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/include/mach/sunxi/barebox-arm.h b/include/mach/sunxi/barebox-arm.h new file mode 100644 index 0000000000..2ce1db587b --- /dev/null +++ b/include/mach/sunxi/barebox-arm.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef MACH_SUNXI_BAREBOX_ARM_H +#define MACH_SUNXI_BAREBOX_ARM_H + +#include <asm/barebox-arm.h> + +#endif -- 2.46.2