From 40ee51a48d9e8756730af705119f58a001a61012 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 9 May 2013 11:52:51 +0200 Subject: arm: add basic support for the Armada XP GP platform The Armada XP GP platform is an evaluation platform designed by Marvell, that uses the MV78460 quad-core SoC from the Armada XP family. Signed-off-by: Thomas Petazzoni Tested-by: Gregory CLEMENT Signed-off-by: Sascha Hauer --- arch/arm/Makefile | 1 + arch/arm/boards/marvell-armada-xp-gp/Makefile | 2 ++ arch/arm/boards/marvell-armada-xp-gp/config.h | 4 ++++ arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg | 3 +++ arch/arm/boards/marvell-armada-xp-gp/lowlevel.c | 25 ++++++++++++++++++++++ .../marvell-armada-xp-gp/marvell-armada-xp-gp.c | 25 ++++++++++++++++++++++ arch/arm/configs/marvell_armada_xp_gp_defconfig | 10 +++++++++ arch/arm/mach-mvebu/Kconfig | 5 +++++ 8 files changed, 75 insertions(+) create mode 100644 arch/arm/boards/marvell-armada-xp-gp/Makefile create mode 100644 arch/arm/boards/marvell-armada-xp-gp/config.h create mode 100644 arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg create mode 100644 arch/arm/boards/marvell-armada-xp-gp/lowlevel.c create mode 100644 arch/arm/boards/marvell-armada-xp-gp/marvell-armada-xp-gp.c create mode 100644 arch/arm/configs/marvell_armada_xp_gp_defconfig diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 2456f3de14..af8294d0f1 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -107,6 +107,7 @@ board-$(CONFIG_MACH_HIGHBANK) := highbank board-$(CONFIG_MACH_IMX21ADS) := imx21ads board-$(CONFIG_MACH_IMX27ADS) := imx27ads board-$(CONFIG_MACH_IMX233_OLINUXINO) := imx233-olinuxino +board-$(CONFIG_MACH_MARVELL_ARMADA_XP_GP) := marvell-armada-xp-gp board-$(CONFIG_MACH_MIOA701) := mioa701 board-$(CONFIG_MACH_MMCCPU) := mmccpu board-$(CONFIG_MACH_NOMADIK_8815NHK) := nhk8815 diff --git a/arch/arm/boards/marvell-armada-xp-gp/Makefile b/arch/arm/boards/marvell-armada-xp-gp/Makefile new file mode 100644 index 0000000000..ea899633b3 --- /dev/null +++ b/arch/arm/boards/marvell-armada-xp-gp/Makefile @@ -0,0 +1,2 @@ +obj-y = marvell-armada-xp-gp.o +lwl-y += lowlevel.o diff --git a/arch/arm/boards/marvell-armada-xp-gp/config.h b/arch/arm/boards/marvell-armada-xp-gp/config.h new file mode 100644 index 0000000000..ca15136817 --- /dev/null +++ b/arch/arm/boards/marvell-armada-xp-gp/config.h @@ -0,0 +1,4 @@ +#ifndef __CONFIG_H +#define __CONFIG_H + +#endif /* __CONFIG_H */ diff --git a/arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg b/arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg new file mode 100644 index 0000000000..db75969fe0 --- /dev/null +++ b/arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg @@ -0,0 +1,3 @@ +VERSION 1 +BOOT_FROM spi +BINARY marvell-armada-xp-gp-binary.0 0000005b 00000068 diff --git a/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c b/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c new file mode 100644 index 0000000000..e9b2e30cb9 --- /dev/null +++ b/arch/arm/boards/marvell-armada-xp-gp/lowlevel.c @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2013 Thomas Petazzoni + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include + +void __naked barebox_arm_reset_vector(void) +{ + arm_cpu_lowlevel_init(); + mvebu_barebox_entry(); +} diff --git a/arch/arm/boards/marvell-armada-xp-gp/marvell-armada-xp-gp.c b/arch/arm/boards/marvell-armada-xp-gp/marvell-armada-xp-gp.c new file mode 100644 index 0000000000..735132947d --- /dev/null +++ b/arch/arm/boards/marvell-armada-xp-gp/marvell-armada-xp-gp.c @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2013 Thomas Petazzoni + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include + +static int marvell_armada_xp_gp_console_init(void) +{ + return mvebu_add_uart0(); +} + +console_initcall(marvell_armada_xp_gp_console_init); diff --git a/arch/arm/configs/marvell_armada_xp_gp_defconfig b/arch/arm/configs/marvell_armada_xp_gp_defconfig new file mode 100644 index 0000000000..5a7ef52b5f --- /dev/null +++ b/arch/arm/configs/marvell_armada_xp_gp_defconfig @@ -0,0 +1,10 @@ +CONFIG_ARCH_MVEBU=y +CONFIG_ARCH_ARMADA_XP=y +CONFIG_MACH_MARVELL_ARMADA_XP_GP=y +CONFIG_AEABI=y +CONFIG_DEBUG_LL=y +CONFIG_CMD_LOADY=y +CONFIG_CMD_LOADS=y +CONFIG_CMD_RESET=y +CONFIG_CMD_CLK=y +CONFIG_DRIVER_SERIAL_NS16550=y diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 84893352d7..e553e2dc0c 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -4,10 +4,12 @@ config ARCH_TEXT_BASE hex default 0x2000000 if MACH_PLATHOME_OPENBLOCKS_AX3 default 0x2000000 if MACH_GLOBALSCALE_MIRABOX + default 0x2000000 if MACH_MARVELL_ARMADA_XP_GP config BOARDINFO default "PlatHome OpenBlocks AX3" if MACH_PLATHOME_OPENBLOCKS_AX3 default "Globalscale Mirabox" if MACH_GLOBALSCALE_MIRABOX + default "Marvell Armada XP GP" if MACH_MARVELL_ARMADA_XP_GP choice prompt "Marvell EBU Processor" @@ -42,6 +44,9 @@ choice config MACH_PLATHOME_OPENBLOCKS_AX3 bool "PlatHome OpenBlocks AX3" +config MACH_MARVELL_ARMADA_XP_GP + bool "Marvell Armada XP GP" + endchoice endif # ARCH_ARMADA_XP -- cgit v1.2.3