The Nexell S5P6818 is a typical SoC with ARM Cortex-A53 cores. It has many peripherals derived from Samsung SoCs (MMC, serial, I2C, Ethernet, ...). Add the required files to introduce this new SoC (family?) to U-Boot.
Signed-off-by: Andre Przywara <andre.przyw...@arm.com> --- arch/arm/Kconfig | 6 ++++++ arch/arm/Makefile | 1 + arch/arm/mach-nexell/Kconfig | 9 +++++++++ arch/arm/mach-nexell/Makefile | 7 +++++++ arch/arm/mach-nexell/board.c | 41 +++++++++++++++++++++++++++++++++++++++++ include/configs/s5p6818.h | 33 +++++++++++++++++++++++++++++++++ 6 files changed, 97 insertions(+) create mode 100644 arch/arm/mach-nexell/Kconfig create mode 100644 arch/arm/mach-nexell/Makefile create mode 100644 arch/arm/mach-nexell/board.c create mode 100644 include/configs/s5p6818.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index cfde0758ef..c11e3f1f85 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -652,6 +652,10 @@ config ARCH_MX5 select CPU_V7 select BOARD_EARLY_INIT_F +config ARCH_NEXELL + bool "Nexell S5P support" + select ARM64 + config ARCH_QEMU bool "QEMU Virtual Platform" select CPU_V7 @@ -1197,6 +1201,8 @@ source "arch/arm/mach-imx/mx6/Kconfig" source "arch/arm/mach-imx/mx5/Kconfig" +source "arch/arm/mach-nexell/Kconfig" + source "arch/arm/mach-omap2/Kconfig" source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 0e0ae77822..d71d50a1f4 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -61,6 +61,7 @@ machine-$(CONFIG_ARCH_KEYSTONE) += keystone machine-$(CONFIG_KIRKWOOD) += kirkwood machine-$(CONFIG_ARCH_MESON) += meson machine-$(CONFIG_ARCH_MVEBU) += mvebu +machine-$(CONFIG_ARCH_NEXELL) += nexell # TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA # TODO: rename CONFIG_ORION5X -> CONFIG_ARCH_ORION5X machine-$(CONFIG_ORION5X) += orion5x diff --git a/arch/arm/mach-nexell/Kconfig b/arch/arm/mach-nexell/Kconfig new file mode 100644 index 0000000000..71aa5e641d --- /dev/null +++ b/arch/arm/mach-nexell/Kconfig @@ -0,0 +1,9 @@ +if ARCH_NEXELL + +config SYS_SOC + default "nexell" + +config SYS_CONFIG_NAME + default "s5p6818" + +endif diff --git a/arch/arm/mach-nexell/Makefile b/arch/arm/mach-nexell/Makefile new file mode 100644 index 0000000000..bf103480bb --- /dev/null +++ b/arch/arm/mach-nexell/Makefile @@ -0,0 +1,7 @@ +# +# (C) Copyright 2017 Andre Przywara <andre.przyw...@arm.com> +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := board.o diff --git a/arch/arm/mach-nexell/board.c b/arch/arm/mach-nexell/board.c new file mode 100644 index 0000000000..f0d258b71c --- /dev/null +++ b/arch/arm/mach-nexell/board.c @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2017 Andre Przywara <andre.przyw...@arm.com> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> + +DECLARE_GLOBAL_DATA_PTR; + +/* TODO: dummy implementation for now, add proper reset code */ +void reset_cpu(ulong addr) +{ +} + +/* TODO: enhance when multiple SoCs are supported (S5P4418) */ +int print_cpuinfo(void) +{ + puts("CPU: Nexell S5P6818\n"); + + return 0; +} + +/* TODO: dummy for now, either implement DRAM init or rely on vendor code */ +int dram_init(void) +{ + /* TODO: hard coded for now, read from DT? */ + gd->ram_size = 0x40000000; + + return 0; +} + +ulong get_tbclk(void) +{ + return CONFIG_SYS_HZ; +} + +int board_init(void) +{ + return 0; +} diff --git a/include/configs/s5p6818.h b/include/configs/s5p6818.h new file mode 100644 index 0000000000..4d394dbec9 --- /dev/null +++ b/include/configs/s5p6818.h @@ -0,0 +1,33 @@ +#ifndef __CONFIG_S5P6818_H +#define __CONFIG_S5P6818_H + +#define CONFIG_SYS_MAXARGS 16 +#define CONFIG_SYS_CBSIZE 1024 +#define CONFIG_ENV_SIZE (128 << 10) +#define CONFIG_SYS_MAX_FLASH_BANKS 0 +#define CONFIG_SKIP_LOWLEVEL_INIT + + +#define CONFIG_EXTRA_ENV_SETTINGS "fdt_high=0xffffffffffffffff" + +/* using SRAM for SPL init here */ +#define CONFIG_SYS_INIT_RAM_ADDR 0xffff0000 +#define CONFIG_SYS_INIT_RAM_SIZE 0x10000 /* 64 KiB */ + +#define CONFIG_SYS_INIT_SP_OFFSET \ + (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_ADDR \ + (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) + +#define CONFIG_NR_DRAM_BANKS 1 +#define CONFIG_SYS_SDRAM_BASE 0x40000000 +#define PHYS_SDRAM_0 CONFIG_SYS_SDRAM_BASE +#define PHYS_SDRAM_0_SIZE 0x80000000 /* 2 GiB */ + +#define CONFIG_SYS_TEXT_BASE 0x42c00000 +#define CONFIG_SYS_LOAD_ADDR 0x41000000 +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (64 << 20)) + +#define CONFIG_SYS_TIMER_COUNTER 0xc0017040 /* TCNTO4 */ + +#endif /* __CONFIG_H */ -- 2.14.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot