public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda
@ 2010-06-18 20:42 Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 01/10] ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7 Steve Sakoman
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

Note: I am taking over patch submission for OMAP4 from Aneesh.

This is version 3, which takes into account all feedback to date, and has
been rebased on the next branch.
 
The folowing series adds support for two boards based upon the TI
OMAP4430.  The OMAP4430 is a Cortex-A9 based SOC from TI.

The first patch in this series renames the cpu arm_cortexa8 to armv7 so
that the existing cortex A8 code can be shared with cortex A9. Both A8 and
A9 are based on ARMV7 architecture.

The 2nd patch adds basic OMAP4 architecture support.

The 3rd and 4th patches add minimal board support for the Panda and SDP.

The 5th patch restructures the OMAP mmc driver code so that it can be
shared by both OMAP3 and OMAP4 boards.  This patch depends on a previously
submitted patch (OMAP: mmc: add support for second and third mmc channel):

http://www.mail-archive.com/u-boot at lists.denx.de/msg31765.html

The 6th and 7th patches add mmc support for Panda and SDP.

The 8th patch restructures the OMAP i2c code so that it can be shared by
both OMAP3 and OMAP4 boards.

And, finally, the 9th and 10th patches add i2c support for Panda and SDP.

---


Steve Sakoman (10):
  ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
  ARMV7: Add basic support for TI OMAP4
  ARMV7: Add support for TI OMAP4430 SDP
  ARMV7: Add support for TI OMAP4 Panda
  ARMV7: Restructure OMAP mmc driver to allow code sharing between
    OMAP3 and OMAP4
  ARMV7: Enable mmc support on TI OMAP4430 SDP
  ARMV7: Enable mmc support on TI OMAP4 Panda
  ARMV7: Restructure OMAP i2c driver to allow code sharing between
    OMAP3 and OMAP4
  ARMV7: Enable i2c support on TI OMAP4 SDP
  ARMV7: Enable i2c support on TI OMAP4 Panda

 MAINTAINERS                                        |   24 ++-
 MAKEALL                                            |   10 +-
 Makefile                                           |    7 +
 arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile      |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk     |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c         |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c  |    0
 .../{arm_cortexa8 => armv7}/mx51/lowlevel_init.S   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds    |    2 +-
 .../mx51 => armv7/omap-common}/Makefile            |   10 +-
 .../{arm_cortexa8 => armv7/omap-common}/config.mk  |    0
 .../omap3 => armv7/omap-common}/reset.S            |    0
 .../omap3 => armv7/omap-common}/timer.c            |    5 +
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile |    2 -
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/emif4.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c  |    0
 .../{arm_cortexa8 => armv7}/omap3/lowlevel_init.S  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sdrc.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c   |    0
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c |    0
 .../{arm_cortexa8/s5pc1xx => armv7/omap4}/Makefile |   16 +-
 arch/arm/cpu/armv7/omap4/board.c                   |   90 ++++++++
 .../omap3/reset.S => armv7/omap4/lowlevel_init.S}  |   40 +++--
 .../omap3/reset.S => armv7/omap4/sys_info.c}       |   50 +++--
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile   |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S    |    2 +-
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/start.S       |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds    |    2 +-
 arch/arm/include/asm/arch-mx51/asm-offsets.h       |    2 +-
 arch/arm/include/asm/arch-omap3/i2c.h              |  149 +-------------
 arch/arm/include/asm/arch-omap4/cpu.h              |   94 +++++++++
 arch/arm/include/asm/arch-omap4/i2c.h              |   74 +++++++
 arch/arm/include/asm/arch-omap4/mmc_host_def.h     |  171 +++++++++++++++
 arch/arm/include/asm/arch-omap4/omap4.h            |  118 +++++++++++
 .../reset.S => include/asm/arch-omap4/sys_proto.h} |   35 ++--
 board/logicpd/zoom2/zoom2.c                        |    2 +-
 .../cpu/arm_cortexa8 => board/ti/panda}/Makefile   |   24 ++-
 .../cpu/arm_cortexa8 => board/ti/panda}/config.mk  |   25 +--
 .../u-boot.lds => board/ti/panda/panda.c           |   65 +++---
 .../cpu/arm_cortexa8 => board/ti/sdp4430}/Makefile |   24 ++-
 .../arm_cortexa8 => board/ti/sdp4430}/config.mk    |   25 +--
 .../u-boot.lds => board/ti/sdp4430/sdp.c           |   66 +++---
 boards.cfg                                         |   22 +-
 drivers/i2c/omap24xx_i2c.c                         |   17 ++-
 .../arch-omap3/i2c.h => drivers/i2c/omap24xx_i2c.h |   45 +----
 drivers/mmc/omap3_mmc.c                            |   13 +-
 .../arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h    |    2 +-
 include/configs/am3517_evm.h                       |    2 +-
 include/configs/devkit8000.h                       |    2 +-
 include/configs/omap3_beagle.h                     |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/omap3_zoom2.h                      |    2 +-
 include/configs/omap4_panda.h                      |  220 +++++++++++++++++++
 include/configs/omap4_sdp4430.h                    |  221 ++++++++++++++++++++
 include/configs/s5p_goni.h                         |    2 +-
 include/configs/smdkc100.h                         |    2 +-
 73 files changed, 1284 insertions(+), 410 deletions(-)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds (97%)
 rename arch/arm/cpu/{arm_cortexa8/mx51 => armv7/omap-common}/Makefile (87%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7/omap-common}/config.mk (100%)
 copy arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap-common}/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap-common}/timer.c (96%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile (97%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/emif4.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sdrc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c (100%)
 copy arch/arm/cpu/{arm_cortexa8/s5pc1xx => armv7/omap4}/Makefile (83%)
 create mode 100644 arch/arm/cpu/armv7/omap4/board.c
 copy arch/arm/cpu/{arm_cortexa8/omap3/reset.S => armv7/omap4/lowlevel_init.S} (65%)
 copy arch/arm/cpu/{arm_cortexa8/omap3/reset.S => armv7/omap4/sys_info.c} (60%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S (98%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/start.S (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds (97%)
 create mode 100644 arch/arm/include/asm/arch-omap4/cpu.h
 create mode 100644 arch/arm/include/asm/arch-omap4/i2c.h
 create mode 100644 arch/arm/include/asm/arch-omap4/mmc_host_def.h
 create mode 100644 arch/arm/include/asm/arch-omap4/omap4.h
 rename arch/arm/{cpu/arm_cortexa8/omap3/reset.S => include/asm/arch-omap4/sys_proto.h} (64%)
 copy {arch/arm/cpu/arm_cortexa8 => board/ti/panda}/Makefile (79%)
 copy {arch/arm/cpu/arm_cortexa8 => board/ti/panda}/config.mk (54%)
 copy arch/arm/cpu/arm_cortexa8/u-boot.lds => board/ti/panda/panda.c (53%)
 rename {arch/arm/cpu/arm_cortexa8 => board/ti/sdp4430}/Makefile (79%)
 rename {arch/arm/cpu/arm_cortexa8 => board/ti/sdp4430}/config.mk (54%)
 rename arch/arm/cpu/arm_cortexa8/u-boot.lds => board/ti/sdp4430/sdp.c (52%)
 copy arch/arm/include/asm/arch-omap3/i2c.h => drivers/i2c/omap24xx_i2c.h (85%)
 rename arch/arm/include/asm/arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h (99%)
 create mode 100644 include/configs/omap4_panda.h
 create mode 100644 include/configs/omap4_sdp4430.h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 01/10] ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 02/10] ARMV7: Add basic support for TI OMAP4 Steve Sakoman
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

The purpose of this patch is to prepare for adding the OMAP4 architecture, which is Cortex A9

Cortex A8 and A9 both belong to the armv7 architecture, hence the name change.

The two architectures are similar enough that substantial code can be shared.

Signed-off-by: Aneesh V <aneesh@ti.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 MAINTAINERS                                        |   22 ++++++++++----------
 MAKEALL                                            |    8 +++---
 arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile      |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk     |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c         |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c  |    0
 .../{arm_cortexa8 => armv7}/mx51/lowlevel_init.S   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds    |    2 +-
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/emif4.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c  |    0
 .../{arm_cortexa8 => armv7}/omap3/lowlevel_init.S  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/reset.S |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sdrc.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c   |    0
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/timer.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile   |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S    |    2 +-
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/start.S       |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds    |    2 +-
 arch/arm/include/asm/arch-mx51/asm-offsets.h       |    2 +-
 board/logicpd/zoom2/zoom2.c                        |    2 +-
 boards.cfg                                         |   20 +++++++++---------
 include/configs/am3517_evm.h                       |    2 +-
 include/configs/devkit8000.h                       |    2 +-
 include/configs/omap3_beagle.h                     |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/omap3_zoom2.h                      |    2 +-
 include/configs/s5p_goni.h                         |    2 +-
 include/configs/smdkc100.h                         |    2 +-
 48 files changed, 40 insertions(+), 40 deletions(-)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds (97%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/emif4.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sdrc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S (98%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/start.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds (97%)

diff --git a/MAINTAINERS b/MAINTAINERS
index f10e924..bce4bcc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -549,7 +549,7 @@ Stefano Babic <sbabic@denx.de>
 
 Dirk Behme <dirk.behme@gmail.com>
 
-	omap3_beagle	ARM CORTEX-A8 (OMAP3530 SoC)
+	omap3_beagle	ARM ARMV7 (OMAP3530 SoC)
 
 Eric Benard <eric@eukrea.com>
 
@@ -615,11 +615,11 @@ Kshitij Gupta <kshitij@ti.com>
 
 Vaibhav Hiremath <hvaibhav@ti.com>
 
-	am3517_evm	ARM CORTEX-A8 (AM35x SoC)
+	am3517_evm	ARM ARMV7 (AM35x SoC)
 
 Grazvydas Ignotas <notasas@gmail.com>
 
-	omap3_pandora	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_pandora	ARM ARMV7 (OMAP3xx SoC)
 
 Gary Jennejohn <garyj@denx.de>
 
@@ -649,12 +649,12 @@ Nishant Kamat <nskamat@ti.com>
 
 Minkyu Kang <mk7.kang@samsung.com>
 
-	s5p_goni	ARM CORTEX-A8 (S5PC110 SoC)
-	SMDKC100	ARM CORTEX-A8 (S5PC100 SoC)
+	s5p_goni	ARM ARMV7 (S5PC110 SoC)
+	SMDKC100	ARM ARMV7 (S5PC100 SoC)
 
 Frederik Kriewitz <frederik@kriewitz.eu>
 
-	devkit8000	ARM CORTEX-A8 (OMAP3530 SoC)
+	devkit8000	ARM ARMV7 (OMAP3530 SoC)
 
 Sergey Kubushyn <ksi@koi8.net>
 
@@ -685,8 +685,8 @@ Guennadi Liakhovetski <g.liakhovetski@gmx.de>
 
 Nishanth Menon <nm@ti.com>
 
-	omap3_sdp3430	ARM CORTEX-A8 (OMAP3xx SoC)
-	omap3_zoom1	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_sdp3430	ARM ARMV7 (OMAP3xx SoC)
+	omap3_zoom1	ARM ARMV7 (OMAP3xx SoC)
 
 David M?ller <d.mueller@elsoft.ch>
 
@@ -724,7 +724,7 @@ Dave Peverley <dpeverley@mpc-data.co.uk>
 
 Manikandan Pillai <mani.pillai@ti.com>
 
-	omap3_evm	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_evm	ARM ARMV7 (OMAP3xx SoC)
 
 Stelian Pop <stelian.pop@leadtechdesign.com>
 
@@ -736,7 +736,7 @@ Stelian Pop <stelian.pop@leadtechdesign.com>
 
 Tom Rix <Tom.Rix@windriver.com>
 
-	omap3_zoom2	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_zoom2	ARM ARMV7 (OMAP3xx SoC)
 
 John Rigby <jcrigby@gmail.com>
 
@@ -755,7 +755,7 @@ Nomadik Linux Team <STN_WMM_nomadik_linux@list.st.com>
 
 Steve Sakoman <sakoman@gmail.com>
 
-	omap3_overo	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_overo	ARM ARMV7 (OMAP3xx SoC)
 
 Jens Scharsig <esw@bus-elektronik.de>
 
diff --git a/MAKEALL b/MAKEALL
index d6d5f5b..d8510f6 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -641,9 +641,9 @@ LIST_ARM11="			\
 "
 
 #########################################################################
-## ARM Cortex-A8 Systems
+## ARMV7 Systems
 #########################################################################
-LIST_ARM_CORTEX_A8="		\
+LIST_ARMV7="		\
 	am3517_evm		\
 	devkit8000		\
 	mx51evk			\
@@ -736,7 +736,7 @@ LIST_arm="			\
 	${LIST_ARM9}		\
 	${LIST_ARM10}		\
 	${LIST_ARM11}		\
-	${LIST_ARM_CORTEX_A8}	\
+	${LIST_ARMV7}	\
 	${LIST_at91}		\
 	${LIST_pxa}		\
 	${LIST_ixp}		\
@@ -1002,7 +1002,7 @@ print_stats() {
 for arg in $@
 do
 	case "$arg" in
-	arm|SA|ARM7|ARM9|ARM10|ARM11|ARM_CORTEX_A8|at91|ixp|pxa \
+	arm|SA|ARM7|ARM9|ARM10|ARM11|ARMV7|at91|ixp|pxa \
 	|avr32 \
 	|blackfin \
 	|coldfire \
diff --git a/arch/arm/cpu/arm_cortexa8/Makefile b/arch/arm/cpu/armv7/Makefile
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/Makefile
rename to arch/arm/cpu/armv7/Makefile
diff --git a/arch/arm/cpu/arm_cortexa8/config.mk b/arch/arm/cpu/armv7/config.mk
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/config.mk
rename to arch/arm/cpu/armv7/config.mk
diff --git a/arch/arm/cpu/arm_cortexa8/cpu.c b/arch/arm/cpu/armv7/cpu.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/cpu.c
rename to arch/arm/cpu/armv7/cpu.c
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/Makefile b/arch/arm/cpu/armv7/mx51/Makefile
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/Makefile
rename to arch/arm/cpu/armv7/mx51/Makefile
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/clock.c b/arch/arm/cpu/armv7/mx51/clock.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/clock.c
rename to arch/arm/cpu/armv7/mx51/clock.c
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/iomux.c b/arch/arm/cpu/armv7/mx51/iomux.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/iomux.c
rename to arch/arm/cpu/armv7/mx51/iomux.c
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S b/arch/arm/cpu/armv7/mx51/lowlevel_init.S
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S
rename to arch/arm/cpu/armv7/mx51/lowlevel_init.S
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/soc.c b/arch/arm/cpu/armv7/mx51/soc.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/soc.c
rename to arch/arm/cpu/armv7/mx51/soc.c
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/speed.c b/arch/arm/cpu/armv7/mx51/speed.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/speed.c
rename to arch/arm/cpu/armv7/mx51/speed.c
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/timer.c b/arch/arm/cpu/armv7/mx51/timer.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/timer.c
rename to arch/arm/cpu/armv7/mx51/timer.c
diff --git a/arch/arm/cpu/arm_cortexa8/mx51/u-boot.lds b/arch/arm/cpu/armv7/mx51/u-boot.lds
similarity index 97%
rename from arch/arm/cpu/arm_cortexa8/mx51/u-boot.lds
rename to arch/arm/cpu/armv7/mx51/u-boot.lds
index 2953b93..d66434c 100644
--- a/arch/arm/cpu/arm_cortexa8/mx51/u-boot.lds
+++ b/arch/arm/cpu/armv7/mx51/u-boot.lds
@@ -36,7 +36,7 @@ SECTIONS
 	. = ALIGN(4);
 	.text	   :
 	{
-	  arch/arm/cpu/arm_cortexa8/start.o
+	  arch/arm/cpu/armv7/start.o
 	  *(.text)
 	}
 
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/Makefile b/arch/arm/cpu/armv7/omap3/Makefile
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/Makefile
rename to arch/arm/cpu/armv7/omap3/Makefile
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/board.c
rename to arch/arm/cpu/armv7/omap3/board.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/cache.S b/arch/arm/cpu/armv7/omap3/cache.S
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/cache.S
rename to arch/arm/cpu/armv7/omap3/cache.S
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/clock.c b/arch/arm/cpu/armv7/omap3/clock.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/clock.c
rename to arch/arm/cpu/armv7/omap3/clock.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/emif4.c b/arch/arm/cpu/armv7/omap3/emif4.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/emif4.c
rename to arch/arm/cpu/armv7/omap3/emif4.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/gpio.c b/arch/arm/cpu/armv7/omap3/gpio.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/gpio.c
rename to arch/arm/cpu/armv7/omap3/gpio.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/lowlevel_init.S b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/lowlevel_init.S
rename to arch/arm/cpu/armv7/omap3/lowlevel_init.S
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/mem.c b/arch/arm/cpu/armv7/omap3/mem.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/mem.c
rename to arch/arm/cpu/armv7/omap3/mem.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/reset.S b/arch/arm/cpu/armv7/omap3/reset.S
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/reset.S
rename to arch/arm/cpu/armv7/omap3/reset.S
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/sdrc.c b/arch/arm/cpu/armv7/omap3/sdrc.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/sdrc.c
rename to arch/arm/cpu/armv7/omap3/sdrc.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/sys_info.c b/arch/arm/cpu/armv7/omap3/sys_info.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/sys_info.c
rename to arch/arm/cpu/armv7/omap3/sys_info.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/syslib.c b/arch/arm/cpu/armv7/omap3/syslib.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/syslib.c
rename to arch/arm/cpu/armv7/omap3/syslib.c
diff --git a/arch/arm/cpu/arm_cortexa8/omap3/timer.c b/arch/arm/cpu/armv7/omap3/timer.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/timer.c
rename to arch/arm/cpu/armv7/omap3/timer.c
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/Makefile b/arch/arm/cpu/armv7/s5pc1xx/Makefile
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/Makefile
rename to arch/arm/cpu/armv7/s5pc1xx/Makefile
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S b/arch/arm/cpu/armv7/s5pc1xx/cache.S
similarity index 98%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S
rename to arch/arm/cpu/armv7/s5pc1xx/cache.S
index 906118d..7734b32 100644
--- a/arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S
+++ b/arch/arm/cpu/armv7/s5pc1xx/cache.S
@@ -2,7 +2,7 @@
  * Copyright (C) 2009 Samsung Electronics
  * Minkyu Kang <mk7.kang@samsung.com>
  *
- * based on arch/arm/cpu/arm_cortexa8/omap3/cache.S
+ * based on arch/arm/cpu/armv7/omap3/cache.S
  *
  * See file CREDITS for list of people who contributed to this
  * project.
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/clock.c b/arch/arm/cpu/armv7/s5pc1xx/clock.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/clock.c
rename to arch/arm/cpu/armv7/s5pc1xx/clock.c
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/cpu_info.c b/arch/arm/cpu/armv7/s5pc1xx/cpu_info.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/cpu_info.c
rename to arch/arm/cpu/armv7/s5pc1xx/cpu_info.c
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/reset.S b/arch/arm/cpu/armv7/s5pc1xx/reset.S
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/reset.S
rename to arch/arm/cpu/armv7/s5pc1xx/reset.S
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/sromc.c b/arch/arm/cpu/armv7/s5pc1xx/sromc.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/sromc.c
rename to arch/arm/cpu/armv7/s5pc1xx/sromc.c
diff --git a/arch/arm/cpu/arm_cortexa8/s5pc1xx/timer.c b/arch/arm/cpu/armv7/s5pc1xx/timer.c
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/timer.c
rename to arch/arm/cpu/armv7/s5pc1xx/timer.c
diff --git a/arch/arm/cpu/arm_cortexa8/start.S b/arch/arm/cpu/armv7/start.S
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/start.S
rename to arch/arm/cpu/armv7/start.S
diff --git a/arch/arm/cpu/arm_cortexa8/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds
similarity index 97%
rename from arch/arm/cpu/arm_cortexa8/u-boot.lds
rename to arch/arm/cpu/armv7/u-boot.lds
index 820e3a1..9e5b5a9 100644
--- a/arch/arm/cpu/arm_cortexa8/u-boot.lds
+++ b/arch/arm/cpu/armv7/u-boot.lds
@@ -34,7 +34,7 @@ SECTIONS
 	. = ALIGN(4);
 	.text	:
 	{
-		arch/arm/cpu/arm_cortexa8/start.o	(.text)
+		arch/arm/cpu/armv7/start.o	(.text)
 		*(.text)
 	}
 
diff --git a/arch/arm/include/asm/arch-mx51/asm-offsets.h b/arch/arm/include/asm/arch-mx51/asm-offsets.h
index fbba412..afd2728 100644
--- a/arch/arm/include/asm/arch-mx51/asm-offsets.h
+++ b/arch/arm/include/asm/arch-mx51/asm-offsets.h
@@ -1,5 +1,5 @@
 /*
- * needed for arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S
+ * needed for arch/arm/cpu/armv7/mx51/lowlevel_init.S
  *
  * These should be auto-generated
  */
diff --git a/board/logicpd/zoom2/zoom2.c b/board/logicpd/zoom2/zoom2.c
index 6455d1d..e9f6625 100644
--- a/board/logicpd/zoom2/zoom2.c
+++ b/board/logicpd/zoom2/zoom2.c
@@ -46,7 +46,7 @@
 /*
  * This the the zoom2, board specific, gpmc configuration for the
  * quad uart on the debug board.   The more general gpmc configurations
- * are setup at the cpu level in arch/arm/cpu/arm_cortexa8/omap3/mem.c
+ * are setup at the cpu level in arch/arm/cpu/armv7/omap3/mem.c
  *
  * The details of the setting of the serial gpmc setup are not available.
  * The values were provided by another party.
diff --git a/boards.cfg b/boards.cfg
index 6efde75..cbcb84d 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -45,7 +45,7 @@ pm9261		arm	arm926ejs	-		ronetix		at91
 pm9263		arm	arm926ejs	-		ronetix		at91
 suen3		arm	arm926ejs	km_arm		keymile		kirkwood
 rd6281a		arm	arm926ejs	-		Marvell		kirkwood
-mx51evk		arm	arm_cortexa8	mx51evk		freescale	mx51
+mx51evk		arm	armv7		mx51evk		freescale	mx51
 actux1		arm	ixp
 actux2		arm	ixp
 actux3		arm	ixp
@@ -254,15 +254,15 @@ imx27lite	arm	arm926ejs	imx27lite	logicpd		mx27
 magnesium	arm	arm926ejs	imx27lite	logicpd		mx27
 omap5912osk	arm	arm926ejs	-		ti		omap
 edminiv2	arm	arm926ejs	-		LaCie		orion5x
-omap3_overo	arm	arm_cortexa8	overo		-		omap3
-omap3_pandora	arm	arm_cortexa8	pandora		-		omap3
-omap3_zoom1	arm	arm_cortexa8	zoom1		logicpd		omap3
-omap3_zoom2	arm	arm_cortexa8	zoom2		logicpd		omap3
-omap3_beagle	arm	arm_cortexa8	beagle		ti		omap3
-omap3_evm	arm	arm_cortexa8	evm		ti		omap3
-omap3_sdp3430	arm	arm_cortexa8	sdp3430		ti		omap3
-devkit8000	arm	arm_cortexa8	devkit8000	timll		omap3
-smdkc100	arm	arm_cortexa8	smdkc100	samsung		s5pc1xx
+omap3_overo	arm	armv7		overo		-		omap3
+omap3_pandora	arm	armv7		pandora		-		omap3
+omap3_zoom1	arm	armv7		zoom1		logicpd		omap3
+omap3_zoom2	arm	armv7		zoom2		logicpd		omap3
+omap3_beagle	arm	armv7		beagle		ti		omap3
+omap3_evm	arm	armv7		evm		ti		omap3
+omap3_sdp3430	arm	armv7		sdp3430		ti		omap3
+devkit8000	arm	armv7		devkit8000	timll		omap3
+smdkc100	arm	armv7		smdkc100	samsung		s5pc1xx
 ixdpg425	arm	ixp
 lpd7a400	arm	lh7a40x		lpd7a40x
 lpd7a404	arm	lh7a40x		lpd7a40x
diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
index 513d005..10af21b 100644
--- a/include/configs/am3517_evm.h
+++ b/include/configs/am3517_evm.h
@@ -28,7 +28,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3_AM3517EVM	1	/* working with AM3517EVM */
diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h
index 1076de6..2815771 100644
--- a/include/configs/devkit8000.h
+++ b/include/configs/devkit8000.h
@@ -32,7 +32,7 @@
 #define __CONFIG_H
 
 /* High Level Configuration Options */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index e018b21..ae5a791 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -31,7 +31,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
index af7c65a..c4aa220 100644
--- a/include/configs/omap3_evm.h
+++ b/include/configs/omap3_evm.h
@@ -36,7 +36,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
index 9eba003..3308ace 100644
--- a/include/configs/omap3_pandora.h
+++ b/include/configs/omap3_pandora.h
@@ -26,7 +26,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/omap3_sdp3430.h b/include/configs/omap3_sdp3430.h
index d4482d3..5439aa3 100644
--- a/include/configs/omap3_sdp3430.h
+++ b/include/configs/omap3_sdp3430.h
@@ -36,7 +36,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h
index 1e88dc0..f612e0f 100644
--- a/include/configs/omap3_zoom1.h
+++ b/include/configs/omap3_zoom1.h
@@ -32,7 +32,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/omap3_zoom2.h b/include/configs/omap3_zoom2.h
index be9daf4..aaf929e 100644
--- a/include/configs/omap3_zoom2.h
+++ b/include/configs/omap3_zoom2.h
@@ -33,7 +33,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
index 171ec94..ff0dbd3 100644
--- a/include/configs/s5p_goni.h
+++ b/include/configs/s5p_goni.h
@@ -28,7 +28,7 @@
 #define __CONFIG_H
 
 /* High Level Configuration Options */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_SAMSUNG		1	/* in a SAMSUNG core */
 #define CONFIG_S5PC1XX		1	/* which is in a S5PC1XX Family */
 #define CONFIG_S5PC110		1	/* which is in a S5PC110 */
diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h
index 09bce6d..76a47c4 100644
--- a/include/configs/smdkc100.h
+++ b/include/configs/smdkc100.h
@@ -32,7 +32,7 @@
  * High Level Configuration Options
  * (easy to change)
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_SAMSUNG		1	/* in a SAMSUNG core */
 #define CONFIG_S5PC1XX		1	/* which is in a S5PC1XX Family */
 #define CONFIG_S5PC100		1	/* which is in a S5PC100 */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 02/10] ARMV7: Add basic support for TI OMAP4
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 01/10] ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7 Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 03/10] ARMV7: Add support for TI OMAP4430 SDP Steve Sakoman
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

This patch adds minimum support for OMAP4. Code which can be shared
between OMAP3 and OMAP4 is placed in arch/arm/cpu/armv7/omap-common

Signed-off-by: Aneesh V <aneesh@ti.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 Makefile                                           |    7 +
 arch/arm/cpu/armv7/{omap3 => omap-common}/Makefile |   22 +---
 arch/arm/cpu/armv7/omap-common/config.mk           |   33 ++++++
 arch/arm/cpu/armv7/{omap3 => omap-common}/reset.S  |    0
 arch/arm/cpu/armv7/{omap3 => omap-common}/timer.c  |    5 +
 arch/arm/cpu/armv7/omap3/Makefile                  |    2 -
 arch/arm/cpu/armv7/{omap3 => omap4}/Makefile       |   16 +--
 arch/arm/cpu/armv7/omap4/board.c                   |   90 +++++++++++++++
 .../armv7/{omap3/reset.S => omap4/lowlevel_init.S} |   40 +++++---
 .../cpu/armv7/{omap3/reset.S => omap4/sys_info.c}  |   50 ++++++---
 arch/arm/include/asm/arch-omap4/cpu.h              |   94 ++++++++++++++++
 arch/arm/include/asm/arch-omap4/omap4.h            |  118 ++++++++++++++++++++
 .../reset.S => include/asm/arch-omap4/sys_proto.h} |   35 +++---
 13 files changed, 433 insertions(+), 79 deletions(-)
 copy arch/arm/cpu/armv7/{omap3 => omap-common}/Makefile (77%)
 create mode 100644 arch/arm/cpu/armv7/omap-common/config.mk
 copy arch/arm/cpu/armv7/{omap3 => omap-common}/reset.S (100%)
 rename arch/arm/cpu/armv7/{omap3 => omap-common}/timer.c (96%)
 copy arch/arm/cpu/armv7/{omap3 => omap4}/Makefile (81%)
 create mode 100644 arch/arm/cpu/armv7/omap4/board.c
 copy arch/arm/cpu/armv7/{omap3/reset.S => omap4/lowlevel_init.S} (65%)
 copy arch/arm/cpu/armv7/{omap3/reset.S => omap4/sys_info.c} (60%)
 create mode 100644 arch/arm/include/asm/arch-omap4/cpu.h
 create mode 100644 arch/arm/include/asm/arch-omap4/omap4.h
 rename arch/arm/{cpu/armv7/omap3/reset.S => include/asm/arch-omap4/sys_proto.h} (64%)

diff --git a/Makefile b/Makefile
index 3e11f6f..e520ec4 100644
--- a/Makefile
+++ b/Makefile
@@ -244,6 +244,13 @@ LIBS += lib/libfdt/libfdt.a
 LIBS += api/libapi.a
 LIBS += post/libpost.a
 
+ifeq ($(SOC),omap3)
+LIBS += $(CPUDIR)/omap-common/libomap-common.a
+endif
+ifeq ($(SOC),omap4)
+LIBS += $(CPUDIR)/omap-common/libomap-common.a
+endif
+
 LIBS := $(addprefix $(obj),$(LIBS))
 .PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)
 
diff --git a/arch/arm/cpu/armv7/omap3/Makefile b/arch/arm/cpu/armv7/omap-common/Makefile
similarity index 77%
copy from arch/arm/cpu/armv7/omap3/Makefile
copy to arch/arm/cpu/armv7/omap-common/Makefile
index 7d63c6b..3a4a304 100644
--- a/arch/arm/cpu/armv7/omap3/Makefile
+++ b/arch/arm/cpu/armv7/omap-common/Makefile
@@ -23,27 +23,15 @@
 
 include $(TOPDIR)/config.mk
 
-LIB	=  $(obj)lib$(SOC).a
+LIB	= $(obj)libomap-common.a
 
-SOBJS	:= lowlevel_init.o
-SOBJS	+= cache.o
-SOBJS	+= reset.o
-
-COBJS	+= board.o
-COBJS	+= clock.o
-COBJS	+= gpio.o
-COBJS	+= mem.o
-COBJS	+= syslib.o
-COBJS	+= sys_info.o
-COBJS	+= timer.o
-
-COBJS-$(CONFIG_EMIF4)	+= emif4.o
-COBJS-$(CONFIG_SDRC)	+= sdrc.o
+SOBJS	:= reset.o
+COBJS	:= timer.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS) $(COBJS-y) $(SOBJS))
+OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
 
-all:	 $(obj).depend $(LIB)
+all:	$(obj).depend $(LIB)
 
 $(LIB):	$(OBJS)
 	$(AR) $(ARFLAGS) $@ $(OBJS)
diff --git a/arch/arm/cpu/armv7/omap-common/config.mk b/arch/arm/cpu/armv7/omap-common/config.mk
new file mode 100644
index 0000000..49ac9c7
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap-common/config.mk
@@ -0,0 +1,33 @@
+#
+# (C) Copyright 2002
+# Gary Jennejohn, DENX Software Engineering, <garyj@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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float
+
+# Make ARMv5 to allow more compilers to work, even though its v7a.
+PLATFORM_CPPFLAGS += -march=armv5
+# =========================================================================
+#
+# Supply options according to compiler version
+#
+# =========================================================================
+PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,\
+		    $(call cc-option,-malignment-traps,))
diff --git a/arch/arm/cpu/armv7/omap3/reset.S b/arch/arm/cpu/armv7/omap-common/reset.S
similarity index 100%
copy from arch/arm/cpu/armv7/omap3/reset.S
copy to arch/arm/cpu/armv7/omap-common/reset.S
diff --git a/arch/arm/cpu/armv7/omap3/timer.c b/arch/arm/cpu/armv7/omap-common/timer.c
similarity index 96%
rename from arch/arm/cpu/armv7/omap3/timer.c
rename to arch/arm/cpu/armv7/omap-common/timer.c
index 401bfe6..69e285f 100644
--- a/arch/arm/cpu/armv7/omap3/timer.c
+++ b/arch/arm/cpu/armv7/omap-common/timer.c
@@ -84,6 +84,11 @@ void set_timer(ulong t)
 /* delay x useconds */
 void __udelay(unsigned long usec)
 {
+#if defined(CONFIG_OMAP44XX)
+	/* TODO temporary hack until OMAP4 clock setup routines are present */
+	if (usec > 1000)
+		usec = usec/1000;
+#endif
 	long tmo = usec * (TIMER_CLOCK / 1000) / 1000;
 	unsigned long now, last = readl(&timer_base->tcrr);
 
diff --git a/arch/arm/cpu/armv7/omap3/Makefile b/arch/arm/cpu/armv7/omap3/Makefile
index 7d63c6b..79ae267 100644
--- a/arch/arm/cpu/armv7/omap3/Makefile
+++ b/arch/arm/cpu/armv7/omap3/Makefile
@@ -27,7 +27,6 @@ LIB	=  $(obj)lib$(SOC).a
 
 SOBJS	:= lowlevel_init.o
 SOBJS	+= cache.o
-SOBJS	+= reset.o
 
 COBJS	+= board.o
 COBJS	+= clock.o
@@ -35,7 +34,6 @@ COBJS	+= gpio.o
 COBJS	+= mem.o
 COBJS	+= syslib.o
 COBJS	+= sys_info.o
-COBJS	+= timer.o
 
 COBJS-$(CONFIG_EMIF4)	+= emif4.o
 COBJS-$(CONFIG_SDRC)	+= sdrc.o
diff --git a/arch/arm/cpu/armv7/omap3/Makefile b/arch/arm/cpu/armv7/omap4/Makefile
similarity index 81%
copy from arch/arm/cpu/armv7/omap3/Makefile
copy to arch/arm/cpu/armv7/omap4/Makefile
index 7d63c6b..ecf64f9 100644
--- a/arch/arm/cpu/armv7/omap3/Makefile
+++ b/arch/arm/cpu/armv7/omap4/Makefile
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000-2003
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd at denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -25,23 +25,13 @@ include $(TOPDIR)/config.mk
 
 LIB	=  $(obj)lib$(SOC).a
 
-SOBJS	:= lowlevel_init.o
-SOBJS	+= cache.o
-SOBJS	+= reset.o
+SOBJS	+= lowlevel_init.o
 
 COBJS	+= board.o
-COBJS	+= clock.o
-COBJS	+= gpio.o
-COBJS	+= mem.o
-COBJS	+= syslib.o
 COBJS	+= sys_info.o
-COBJS	+= timer.o
-
-COBJS-$(CONFIG_EMIF4)	+= emif4.o
-COBJS-$(CONFIG_SDRC)	+= sdrc.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS) $(COBJS-y) $(SOBJS))
+OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
 
 all:	 $(obj).depend $(LIB)
 
diff --git a/arch/arm/cpu/armv7/omap4/board.c b/arch/arm/cpu/armv7/omap4/board.c
new file mode 100644
index 0000000..5bf7173
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap4/board.c
@@ -0,0 +1,90 @@
+/*
+ *
+ * Common functions for OMAP4 based boards
+ *
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * Author :
+ *	Aneesh V	<aneesh@ti.com>
+ *	Steve Sakoman	<steve@sakoman.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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#include <common.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/sys_proto.h>
+
+/*
+ * Routine: s_init
+ * Description: Does early system init of muxing and clocks.
+ *              - Called path is with SRAM stack.
+ */
+void s_init(void)
+{
+	watchdog_init();
+}
+
+/*
+ * Routine: wait_for_command_complete
+ * Description: Wait for posting to finish on watchdog
+ */
+void wait_for_command_complete(struct watchdog *wd_base)
+{
+	int pending = 1;
+	do {
+		pending = readl(&wd_base->wwps);
+	} while (pending);
+}
+
+/*
+ * Routine: watchdog_init
+ * Description: Shut down watch dogs
+ */
+void watchdog_init(void)
+{
+	struct watchdog *wd2_base = (struct watchdog *)WDT2_BASE;
+
+	writel(WD_UNLOCK1, &wd2_base->wspr);
+	wait_for_command_complete(wd2_base);
+	writel(WD_UNLOCK2, &wd2_base->wspr);
+}
+
+/*
+ * Routine: dram_init
+ * Description: sets uboots idea of sdram size
+ */
+int dram_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	gd->bd->bi_dram[0].start = 0x80000000;
+	gd->bd->bi_dram[0].size = 512 << 20;
+	return 0;
+}
+
+/*
+ * Print board information
+ */
+int checkboard(void)
+{
+	puts(sysinfo.board_string);
+	return 0;
+}
+
diff --git a/arch/arm/cpu/armv7/omap3/reset.S b/arch/arm/cpu/armv7/omap4/lowlevel_init.S
similarity index 65%
copy from arch/arm/cpu/armv7/omap3/reset.S
copy to arch/arm/cpu/armv7/omap4/lowlevel_init.S
index a53c408..9a181eb 100644
--- a/arch/arm/cpu/armv7/omap3/reset.S
+++ b/arch/arm/cpu/armv7/omap4/lowlevel_init.S
@@ -1,6 +1,11 @@
 /*
- * Copyright (c) 2009 Samsung Electronics.
- * Minkyu Kang <mk7.kang@samsung.com>
+ * Board specific setup info
+ *
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * Author :
+ *	Aneesh V	<aneesh@ti.com>
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -21,16 +26,23 @@
  * MA 02111-1307 USA
  */
 
-#include <config.h>
+#include <asm/arch/omap4.h>
+
+.globl lowlevel_init
+lowlevel_init:
+	/*
+	 * Setup a temporary stack
+	 */
+	ldr	sp, =LOW_LEVEL_SRAM_STACK
+
+	/*
+	 * Save the old lr(passed in ip) and the current lr to stack
+	 */
+	push	{ip, lr}
+
+	/*
+	 * go setup pll, mux, memory
+	 */
+	bl	s_init
+	pop	{ip, pc}
 
-.global reset_cpu
-reset_cpu:
-	ldr	r1, rstctl			@ get addr for global reset
-						@ reg
-	mov	r3, #0x2			@ full reset pll + mpu
-	str	r3, [r1]			@ force reset
-	mov	r0, r0
-_loop_forever:
-	b	_loop_forever
-rstctl:
-	.word	PRM_RSTCTRL
diff --git a/arch/arm/cpu/armv7/omap3/reset.S b/arch/arm/cpu/armv7/omap4/sys_info.c
similarity index 60%
copy from arch/arm/cpu/armv7/omap3/reset.S
copy to arch/arm/cpu/armv7/omap4/sys_info.c
index a53c408..3b73191 100644
--- a/arch/arm/cpu/armv7/omap3/reset.S
+++ b/arch/arm/cpu/armv7/omap4/sys_info.c
@@ -1,9 +1,10 @@
 /*
- * Copyright (c) 2009 Samsung Electronics.
- * Minkyu Kang <mk7.kang@samsung.com>
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
  *
- * See file CREDITS for list of people who contributed to this
- * project.
+ * Author :
+ *	Aneesh V	<aneesh@ti.com>
+ *	Steve Sakoman	<steve@sakoman.com>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -21,16 +22,33 @@
  * MA 02111-1307 USA
  */
 
-#include <config.h>
+#include <common.h>
+#include <asm/arch/sys_proto.h>
+
+/*
+ *  get_device_type(): tell if GP/HS/EMU/TST
+ */
+u32 get_device_type(void)
+{
+	return 0;
+}
+
+/*
+ * get_board_rev() - get board revision
+ */
+u32 get_board_rev(void)
+{
+	return 0x20;
+}
+
+/*
+ * Print CPU information
+ */
+int print_cpuinfo(void)
+{
+
+	puts("CPU  : OMAP4430\n");
+
+	return 0;
+}
 
-.global reset_cpu
-reset_cpu:
-	ldr	r1, rstctl			@ get addr for global reset
-						@ reg
-	mov	r3, #0x2			@ full reset pll + mpu
-	str	r3, [r1]			@ force reset
-	mov	r0, r0
-_loop_forever:
-	b	_loop_forever
-rstctl:
-	.word	PRM_RSTCTRL
diff --git a/arch/arm/include/asm/arch-omap4/cpu.h b/arch/arm/include/asm/arch-omap4/cpu.h
new file mode 100644
index 0000000..7d8aa20
--- /dev/null
+++ b/arch/arm/include/asm/arch-omap4/cpu.h
@@ -0,0 +1,94 @@
+/*
+ * (C) Copyright 2006-2010
+ * Texas Instruments, <www.ti.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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+
+#ifndef _CPU_H
+#define _CPU_H
+
+#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
+#include <asm/types.h>
+#endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */
+
+#ifndef __KERNEL_STRICT_NAMES
+#ifndef __ASSEMBLY__
+struct gptimer {
+	u32 tidr;		/* 0x00 r */
+	u8 res[0xc];
+	u32 tiocp_cfg;		/* 0x10 rw */
+	u32 tistat;		/* 0x14 r */
+	u32 tisr;		/* 0x18 rw */
+	u32 tier;		/* 0x1c rw */
+	u32 twer;		/* 0x20 rw */
+	u32 tclr;		/* 0x24 rw */
+	u32 tcrr;		/* 0x28 rw */
+	u32 tldr;		/* 0x2c rw */
+	u32 ttgr;		/* 0x30 rw */
+	u32 twpc;		/* 0x34 r */
+	u32 tmar;		/* 0x38 rw */
+	u32 tcar1;		/* 0x3c r */
+	u32 tcicr;		/* 0x40 rw */
+	u32 tcar2;		/* 0x44 r */
+};
+#endif /* __ASSEMBLY__ */
+#endif /* __KERNEL_STRICT_NAMES */
+
+/* enable sys_clk NO-prescale /1 */
+#define GPT_EN			((0x0 << 2) | (0x1 << 1) | (0x1 << 0))
+
+/* Watchdog */
+#ifndef __KERNEL_STRICT_NAMES
+#ifndef __ASSEMBLY__
+struct watchdog {
+	u8 res1[0x34];
+	u32 wwps;		/* 0x34 r */
+	u8 res2[0x10];
+	u32 wspr;		/* 0x48 rw */
+};
+#endif /* __ASSEMBLY__ */
+#endif /* __KERNEL_STRICT_NAMES */
+
+#define WD_UNLOCK1		0xAAAA
+#define WD_UNLOCK2		0x5555
+
+#define SYSCLKDIV_1		(0x1 << 6)
+#define SYSCLKDIV_2		(0x1 << 7)
+
+#define CLKSEL_GPT1		(0x1 << 0)
+
+#define EN_GPT1			(0x1 << 0)
+#define EN_32KSYNC		(0x1 << 2)
+
+#define ST_WDT2			(0x1 << 5)
+
+#define RESETDONE		(0x1 << 0)
+
+#define TCLR_ST			(0x1 << 0)
+#define TCLR_AR			(0x1 << 1)
+#define TCLR_PRE		(0x1 << 5)
+
+/* I2C base */
+#define I2C_BASE1		(OMAP44XX_L4_PER_BASE + 0x70000)
+#define I2C_BASE2		(OMAP44XX_L4_PER_BASE + 0x72000)
+#define I2C_BASE3		(OMAP44XX_L4_PER_BASE + 0x60000)
+
+#endif /* _CPU_H */
diff --git a/arch/arm/include/asm/arch-omap4/omap4.h b/arch/arm/include/asm/arch-omap4/omap4.h
new file mode 100644
index 0000000..d123d6a
--- /dev/null
+++ b/arch/arm/include/asm/arch-omap4/omap4.h
@@ -0,0 +1,118 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * Authors:
+ *	Aneesh V <aneesh@ti.com>
+ *
+ * Derived from OMAP3 work by
+ *	Richard Woodruff <r-woodruff2@ti.com>
+ *	Syed Mohammed Khasim <x0khasim@ti.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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef _OMAP4_H_
+#define _OMAP4_H_
+
+#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
+#include <asm/types.h>
+#endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */
+
+/*
+ * L4 Peripherals - L4 Wakeup and L4 Core now
+ */
+#define OMAP44XX_L4_CORE_BASE	0x4A000000
+#define OMAP44XX_L4_WKUP_BASE	0x4A300000
+#define OMAP44XX_L4_PER_BASE	0x48000000
+
+/* CONTROL */
+#define CTRL_BASE		(OMAP44XX_L4_CORE_BASE + 0x2000)
+
+/* UART */
+#define UART1_BASE		(OMAP44XX_L4_PER_BASE + 0x6a000)
+#define UART2_BASE		(OMAP44XX_L4_PER_BASE + 0x6c000)
+#define UART3_BASE		(OMAP44XX_L4_PER_BASE + 0x20000)
+
+/* General Purpose Timers */
+#define GPT1_BASE		(OMAP44XX_L4_WKUP_BASE + 0x18000)
+#define GPT2_BASE		(OMAP44XX_L4_PER_BASE  + 0x32000)
+#define GPT3_BASE		(OMAP44XX_L4_PER_BASE  + 0x34000)
+
+/* Watchdog Timer2 - MPU watchdog */
+#define WDT2_BASE		(OMAP44XX_L4_WKUP_BASE + 0x14000)
+
+/* 32KTIMER */
+#define SYNC_32KTIMER_BASE	(OMAP44XX_L4_WKUP_BASE + 0x4000)
+
+/* GPMC */
+#define GPMC_BASE	0x50000000
+
+/*
+ * Hardware Register Details
+ */
+
+/* Watchdog Timer */
+#define WD_UNLOCK1		0xAAAA
+#define WD_UNLOCK2		0x5555
+
+/* GP Timer */
+#define TCLR_ST			(0x1 << 0)
+#define TCLR_AR			(0x1 << 1)
+#define TCLR_PRE		(0x1 << 5)
+
+/*
+ * PRCM
+ */
+
+/* PRM */
+#define PRM_BASE		0x4A306000
+#define PRM_DEVICE_BASE		(PRM_BASE + 0x1B00)
+
+#define PRM_RSTCTRL		PRM_DEVICE_BASE
+
+#ifndef __ASSEMBLY__
+
+struct s32ktimer {
+	unsigned char res[0x10];
+	unsigned int s32k_cr;	/* 0x10 */
+};
+
+#endif /* __ASSEMBLY__ */
+
+/*
+ * Non-secure SRAM Addresses
+ * Non-secure RAM starts at 0x40300000 for GP devices. But we keep SRAM_BASE
+ * at 0x40304000(EMU base) so that our code works for both EMU and GP
+ */
+#define NON_SECURE_SRAM_START	0x40304000
+#define NON_SECURE_SRAM_END	0x4030E000	/* Not inclusive */
+/* base address for indirect vectors (internal boot mode) */
+#define SRAM_ROM_VECT_BASE	0x4030D000
+/* Temporary SRAM stack used while low level init is done */
+#define LOW_LEVEL_SRAM_STACK	NON_SECURE_SRAM_END
+
+/*
+ * OMAP4 real hardware:
+ * TODO: Change this to the IDCODE in the hw regsiter
+ */
+#define CPU_OMAP4430_ES10	1
+#define CPU_OMAP4430_ES20	2
+
+#endif
diff --git a/arch/arm/cpu/armv7/omap3/reset.S b/arch/arm/include/asm/arch-omap4/sys_proto.h
similarity index 64%
rename from arch/arm/cpu/armv7/omap3/reset.S
rename to arch/arm/include/asm/arch-omap4/sys_proto.h
index a53c408..6f4d3d5 100644
--- a/arch/arm/cpu/armv7/omap3/reset.S
+++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
@@ -1,9 +1,6 @@
 /*
- * Copyright (c) 2009 Samsung Electronics.
- * Minkyu Kang <mk7.kang@samsung.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -21,16 +18,20 @@
  * MA 02111-1307 USA
  */
 
-#include <config.h>
+#ifndef _SYS_PROTO_H_
+#define _SYS_PROTO_H_
+
+#include <asm/arch/omap4.h>
+#include <asm/io.h>
+
+struct omap_sysinfo {
+	char *board_string;
+};
+
+void watchdog_init(void);
+u32 get_device_type(void);
+void invalidate_dcache(u32);
+
+extern const struct omap_sysinfo sysinfo;
 
-.global reset_cpu
-reset_cpu:
-	ldr	r1, rstctl			@ get addr for global reset
-						@ reg
-	mov	r3, #0x2			@ full reset pll + mpu
-	str	r3, [r1]			@ force reset
-	mov	r0, r0
-_loop_forever:
-	b	_loop_forever
-rstctl:
-	.word	PRM_RSTCTRL
+#endif
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 03/10] ARMV7: Add support for TI OMAP4430 SDP
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 01/10] ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7 Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 02/10] ARMV7: Add basic support for TI OMAP4 Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 04/10] ARMV7: Add support for TI OMAP4 Panda Steve Sakoman
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

OMAP4430 SDP is a reference board based on OMAP4430, an ARMV7 Cortex A9 CPU

This patch adds minimum support for booting the board. It assumes U-boot
is loaded to SDRAM with the help of another small bootloader (x-load)
running from SRAM. U-boot currently relies on x-load for clock, mux, and
SDRAM initialization

Signed-off-by: Aneesh V <aneesh@ti.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 MAINTAINERS                     |    1 +
 MAKEALL                         |    1 +
 board/ti/sdp4430/Makefile       |   49 +++++++++++
 board/ti/sdp4430/config.mk      |   32 +++++++
 board/ti/sdp4430/sdp.c          |   62 ++++++++++++++
 boards.cfg                      |    1 +
 include/configs/omap4_sdp4430.h |  175 +++++++++++++++++++++++++++++++++++++++
 7 files changed, 321 insertions(+), 0 deletions(-)
 create mode 100644 board/ti/sdp4430/Makefile
 create mode 100644 board/ti/sdp4430/config.mk
 create mode 100644 board/ti/sdp4430/sdp.c
 create mode 100644 include/configs/omap4_sdp4430.h

diff --git a/MAINTAINERS b/MAINTAINERS
index bce4bcc..36327ed 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -756,6 +756,7 @@ Nomadik Linux Team <STN_WMM_nomadik_linux@list.st.com>
 Steve Sakoman <sakoman@gmail.com>
 
 	omap3_overo	ARM ARMV7 (OMAP3xx SoC)
+	omap4_sdp4430	ARM ARMV7 (OMAP4xx SoC)
 
 Jens Scharsig <esw@bus-elektronik.de>
 
diff --git a/MAKEALL b/MAKEALL
index d8510f6..6acd69d 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -654,6 +654,7 @@ LIST_ARMV7="		\
 	omap3_sdp3430		\
 	omap3_zoom1		\
 	omap3_zoom2		\
+	omap4_sdp4430		\
 	s5p_goni		\
 	smdkc100		\
 "
diff --git a/board/ti/sdp4430/Makefile b/board/ti/sdp4430/Makefile
new file mode 100644
index 0000000..2554c7b
--- /dev/null
+++ b/board/ti/sdp4430/Makefile
@@ -0,0 +1,49 @@
+#
+# (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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS	:= sdp.o
+
+SRCS	:= $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+
+$(LIB):	$(obj).depend $(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+clean:
+	rm -f $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/ti/sdp4430/config.mk b/board/ti/sdp4430/config.mk
new file mode 100644
index 0000000..7382263
--- /dev/null
+++ b/board/ti/sdp4430/config.mk
@@ -0,0 +1,32 @@
+#
+# (C) Copyright 2006-2009
+# Texas Instruments Incorporated, <www.ti.com>
+#
+# OMAP 4430 SDP
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# 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
+#
+# SDRAM Address Space:
+# 8000'0000 - 9fff'ffff (512 MB)
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+
+# Let's place u-boot 1MB before the end of SDRAM.
+TEXT_BASE = 0x9ff00000
diff --git a/board/ti/sdp4430/sdp.c b/board/ti/sdp4430/sdp.c
new file mode 100644
index 0000000..6ae016c
--- /dev/null
+++ b/board/ti/sdp4430/sdp.c
@@ -0,0 +1,62 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments Incorporated, <www.ti.com>
+ * Aneesh V       <aneesh@ti.com>
+ * Steve Sakoman  <steve@sakoman.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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#include <common.h>
+#include <asm/arch/sys_proto.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+const struct omap_sysinfo sysinfo = {
+	"Board: OMAP4430 SDP\n"
+};
+
+/**
+ * @brief board_init
+ *
+ * @return 0
+ */
+int board_init(void)
+{
+	gd->bd->bi_arch_number = MACH_TYPE_OMAP_4430SDP;
+	gd->bd->bi_boot_params = (0x80000000 + 0x100); /* boot param addr */
+
+	return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+	return 0;
+}
+
+/**
+ * @brief misc_init_r - Configure SDP board specific configurations
+ * such as power configurations, ethernet initialization as phase2 of
+ * boot sequence
+ *
+ * @return 0
+ */
+int misc_init_r(void)
+{
+	return 0;
+}
diff --git a/boards.cfg b/boards.cfg
index cbcb84d..7bf0dee 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -261,6 +261,7 @@ omap3_zoom2	arm	armv7		zoom2		logicpd		omap3
 omap3_beagle	arm	armv7		beagle		ti		omap3
 omap3_evm	arm	armv7		evm		ti		omap3
 omap3_sdp3430	arm	armv7		sdp3430		ti		omap3
+omap4_sdp4430	arm	armv7		sdp4430		ti		omap4
 devkit8000	arm	armv7		devkit8000	timll		omap3
 smdkc100	arm	armv7		smdkc100	samsung		s5pc1xx
 ixdpg425	arm	ixp
diff --git a/include/configs/omap4_sdp4430.h b/include/configs/omap4_sdp4430.h
new file mode 100644
index 0000000..07ab93f
--- /dev/null
+++ b/include/configs/omap4_sdp4430.h
@@ -0,0 +1,175 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments Incorporated.
+ * Aneesh V       <aneesh@ti.com>
+ * Steve Sakoman  <steve@sakoman.com>
+ *
+ * Configuration settings for the TI SDP4430 board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * High Level Configuration Options
+ */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
+#define CONFIG_OMAP		1	/* in a TI OMAP core */
+#define CONFIG_OMAP44XX		1	/* which is a 44XX */
+#define CONFIG_OMAP4430		1	/* which is in a 4430 */
+#define CONFIG_4430SDP		1	/* working with SDP */
+
+/* Get CPU defs */
+#include <asm/arch/cpu.h>
+#include <asm/arch/omap4.h>
+
+/* Display CPU and Board Info */
+#define CONFIG_DISPLAY_CPUINFO		1
+#define CONFIG_DISPLAY_BOARDINFO	1
+
+/* Keep L2 Cache Disabled */
+#define CONFIG_L2_OFF			1
+
+/* Clock Defines */
+#define V_OSCK			38400000	/* Clock output from T2 */
+#define V_SCLK                   V_OSCK
+
+#undef CONFIG_USE_IRQ				/* no support for IRQs */
+#define CONFIG_MISC_INIT_R
+
+#define CONFIG_CMDLINE_TAG		1	/* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS	1
+#define CONFIG_INITRD_TAG		1
+#define CONFIG_REVISION_TAG		1
+
+/*
+ * Size of malloc() pool
+ * Total Size Environment - 256k
+ * Malloc - add 256k
+ */
+#define CONFIG_ENV_SIZE			(256 << 10)
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (256 << 10))
+#define CONFIG_SYS_GBL_DATA_SIZE	128	/* bytes reserved for */
+						/* initial data */
+/* Vector Base */
+#define CONFIG_SYS_CA9_VECTOR_BASE	SRAM_ROM_VECT_BASE
+
+/*
+ * Hardware drivers
+ */
+
+/*
+ * serial port - NS16550 compatible
+ */
+#define V_NS16550_CLK			48000000
+
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE	(-4)
+#define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK
+#define CONFIG_CONS_INDEX		3
+#define CONFIG_SYS_NS16550_COM3		UART3_BASE
+
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_BAUDRATE			115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
+					115200}
+
+/* Flash */
+#define CONFIG_SYS_NO_FLASH	1
+
+/* commands to include */
+#include <config_cmd_default.h>
+
+/* Disabled commands */
+#undef CONFIG_CMD_NET
+#undef CONFIG_CMD_FPGA		/* FPGA configuration Support   */
+#undef CONFIG_CMD_IMLS		/* List all found images        */
+
+/*
+ * Enabling relocation of u-boot by default
+ * Relocation can be skipped if u-boot is copied to the TEXT_BASE
+ */
+#undef CONFIG_SKIP_RELOCATE_UBOOT
+
+/*
+ * Environment setup
+ */
+
+/* allow overwriting serial config and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"loadaddr=0x82000000\0" \
+	"console=ttyS2,115200n8\0" \
+
+#define CONFIG_AUTO_COMPLETE		1
+
+/*
+ * Miscellaneous configurable options
+ */
+
+#define CONFIG_SYS_LONGHELP	/* undef to save memory */
+#define CONFIG_SYS_HUSH_PARSER	/* use "hush" command parser */
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+#define CONFIG_SYS_PROMPT		"OMAP4430 SDP # "
+#define CONFIG_SYS_CBSIZE		256
+/* Print Buffer Size */
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+					sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS		16
+/* Boot Argument Buffer Size */
+#define CONFIG_SYS_BARGSIZE		(CONFIG_SYS_CBSIZE)
+
+/*
+ * memtest setup
+ */
+#define CONFIG_SYS_MEMTEST_START	0x80000000
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + (32 << 20))
+
+/* Default load address */
+#define CONFIG_SYS_LOAD_ADDR		0x80000000
+
+/* Use General purpose timer 1 */
+#define CONFIG_SYS_TIMERBASE		GPT1_BASE
+#define CONFIG_SYS_PTV			2	/* Divisor: 2^(PTV+1) => 8 */
+#define CONFIG_SYS_HZ			1000
+
+/*
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE	(128 << 10)	/* Regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ	(4 << 10)	/* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ	(4 << 10)	/* FIQ stack */
+#endif
+
+/*
+ * SDRAM Memory Map
+ * Even though we use two CS all the memory
+ * is mapped to one contiguous block
+ */
+#define CONFIG_NR_DRAM_BANKS	1
+
+#endif /* __CONFIG_H */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 04/10] ARMV7: Add support for TI OMAP4 Panda
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (2 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 03/10] ARMV7: Add support for TI OMAP4430 SDP Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 05/10] ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4 Steve Sakoman
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

OMAP4 Panda is a reference board based on OMAP4430, an ARMV7 Cortex A9 CPU

This patch adds minimum support for booting the board. It assumes U-boot
is loaded to SDRAM with the help of another small bootloader (x-load)
running from SRAM. U-boot currently relies on x-load for clock, mux, and
SDRAM initialization

Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 MAINTAINERS                   |    1 +
 MAKEALL                       |    1 +
 board/ti/panda/Makefile       |   49 ++++++++++++
 board/ti/panda/config.mk      |   32 ++++++++
 board/ti/panda/panda.c        |   61 ++++++++++++++
 boards.cfg                    |    1 +
 include/configs/omap4_panda.h |  174 +++++++++++++++++++++++++++++++++++++++++
 7 files changed, 319 insertions(+), 0 deletions(-)
 create mode 100644 board/ti/panda/Makefile
 create mode 100644 board/ti/panda/config.mk
 create mode 100644 board/ti/panda/panda.c
 create mode 100644 include/configs/omap4_panda.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 36327ed..a5db970 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -756,6 +756,7 @@ Nomadik Linux Team <STN_WMM_nomadik_linux@list.st.com>
 Steve Sakoman <sakoman@gmail.com>
 
 	omap3_overo	ARM ARMV7 (OMAP3xx SoC)
+	omap4_panda	ARM ARMV7 (OMAP4xx SoC)
 	omap4_sdp4430	ARM ARMV7 (OMAP4xx SoC)
 
 Jens Scharsig <esw@bus-elektronik.de>
diff --git a/MAKEALL b/MAKEALL
index 6acd69d..5413f6d 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -654,6 +654,7 @@ LIST_ARMV7="		\
 	omap3_sdp3430		\
 	omap3_zoom1		\
 	omap3_zoom2		\
+	omap4_panda		\
 	omap4_sdp4430		\
 	s5p_goni		\
 	smdkc100		\
diff --git a/board/ti/panda/Makefile b/board/ti/panda/Makefile
new file mode 100644
index 0000000..81e5469
--- /dev/null
+++ b/board/ti/panda/Makefile
@@ -0,0 +1,49 @@
+#
+# (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., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS	:= panda.o
+
+SRCS	:= $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+
+$(LIB):	$(obj).depend $(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
+
+clean:
+	rm -f $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/ti/panda/config.mk b/board/ti/panda/config.mk
new file mode 100644
index 0000000..7382263
--- /dev/null
+++ b/board/ti/panda/config.mk
@@ -0,0 +1,32 @@
+#
+# (C) Copyright 2006-2009
+# Texas Instruments Incorporated, <www.ti.com>
+#
+# OMAP 4430 SDP
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# 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
+#
+# SDRAM Address Space:
+# 8000'0000 - 9fff'ffff (512 MB)
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+
+# Let's place u-boot 1MB before the end of SDRAM.
+TEXT_BASE = 0x9ff00000
diff --git a/board/ti/panda/panda.c b/board/ti/panda/panda.c
new file mode 100644
index 0000000..46a5d1d
--- /dev/null
+++ b/board/ti/panda/panda.c
@@ -0,0 +1,61 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments Incorporated, <www.ti.com>
+ * Steve Sakoman  <steve@sakoman.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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#include <common.h>
+#include <asm/arch/sys_proto.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+const struct omap_sysinfo sysinfo = {
+	"Board: OMAP4 Panda\n"
+};
+
+/**
+ * @brief board_init
+ *
+ * @return 0
+ */
+int board_init(void)
+{
+	gd->bd->bi_arch_number = MACH_TYPE_OMAP4_PANDA;
+	gd->bd->bi_boot_params = (0x80000000 + 0x100); /* boot param addr */
+
+	return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+	return 0;
+}
+
+/**
+ * @brief misc_init_r - Configure Panda board specific configurations
+ * such as power configurations, ethernet initialization as phase2 of
+ * boot sequence
+ *
+ * @return 0
+ */
+int misc_init_r(void)
+{
+	return 0;
+}
diff --git a/boards.cfg b/boards.cfg
index 7bf0dee..7091ac4 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -261,6 +261,7 @@ omap3_zoom2	arm	armv7		zoom2		logicpd		omap3
 omap3_beagle	arm	armv7		beagle		ti		omap3
 omap3_evm	arm	armv7		evm		ti		omap3
 omap3_sdp3430	arm	armv7		sdp3430		ti		omap3
+omap4_panda	arm	armv7		panda		ti		omap4
 omap4_sdp4430	arm	armv7		sdp4430		ti		omap4
 devkit8000	arm	armv7		devkit8000	timll		omap3
 smdkc100	arm	armv7		smdkc100	samsung		s5pc1xx
diff --git a/include/configs/omap4_panda.h b/include/configs/omap4_panda.h
new file mode 100644
index 0000000..5b96b2e
--- /dev/null
+++ b/include/configs/omap4_panda.h
@@ -0,0 +1,174 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments Incorporated.
+ * Steve Sakoman  <steve@sakoman.com>
+ *
+ * Configuration settings for the TI OMAP4 Panda board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * High Level Configuration Options
+ */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
+#define CONFIG_OMAP		1	/* in a TI OMAP core */
+#define CONFIG_OMAP44XX		1	/* which is a 44XX */
+#define CONFIG_OMAP4430		1	/* which is in a 4430 */
+#define CONFIG_PANDA		1	/* working with Panda */
+
+/* Get CPU defs */
+#include <asm/arch/cpu.h>
+#include <asm/arch/omap4.h>
+
+/* Display CPU and Board Info */
+#define CONFIG_DISPLAY_CPUINFO		1
+#define CONFIG_DISPLAY_BOARDINFO	1
+
+/* Keep L2 Cache Disabled */
+#define CONFIG_L2_OFF			1
+
+/* Clock Defines */
+#define V_OSCK			38400000	/* Clock output from T2 */
+#define V_SCLK                   V_OSCK
+
+#undef CONFIG_USE_IRQ				/* no support for IRQs */
+#define CONFIG_MISC_INIT_R
+
+#define CONFIG_CMDLINE_TAG		1	/* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS	1
+#define CONFIG_INITRD_TAG		1
+#define CONFIG_REVISION_TAG		1
+
+/*
+ * Size of malloc() pool
+ * Total Size Environment - 256k
+ * Malloc - add 256k
+ */
+#define CONFIG_ENV_SIZE			(256 << 10)
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (256 << 10))
+#define CONFIG_SYS_GBL_DATA_SIZE	128	/* bytes reserved for */
+						/* initial data */
+/* Vector Base */
+#define CONFIG_SYS_CA9_VECTOR_BASE	SRAM_ROM_VECT_BASE
+
+/*
+ * Hardware drivers
+ */
+
+/*
+ * serial port - NS16550 compatible
+ */
+#define V_NS16550_CLK			48000000
+
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE	(-4)
+#define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK
+#define CONFIG_CONS_INDEX		3
+#define CONFIG_SYS_NS16550_COM3		UART3_BASE
+
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_BAUDRATE			115200
+#define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
+					115200}
+
+/* Flash */
+#define CONFIG_SYS_NO_FLASH	1
+
+/* commands to include */
+#include <config_cmd_default.h>
+
+/* Disabled commands */
+#undef CONFIG_CMD_NET
+#undef CONFIG_CMD_FPGA		/* FPGA configuration Support   */
+#undef CONFIG_CMD_IMLS		/* List all found images        */
+
+/*
+ * Enabling relocation of u-boot by default
+ * Relocation can be skipped if u-boot is copied to the TEXT_BASE
+ */
+#undef CONFIG_SKIP_RELOCATE_UBOOT
+
+/*
+ * Environment setup
+ */
+
+/* allow overwriting serial config and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"loadaddr=0x82000000\0" \
+	"console=ttyS2,115200n8\0" \
+
+#define CONFIG_AUTO_COMPLETE		1
+
+/*
+ * Miscellaneous configurable options
+ */
+
+#define CONFIG_SYS_LONGHELP	/* undef to save memory */
+#define CONFIG_SYS_HUSH_PARSER	/* use "hush" command parser */
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+#define CONFIG_SYS_PROMPT		"OMAP4430 SDP # "
+#define CONFIG_SYS_CBSIZE		256
+/* Print Buffer Size */
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+					sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS		16
+/* Boot Argument Buffer Size */
+#define CONFIG_SYS_BARGSIZE		(CONFIG_SYS_CBSIZE)
+
+/*
+ * memtest setup
+ */
+#define CONFIG_SYS_MEMTEST_START	0x80000000
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + (32 << 20))
+
+/* Default load address */
+#define CONFIG_SYS_LOAD_ADDR		0x80000000
+
+/* Use General purpose timer 1 */
+#define CONFIG_SYS_TIMERBASE		GPT1_BASE
+#define CONFIG_SYS_PTV			2	/* Divisor: 2^(PTV+1) => 8 */
+#define CONFIG_SYS_HZ			1000
+
+/*
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE	(128 << 10)	/* Regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ	(4 << 10)	/* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ	(4 << 10)	/* FIQ stack */
+#endif
+
+/*
+ * SDRAM Memory Map
+ * Even though we use two CS all the memory
+ * is mapped to one contiguous block
+ */
+#define CONFIG_NR_DRAM_BANKS	1
+
+#endif /* __CONFIG_H */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 05/10] ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (3 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 04/10] ARMV7: Add support for TI OMAP4 Panda Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 06/10] ARMV7: Enable mmc support on TI OMAP4430 SDP Steve Sakoman
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

The architecture independent header is moved to drivers/mmc, and the architecture
dependent headers reside in asm/arch-omap3 and asm/arch-omap4

Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 arch/arm/include/asm/arch-omap4/mmc_host_def.h     |  171 ++++++++++++++++++++
 drivers/mmc/omap3_mmc.c                            |   13 +-
 .../arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h    |    2 +-
 3 files changed, 181 insertions(+), 5 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-omap4/mmc_host_def.h
 rename arch/arm/include/asm/arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h (99%)

diff --git a/arch/arm/include/asm/arch-omap4/mmc_host_def.h b/arch/arm/include/asm/arch-omap4/mmc_host_def.h
new file mode 100644
index 0000000..e5d8b53
--- /dev/null
+++ b/arch/arm/include/asm/arch-omap4/mmc_host_def.h
@@ -0,0 +1,171 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ * Syed Mohammed Khasim <khasim@ti.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's version 2 of
+ * the License.
+ *
+ * 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
+ */
+
+#ifndef MMC_HOST_DEF_H
+#define MMC_HOST_DEF_H
+
+/*
+ * OMAP HSMMC register definitions
+ */
+
+#define OMAP_HSMMC1_BASE	0x4809C100
+#define OMAP_HSMMC2_BASE	0x480B4100
+#define OMAP_HSMMC3_BASE	0x480AD100
+
+typedef struct hsmmc {
+	unsigned char res1[0x10];
+	unsigned int sysconfig;		/* 0x10 */
+	unsigned int sysstatus;		/* 0x14 */
+	unsigned char res2[0x14];
+	unsigned int con;		/* 0x2C */
+	unsigned char res3[0xD4];
+	unsigned int blk;		/* 0x104 */
+	unsigned int arg;		/* 0x108 */
+	unsigned int cmd;		/* 0x10C */
+	unsigned int rsp10;		/* 0x110 */
+	unsigned int rsp32;		/* 0x114 */
+	unsigned int rsp54;		/* 0x118 */
+	unsigned int rsp76;		/* 0x11C */
+	unsigned int data;		/* 0x120 */
+	unsigned int pstate;		/* 0x124 */
+	unsigned int hctl;		/* 0x128 */
+	unsigned int sysctl;		/* 0x12C */
+	unsigned int stat;		/* 0x130 */
+	unsigned int ie;		/* 0x134 */
+	unsigned char res4[0x8];
+	unsigned int capa;		/* 0x140 */
+} hsmmc_t;
+
+/*
+ * OMAP HS MMC Bit definitions
+ */
+#define MMC_SOFTRESET			(0x1 << 1)
+#define RESETDONE			(0x1 << 0)
+#define NOOPENDRAIN			(0x0 << 0)
+#define OPENDRAIN			(0x1 << 0)
+#define OD				(0x1 << 0)
+#define INIT_NOINIT			(0x0 << 1)
+#define INIT_INITSTREAM			(0x1 << 1)
+#define HR_NOHOSTRESP			(0x0 << 2)
+#define STR_BLOCK			(0x0 << 3)
+#define MODE_FUNC			(0x0 << 4)
+#define DW8_1_4BITMODE			(0x0 << 5)
+#define MIT_CTO				(0x0 << 6)
+#define CDP_ACTIVEHIGH			(0x0 << 7)
+#define WPP_ACTIVEHIGH			(0x0 << 8)
+#define RESERVED_MASK			(0x3 << 9)
+#define CTPL_MMC_SD			(0x0 << 11)
+#define BLEN_512BYTESLEN		(0x200 << 0)
+#define NBLK_STPCNT			(0x0 << 16)
+#define DE_DISABLE			(0x0 << 0)
+#define BCE_DISABLE			(0x0 << 1)
+#define ACEN_DISABLE			(0x0 << 2)
+#define DDIR_OFFSET			(4)
+#define DDIR_MASK			(0x1 << 4)
+#define DDIR_WRITE			(0x0 << 4)
+#define DDIR_READ			(0x1 << 4)
+#define MSBS_SGLEBLK			(0x0 << 5)
+#define RSP_TYPE_OFFSET			(16)
+#define RSP_TYPE_MASK			(0x3 << 16)
+#define RSP_TYPE_NORSP			(0x0 << 16)
+#define RSP_TYPE_LGHT136		(0x1 << 16)
+#define RSP_TYPE_LGHT48			(0x2 << 16)
+#define RSP_TYPE_LGHT48B		(0x3 << 16)
+#define CCCE_NOCHECK			(0x0 << 19)
+#define CCCE_CHECK			(0x1 << 19)
+#define CICE_NOCHECK			(0x0 << 20)
+#define CICE_CHECK			(0x1 << 20)
+#define DP_OFFSET			(21)
+#define DP_MASK				(0x1 << 21)
+#define DP_NO_DATA			(0x0 << 21)
+#define DP_DATA				(0x1 << 21)
+#define CMD_TYPE_NORMAL			(0x0 << 22)
+#define INDEX_OFFSET			(24)
+#define INDEX_MASK			(0x3f << 24)
+#define INDEX(i)			(i << 24)
+#define DATI_MASK			(0x1 << 1)
+#define DATI_CMDDIS			(0x1 << 1)
+#define DTW_1_BITMODE			(0x0 << 1)
+#define DTW_4_BITMODE			(0x1 << 1)
+#define SDBP_PWROFF			(0x0 << 8)
+#define SDBP_PWRON			(0x1 << 8)
+#define SDVS_1V8			(0x5 << 9)
+#define SDVS_3V0			(0x6 << 9)
+#define ICE_MASK			(0x1 << 0)
+#define ICE_STOP			(0x0 << 0)
+#define ICS_MASK			(0x1 << 1)
+#define ICS_NOTREADY			(0x0 << 1)
+#define ICE_OSCILLATE			(0x1 << 0)
+#define CEN_MASK			(0x1 << 2)
+#define CEN_DISABLE			(0x0 << 2)
+#define CEN_ENABLE			(0x1 << 2)
+#define CLKD_OFFSET			(6)
+#define CLKD_MASK			(0x3FF << 6)
+#define DTO_MASK			(0xF << 16)
+#define DTO_15THDTO			(0xE << 16)
+#define SOFTRESETALL			(0x1 << 24)
+#define CC_MASK				(0x1 << 0)
+#define TC_MASK				(0x1 << 1)
+#define BWR_MASK			(0x1 << 4)
+#define BRR_MASK			(0x1 << 5)
+#define ERRI_MASK			(0x1 << 15)
+#define IE_CC				(0x01 << 0)
+#define IE_TC				(0x01 << 1)
+#define IE_BWR				(0x01 << 4)
+#define IE_BRR				(0x01 << 5)
+#define IE_CTO				(0x01 << 16)
+#define IE_CCRC				(0x01 << 17)
+#define IE_CEB				(0x01 << 18)
+#define IE_CIE				(0x01 << 19)
+#define IE_DTO				(0x01 << 20)
+#define IE_DCRC				(0x01 << 21)
+#define IE_DEB				(0x01 << 22)
+#define IE_CERR				(0x01 << 28)
+#define IE_BADA				(0x01 << 29)
+
+#define VS30_3V0SUP			(1 << 25)
+#define VS18_1V8SUP			(1 << 26)
+
+/* Driver definitions */
+#define MMCSD_SECTOR_SIZE		512
+#define MMC_CARD			0
+#define SD_CARD				1
+#define BYTE_MODE			0
+#define SECTOR_MODE			1
+#define CLK_INITSEQ			0
+#define CLK_400KHZ			1
+#define CLK_MISC			2
+
+typedef struct {
+	unsigned int card_type;
+	unsigned int version;
+	unsigned int mode;
+	unsigned int size;
+	unsigned int RCA;
+} mmc_card_data;
+
+#define mmc_reg_out(addr, mask, val)\
+	writel((readl(addr) & (~(mask))) | ((val) & (mask)), (addr))
+
+#endif /* MMC_HOST_DEF_H */
diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c
index bf650ba..e97d817 100644
--- a/drivers/mmc/omap3_mmc.c
+++ b/drivers/mmc/omap3_mmc.c
@@ -30,7 +30,8 @@
 #include <i2c.h>
 #include <twl4030.h>
 #include <asm/io.h>
-#include <asm/arch/mmc.h>
+
+#include "omap3_mmc.h"
 
 const unsigned short mmc_transspeed_val[15][4] = {
 	{CLKD(10, 1), CLKD(10, 10), CLKD(10, 100), CLKD(10, 1000)},
@@ -81,13 +82,14 @@ block_dev_desc_t *mmc_get_dev(int dev)
 
 unsigned char mmc_board_init(void)
 {
-	t2_t *t2_base = (t2_t *)T2_BASE;
-	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
-
 #if defined(CONFIG_TWL4030_POWER)
 	twl4030_power_mmc_init();
 #endif
 
+#if defined(CONFIG_OMAP34XX)
+	t2_t *t2_base = (t2_t *)T2_BASE;
+	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
+
 	writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 |
 		PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
 		&t2_base->pbias_lite);
@@ -105,6 +107,9 @@ unsigned char mmc_board_init(void)
 	writel(readl(&prcm_base->iclken1_core) | 
 		EN_MMC1 | EN_MMC2 | EN_MMC3,
 		&prcm_base->iclken1_core);
+#endif
+
+/* TODO add appropriate OMAP4 init */
 
 	return 1;
 }
diff --git a/arch/arm/include/asm/arch-omap3/mmc.h b/drivers/mmc/omap3_mmc.h
similarity index 99%
rename from arch/arm/include/asm/arch-omap3/mmc.h
rename to drivers/mmc/omap3_mmc.h
index 196ffdc..cbb3dc3 100644
--- a/arch/arm/include/asm/arch-omap3/mmc.h
+++ b/drivers/mmc/omap3_mmc.h
@@ -25,7 +25,7 @@
 #ifndef MMC_H
 #define MMC_H
 
-#include "mmc_host_def.h"
+#include <asm/arch/mmc_host_def.h>
 
 /* Responses */
 #define RSP_TYPE_NONE	(RSP_TYPE_NORSP   | CCCE_NOCHECK | CICE_NOCHECK)
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 06/10] ARMV7: Enable mmc support on TI OMAP4430 SDP
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (4 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 05/10] ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4 Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 07/10] ARMV7: Enable mmc support on TI OMAP4 Panda Steve Sakoman
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

This patch enables the mmc driver as well as support for FAT and ext2.

It also sets up environment settings to facilitate booting from mmc

Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 include/configs/omap4_sdp4430.h |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/include/configs/omap4_sdp4430.h b/include/configs/omap4_sdp4430.h
index 07ab93f..3a14d34 100644
--- a/include/configs/omap4_sdp4430.h
+++ b/include/configs/omap4_sdp4430.h
@@ -94,12 +94,23 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* MMC */
+#define CONFIG_MMC			1
+#define CONFIG_OMAP3_MMC		1
+#define CONFIG_SYS_MMC_SET_DEV		1
+#define CONFIG_DOS_PARTITION		1
+
 /* Flash */
 #define CONFIG_SYS_NO_FLASH	1
 
 /* commands to include */
 #include <config_cmd_default.h>
 
+/* Enabled commands */
+#define CONFIG_CMD_EXT2		/* EXT2 Support                 */
+#define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_MMC		/* MMC support                  */
+
 /* Disabled commands */
 #undef CONFIG_CMD_NET
 #undef CONFIG_CMD_FPGA		/* FPGA configuration Support   */
@@ -121,6 +132,31 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"loadaddr=0x82000000\0" \
 	"console=ttyS2,115200n8\0" \
+	"mmcdev=1\0" \
+	"mmcroot=/dev/mmcblk0p2 rw\0" \
+	"mmcrootfstype=ext3 rootwait\0" \
+	"mmcargs=setenv bootargs console=${console} " \
+		"root=${mmcroot} " \
+		"rootfstype=${mmcrootfstype}\0" \
+	"loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+	"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+		"source ${loadaddr}\0" \
+	"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
+	"mmcboot=echo Booting from mmc${mmcdev} ...; " \
+		"run mmcargs; " \
+		"bootm ${loadaddr}\0" \
+
+#define CONFIG_BOOTCOMMAND \
+	"if mmc init ${mmcdev}; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else run nandboot; " \
+			"fi; " \
+		"fi; " \
+	"fi"
 
 #define CONFIG_AUTO_COMPLETE		1
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 07/10] ARMV7: Enable mmc support on TI OMAP4 Panda
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (5 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 06/10] ARMV7: Enable mmc support on TI OMAP4430 SDP Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 08/10] ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4 Steve Sakoman
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

This patch enables the mmc driver as well as support for FAT and ext2.

It also sets up environment settings to facilitate booting from mmc.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 include/configs/omap4_panda.h |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/include/configs/omap4_panda.h b/include/configs/omap4_panda.h
index 5b96b2e..9302ecb 100644
--- a/include/configs/omap4_panda.h
+++ b/include/configs/omap4_panda.h
@@ -93,12 +93,23 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* MMC */
+#define CONFIG_MMC			1
+#define CONFIG_OMAP3_MMC		1
+#define CONFIG_SYS_MMC_SET_DEV		1
+#define CONFIG_DOS_PARTITION		1
+
 /* Flash */
 #define CONFIG_SYS_NO_FLASH	1
 
 /* commands to include */
 #include <config_cmd_default.h>
 
+/* Enabled commands */
+#define CONFIG_CMD_EXT2		/* EXT2 Support                 */
+#define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_MMC		/* MMC support                  */
+
 /* Disabled commands */
 #undef CONFIG_CMD_NET
 #undef CONFIG_CMD_FPGA		/* FPGA configuration Support   */
@@ -120,6 +131,31 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"loadaddr=0x82000000\0" \
 	"console=ttyS2,115200n8\0" \
+	"mmcdev=1\0" \
+	"mmcroot=/dev/mmcblk0p2 rw\0" \
+	"mmcrootfstype=ext3 rootwait\0" \
+	"mmcargs=setenv bootargs console=${console} " \
+		"root=${mmcroot} " \
+		"rootfstype=${mmcrootfstype}\0" \
+	"loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+	"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+		"source ${loadaddr}\0" \
+	"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
+	"mmcboot=echo Booting from mmc${mmcdev} ...; " \
+		"run mmcargs; " \
+		"bootm ${loadaddr}\0" \
+
+#define CONFIG_BOOTCOMMAND \
+	"if mmc init ${mmcdev}; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else run nandboot; " \
+			"fi; " \
+		"fi; " \
+	"fi"
 
 #define CONFIG_AUTO_COMPLETE		1
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 08/10] ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (6 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 07/10] ARMV7: Enable mmc support on TI OMAP4 Panda Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 09/10] ARMV7: Enable i2c support on TI OMAP4 SDP Steve Sakoman
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

This patch modifies the omap24xx driver so that it will also work with OMAP4.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 arch/arm/include/asm/arch-omap3/i2c.h              |  149 +-------------------
 arch/arm/include/asm/arch-omap4/i2c.h              |   74 ++++++++++
 drivers/i2c/omap24xx_i2c.c                         |   17 ++-
 .../arch-omap3/i2c.h => drivers/i2c/omap24xx_i2c.h |   45 +------
 4 files changed, 96 insertions(+), 189 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-omap4/i2c.h
 copy arch/arm/include/asm/arch-omap3/i2c.h => drivers/i2c/omap24xx_i2c.h (85%)

diff --git a/arch/arm/include/asm/arch-omap3/i2c.h b/arch/arm/include/asm/arch-omap3/i2c.h
index 490e03b..7a4a73a 100644
--- a/arch/arm/include/asm/arch-omap3/i2c.h
+++ b/arch/arm/include/asm/arch-omap3/i2c.h
@@ -20,9 +20,10 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
  */
-#ifndef _I2C_H_
-#define _I2C_H_
+#ifndef _OMAP3_I2C_H_
+#define _OMAP3_I2C_H_
 
+#define I2C_BUS_MAX	3
 #define I2C_DEFAULT_BASE	I2C_BASE1
 
 struct i2c {
@@ -58,146 +59,4 @@ struct i2c {
 	unsigned short res15;
 };
 
-#define I2C_BUS_MAX	3
-
-/* I2C masks */
-
-/* I2C Interrupt Enable Register (I2C_IE): */
-#define I2C_IE_GC_IE	(1 << 5)
-#define I2C_IE_XRDY_IE	(1 << 4) /* Transmit data ready interrupt enable */
-#define I2C_IE_RRDY_IE	(1 << 3) /* Receive data ready interrupt enable */
-#define I2C_IE_ARDY_IE	(1 << 2) /* Register access ready interrupt enable */
-#define I2C_IE_NACK_IE	(1 << 1) /* No acknowledgment interrupt enable */
-#define I2C_IE_AL_IE	(1 << 0) /* Arbitration lost interrupt enable */
-
-/* I2C Status Register (I2C_STAT): */
-
-#define I2C_STAT_SBD	(1 << 15) /* Single byte data */
-#define I2C_STAT_BB	(1 << 12) /* Bus busy */
-#define I2C_STAT_ROVR	(1 << 11) /* Receive overrun */
-#define I2C_STAT_XUDF	(1 << 10) /* Transmit underflow */
-#define I2C_STAT_AAS	(1 << 9)  /* Address as slave */
-#define I2C_STAT_GC	(1 << 5)
-#define I2C_STAT_XRDY	(1 << 4)  /* Transmit data ready */
-#define I2C_STAT_RRDY	(1 << 3)  /* Receive data ready */
-#define I2C_STAT_ARDY	(1 << 2)  /* Register access ready */
-#define I2C_STAT_NACK	(1 << 1)  /* No acknowledgment interrupt enable */
-#define I2C_STAT_AL	(1 << 0)  /* Arbitration lost interrupt enable */
-
-/* I2C Interrupt Code Register (I2C_INTCODE): */
-
-#define I2C_INTCODE_MASK	7
-#define I2C_INTCODE_NONE	0
-#define I2C_INTCODE_AL		1	/* Arbitration lost */
-#define I2C_INTCODE_NAK		2	/* No acknowledgement/general call */
-#define I2C_INTCODE_ARDY	3	/* Register access ready */
-#define I2C_INTCODE_RRDY	4	/* Rcv data ready */
-#define I2C_INTCODE_XRDY	5	/* Xmit data ready */
-
-/* I2C Buffer Configuration Register (I2C_BUF): */
-
-#define I2C_BUF_RDMA_EN		(1 << 15) /* Receive DMA channel enable */
-#define I2C_BUF_XDMA_EN		(1 << 7)  /* Transmit DMA channel enable */
-
-/* I2C Configuration Register (I2C_CON): */
-
-#define I2C_CON_EN	(1 << 15)  /* I2C module enable */
-#define I2C_CON_BE	(1 << 14)  /* Big endian mode */
-#define I2C_CON_STB	(1 << 11)  /* Start byte mode (master mode only) */
-#define I2C_CON_MST	(1 << 10)  /* Master/slave mode */
-#define I2C_CON_TRX	(1 << 9)   /* Transmitter/receiver mode */
-				   /* (master mode only) */
-#define I2C_CON_XA	(1 << 8)   /* Expand address */
-#define I2C_CON_STP	(1 << 1)   /* Stop condition (master mode only) */
-#define I2C_CON_STT	(1 << 0)   /* Start condition (master mode only) */
-
-/* I2C System Test Register (I2C_SYSTEST): */
-
-#define I2C_SYSTEST_ST_EN	(1 << 15) /* System test enable */
-#define I2C_SYSTEST_FREE	(1 << 14) /* Free running mode, on brkpoint) */
-#define I2C_SYSTEST_TMODE_MASK	(3 << 12) /* Test mode select */
-#define I2C_SYSTEST_TMODE_SHIFT	(12)	  /* Test mode select */
-#define I2C_SYSTEST_SCL_I	(1 << 3)  /* SCL line sense input value */
-#define I2C_SYSTEST_SCL_O	(1 << 2)  /* SCL line drive output value */
-#define I2C_SYSTEST_SDA_I	(1 << 1)  /* SDA line sense input value */
-#define I2C_SYSTEST_SDA_O	(1 << 0)  /* SDA line drive output value */
-
-#define I2C_SCLL_SCLL		0
-#define I2C_SCLL_SCLL_M		0xFF
-#define I2C_SCLL_HSSCLL		8
-#define I2C_SCLH_HSSCLL_M	0xFF
-#define I2C_SCLH_SCLH		0
-#define I2C_SCLH_SCLH_M		0xFF
-#define I2C_SCLH_HSSCLH		8
-#define I2C_SCLH_HSSCLH_M	0xFF
-
-#define OMAP_I2C_STANDARD	100000
-#define OMAP_I2C_FAST_MODE	400000
-#define OMAP_I2C_HIGH_SPEED	3400000
-
-#define SYSTEM_CLOCK_12		12000000
-#define SYSTEM_CLOCK_13		13000000
-#define SYSTEM_CLOCK_192	19200000
-#define SYSTEM_CLOCK_96		96000000
-
-/* Use the reference value of 96MHz if not explicitly set by the board */
-#ifndef I2C_IP_CLK
-#define I2C_IP_CLK		SYSTEM_CLOCK_96
-#endif
-
-/*
- * The reference minimum clock for high speed is 19.2MHz.
- * The linux 2.6.30 kernel uses this value.
- * The reference minimum clock for fast mode is 9.6MHz
- * The reference minimum clock for standard mode is 4MHz
- * In TRM, the value of 12MHz is used.
- */
-#ifndef I2C_INTERNAL_SAMPLING_CLK
-#define I2C_INTERNAL_SAMPLING_CLK	19200000
-#endif
-
-/*
- * The equation for the low and high time is
- * tlow = scll + scll_trim = (sampling clock * tlow_duty) / speed
- * thigh = sclh + sclh_trim = (sampling clock * (1 - tlow_duty)) / speed
- *
- * If the duty cycle is 50%
- *
- * tlow = scll + scll_trim = sampling clock / (2 * speed)
- * thigh = sclh + sclh_trim = sampling clock / (2 * speed)
- *
- * In TRM
- * scll_trim = 7
- * sclh_trim = 5
- *
- * The linux 2.6.30 kernel uses
- * scll_trim = 6
- * sclh_trim = 6
- *
- * These are the trim values for standard and fast speed
- */
-#ifndef I2C_FASTSPEED_SCLL_TRIM
-#define I2C_FASTSPEED_SCLL_TRIM		6
-#endif
-#ifndef I2C_FASTSPEED_SCLH_TRIM
-#define I2C_FASTSPEED_SCLH_TRIM		6
-#endif
-
-/* These are the trim values for high speed */
-#ifndef I2C_HIGHSPEED_PHASE_ONE_SCLL_TRIM
-#define I2C_HIGHSPEED_PHASE_ONE_SCLL_TRIM	I2C_FASTSPEED_SCLL_TRIM
-#endif
-#ifndef I2C_HIGHSPEED_PHASE_ONE_SCLH_TRIM
-#define I2C_HIGHSPEED_PHASE_ONE_SCLH_TRIM	I2C_FASTSPEED_SCLH_TRIM
-#endif
-#ifndef I2C_HIGHSPEED_PHASE_TWO_SCLL_TRIM
-#define I2C_HIGHSPEED_PHASE_TWO_SCLL_TRIM	I2C_FASTSPEED_SCLL_TRIM
-#endif
-#ifndef I2C_HIGHSPEED_PHASE_TWO_SCLH_TRIM
-#define I2C_HIGHSPEED_PHASE_TWO_SCLH_TRIM	I2C_FASTSPEED_SCLH_TRIM
-#endif
-
-#define I2C_PSC_MAX		0x0f
-#define I2C_PSC_MIN		0x00
-
-#endif /* _I2C_H_ */
+#endif /* _OMAP3_I2C_H_ */
diff --git a/arch/arm/include/asm/arch-omap4/i2c.h b/arch/arm/include/asm/arch-omap4/i2c.h
new file mode 100644
index 0000000..a91b4c2
--- /dev/null
+++ b/arch/arm/include/asm/arch-omap4/i2c.h
@@ -0,0 +1,74 @@
+/*
+ * (C) Copyright 2004-2010
+ * Texas Instruments, <www.ti.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., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#ifndef _OMAP4_I2C_H_
+#define _OMAP4_I2C_H_
+
+#define I2C_BUS_MAX	3
+#define I2C_DEFAULT_BASE	I2C_BASE1
+
+struct i2c {
+	unsigned short revnb_lo;	/* 0x00 */
+	unsigned short res1;
+	unsigned short revnb_hi;	/* 0x04 */
+	unsigned short res2[13];
+	unsigned short sysc;		/* 0x20 */
+	unsigned short res3;
+	unsigned short irqstatus_raw;	/* 0x24 */
+	unsigned short res4;
+	unsigned short stat;		/* 0x28 */
+	unsigned short res5;
+	unsigned short ie;		/* 0x2C */
+	unsigned short res6;
+	unsigned short irqenable_clr;	/* 0x30 */
+	unsigned short res7;
+	unsigned short iv;		/* 0x34 */
+	unsigned short res8[45];
+	unsigned short syss;		/* 0x90 */
+	unsigned short res9;
+	unsigned short buf;		/* 0x94 */
+	unsigned short res10;
+	unsigned short cnt;		/* 0x98 */
+	unsigned short res11;
+	unsigned short data;		/* 0x9C */
+	unsigned short res13;
+	unsigned short res14;		/* 0xA0 */
+	unsigned short res15;
+	unsigned short con;		/* 0xA4 */
+	unsigned short res16;
+	unsigned short oa;		/* 0xA8 */
+	unsigned short res17;
+	unsigned short sa;		/* 0xAC */
+	unsigned short res18;
+	unsigned short psc;		/* 0xB0 */
+	unsigned short res19;
+	unsigned short scll;		/* 0xB4 */
+	unsigned short res20;
+	unsigned short sclh;		/* 0xB8 */
+	unsigned short res21;
+	unsigned short systest;		/* 0xBC */
+	unsigned short res22;
+	unsigned short bufstat;		/* 0xC0 */
+	unsigned short res23;
+};
+
+#endif /* _OMAP4_I2C_H_ */
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
index ff18991..3256133 100644
--- a/drivers/i2c/omap24xx_i2c.c
+++ b/drivers/i2c/omap24xx_i2c.c
@@ -25,6 +25,8 @@
 #include <asm/arch/i2c.h>
 #include <asm/io.h>
 
+#include "omap24xx_i2c.h"
+
 static void wait_for_bb (void);
 static u16 wait_for_pin (void);
 static void flush_fifo(void);
@@ -176,7 +178,8 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
 
 		status = wait_for_pin ();
 		if (status & I2C_STAT_RRDY) {
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 			*value = readb (&i2c_base->data);
 #else
 			*value = readw (&i2c_base->data);
@@ -221,7 +224,8 @@ static int i2c_write_byte (u8 devaddr, u8 regoffset, u8 value)
 	status = wait_for_pin ();
 
 	if (status & I2C_STAT_XRDY) {
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 		/* send out 1 byte */
 		writeb (regoffset, &i2c_base->data);
 		writew (I2C_STAT_XRDY, &i2c_base->stat);
@@ -274,7 +278,8 @@ static void flush_fifo(void)
 	while(1){
 		stat = readw(&i2c_base->stat);
 		if(stat == I2C_STAT_RRDY){
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 			readb(&i2c_base->data);
 #else
 			readw(&i2c_base->data);
@@ -435,3 +440,9 @@ int i2c_set_bus_num(unsigned int bus)
 
 	return 0;
 }
+
+int i2c_get_bus_num(void)
+{
+	return (int) current_bus;
+}
+
diff --git a/arch/arm/include/asm/arch-omap3/i2c.h b/drivers/i2c/omap24xx_i2c.h
similarity index 85%
copy from arch/arm/include/asm/arch-omap3/i2c.h
copy to drivers/i2c/omap24xx_i2c.h
index 490e03b..92a3416 100644
--- a/arch/arm/include/asm/arch-omap3/i2c.h
+++ b/drivers/i2c/omap24xx_i2c.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2004-2008
+ * (C) Copyright 2004-2010
  * Texas Instruments, <www.ti.com>
  *
  * See file CREDITS for list of people who contributed to this
@@ -20,45 +20,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
  */
-#ifndef _I2C_H_
-#define _I2C_H_
-
-#define I2C_DEFAULT_BASE	I2C_BASE1
-
-struct i2c {
-	unsigned short rev;	/* 0x00 */
-	unsigned short res1;
-	unsigned short ie;	/* 0x04 */
-	unsigned short res2;
-	unsigned short stat;	/* 0x08 */
-	unsigned short res3;
-	unsigned short iv;	/* 0x0C */
-	unsigned short res4[3];
-	unsigned short buf;	/* 0x14 */
-	unsigned short res5;
-	unsigned short cnt;	/* 0x18 */
-	unsigned short res6;
-	unsigned short data;	/* 0x1C */
-	unsigned short res7;
-	unsigned short sysc;	/* 0x20 */
-	unsigned short res8;
-	unsigned short con;	/* 0x24 */
-	unsigned short res9;
-	unsigned short oa;	/* 0x28 */
-	unsigned short res10;
-	unsigned short sa;	/* 0x2C */
-	unsigned short res11;
-	unsigned short psc;	/* 0x30 */
-	unsigned short res12;
-	unsigned short scll;	/* 0x34 */
-	unsigned short res13;
-	unsigned short sclh;	/* 0x38 */
-	unsigned short res14;
-	unsigned short systest;	/* 0x3c */
-	unsigned short res15;
-};
-
-#define I2C_BUS_MAX	3
+#ifndef _OMAP24XX_I2C_H_
+#define _OMAP24XX_I2C_H_
 
 /* I2C masks */
 
@@ -200,4 +163,4 @@ struct i2c {
 #define I2C_PSC_MAX		0x0f
 #define I2C_PSC_MIN		0x00
 
-#endif /* _I2C_H_ */
+#endif /* _OMAP24XX_I2C_H_ */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 09/10] ARMV7: Enable i2c support on TI OMAP4 SDP
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (7 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 08/10] ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4 Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 10/10] ARMV7: Enable i2c support on TI OMAP4 Panda Steve Sakoman
  2010-06-18 21:10 ` [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Peter Tyser
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

This patch enables the i2c driver, i2c commands, and i2c multi-bus support

Signed-off-by: Steve Sakoman
Acked-by: Heiko Schocher<hs@denx.de>
---
 include/configs/omap4_sdp4430.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/include/configs/omap4_sdp4430.h b/include/configs/omap4_sdp4430.h
index 3a14d34..8121554 100644
--- a/include/configs/omap4_sdp4430.h
+++ b/include/configs/omap4_sdp4430.h
@@ -94,6 +94,15 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* I2C  */
+#define CONFIG_HARD_I2C			1
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SLAVE		1
+#define CONFIG_SYS_I2C_BUS		0
+#define CONFIG_SYS_I2C_BUS_SELECT	1
+#define CONFIG_DRIVER_OMAP34XX_I2C	1
+#define CONFIG_I2C_MULTI_BUS		1
+
 /* MMC */
 #define CONFIG_MMC			1
 #define CONFIG_OMAP3_MMC		1
@@ -109,6 +118,7 @@
 /* Enabled commands */
 #define CONFIG_CMD_EXT2		/* EXT2 Support                 */
 #define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_I2C		/* I2C serial bus support	*/
 #define CONFIG_CMD_MMC		/* MMC support                  */
 
 /* Disabled commands */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 10/10] ARMV7: Enable i2c support on TI OMAP4 Panda
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (8 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 09/10] ARMV7: Enable i2c support on TI OMAP4 SDP Steve Sakoman
@ 2010-06-18 20:42 ` Steve Sakoman
  2010-06-18 21:10 ` [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Peter Tyser
  10 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 20:42 UTC (permalink / raw)
  To: u-boot

This patch enables the i2c driver, i2c commands, and i2c multi-bus support

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Acked-by: Heiko Schocher<hs@denx.de>
---
 include/configs/omap4_panda.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/include/configs/omap4_panda.h b/include/configs/omap4_panda.h
index 9302ecb..a15c5f5 100644
--- a/include/configs/omap4_panda.h
+++ b/include/configs/omap4_panda.h
@@ -93,6 +93,15 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* I2C  */
+#define CONFIG_HARD_I2C			1
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SLAVE		1
+#define CONFIG_SYS_I2C_BUS		0
+#define CONFIG_SYS_I2C_BUS_SELECT	1
+#define CONFIG_DRIVER_OMAP34XX_I2C	1
+#define CONFIG_I2C_MULTI_BUS		1
+
 /* MMC */
 #define CONFIG_MMC			1
 #define CONFIG_OMAP3_MMC		1
@@ -108,6 +117,7 @@
 /* Enabled commands */
 #define CONFIG_CMD_EXT2		/* EXT2 Support                 */
 #define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_I2C		/* I2C serial bus support	*/
 #define CONFIG_CMD_MMC		/* MMC support                  */
 
 /* Disabled commands */
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda
  2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
                   ` (9 preceding siblings ...)
  2010-06-18 20:42 ` [U-Boot] [PATCH v3 10/10] ARMV7: Enable i2c support on TI OMAP4 Panda Steve Sakoman
@ 2010-06-18 21:10 ` Peter Tyser
  2010-06-18 21:53   ` Steve Sakoman
  10 siblings, 1 reply; 15+ messages in thread
From: Peter Tyser @ 2010-06-18 21:10 UTC (permalink / raw)
  To: u-boot

Hi Steve,

> Steve Sakoman (10):
>   ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
>   ARMV7: Add basic support for TI OMAP4
>   ARMV7: Add support for TI OMAP4430 SDP
>   ARMV7: Add support for TI OMAP4 Panda
>   ARMV7: Restructure OMAP mmc driver to allow code sharing between
>     OMAP3 and OMAP4
>   ARMV7: Enable mmc support on TI OMAP4430 SDP
>   ARMV7: Enable mmc support on TI OMAP4 Panda
>   ARMV7: Restructure OMAP i2c driver to allow code sharing between
>     OMAP3 and OMAP4
>   ARMV7: Enable i2c support on TI OMAP4 SDP
>   ARMV7: Enable i2c support on TI OMAP4 Panda

It'd be preferred if you could reorganize the patch series to first make
all CPU/SOC changes, then finally do 1 patch for each board.  This is
generally considered cleaner than having patches bouncing back and forth
between common and board specific code.  Right now the SDP and Panda
boards each require 3 patches when 1 patch apiece should suffice.  eg:
ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
ARMV7: Add basic support for TI OMAP4
ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4
ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4
ARMV7: Add support for TI OMAP4430 SDP
ARMV7: Add support for TI OMAP4 Panda

Best,
Peter

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda
  2010-06-18 21:10 ` [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Peter Tyser
@ 2010-06-18 21:53   ` Steve Sakoman
  2010-06-18 22:19     ` Wolfgang Denk
  0 siblings, 1 reply; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 21:53 UTC (permalink / raw)
  To: u-boot

On Fri, 2010-06-18 at 16:10 -0500, Peter Tyser wrote:
> Hi Steve,
> 
> > Steve Sakoman (10):
> >   ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
> >   ARMV7: Add basic support for TI OMAP4
> >   ARMV7: Add support for TI OMAP4430 SDP
> >   ARMV7: Add support for TI OMAP4 Panda
> >   ARMV7: Restructure OMAP mmc driver to allow code sharing between
> >     OMAP3 and OMAP4
> >   ARMV7: Enable mmc support on TI OMAP4430 SDP
> >   ARMV7: Enable mmc support on TI OMAP4 Panda
> >   ARMV7: Restructure OMAP i2c driver to allow code sharing between
> >     OMAP3 and OMAP4
> >   ARMV7: Enable i2c support on TI OMAP4 SDP
> >   ARMV7: Enable i2c support on TI OMAP4 Panda
> 
> It'd be preferred if you could reorganize the patch series to first make
> all CPU/SOC changes, then finally do 1 patch for each board.  This is
> generally considered cleaner than having patches bouncing back and forth
> between common and board specific code.  Right now the SDP and Panda
> boards each require 3 patches when 1 patch apiece should suffice.  eg:
> ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
> ARMV7: Add basic support for TI OMAP4
> ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4
> ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4
> ARMV7: Add support for TI OMAP4430 SDP
> ARMV7: Add support for TI OMAP4 Panda

In the past I've had complaints that I should break each piece of
functionality into a separate patch :-)

I'm happy to do whatever is preferred!  Wolfgang, would you like a v4
with the proposed structure?

Regards,

Steve

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda
  2010-06-18 21:53   ` Steve Sakoman
@ 2010-06-18 22:19     ` Wolfgang Denk
  2010-06-18 22:36       ` Steve Sakoman
  0 siblings, 1 reply; 15+ messages in thread
From: Wolfgang Denk @ 2010-06-18 22:19 UTC (permalink / raw)
  To: u-boot

Dear Steve Sakoman,

In message <1276898035.15574.235.camel@quadra> you wrote:
> On Fri, 2010-06-18 at 16:10 -0500, Peter Tyser wrote:
...
> > It'd be preferred if you could reorganize the patch series to first make
> > all CPU/SOC changes, then finally do 1 patch for each board.  This is
> > generally considered cleaner than having patches bouncing back and forth
> > between common and board specific code.  Right now the SDP and Panda
> > boards each require 3 patches when 1 patch apiece should suffice.  eg:
> > ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
> > ARMV7: Add basic support for TI OMAP4
> > ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4
> > ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4
> > ARMV7: Add support for TI OMAP4430 SDP
> > ARMV7: Add support for TI OMAP4 Panda
> 
> In the past I've had complaints that I should break each piece of
> functionality into a separate patch :-)

Well, the rules are formulated as clear as I could (improvments always
welcome!) - please see "General Patch Submission Rules" bullet # 2 at
http://www.denx.de/wiki/U-Boot/Patches

> I'm happy to do whatever is preferred!  Wolfgang, would you like a v4
> with the proposed structure?

Yes, please. Peter is absolutely right.  And please keep in mind that
at each step in your patch series the code must be buildable and
runnable, so we can use git bisect to isolate problems.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In the beginning there was nothing.
And the Lord said "Let There Be Light!"
And still there was nothing, but at least now you could see it.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda
  2010-06-18 22:19     ` Wolfgang Denk
@ 2010-06-18 22:36       ` Steve Sakoman
  0 siblings, 0 replies; 15+ messages in thread
From: Steve Sakoman @ 2010-06-18 22:36 UTC (permalink / raw)
  To: u-boot

On Sat, 2010-06-19 at 00:19 +0200, Wolfgang Denk wrote:

> Yes, please. Peter is absolutely right.  And please keep in mind that
> at each step in your patch series the code must be buildable and
> runnable, so we can use git bisect to isolate problems.

OK, will do.  Version 4 will be on the way shortly!

Steve

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2010-06-18 22:36 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-18 20:42 [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 01/10] ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7 Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 02/10] ARMV7: Add basic support for TI OMAP4 Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 03/10] ARMV7: Add support for TI OMAP4430 SDP Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 04/10] ARMV7: Add support for TI OMAP4 Panda Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 05/10] ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4 Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 06/10] ARMV7: Enable mmc support on TI OMAP4430 SDP Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 07/10] ARMV7: Enable mmc support on TI OMAP4 Panda Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 08/10] ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4 Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 09/10] ARMV7: Enable i2c support on TI OMAP4 SDP Steve Sakoman
2010-06-18 20:42 ` [U-Boot] [PATCH v3 10/10] ARMV7: Enable i2c support on TI OMAP4 Panda Steve Sakoman
2010-06-18 21:10 ` [U-Boot] [PATCH v3 00/10] Add support for TI OMAP4 SDP and Panda Peter Tyser
2010-06-18 21:53   ` Steve Sakoman
2010-06-18 22:19     ` Wolfgang Denk
2010-06-18 22:36       ` Steve Sakoman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox