All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 20/25] arm: armada-xp: Add basic support for the maxBCM board
Date: Tue,  5 Aug 2014 09:10:06 +0200	[thread overview]
Message-ID: <1407222612-1048-21-git-send-email-sr@denx.de> (raw)
In-Reply-To: <1407222612-1048-1-git-send-email-sr@denx.de>

The maxBCM board is equipped with the Marvell Armada-XP MV78460 SoC. It
integrates an SPI NOR flash and an Marvell 88E6185 switch.

Signed-off-by: Stefan Roese <sr@denx.de>
---

Changes in v2: None

 arch/arm/Kconfig          |  4 +++
 board/maxbcm/Kconfig      | 19 ++++++++++++
 board/maxbcm/MAINTAINERS  |  6 ++++
 board/maxbcm/Makefile     |  7 +++++
 board/maxbcm/kwbimage.cfg | 12 ++++++++
 board/maxbcm/maxbcm.c     | 77 +++++++++++++++++++++++++++++++++++++++++++++++
 configs/maxbcm_defconfig  |  2 ++
 include/configs/maxbcm.h  | 67 +++++++++++++++++++++++++++++++++++++++++
 8 files changed, 194 insertions(+)
 create mode 100644 board/maxbcm/Kconfig
 create mode 100644 board/maxbcm/MAINTAINERS
 create mode 100644 board/maxbcm/Makefile
 create mode 100644 board/maxbcm/kwbimage.cfg
 create mode 100644 board/maxbcm/maxbcm.c
 create mode 100644 configs/maxbcm_defconfig
 create mode 100644 include/configs/maxbcm.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 884f248..a77a08d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -236,6 +236,9 @@ config TARGET_GOFLEXHOME
 config TARGET_DB_MV784MP_GP
 	bool "Support db-mv784mp-gp"
 
+config TARGET_MAXBCM
+	bool "Support maxbcm"
+
 config TARGET_DEVKIT3250
 	bool "Support devkit3250"
 
@@ -909,6 +912,7 @@ source "board/logicpd/imx31_litekit/Kconfig"
 source "board/logicpd/omap3som/Kconfig"
 source "board/logicpd/zoom1/Kconfig"
 source "board/matrix_vision/mvblx/Kconfig"
+source "board/maxbcm/Kconfig"
 source "board/mpl/vcma9/Kconfig"
 source "board/nokia/rx51/Kconfig"
 source "board/nvidia/beaver/Kconfig"
diff --git a/board/maxbcm/Kconfig b/board/maxbcm/Kconfig
new file mode 100644
index 0000000..d34e2ab
--- /dev/null
+++ b/board/maxbcm/Kconfig
@@ -0,0 +1,19 @@
+if TARGET_MAXBCM
+
+config SYS_CPU
+	string
+	default "armv7"
+
+config SYS_BOARD
+	string
+	default "maxbcm"
+
+config SYS_SOC
+	string
+	default "armada-xp"
+
+config SYS_CONFIG_NAME
+	string
+	default "maxbcm"
+
+endif
diff --git a/board/maxbcm/MAINTAINERS b/board/maxbcm/MAINTAINERS
new file mode 100644
index 0000000..3c8af21
--- /dev/null
+++ b/board/maxbcm/MAINTAINERS
@@ -0,0 +1,6 @@
+MAXBCM BOARD
+M:	Stefan Roese <sr@denx.de>
+S:	Maintained
+F:	board/maxbcm/
+F:	include/configs/maxbcm.h
+F:	configs/maxbcm_defconfig
diff --git a/board/maxbcm/Makefile b/board/maxbcm/Makefile
new file mode 100644
index 0000000..37c17d6
--- /dev/null
+++ b/board/maxbcm/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright (C) 2014 Stefan Roese <sr@denx.de>
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y	:= maxbcm.o
diff --git a/board/maxbcm/kwbimage.cfg b/board/maxbcm/kwbimage.cfg
new file mode 100644
index 0000000..5a3bc67
--- /dev/null
+++ b/board/maxbcm/kwbimage.cfg
@@ -0,0 +1,12 @@
+#
+# Copyright (C) 2014 Stefan Roese <sr@denx.de>
+#
+
+# Armada XP uses version 1 image format
+VERSION		1
+
+# Boot Media configurations
+BOOT_FROM	spi
+
+# Binary Header (bin_hdr) with DDR3 training code
+BINARY board/maxbcm/binary.0 0000005b 00000068
diff --git a/board/maxbcm/maxbcm.c b/board/maxbcm/maxbcm.c
new file mode 100644
index 0000000..7fc83ee
--- /dev/null
+++ b/board/maxbcm/maxbcm.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2014 Stefan Roese <sr@denx.de>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <miiphy.h>
+#include <asm/io.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/soc.h>
+#include <linux/mbus.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* Base addresses for the external device chip selects */
+#define DEV_CS0_BASE		0xe0000000
+#define DEV_CS1_BASE		0xe1000000
+#define DEV_CS2_BASE		0xe2000000
+#define DEV_CS3_BASE		0xe3000000
+
+/* Needed for dynamic (board-specific) mbus configuration */
+extern struct mvebu_mbus_state mbus_state;
+
+int board_early_init_f(void)
+{
+	/*
+	 * Don't configure MPP (pin multiplexing) and GPIO here,
+	 * its already done in bin_hdr
+	 */
+
+	/*
+	 * Setup some board specific mbus address windows
+	 */
+	mbus_dt_setup_win(&mbus_state, DEV_CS0_BASE, 16 << 20,
+			  CPU_TARGET_DEVICEBUS_BOOTROM_SPI, CPU_ATTR_DEV_CS0);
+	mbus_dt_setup_win(&mbus_state, DEV_CS1_BASE, 16 << 20,
+			  CPU_TARGET_DEVICEBUS_BOOTROM_SPI, CPU_ATTR_DEV_CS1);
+	mbus_dt_setup_win(&mbus_state, DEV_CS2_BASE, 16 << 20,
+			  CPU_TARGET_DEVICEBUS_BOOTROM_SPI, CPU_ATTR_DEV_CS2);
+	mbus_dt_setup_win(&mbus_state, DEV_CS3_BASE, 16 << 20,
+			  CPU_TARGET_DEVICEBUS_BOOTROM_SPI, CPU_ATTR_DEV_CS3);
+
+	return 0;
+}
+
+int board_init(void)
+{
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
+
+	return 0;
+}
+
+int checkboard(void)
+{
+	puts("Board: maxBCM\n");
+
+	return 0;
+}
+
+#ifdef CONFIG_RESET_PHY_R
+/* Configure and enable MV88E6185 switch */
+void reset_phy(void)
+{
+	u16 devadr = CONFIG_PHY_BASE_ADDR;
+	char *name = "neta0";
+	u16 reg;
+
+	if (miiphy_set_current_dev(name))
+		return;
+
+	/* todo: fill this with the real setup / config code */
+
+	printf("88E6185 Initialized on %s\n", name);
+}
+#endif /* CONFIG_RESET_PHY_R */
diff --git a/configs/maxbcm_defconfig b/configs/maxbcm_defconfig
new file mode 100644
index 0000000..3d066c6
--- /dev/null
+++ b/configs/maxbcm_defconfig
@@ -0,0 +1,2 @@
+CONFIG_ARM=y
+CONFIG_TARGET_DB_MV784MP-GP=y
diff --git a/include/configs/maxbcm.h b/include/configs/maxbcm.h
new file mode 100644
index 0000000..f47042d
--- /dev/null
+++ b/include/configs/maxbcm.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2014 Stefan Roese <sr@denx.de>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef _CONFIG_DB_MV7846MP_GP_H
+#define _CONFIG_DB_MV7846MP_GP_H
+
+/*
+ * High Level Configuration Options (easy to change)
+ */
+#define CONFIG_ARMADA_XP		/* SOC Family Name */
+#define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */
+#define CONFIG_SYS_GENERIC_BOARD
+#define CONFIG_DISPLAY_BOARDINFO_LATE
+
+#define	CONFIG_SYS_TEXT_BASE	0x04000000
+#define CONFIG_SYS_TCLK		250000000	/* 250MHz */
+
+/*
+ * Commands configuration
+ */
+#define CONFIG_SYS_NO_FLASH		/* Declare no flash (NOR/SPI) */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_I2C
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SPI
+#define CONFIG_CMD_TFTPPUT
+#define CONFIG_CMD_TIME
+
+/* I2C */
+#define CONFIG_I2C_MVTWSI
+#define CONFIG_I2C_MVTWSI_BASE		MVEBU_TWSI_BASE
+#define CONFIG_SYS_I2C_SLAVE		0x0
+#define CONFIG_SYS_I2C_SPEED		100000
+
+/* SPI NOR flash default params, used by sf commands */
+#define CONFIG_SF_DEFAULT_SPEED		1000000
+#define CONFIG_SF_DEFAULT_MODE		SPI_MODE_3
+#define CONFIG_SPI_FLASH_STMICRO
+
+/* Environment in SPI NOR flash */
+#define CONFIG_ENV_IS_IN_SPI_FLASH
+#define CONFIG_ENV_OFFSET		(1 << 20) /* 1MiB in */
+#define CONFIG_ENV_SIZE			(64 << 10) /* 64KiB */
+#define CONFIG_ENV_SECT_SIZE		(64 << 10) /* 64KiB sectors */
+
+#define CONFIG_PHY_MARVELL		/* there is a marvell phy */
+#define CONFIG_PHY_BASE_ADDR	0x0
+#define CONFIG_SYS_NETA_INTERFACE_TYPE	PHY_INTERFACE_MODE_SGMII
+#define PHY_ANEG_TIMEOUT	8000	/* PHY needs a longer aneg time */
+#define CONFIG_RESET_PHY_R
+
+#define CONFIG_SYS_CONSOLE_INFO_QUIET	/* don't print console @ startup */
+#define CONFIG_SYS_ALT_MEMTEST
+
+/*
+ * mv-common.h should be defined after CMD configs since it used them
+ * to enable certain macros
+ */
+#include "mv-common.h"
+
+#endif /* _CONFIG_DB_MV7846MP_GP_H */
-- 
2.0.4

  parent reply	other threads:[~2014-08-05  7:10 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05  7:09 [U-Boot] [PATCH v2 0/25] Add Marvell Armada XP MV78460 SoC support Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 01/25] sf: Add M25PX64 SPI NOR flash ID Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 02/25] arm: kirkwood: spi.h: Add some missing parenthesis Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 03/25] spi: kirkwood_spi.c: Some fixes and cleanup Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 04/25] spi: kirkwood_spi.c: Make global variable static Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 05/25] spi: kirkwood_spi.c: cosmetic: Fix minor coding style issues Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 06/25] arm: kirkwood: Move some SoC files into new arch/arm/mvebu-common Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 07/25] arm: marvell: Move arch/kirkwood.h to arch/soc.h Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 08/25] arm: marvell: Move arch-kirkwood/spi.h to arch-mvebu/spi.h Stefan Roese
2014-08-23  7:14   ` Jagan Teki
2014-08-05  7:09 ` [U-Boot] [PATCH v2 09/25] arm: marvell: Rework timer.c to make it usable for other MVEBU platforms Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 10/25] arm: mvebu: Add common mbus functions to use on Marvell SoCs Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 11/25] spi: kirkwood_spi.c: Compile MPP (pin-mux) only for kirkwood SoC's Stefan Roese
2014-08-23  7:14   ` Jagan Teki
2014-08-05  7:09 ` [U-Boot] [PATCH v2 12/25] arm: marvell: Extract kirkwood gpio functions into new common file gpio.c Stefan Roese
2014-08-05  7:09 ` [U-Boot] [PATCH v2 13/25] spi: kirkwood_spi.c: Change KW_SPI_BASE to MVEBU_SPI_BASE Stefan Roese
2014-08-23  7:15   ` Jagan Teki
2014-08-05  7:10 ` [U-Boot] [PATCH v2 14/25] arm: kirkwood: Change naming of dram functions from km_foo() to mvebu_foo() Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 15/25] net: mvneta.c: Add support for the ethernet controller of the Marvell Armada XP SoC Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 16/25] net: phy.h: Make PHY autonegotiation timeout configurable Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 17/25] i2c: mvtwsi: Add support for Marvell Armada XP Stefan Roese
2014-08-11  5:19   ` Heiko Schocher
2014-08-05  7:10 ` [U-Boot] [PATCH v2 18/25] arm: armada-xp: Add basic support for Marvell Armada XP SoC Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 19/25] arm: armada-xp: Add basic support for the Marvell DB-MV784MP-GP board Stefan Roese
2014-08-05  7:10 ` Stefan Roese [this message]
2014-08-05  7:10 ` [U-Boot] [PATCH v2 21/25] arm: kirkwood: Remove some dead code from cpu.c Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 22/25] tools/kwboot: Sync with latest barebox version to support Armada XP Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 23/25] tools: Compile kwboot for Marvell Armada XP as those SoCs are now supported Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 24/25] tools: kwbimage: Add image version 1 support for Armada XP / 370 Stefan Roese
2014-08-05  7:10 ` [U-Boot] [PATCH v2 25/25] Makefile: Add CONFIG_BUILD_TARGET to automatically build an special image Stefan Roese
2014-08-06 10:14 ` [U-Boot] [PATCH v2 0/25] Add Marvell Armada XP MV78460 SoC support Prafulla Wadaskar
2014-08-23  7:20 ` Jagan Teki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1407222612-1048-21-git-send-email-sr@denx.de \
    --to=sr@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.