Skip to contentSkip to conversation

ARM: Add support for EP93xx SoCs

PATCH New Matthias Kaehlcke 2 participants 5 messages Jan 31, 2010 – Feb 1, 2010 1 message not in the archive

Subsystems (3)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

PATCH 1/3 ARM: Add support for EP93xx SoCs

Add support for the Cirrus EP93xx platform

---
 cpu/arm920t/ep93xx/Makefile          |   56 ++++
 cpu/arm920t/ep93xx/cpu.c             |   51 +++
 cpu/arm920t/ep93xx/led.c             |  101 ++++++
 cpu/arm920t/ep93xx/lowlevel_init.S   |   65 ++++
 cpu/arm920t/ep93xx/speed.c           |  110 +++++++
 cpu/arm920t/ep93xx/timer.c           |  168 ++++++++++
 cpu/arm920t/ep93xx/u-boot.lds        |   59 ++++
 include/asm-arm/arch-ep93xx/ep93xx.h |  595 ++++++++++++++++++++++++++++++++++
 include/common.h                     |    3 +-
 9 files changed, 1207 insertions(+), 1 deletions(-)
 create mode 100644 cpu/arm920t/ep93xx/Makefile
 create mode 100644 cpu/arm920t/ep93xx/cpu.c
 create mode 100644 cpu/arm920t/ep93xx/led.c
 create mode 100644 cpu/arm920t/ep93xx/lowlevel_init.S
 create mode 100644 cpu/arm920t/ep93xx/speed.c
 create mode 100644 cpu/arm920t/ep93xx/timer.c
 create mode 100644 cpu/arm920t/ep93xx/u-boot.lds
 create mode 100644 include/asm-arm/arch-ep93xx/ep93xx.h
cpu/arm920t/ep93xx/Makefile new file +56 -0
new file mode 100644
index 0000000..30e12af
@@ -0,0 +1,56 @@
+#
+# Cirrus Logic EP93xx CPU-specific Makefile
+#
+# Copyright (C) 2009 Matthias Kaehlcke <[email protected]>
+#
+# Copyright (C) 2004, 2005
+# Cory T. Tusar, Videon Central, Inc., <[email protected]>
+#
+# Copyright (C) 2006
+# Dominic Rath <[email protected]>
+#
+# Based on an original Makefile, which is
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# 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.,
+# 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+include $(TOPDIR)/config.mk
+
+LIB = $(obj)lib$(SOC).a
+
+COBJS   = cpu.o led.o speed.o timer.o
+SOBJS   = lowlevel_init.o
+
+SRCS    := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS    := $(addprefix $(obj),$(SOBJS) $(COBJS))
+
+all:    $(obj).depend $(LIB)
+
+$(LIB): $(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
+
cpu/arm920t/ep93xx/cpu.c new file +51 -0

51 lines not on this page · raw message

cpu/arm920t/ep93xx/led.c new file +101 -0

101 lines not on this page · raw message

cpu/arm920t/ep93xx/lowlevel_init.S new file +65 -0

65 lines not on this page · raw message

cpu/arm920t/ep93xx/speed.c new file +110 -0

110 lines not on this page · raw message

cpu/arm920t/ep93xx/timer.c new file +168 -0

168 lines not on this page · raw message

cpu/arm920t/ep93xx/u-boot.lds new file +59 -0

59 lines not on this page · raw message

include/asm-arm/arch-ep93xx/ep93xx.h new file +595 -0

595 lines not on this page · raw message

include/common.h +2 -1
index 391790a..f2a7067 100644
@@ -502,7 +502,8 @@ ulong	get_PCI_freq (void);
 #endif
 #if defined(CONFIG_S3C24X0) || \
     defined(CONFIG_LH7A40X) || \
-    defined(CONFIG_S3C6400)
+    defined(CONFIG_S3C6400) || \
+    defined(CONFIG_EP93XX)
 ulong	get_FCLK (void);
 ulong	get_HCLK (void);
 ulong	get_PCLK (void);
Signature · 1 line
1.6.5
#2 lore raw

PATCH 2/3 Add EP93xx ethernet driver

In reply to a message not in the archive

Added ethernet driver for EP93xx SoCs

---
 drivers/net/Makefile     |    1 +
 drivers/net/ep93xx_eth.c |  653 ++++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/ep93xx_eth.h |  144 ++++++++++
 include/common.h         |    5 +
 include/netdev.h         |    1 +
 5 files changed, 804 insertions(+), 0 deletions(-)
 create mode 100644 drivers/net/ep93xx_eth.c
 create mode 100644 drivers/net/ep93xx_eth.h
drivers/net/Makefile +1 -0
index 904727e..dc3107c 100644
@@ -37,6 +37,7 @@ COBJS-$(CONFIG_DNET) += dnet.o
 COBJS-$(CONFIG_E1000) += e1000.o
 COBJS-$(CONFIG_EEPRO100) += eepro100.o
 COBJS-$(CONFIG_ENC28J60) += enc28j60.o
+COBJS-$(CONFIG_EP93XX) += ep93xx_eth.o
 COBJS-$(CONFIG_FEC_MXC) += fec_mxc.o
 COBJS-$(CONFIG_FSLDMAFEC) += fsl_mcdmafec.o mcfmii.o
 COBJS-$(CONFIG_FTMAC100) += ftmac100.o
drivers/net/ep93xx_eth.c new file +653 -0

653 lines not on this page · raw message

drivers/net/ep93xx_eth.h new file +144 -0

144 lines not on this page · raw message

include/common.h +5 -0
index f2a7067..c0dfc45 100644
@@ -123,6 +123,11 @@ typedef volatile unsigned char	vu_char;
 #define debugX(level,fmt,args...)
 #endif	/* DEBUG */
 
+#define error(fmt, args...) do {					\
+		printf("ERROR: " fmt "\nat %s:%d/%s()\n",		\
+			##args, __FILE__, __LINE__, __func__);		\
+} while (0)
+
 #ifndef BUG
 #define BUG() do { \
 	printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
include/netdev.h +1 -0
index a9d5ec9..1e0484f 100644
@@ -49,6 +49,7 @@ int davinci_emac_initialize(void);
 int dnet_eth_initialize(int id, void *regs, unsigned int phy_addr);
 int e1000_initialize(bd_t *bis);
 int eepro100_initialize(bd_t *bis);
+int ep93xx_eth_initialize(u8 dev_num, int base_addr);
 int eth_3com_initialize (bd_t * bis);
 int fec_initialize (bd_t *bis);
 int fecmxc_initialize (bd_t *bis);
Signature · 1 line
1.6.5
Applied
#3 lore raw

PATCH 2/3 Add EP93xx ethernet driver

Hi Matthias,

Quoted 13 lines · Matthias Kaehlcke

Added ethernet driver for EP93xx SoCs

---
 drivers/net/Makefile     |    1 +
 drivers/net/ep93xx_eth.c |  653 ++++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/ep93xx_eth.h |  144 ++++++++++
 include/common.h         |    5 +
 include/netdev.h         |    1 +
 5 files changed, 804 insertions(+), 0 deletions(-)
 create mode 100644 drivers/net/ep93xx_eth.c
 create mode 100644 drivers/net/ep93xx_eth.h

Applied to net repo.
Thanks a lot,
Ben

#4 lore raw

PATCH 2/3 Add EP93xx ethernet driver

Hi Ben,

El Sun, Jan 31, 2010 at 09:24:36PM -0800 Ben Warren ha dit:

Quoted 13 lines
Quoted 4 lines · Matthias Kaehlcke

Added ethernet driver for EP93xx SoCs

---

Quoted 8 lines
drivers/net/Makefile     |    1 +
drivers/net/ep93xx_eth.c |  653 ++++++++++++++++++++++++++++++++++++++++++++++
drivers/net/ep93xx_eth.h |  144 ++++++++++
include/common.h         |    5 +
include/netdev.h         |    1 +
5 files changed, 804 insertions(+), 0 deletions(-)

create mode 100644 drivers/net/ep93xx_eth.c
create mode 100644 drivers/net/ep93xx_eth.h

Quoted 2 lines

Applied to net repo.
Thanks a lot,

thanks to you for the reviews and the helpfull comments!

Signature · 10 lines
Matthias Kaehlcke
Embedded Linux Developer
Barcelona

              La posibilidad de realizar un suenyo es lo
                 que hace que la vida sea interesante
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-
#5 lore raw

PATCH 3/3 Add support for EDB93xx boards

In reply to a message not in the archive

Added support for the following EDB93xx boards:

EDB9301
EDB9302
EDB9302A
EDB9307
EDB9307A
EDB93012
EDB9315
EDB9315A

---
 MAINTAINERS                  |   10 ++
 MAKEALL                      |    8 ++
 Makefile                     |   10 ++
 board/edb93xx/Makefile       |   50 ++++++++
 board/edb93xx/config.mk      |   33 +++++
 board/edb93xx/early_udelay.h |   34 +++++
 board/edb93xx/edb93xx.c      |  109 +++++++++++++++++
 board/edb93xx/flash_cfg.c    |   38 ++++++
 board/edb93xx/pll_cfg.c      |   58 +++++++++
 board/edb93xx/pll_cfg.h      |   72 +++++++++++
 board/edb93xx/sdram_cfg.c    |  117 ++++++++++++++++++
 board/edb93xx/sdram_cfg.h    |  144 ++++++++++++++++++++++
 include/configs/edb93xx.h    |  273 ++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 956 insertions(+), 0 deletions(-)
 create mode 100644 board/edb93xx/Makefile
 create mode 100644 board/edb93xx/config.mk
 create mode 100644 board/edb93xx/early_udelay.h
 create mode 100644 board/edb93xx/edb93xx.c
 create mode 100644 board/edb93xx/flash_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.c
 create mode 100644 board/edb93xx/pll_cfg.h
 create mode 100644 board/edb93xx/sdram_cfg.c
 create mode 100644 board/edb93xx/sdram_cfg.h
 create mode 100644 include/configs/edb93xx.h
MAINTAINERS +10 -0
index e8ba4bc..12a742e 100644
@@ -598,6 +598,16 @@ Gary Jennejohn <[email protected]>
 	smdk2400	ARM920T
 	trab		ARM920T
 
+Matthias Kaehlcke <[email protected]>
+	edb9301			ARM920T (EP9301)
+	edb9302			ARM920T (EP9302)
+	edb9302a		ARM920T (EP9302)
+	edb9307			ARM920T (EP9307)
+	edb9307a		ARM920T (EP9307)
+	edb9312			ARM920T (EP9312)
+	edb9315			ARM920T (EP9315)
+	edb9315a		ARM920T (EP9315)
+
 Konstantin Kletschke <[email protected]>
 	scb9328		ARM920T
 
MAKEALL +8 -0
index afdc1b5..95e0843 100755
@@ -554,6 +554,14 @@ LIST_ARM9="			\
 	cp946es			\
 	cp966			\
 	da830evm		\
+	edb9301			\
+	edb9302			\
+	edb9302a		\
+	edb9307			\
+	edb9307a 		\
+	edb9312			\
+	edb9315			\
+	edb9315a		\
 	imx27lite		\
 	lpd7a400		\
 	mv88f6281gtw_ge		\
Makefile +10 -0
index 0f60925..5b4ab56 100644
@@ -2412,6 +2412,16 @@ caddy2_config \
 vme8349_config:		unconfig
 	@$(MKCONFIG) -t $(@:_config=) vme8349 ppc mpc83xx vme8349 esd
 
+edb9301_config \
+edb9302_config \
+edb9302a_config \
+edb9307_config \
+edb9307a_config \
+edb9312_config \
+edb9315_config \
+edb9315a_config: unconfig
+	@$(MKCONFIG) -t $(@:_config=) edb93xx arm arm920t edb93xx NULL ep93xx
+
 #########################################################################
 ## MPC85xx Systems
 #########################################################################
board/edb93xx/Makefile new file +50 -0

50 lines not on this page · raw message

board/edb93xx/config.mk new file +33 -0
new file mode 100644
index 0000000..b2fc6fa
@@ -0,0 +1,33 @@
+LDSCRIPT := $(SRCTREE)/cpu/arm920t/ep93xx/u-boot.lds
+
+ifdef CONFIG_EDB9301
+TEXT_BASE = 0x05700000
+endif
+
+ifdef CONFIG_EDB9302
+TEXT_BASE = 0x05700000
+endif
+
+ifdef CONFIG_EDB9302A
+TEXT_BASE = 0xc5700000
+endif
+
+ifdef CONFIG_EDB9307
+TEXT_BASE = 0x01f00000
+endif
+
+ifdef CONFIG_EDB9307A
+TEXT_BASE = 0xc1f00000
+endif
+
+ifdef CONFIG_EDB9312
+TEXT_BASE = 0x01f00000
+endif
+
+ifdef CONFIG_EDB9315
+TEXT_BASE = 0x01f00000
+endif
+
+ifdef CONFIG_EDB9315A
+TEXT_BASE = 0xc1f00000
+endif
board/edb93xx/early_udelay.h new file +34 -0
new file mode 100644
index 0000000..3b26b3f
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 Matthias Kaehlcke <[email protected]>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+
+/* delay execution before timers are initialized */
+static inline void early_udelay(uint32_t usecs)
+{
+	/* loop takes 4 cycles at 5.0ns (fastest case, running at 200MHz) */
+	register uint32_t loops = (usecs * 1000) / 20;
+
+	__asm__ volatile ("1:\n"
+			"subs %0, %1, #1\n"
+			"bne 1b":"=r" (loops):"0" (loops));
+}
board/edb93xx/edb93xx.c new file +109 -0

109 lines not on this page · raw message

board/edb93xx/flash_cfg.c new file +38 -0
new file mode 100644
index 0000000..24ea210
@@ -0,0 +1,38 @@
+/*
+ * Flash setup for Cirrus edb93xx boards
+ *
+ * Copyright (C) 2009 Matthias Kaehlcke <[email protected]>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/ep93xx.h>
+#include <asm/io.h>
+
+#define SMC_BCR6_VALUE	(2 << SMC_BCR_IDCY_SHIFT | 5 << SMC_BCR_WST1_SHIFT | \
+				SMC_BCR_BLE | 2 << SMC_BCR_WST2_SHIFT | \
+				1 << SMC_BCR_MW_SHIFT)
+
+void flash_cfg(void)
+{
+	struct smc_regs *smc = (struct smc_regs *)SMC_BASE;
+
+	writel(SMC_BCR6_VALUE, &smc->bcr6);
+}
board/edb93xx/pll_cfg.c new file +58 -0

58 lines not on this page · raw message

board/edb93xx/pll_cfg.h new file +72 -0

72 lines not on this page · raw message

board/edb93xx/sdram_cfg.c new file +117 -0

117 lines not on this page · raw message

board/edb93xx/sdram_cfg.h new file +144 -0

144 lines not on this page · raw message

include/configs/edb93xx.h new file +273 -0

273 lines not on this page · raw message

Signature · 1 line
1.6.5