summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-08-13 08:51:49 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-08-13 08:57:24 +0200
commit96c220506712cda2e9d6c0e16939b9fe7bcf850b (patch)
tree9083451ae013a477b439559993c4a849f26d11e7
parent8fe7cb964494555245caac983ba9adcfbf9b0991 (diff)
downloadbarebox-work/mvebu-multisoc.tar.gz
ARM: mvebu: mirabox: switch to multiimage supportwork/mvebu-multisoc
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/boards/globalscale-mirabox/Makefile1
-rw-r--r--arch/arm/boards/globalscale-mirabox/lowlevel.c37
-rw-r--r--arch/arm/configs/globalscale_mirabox_defconfig26
-rw-r--r--arch/arm/dts/Makefile1
-rw-r--r--arch/arm/dts/armada-370-mirabox.dts1
-rw-r--r--arch/arm/mach-mvebu/Kconfig1
-rw-r--r--images/Makefile.mvebu14
7 files changed, 80 insertions, 1 deletions
diff --git a/arch/arm/boards/globalscale-mirabox/Makefile b/arch/arm/boards/globalscale-mirabox/Makefile
index dcfc2937d3..01c7a259e9 100644
--- a/arch/arm/boards/globalscale-mirabox/Makefile
+++ b/arch/arm/boards/globalscale-mirabox/Makefile
@@ -1 +1,2 @@
obj-y += board.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/globalscale-mirabox/lowlevel.c b/arch/arm/boards/globalscale-mirabox/lowlevel.c
new file mode 100644
index 0000000000..208c42ce33
--- /dev/null
+++ b/arch/arm/boards/globalscale-mirabox/lowlevel.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013
+ * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
+ *
+ * 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 <common.h>
+#include <sizes.h>
+#include <asm/barebox-arm.h>
+#include <asm/barebox-arm-head.h>
+#include <mach/lowlevel.h>
+
+extern char __dtb_armada_370_mirabox_start[];
+
+ENTRY_FUNCTION(start_globalscale_mirabox)(void)
+{
+ uint32_t fdt;
+
+ __barebox_arm_head();
+
+ arm_cpu_lowlevel_init();
+
+ fdt = (uint32_t)__dtb_armada_370_mirabox_start - get_runtime_offset();
+
+ mvebu_barebox_entry(fdt);
+}
diff --git a/arch/arm/configs/globalscale_mirabox_defconfig b/arch/arm/configs/globalscale_mirabox_defconfig
index ed9d94d867..ea871bc209 100644
--- a/arch/arm/configs/globalscale_mirabox_defconfig
+++ b/arch/arm/configs/globalscale_mirabox_defconfig
@@ -1,8 +1,32 @@
CONFIG_ARCH_MVEBU=y
-CONFIG_AEABI=y
+CONFIG_THUMB2_BAREBOX=y
+CONFIG_ARM_UNWIND=y
+CONFIG_MMU=y
+CONFIG_TEXT_BASE=0x0
+CONFIG_MALLOC_SIZE=0x0
+CONFIG_MALLOC_TLSF=y
+CONFIG_KALLSYMS=y
+CONFIG_RELOCATABLE=y
+CONFIG_LONGHELP=y
+CONFIG_GLOB=y
+CONFIG_GLOB_SORT=y
+CONFIG_HUSH_FANCY_PROMPT=y
+CONFIG_HUSH_GETOPT=y
+CONFIG_CMDLINE_EDITING=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_CONSOLE_ACTIVATE_NONE=y
+CONFIG_PARTITION=y
CONFIG_DEBUG_LL=y
CONFIG_CMD_LOADY=y
CONFIG_CMD_LOADS=y
CONFIG_CMD_RESET=y
+CONFIG_CMD_TIMEOUT=y
+CONFIG_CMD_PARTITION=y
+CONFIG_CMD_MAGICVAR=y
+CONFIG_CMD_MAGICVAR_HELP=y
+CONFIG_CMD_UNCOMPRESS=y
+CONFIG_CMD_SPI=y
CONFIG_CMD_CLK=y
+CONFIG_OFDEVICE=y
+CONFIG_OF_BAREBOX_DRIVERS=y
CONFIG_DRIVER_SERIAL_NS16550=y
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index afd8b7f27d..4ca5cf5cdb 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -22,6 +22,7 @@ pbl-$(CONFIG_MACH_REALQ7) += imx6q-dmo-realq7.dtb.o
pbl-$(CONFIG_MACH_SOLIDRUN_CUBOX) += dove-cubox.dtb.o
pbl-$(CONFIG_MACH_GK802) += imx6q-gk802.dtb.o
pbl-$(CONFIG_MACH_TQMA6X) += imx6dl-mba6x.dtb.o imx6q-mba6x.dtb.o
+pbl-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += armada-370-mirabox.dtb.o
.SECONDARY: $(obj)/$(BUILTIN_DTB).dtb.S
.SECONDARY: $(patsubst %,$(obj)/%.S,$(dtb-y))
diff --git a/arch/arm/dts/armada-370-mirabox.dts b/arch/arm/dts/armada-370-mirabox.dts
index 45b107763e..03b0cdf7b2 100644
--- a/arch/arm/dts/armada-370-mirabox.dts
+++ b/arch/arm/dts/armada-370-mirabox.dts
@@ -17,6 +17,7 @@
chosen {
bootargs = "console=ttyS0,115200 earlyprintk";
+ linux,stdout-path = "/soc/internal-regs/serial@12000";
};
memory {
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 8bb2eade22..d64b622b96 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -53,6 +53,7 @@ choice
config MACH_GLOBALSCALE_MIRABOX
bool "Globalscale Mirabox"
+ select HAVE_PBL_MULTI_IMAGES
endchoice
diff --git a/images/Makefile.mvebu b/images/Makefile.mvebu
index fe92cc2f58..619da3e821 100644
--- a/images/Makefile.mvebu
+++ b/images/Makefile.mvebu
@@ -24,3 +24,17 @@ image-$(CONFIG_MACH_SOLIDRUN_CUBOX) += barebox-solidrun-cubox-uart.img
FILE_barebox-solidrun-cubox-2nd.img = start_solidrun_cubox.pblx
image-$(CONFIG_MACH_SOLIDRUN_CUBOX) += barebox-solidrun-cubox-2nd.img
+
+# ----------------------- Armada 370 based boards ---------------------------
+GLOBALSCALE_MIRABOX_KWBOPTS = -c -i $(board)/globalscale-mirabox/kwbimage.cfg -d 0x1000000 -e 0x1000000
+pblx-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += start_globalscale_mirabox
+OPTS_start_globalscale_mirabox.pblx.kwbimg = $(GLOBALSCALE_MIRABOX_KWBOPTS)
+FILE_barebox-globalscale-mirabox.img = start_globalscale_mirabox.pblx.kwbimg
+image-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += barebox-globalscale-mirabox.img
+
+OPTS_start_globalscale_mirabox.pblx.kwbuartimg = -m uart $(GLOBALSCALE_MIRABOX_KWBOPTS)
+FILE_barebox-globalscale-mirabox-uart.img = start_globalscale_mirabox.pblx.kwbuartimg
+image-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += barebox-globalscale-mirabox-uart.img
+
+FILE_barebox-globalscale-mirabox-2nd.img = start_globalscale_mirabox.pblx
+image-$(CONFIG_MACH_GLOBALSCALE_MIRABOX) += barebox-globalscale-mirabox-2nd.img