Patchwork [U-Boot,v4,7/7] Armada100: Add Board Support for Marvell Aspenite-DB

login
register
mail settings
Submitter Prafulla Wadaskar
Date Dec. 7, 2010, 5:06 p.m.
Message ID <1291741587-12484-7-git-send-email-prafulla@marvell.com>
Download mbox | patch
Permalink /patch/74537/
State Accepted
Delegated to: Prafulla Wadaskar
Headers show

Comments

Prafulla Wadaskar - Dec. 7, 2010, 5:06 p.m.
Aspenite is a Development Board for ASPEN/ARMADA168(88AP168) with
	* Processor upto 1.2GHz
        * Parallel 1Gb x8 DDR2-1066 MHz
        * 16 Mb x16 NOR, 4Gb x8 SLC NAND, footprint for SPI NOR
        * Footprints for eMMC/eSD NAND & MMC x8 card
        * 4-in-1 card reader (xD, MMC/SD/MS Pro), CF True IDE socket
        * SEAF memory board, subset of PISMO2
    With Peripherals:
        * 4.3” WVGA 24-bit LCD
        * Audio codecs (AC97 & I2S), TSI
        * VGA camera
        * Video in via 3 RCA jacks, and HDMI type C out
        * Marvell 88W8688 802.11bg/BT module
        * GPS RF IC
        * Dual analog mics & speakers, headset jack, LED, ambient light sensor
        * USB2.0 HS host  (A), OTG (micro AB)
        * FE PHY, PCIE Mini Card  slot
        * GPIO, GPIO expander with DIP switches for easier selection UART serial over USB, CIR

This patch adds basic board support with DRAM and UART functionality
The patch is tested for boot from DRAM using XDB

Signed-off-by: Mahavir Jain <mjain@marvell.com>
Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
---
Change log for v2:
used mv-common.h
defined CONFIG_SYS_NS16550_IER macro in Soc heder file
removed config.mk

Change log for v3:
DEBUG removed from aspenite.h

Change log for v4:
name changes as per mvmfp

 MAINTAINERS                       |    1 +
 MAKEALL                           |    1 +
 board/Marvell/aspenite/Makefile   |   52 ++++++++++++++++++++++++++++++
 board/Marvell/aspenite/aspenite.c |   53 +++++++++++++++++++++++++++++++
 boards.cfg                        |    1 +
 include/configs/aspenite.h        |   63 +++++++++++++++++++++++++++++++++++++
 6 files changed, 171 insertions(+), 0 deletions(-)
 create mode 100644 board/Marvell/aspenite/Makefile
 create mode 100644 board/Marvell/aspenite/aspenite.c
 create mode 100644 include/configs/aspenite.h
Prafulla Wadaskar - Dec. 7, 2010, 5:06 p.m.
This patch series adds basic ARMADA100 support, with minimal drivers
(UART, MFP) support and Aspenite-DB board support for simple boot

Changelog v2:
1. This patch series is in sync latest u-boot
2. config.mk removed
3. CONFIG_SYS_NS16550_IER used for serial drivers
4. mv-common.h updated for aspenite support
5. c-struct used for dram.c
6. All review feedback for v1 implemented

Changelog v3:
1. timer.c: timer variables in gt_t used insted of locally defined global variables
2. timer.c: register global pointer moved to respective functions
3. timer.c: Macro READ_TIMER converted to function read_timer()
4. armada100.h: c-struc in armada100.h fixed for wrong padding
5. macro defination CONFIG_SYS_NS16550_IER moved from ns16550.h to ns16550.c
6. Removed reordiring of header files in serial.c, the diff is only limited
   to include armada100.h
7. mv-common.h: CONFIG_ARCH_CPU_INIT moved out of #ifdef
8. aspenite.h: #define DEBUG removed

Changelog v4:
1. mfp driver renamed as mvmfp
2. re-architected mvmfp driver as per review feedback

These patches are tested on board
Fo sucessfull build, these patches are dependent upon a patch.
 "ARM: make timer variables in gt_t available for all ARM platforms"
  ref: http://lists.denx.de/pipermail/u-boot/2010-December/082834.html

Regards..
Prafulla . .

Prafulla Wadaskar (7):
  arm: Add Support for Marvell ARMADA 100 Familiy SoCs
  gpio: Add Multi-Function-Pin configuration driver for Marvell SoCs
  add Multi Function Pin configuration support for ARMADA100
  Serial: ns16550: Add support for CONFIG_SYS_NS16550_IER macro
  Serial: Add UART support for Marvell ARMADA 100 SoCs.
  mv-common.h: Add support for ARMADA100 Platforms
  Armada100: Add Board Support for Marvell Aspenite-DB

 MAINTAINERS                                     |    1 +
 MAKEALL                                         |    1 +
 arch/arm/cpu/arm926ejs/armada100/Makefile       |   46 +++++
 arch/arm/cpu/arm926ejs/armada100/cpu.c          |   92 ++++++++++
 arch/arm/cpu/arm926ejs/armada100/dram.c         |  131 ++++++++++++++
 arch/arm/cpu/arm926ejs/armada100/timer.c        |  207 +++++++++++++++++++++++
 arch/arm/include/asm/arch-armada100/armada100.h |  121 +++++++++++++
 arch/arm/include/asm/arch-armada100/cpu.h       |   53 ++++++
 arch/arm/include/asm/arch-armada100/mfp.h       |   67 ++++++++
 board/Marvell/aspenite/Makefile                 |   52 ++++++
 board/Marvell/aspenite/aspenite.c               |   53 ++++++
 boards.cfg                                      |    1 +
 drivers/gpio/Makefile                           |    1 +
 drivers/gpio/mvmfp.c                            |   90 ++++++++++
 drivers/serial/ns16550.c                        |    8 +-
 drivers/serial/serial.c                         |    5 +-
 include/configs/aspenite.h                      |   63 +++++++
 include/configs/mv-common.h                     |   65 ++++++--
 include/mvmfp.h                                 |  100 +++++++++++
 19 files changed, 1137 insertions(+), 20 deletions(-)
 create mode 100644 arch/arm/cpu/arm926ejs/armada100/Makefile
 create mode 100644 arch/arm/cpu/arm926ejs/armada100/cpu.c
 create mode 100644 arch/arm/cpu/arm926ejs/armada100/dram.c
 create mode 100644 arch/arm/cpu/arm926ejs/armada100/timer.c
 create mode 100644 arch/arm/include/asm/arch-armada100/armada100.h
 create mode 100644 arch/arm/include/asm/arch-armada100/cpu.h
 create mode 100644 arch/arm/include/asm/arch-armada100/mfp.h
 create mode 100644 board/Marvell/aspenite/Makefile
 create mode 100644 board/Marvell/aspenite/aspenite.c
 create mode 100644 drivers/gpio/mvmfp.c
 create mode 100644 include/configs/aspenite.h
 create mode 100644 include/mvmfp.h
Prafulla Wadaskar - Dec. 11, 2010, 2:14 p.m.
> -----Original Message-----
> From: Prafulla Wadaskar [mailto:prafulla@marvell.com]
> Sent: Tuesday, December 07, 2010 10:36 PM
> To: u-boot@lists.denx.de
> Cc: Lei Wen; Eric Miao; Yu Tang; Kiran Vedere; Manas Saksena; Prabhanjan
> Sarnaik; Ashish Karkare; Prafulla Wadaskar; Mahavir Jain
> Subject: [PATCH v4 7/7] Armada100: Add Board Support for Marvell Aspenite-
> DB
> 
> Aspenite is a Development Board for ASPEN/ARMADA168(88AP168) with
> 	* Processor upto 1.2GHz
>         * Parallel 1Gb x8 DDR2-1066 MHz
>         * 16 Mb x16 NOR, 4Gb x8 SLC NAND, footprint for SPI NOR
>         * Footprints for eMMC/eSD NAND & MMC x8 card
>         * 4-in-1 card reader (xD, MMC/SD/MS Pro), CF True IDE socket
>         * SEAF memory board, subset of PISMO2
>     With Peripherals:
>         * 4.3" WVGA 24-bit LCD
>         * Audio codecs (AC97 & I2S), TSI
>         * VGA camera
>         * Video in via 3 RCA jacks, and HDMI type C out
>         * Marvell 88W8688 802.11bg/BT module
>         * GPS RF IC
>         * Dual analog mics & speakers, headset jack, LED, ambient light
> sensor
>         * USB2.0 HS host  (A), OTG (micro AB)
>         * FE PHY, PCIE Mini Card  slot
>         * GPIO, GPIO expander with DIP switches for easier selection UART
> serial over USB, CIR
> 
> This patch adds basic board support with DRAM and UART functionality
> The patch is tested for boot from DRAM using XDB
> 
> Signed-off-by: Mahavir Jain <mjain@marvell.com>
> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
> ---
> Change log for v2:
> used mv-common.h
> defined CONFIG_SYS_NS16550_IER macro in Soc heder file
> removed config.mk
> 
> Change log for v3:
> DEBUG removed from aspenite.h
> 
> Change log for v4:
> name changes as per mvmfp
> 
>  MAINTAINERS                       |    1 +
>  MAKEALL                           |    1 +
>  board/Marvell/aspenite/Makefile   |   52 ++++++++++++++++++++++++++++++
>  board/Marvell/aspenite/aspenite.c |   53 +++++++++++++++++++++++++++++++
>  boards.cfg                        |    1 +
>  include/configs/aspenite.h        |   63
> +++++++++++++++++++++++++++++++++++++
>  6 files changed, 171 insertions(+), 0 deletions(-)
>  create mode 100644 board/Marvell/aspenite/Makefile
>  create mode 100644 board/Marvell/aspenite/aspenite.c
>  create mode 100644 include/configs/aspenite.h
>

Applied to u-boot-marvell.git master branch

Regards..
Prafulla ..

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index f47fca5..d7e47a6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -836,6 +836,7 @@  Matt Waddel <matt.waddel@linaro.org>
 
 Prafulla Wadaskar <prafulla@marvell.com>
 
+	aspenite	ARM926EJS (ARMADA100 88AP168 SoC)
 	mv88f6281gtw_ge	ARM926EJS (Kirkwood SoC)
 	rd6281a		ARM926EJS (Kirkwood SoC)
 	sheevaplug	ARM926EJS (Kirkwood SoC)
diff --git a/MAKEALL b/MAKEALL
index 767d561..e83c9d7 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -326,6 +326,7 @@  LIST_ARM9="			\
 	ap926ejs		\
 	ap946es			\
 	ap966			\
+	aspenite		\
 	cp920t			\
 	cp922_XA10		\
 	cp926ejs		\
diff --git a/board/Marvell/aspenite/Makefile b/board/Marvell/aspenite/Makefile
new file mode 100644
index 0000000..cb1b65f
--- /dev/null
+++ b/board/Marvell/aspenite/Makefile
@@ -0,0 +1,52 @@ 
+#
+# (C) Copyright 2010
+# Marvell Semiconductor <www.marvell.com>
+# Written-by: Prafulla Wadaskar <prafulla@marvell.com>
+# Contributor: Mahavir Jain <mjain@marvell.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB     = $(obj)lib$(BOARD).o
+
+COBJS	:= aspenite.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/Marvell/aspenite/aspenite.c b/board/Marvell/aspenite/aspenite.c
new file mode 100644
index 0000000..046ffd6
--- /dev/null
+++ b/board/Marvell/aspenite/aspenite.c
@@ -0,0 +1,53 @@ 
+/*
+ * (C) Copyright 2010
+ * Marvell Semiconductor <www.marvell.com>
+ * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
+ * Contributor: Mahavir Jain <mjain@marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <mvmfp.h>
+#include <asm/arch/mfp.h>
+#include <asm/arch/armada100.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_early_init_f(void)
+{
+	u32 mfp_cfg[] = {
+		/* Enable Console on UART1 */
+		MFP107_UART1_RXD,
+		MFP108_UART1_TXD,
+		MFP_EOC		/*End of configureation*/
+	};
+	/* configure MFP's */
+	mfp_config(mfp_cfg);
+	return 0;
+}
+
+int board_init(void)
+{
+	/* arch number of Board */
+	gd->bd->bi_arch_number = MACH_TYPE_ASPENITE;
+	/* adress of boot parameters */
+	gd->bd->bi_boot_params = armd1_sdram_base(0) + 0x100;
+	return 0;
+}
diff --git a/boards.cfg b/boards.cfg
index 2209676..34cc6db 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -68,6 +68,7 @@  smdk2410                     arm         arm920t     -                   samsung
 netstar                      arm         arm925t
 voiceblue                    arm         arm925t
 omap1510inn                  arm         arm925t     -                   ti
+aspenite                     arm         arm926ejs   -                   Marvell        armada100
 afeb9260                     arm         arm926ejs   -                   -              at91
 at91cap9adk                  arm         arm926ejs   -                   atmel          at91
 meesc                        arm         arm926ejs   -                   esd            at91
diff --git a/include/configs/aspenite.h b/include/configs/aspenite.h
new file mode 100644
index 0000000..706365f
--- /dev/null
+++ b/include/configs/aspenite.h
@@ -0,0 +1,63 @@ 
+/*
+ * (C) Copyright 2010
+ * Marvell Semiconductor <www.marvell.com>
+ * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
+ * Contributor: Mahavir Jain <mjain@marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef __CONFIG_ASPENITE_H
+#define __CONFIG_ASPENITE_H
+
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING	"\nMarvell-Aspenite DB"
+
+/*
+ * High Level Configuration Options
+ */
+#define CONFIG_SHEEVA_88SV331xV5	1	/* CPU Core subversion */
+#define CONFIG_ARMADA100		1	/* SOC Family Name */
+#define CONFIG_ARMADA168		1	/* SOC Used on this Board */
+#define CONFIG_MACH_ASPENITE			/* Machine type */
+#define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */
+
+/*
+ * Commands configuration
+ */
+#define CONFIG_SYS_NO_FLASH		/* Declare no flash (NOR/SPI) */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_AUTOSCRIPT
+#undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
+/*
+ * mv-common.h should be defined after CMD configs since it used them
+ * to enable certain macros
+ */
+#include "mv-common.h"
+
+/*
+ * Environment variables configurations
+ */
+#define CONFIG_ENV_IS_NOWHERE	1	/* if env in SDRAM */
+#define CONFIG_ENV_SIZE	0x20000	/* 64k */
+
+#endif	/* __CONFIG_ASPENITE_H */