Up to now only 2nd stage booting is tested and boots up to a prompt. i2c and spi are working, ethernet, usb and sata don't. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> --- arch/arm/boards/Makefile | 1 + arch/arm/boards/turris-omnia/Makefile | 2 ++ arch/arm/boards/turris-omnia/board.c | 1 + arch/arm/boards/turris-omnia/kwbimage.cfg | 7 +++++++ arch/arm/boards/turris-omnia/lowlevel.c | 26 ++++++++++++++++++++++++++ arch/arm/dts/Makefile | 1 + arch/arm/dts/armada-385-turris-omnia-bb.dts | 7 +++++++ arch/arm/mach-mvebu/Kconfig | 10 ++++++++++ images/Makefile.mvebu | 9 +++++++++ 9 files changed, 64 insertions(+) create mode 100644 arch/arm/boards/turris-omnia/Makefile create mode 100644 arch/arm/boards/turris-omnia/board.c create mode 100644 arch/arm/boards/turris-omnia/kwbimage.cfg create mode 100644 arch/arm/boards/turris-omnia/lowlevel.c create mode 100644 arch/arm/dts/armada-385-turris-omnia-bb.dts diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile index 0ecfb3e4b398..896a3f5cbab5 100644 --- a/arch/arm/boards/Makefile +++ b/arch/arm/boards/Makefile @@ -124,6 +124,7 @@ obj-$(CONFIG_MACH_TORADEX_COLIBRI_T20) += toradex-colibri-t20/ obj-$(CONFIG_MACH_TOSHIBA_AC100) += toshiba-ac100/ obj-$(CONFIG_MACH_TQMA53) += tqma53/ obj-$(CONFIG_MACH_TQMA6X) += tqma6x/ +obj-$(CONFIG_MACH_TURRIS_OMNIA) += turris-omnia/ obj-$(CONFIG_MACH_TX25) += karo-tx25/ obj-$(CONFIG_MACH_TX28) += karo-tx28/ obj-$(CONFIG_MACH_TX51) += karo-tx51/ diff --git a/arch/arm/boards/turris-omnia/Makefile b/arch/arm/boards/turris-omnia/Makefile new file mode 100644 index 000000000000..01c7a259e9a5 --- /dev/null +++ b/arch/arm/boards/turris-omnia/Makefile @@ -0,0 +1,2 @@ +obj-y += board.o +lwl-y += lowlevel.o diff --git a/arch/arm/boards/turris-omnia/board.c b/arch/arm/boards/turris-omnia/board.c new file mode 100644 index 000000000000..40a8c178f10d --- /dev/null +++ b/arch/arm/boards/turris-omnia/board.c @@ -0,0 +1 @@ +/* empty */ diff --git a/arch/arm/boards/turris-omnia/kwbimage.cfg b/arch/arm/boards/turris-omnia/kwbimage.cfg new file mode 100644 index 000000000000..83a4149053d0 --- /dev/null +++ b/arch/arm/boards/turris-omnia/kwbimage.cfg @@ -0,0 +1,7 @@ +VERSION 1 +BOOT_FROM nand +DESTADDR 00600000 +EXECADDR 006a0000 +NAND_BLKSZ 00020000 +NAND_BADBLK_LOCATION 01 +BINARY binary.0 0000005b 00000068 diff --git a/arch/arm/boards/turris-omnia/lowlevel.c b/arch/arm/boards/turris-omnia/lowlevel.c new file mode 100644 index 000000000000..629bc9b5841b --- /dev/null +++ b/arch/arm/boards/turris-omnia/lowlevel.c @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2014 Uwe Kleine-Koenig <uwe@xxxxxxxxxxxxxxxxx> + */ + +#include <common.h> +#include <asm/barebox-arm.h> +#include <asm/barebox-arm-head.h> +#include <mach/lowlevel.h> + +#include <asm/io.h> + +extern char __dtb_armada_385_turris_omnia_bb_start[]; + +ENTRY_FUNCTION(start_turris_omnia, r0, r1, r2) +{ + void *fdt; + + writel(0x55, (void *)0xf1012000); + arm_cpu_lowlevel_init(); + + fdt = __dtb_armada_385_turris_omnia_bb_start - + get_runtime_offset(); + + writel(0x56, (void *)0xf1012000); + armada_370_xp_barebox_entry(fdt); +} diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 2342d35a4bd1..c81e6e0e492c 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -81,6 +81,7 @@ pbl-dtb-$(CONFIG_MACH_TQMA6X) += imx6dl-mba6x.dtb.o imx6q-mba6x.dtb.o pbl-dtb-$(CONFIG_MACH_TX25) += imx25-karo-tx25.dtb.o pbl-dtb-$(CONFIG_MACH_TX6X) += imx6dl-tx6u.dtb.o pbl-dtb-$(CONFIG_MACH_TX6X) += imx6q-tx6q.dtb.o +pbl-dtb-$(CONFIG_MACH_TURRIS_OMNIA) += armada-385-turris-omnia-bb.dtb.o pbl-dtb-$(CONFIG_MACH_UDOO) += imx6q-udoo.dtb.o pbl-dtb-$(CONFIG_MACH_USI_TOPKICK) += kirkwood-topkick-bb.dtb.o pbl-dtb-$(CONFIG_MACH_VARISCITE_MX6) += imx6q-var-custom.dtb.o diff --git a/arch/arm/dts/armada-385-turris-omnia-bb.dts b/arch/arm/dts/armada-385-turris-omnia-bb.dts new file mode 100644 index 000000000000..53bef01af758 --- /dev/null +++ b/arch/arm/dts/armada-385-turris-omnia-bb.dts @@ -0,0 +1,7 @@ +#include "arm/armada-385-turris-omnia.dts" + +/ { + chosen { + stdout-path = "/soc/internal-regs/serial@12000"; + }; +}; diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 827967eea380..ad97e83701e7 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -69,6 +69,16 @@ config MACH_PLATHOME_OPENBLOCKS_AX3 select ARCH_ARMADA_XP # +# Armada 38x SoC boards +# + +comment "Armada 38x based boards" + +config MACH_TURRIS_OMNIA + bool "Turris Omnia" + select ARCH_ARMADA_38X + +# # Dove 88AP510 SoC boards # diff --git a/images/Makefile.mvebu b/images/Makefile.mvebu index b57291cbafe2..f370d8ebe00b 100644 --- a/images/Makefile.mvebu +++ b/images/Makefile.mvebu @@ -51,6 +51,15 @@ pblx-$(CONFIG_MACH_NETGEAR_RN2120) += start_netgear_rn2120 image-$(CONFIG_MACH_NETGEAR_RN2120) += barebox-netgear-rn2120.img image-$(CONFIG_MACH_NETGEAR_RN2120) += barebox-netgear-rn2120-2nd.img +# ----------------------- Armada 38x based boards --------------------------- +TURRIS_OMNIA_KWBOPTS = ${KWBOPTS} -i $(board)/turris-omnia/kwbimage.cfg +OPTS_start_turris_omnia.pblx.kwbimg = $(TURRIS_OMNIA_KWBOPTS) +FILE_barebox-turris-omnia.img = start_turris_omnia.pblx.kwbimg +FILE_barebox-turris-omnia-2nd.img = start_turris_omnia.pblx +pblx-$(CONFIG_MACH_TURRIS_OMNIA) += start_turris_omnia +image-$(CONFIG_MACH_TURRIS_OMNIA) += barebox-turris-omnia.img +image-$(CONFIG_MACH_TURRIS_OMNIA) += barebox-turris-omnia-2nd.img + PLATHOME_OPENBLOCKS_AX3_KWBOPTS = ${KWBOPTS} -i $(board)/plathome-openblocks-ax3/kwbimage.cfg OPTS_start_plathome_openblocks_ax3.pblx.kwbimg = $(PLATHOME_OPENBLOCKS_AX3_KWBOPTS) FILE_barebox-plathome-openblocks-ax3.img = start_plathome_openblocks_ax3.pblx.kwbimg -- 2.11.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox