]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of ../master
authorWolfgang Denk <wd@denx.de>
Thu, 15 Jul 2010 20:48:46 +0000 (22:48 +0200)
committerWolfgang Denk <wd@denx.de>
Thu, 15 Jul 2010 20:48:46 +0000 (22:48 +0200)
77 files changed:
MAINTAINERS
MAKEALL
Makefile
arch/arm/cpu/armv7/Makefile [moved from arch/arm/cpu/arm_cortexa8/Makefile with 100% similarity]
arch/arm/cpu/armv7/config.mk [moved from arch/arm/cpu/arm_cortexa8/config.mk with 100% similarity]
arch/arm/cpu/armv7/cpu.c [moved from arch/arm/cpu/arm_cortexa8/cpu.c with 100% similarity]
arch/arm/cpu/armv7/mx51/Makefile [moved from arch/arm/cpu/arm_cortexa8/mx51/Makefile with 100% similarity]
arch/arm/cpu/armv7/mx51/clock.c [moved from arch/arm/cpu/arm_cortexa8/mx51/clock.c with 100% similarity]
arch/arm/cpu/armv7/mx51/iomux.c [moved from arch/arm/cpu/arm_cortexa8/mx51/iomux.c with 100% similarity]
arch/arm/cpu/armv7/mx51/lowlevel_init.S [moved from arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S with 100% similarity]
arch/arm/cpu/armv7/mx51/soc.c [moved from arch/arm/cpu/arm_cortexa8/mx51/soc.c with 100% similarity]
arch/arm/cpu/armv7/mx51/speed.c [moved from arch/arm/cpu/arm_cortexa8/mx51/speed.c with 100% similarity]
arch/arm/cpu/armv7/mx51/timer.c [moved from arch/arm/cpu/arm_cortexa8/mx51/timer.c with 100% similarity]
arch/arm/cpu/armv7/mx51/u-boot.lds [moved from arch/arm/cpu/arm_cortexa8/mx51/u-boot.lds with 97% similarity]
arch/arm/cpu/armv7/omap-common/Makefile [new file with mode: 0644]
arch/arm/cpu/armv7/omap-common/config.mk [new file with mode: 0644]
arch/arm/cpu/armv7/omap-common/reset.S [moved from arch/arm/cpu/arm_cortexa8/omap3/reset.S with 100% similarity]
arch/arm/cpu/armv7/omap-common/timer.c [moved from arch/arm/cpu/arm_cortexa8/omap3/timer.c with 96% similarity]
arch/arm/cpu/armv7/omap3/Makefile [moved from arch/arm/cpu/arm_cortexa8/omap3/Makefile with 97% similarity]
arch/arm/cpu/armv7/omap3/board.c [moved from arch/arm/cpu/arm_cortexa8/omap3/board.c with 100% similarity]
arch/arm/cpu/armv7/omap3/cache.S [moved from arch/arm/cpu/arm_cortexa8/omap3/cache.S with 100% similarity]
arch/arm/cpu/armv7/omap3/clock.c [moved from arch/arm/cpu/arm_cortexa8/omap3/clock.c with 100% similarity]
arch/arm/cpu/armv7/omap3/emif4.c [moved from arch/arm/cpu/arm_cortexa8/omap3/emif4.c with 100% similarity]
arch/arm/cpu/armv7/omap3/gpio.c [moved from arch/arm/cpu/arm_cortexa8/omap3/gpio.c with 100% similarity]
arch/arm/cpu/armv7/omap3/lowlevel_init.S [moved from arch/arm/cpu/arm_cortexa8/omap3/lowlevel_init.S with 100% similarity]
arch/arm/cpu/armv7/omap3/mem.c [moved from arch/arm/cpu/arm_cortexa8/omap3/mem.c with 100% similarity]
arch/arm/cpu/armv7/omap3/sdrc.c [moved from arch/arm/cpu/arm_cortexa8/omap3/sdrc.c with 100% similarity]
arch/arm/cpu/armv7/omap3/sys_info.c [moved from arch/arm/cpu/arm_cortexa8/omap3/sys_info.c with 100% similarity]
arch/arm/cpu/armv7/omap3/syslib.c [moved from arch/arm/cpu/arm_cortexa8/omap3/syslib.c with 100% similarity]
arch/arm/cpu/armv7/omap4/Makefile [new file with mode: 0644]
arch/arm/cpu/armv7/omap4/board.c [new file with mode: 0644]
arch/arm/cpu/armv7/omap4/lowlevel_init.S [new file with mode: 0644]
arch/arm/cpu/armv7/omap4/sys_info.c [new file with mode: 0644]
arch/arm/cpu/armv7/s5pc1xx/Makefile [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/Makefile with 100% similarity]
arch/arm/cpu/armv7/s5pc1xx/cache.S [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S with 98% similarity]
arch/arm/cpu/armv7/s5pc1xx/clock.c [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/clock.c with 100% similarity]
arch/arm/cpu/armv7/s5pc1xx/cpu_info.c [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/cpu_info.c with 100% similarity]
arch/arm/cpu/armv7/s5pc1xx/reset.S [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/reset.S with 100% similarity]
arch/arm/cpu/armv7/s5pc1xx/sromc.c [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/sromc.c with 100% similarity]
arch/arm/cpu/armv7/s5pc1xx/timer.c [moved from arch/arm/cpu/arm_cortexa8/s5pc1xx/timer.c with 100% similarity]
arch/arm/cpu/armv7/start.S [moved from arch/arm/cpu/arm_cortexa8/start.S with 100% similarity]
arch/arm/cpu/armv7/u-boot.lds [moved from arch/arm/cpu/arm_cortexa8/u-boot.lds with 97% similarity]
arch/arm/include/asm/arch-mx51/asm-offsets.h
arch/arm/include/asm/arch-omap3/i2c.h
arch/arm/include/asm/arch-omap3/mmc_host_def.h
arch/arm/include/asm/arch-omap4/cpu.h [new file with mode: 0644]
arch/arm/include/asm/arch-omap4/i2c.h [new file with mode: 0644]
arch/arm/include/asm/arch-omap4/mmc_host_def.h [new file with mode: 0644]
arch/arm/include/asm/arch-omap4/omap4.h [new file with mode: 0644]
arch/arm/include/asm/arch-omap4/sys_proto.h [new file with mode: 0644]
board/logicpd/zoom2/zoom2.c
board/ti/panda/Makefile [new file with mode: 0644]
board/ti/panda/config.mk [new file with mode: 0644]
board/ti/panda/panda.c [new file with mode: 0644]
board/ti/sdp4430/Makefile [new file with mode: 0644]
board/ti/sdp4430/config.mk [new file with mode: 0644]
board/ti/sdp4430/sdp.c [new file with mode: 0644]
boards.cfg
drivers/i2c/omap24xx_i2c.c
drivers/i2c/omap24xx_i2c.h [new file with mode: 0644]
drivers/mmc/omap3_mmc.c
drivers/mmc/omap3_mmc.h [moved from arch/arm/include/asm/arch-omap3/mmc.h with 99% similarity]
drivers/spi/davinci_spi.c
include/configs/am3517_evm.h
include/configs/devkit8000.h
include/configs/omap3_beagle.h
include/configs/omap3_evm.h
include/configs/omap3_overo.h
include/configs/omap3_pandora.h
include/configs/omap3_sdp3430.h
include/configs/omap3_zoom1.h
include/configs/omap3_zoom2.h
include/configs/omap4_panda.h [new file with mode: 0644]
include/configs/omap4_sdp4430.h [new file with mode: 0644]
include/configs/s5p_goni.h
include/configs/smdkc100.h
include/mmc.h

index 0948baba6a32d256c114fafef9c356ccf29d105f..e5ad0cfb5bad04180f4441ff5933633e547d80f2 100644 (file)
@@ -555,7 +555,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>
 
@@ -621,11 +621,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>
 
@@ -655,12 +655,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 @@ Sergey Lapin <slapin@ossfans.org>
 
 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,9 @@ 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)
+       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 72fcecff1cad39e67fc571800aaa19281ef7a90e..39b13e9c081389504ececedb9cb0e808fb04de78 100755 (executable)
--- a/MAKEALL
+++ b/MAKEALL
@@ -646,9 +646,9 @@ LIST_ARM11="                        \
 "
 
 #########################################################################
-## ARM Cortex-A8 Systems
+## ARMV7 Systems
 #########################################################################
-LIST_ARM_CORTEX_A8="           \
+LIST_ARMV7="           \
        am3517_evm              \
        devkit8000              \
        mx51evk                 \
@@ -659,6 +659,8 @@ LIST_ARM_CORTEX_A8="                \
        omap3_sdp3430           \
        omap3_zoom1             \
        omap3_zoom2             \
+       omap4_panda             \
+       omap4_sdp4430           \
        s5p_goni                \
        smdkc100                \
 "
@@ -741,7 +743,7 @@ LIST_arm="                  \
        ${LIST_ARM9}            \
        ${LIST_ARM10}           \
        ${LIST_ARM11}           \
-       ${LIST_ARM_CORTEX_A8}   \
+       ${LIST_ARMV7}   \
        ${LIST_at91}            \
        ${LIST_pxa}             \
        ${LIST_ixp}             \
@@ -1005,7 +1007,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 \
index 9c4e3a44806337ebe9d24e4f4e06c6ad87458083..bba41cb125d507da22f8a92a85f593bbc3bbe518 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -245,6 +245,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)
 
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 2953b9363215db832930050ff1501d6cfe7efc51..d66434c95d62ce4a8405a5fc105c431c081f4e3a 100644 (file)
@@ -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/armv7/omap-common/Makefile b/arch/arm/cpu/armv7/omap-common/Makefile
new file mode 100644 (file)
index 0000000..3a4a304
--- /dev/null
@@ -0,0 +1,46 @@
+#
+# (C) Copyright 2000-2003
+# Wolfgang Denk, DENX Software Engineering, wd@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)libomap-common.a
+
+SOBJS  := reset.o
+COBJS  := timer.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+
+all:   $(obj).depend $(LIB)
+
+$(LIB):        $(OBJS)
+       $(AR) $(ARFLAGS) $@ $(OBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/arch/arm/cpu/armv7/omap-common/config.mk b/arch/arm/cpu/armv7/omap-common/config.mk
new file mode 100644 (file)
index 0000000..49ac9c7
--- /dev/null
@@ -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,))
similarity index 96%
rename from arch/arm/cpu/arm_cortexa8/omap3/timer.c
rename to arch/arm/cpu/armv7/omap-common/timer.c
index 401bfe6d09799525aa8ee71cebf80cfd2630f25f..69e285ff1dd9b86e0a285f065c64562edf5cac00 100644 (file)
@@ -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);
 
similarity index 97%
rename from arch/arm/cpu/arm_cortexa8/omap3/Makefile
rename to arch/arm/cpu/armv7/omap3/Makefile
index 7d63c6beca879ffc16cd0987a0b8cb0c1c12e430..79ae26706e710e7227fbd1b1d0e5d77719318ade 100644 (file)
@@ -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/omap4/Makefile b/arch/arm/cpu/armv7/omap4/Makefile
new file mode 100644 (file)
index 0000000..ecf64f9
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# (C) Copyright 2000-2010
+# Wolfgang Denk, DENX Software Engineering, wd@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$(SOC).a
+
+SOBJS  += lowlevel_init.o
+
+COBJS  += board.o
+COBJS  += sys_info.o
+
+SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS) $(SOBJS))
+
+all:    $(obj).depend $(LIB)
+
+$(LIB):        $(OBJS)
+       $(AR) $(ARFLAGS) $@ $(OBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/arch/arm/cpu/armv7/omap4/board.c b/arch/arm/cpu/armv7/omap4/board.c
new file mode 100644 (file)
index 0000000..5bf7173
--- /dev/null
@@ -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/omap4/lowlevel_init.S b/arch/arm/cpu/armv7/omap4/lowlevel_init.S
new file mode 100644 (file)
index 0000000..9a181eb
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ *
+ * 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 <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}
+
diff --git a/arch/arm/cpu/armv7/omap4/sys_info.c b/arch/arm/cpu/armv7/omap4/sys_info.c
new file mode 100644 (file)
index 0000000..3b73191
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * 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
+ * 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>
+
+/*
+ *  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;
+}
+
similarity index 98%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S
rename to arch/arm/cpu/armv7/s5pc1xx/cache.S
index 906118d8208f1d31aea60dd546274b1ec570d2cd..7734b328d73284431ac11bc831e3266bb08eb5a0 100644 (file)
@@ -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.
similarity index 97%
rename from arch/arm/cpu/arm_cortexa8/u-boot.lds
rename to arch/arm/cpu/armv7/u-boot.lds
index 820e3a10431488310f25a14a0ffd30989ae881a6..9e5b5a97d7488de4bd4a7b1d08b04ee5da456f12 100644 (file)
@@ -34,7 +34,7 @@ SECTIONS
        . = ALIGN(4);
        .text   :
        {
-               arch/arm/cpu/arm_cortexa8/start.o       (.text)
+               arch/arm/cpu/armv7/start.o      (.text)
                *(.text)
        }
 
index fbba412aabe2093d61b168e3dd21e4fcce50e78a..afd27283af1266ece2a0f24c307286b5fc512843 100644 (file)
@@ -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
  */
index 490e03bb65e401c222b76a1049c4eb8edfc6477a..7a4a73aa913a6a1686a391f7dce4816e2d20e3e3 100644 (file)
  * 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_ */
index aa751c9a3469f46c6f83298524b28d9e1dcc5fab..43dd7050116d9f6ddf041741a5cffd49dd6a3ff2 100644 (file)
 #define T2_BASE                        0x48002000
 
 typedef struct t2 {
-       unsigned char res1[0x274];
+       unsigned char res1[0x274];      /* 0x000 */
        unsigned int devconf0;          /* 0x274 */
-       unsigned char res2[0x2A8];
+       unsigned char res2[0x060];      /* 0x278 */
+       unsigned int devconf1;          /* 0x2D8 */
+       unsigned char res3[0x244];      /* 0x2DC */
        unsigned int pbias_lite;        /* 0x520 */
 } t2_t;
 
 #define MMCSDIO1ADPCLKISEL             (1 << 24)
+#define MMCSDIO2ADPCLKISEL             (1 << 6)
+
+#define EN_MMC1                                (1 << 24)
+#define EN_MMC2                                (1 << 25)
+#define EN_MMC3                                (1 << 30)
 
 #define PBIASLITEPWRDNZ0               (1 << 1)
 #define PBIASSPEEDCTRL0                        (1 << 2)
@@ -44,7 +51,9 @@ typedef struct t2 {
 /*
  * OMAP HSMMC register definitions
  */
-#define OMAP_HSMMC_BASE                0x4809C000
+#define OMAP_HSMMC1_BASE       0x4809C000
+#define OMAP_HSMMC2_BASE       0x480B4000
+#define OMAP_HSMMC3_BASE       0x480AD000
 
 typedef struct hsmmc {
        unsigned char res1[0x10];
diff --git a/arch/arm/include/asm/arch-omap4/cpu.h b/arch/arm/include/asm/arch-omap4/cpu.h
new file mode 100644 (file)
index 0000000..7d8aa20
--- /dev/null
@@ -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/i2c.h b/arch/arm/include/asm/arch-omap4/i2c.h
new file mode 100644 (file)
index 0000000..a91b4c2
--- /dev/null
@@ -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/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 (file)
index 0000000..e5d8b53
--- /dev/null
@@ -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/arch/arm/include/asm/arch-omap4/omap4.h b/arch/arm/include/asm/arch-omap4/omap4.h
new file mode 100644 (file)
index 0000000..d123d6a
--- /dev/null
@@ -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/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h
new file mode 100644 (file)
index 0000000..6f4d3d5
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * (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
+ * 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 _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;
+
+#endif
index 6455d1dc3cb087e58e297a30d16b20a86c2adec6..e9f6625ce02841a14fbbc4d3449f678974812568 100644 (file)
@@ -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/board/ti/panda/Makefile b/board/ti/panda/Makefile
new file mode 100644 (file)
index 0000000..81e5469
--- /dev/null
@@ -0,0 +1,49 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd@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 (file)
index 0000000..7382263
--- /dev/null
@@ -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 (file)
index 0000000..46a5d1d
--- /dev/null
@@ -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/board/ti/sdp4430/Makefile b/board/ti/sdp4430/Makefile
new file mode 100644 (file)
index 0000000..2554c7b
--- /dev/null
@@ -0,0 +1,49 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd@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 (file)
index 0000000..7382263
--- /dev/null
@@ -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 (file)
index 0000000..6ae016c
--- /dev/null
@@ -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;
+}
index 17a6f93148ce2bfafeae82a12d0626bbbcbbf321..a9be4390ae0a0bf149e05220914de12dd06e7960 100644 (file)
@@ -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
@@ -253,17 +253,19 @@ 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
-am3517_evm     arm     arm_cortexa8    am3517evm       logicpd         omap3
-devkit8000     arm     arm_cortexa8    devkit8000      timll           omap3
-s5p_goni       arm     arm_cortexa8    goni            samsung         s5pc1xx
-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
+omap4_panda    arm     armv7           panda           ti              omap4
+omap4_sdp4430  arm     armv7           sdp4430         ti              omap4
+am3517_evm     arm     armv7           am3517evm       logicpd         omap3
+devkit8000     arm     armv7           devkit8000      timll           omap3
+s5p_goni       arm     armv7           goni            samsung         s5pc1xx
+smdkc100       arm     armv7           smdkc100        samsung         s5pc1xx
 ixdpg425       arm     ixp
 lpd7a400       arm     lh7a40x         lpd7a40x
 lpd7a404       arm     lh7a40x         lpd7a40x
index ff18991f0e49d9bdf536f9703af33ad1cfe09feb..3256133dc2ebbf897524af0d48411a0a44c55252 100644 (file)
@@ -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/drivers/i2c/omap24xx_i2c.h b/drivers/i2c/omap24xx_i2c.h
new file mode 100644 (file)
index 0000000..92a3416
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+ * (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 _OMAP24XX_I2C_H_
+#define _OMAP24XX_I2C_H_
+
+/* 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 /* _OMAP24XX_I2C_H_ */
index 96c0e653ba667d0976cdb7556ce2e3b3a7ee239b..9506cca21816bd063faf04c70a51d490b33159a3 100644 (file)
@@ -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)},
@@ -52,7 +53,27 @@ const unsigned short mmc_transspeed_val[15][4] = {
 
 mmc_card_data cur_card_data;
 static block_dev_desc_t mmc_blk_dev;
-static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC_BASE;
+static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
+
+int mmc_set_dev(int dev_num)
+{
+       switch (dev_num) {
+       case 1:
+               mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
+               break;
+       case 2:
+               mmc_base = (hsmmc_t *)OMAP_HSMMC2_BASE;
+               break;
+       case 3:
+               mmc_base = (hsmmc_t *)OMAP_HSMMC3_BASE;
+               break;
+       default:
+               mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
+               return 1;
+       }
+
+       return 0;
+}
 
 block_dev_desc_t *mmc_get_dev(int dev)
 {
@@ -61,12 +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;
-
 #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);
@@ -74,6 +97,20 @@ unsigned char mmc_board_init(void)
        writel(readl(&t2_base->devconf0) | MMCSDIO1ADPCLKISEL,
                &t2_base->devconf0);
 
+       writel(readl(&t2_base->devconf1) | MMCSDIO2ADPCLKISEL,
+               &t2_base->devconf1);
+
+       writel(readl(&prcm_base->fclken1_core) |
+               EN_MMC1 | EN_MMC2 | EN_MMC3,
+               &prcm_base->fclken1_core);
+
+       writel(readl(&prcm_base->iclken1_core) |
+               EN_MMC1 | EN_MMC2 | EN_MMC3,
+               &prcm_base->iclken1_core);
+#endif
+
+/* TODO add appropriate OMAP4 init */
+
        return 1;
 }
 
@@ -512,8 +549,11 @@ unsigned long mmc_bread(int dev_num, unsigned long blknr, lbaint_t blkcnt,
        return 1;
 }
 
-int mmc_legacy_init(int verbose)
+int mmc_legacy_init(int dev)
 {
+       if (mmc_set_dev(dev) != 0)
+               return 1;
+
        if (configure_mmc(&cur_card_data) != 1)
                return 1;
 
similarity index 99%
rename from arch/arm/include/asm/arch-omap3/mmc.h
rename to drivers/mmc/omap3_mmc.h
index 196ffdcff6eba5d1785418192ce952057a46b56c..cbb3dc3a3a63884afd344877c0496f96cb39b9d8 100644 (file)
@@ -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)
index 4518ecbbc80744a2c18bed252f1aece0f799b19c..13aca52c7e2add329fb2c4334f9d3bb4d1752684 100644 (file)
@@ -173,7 +173,7 @@ static int davinci_spi_read(struct spi_slave *slave, unsigned int len,
 }
 
 static int davinci_spi_write(struct spi_slave *slave, unsigned int len,
-               const u8 *txp, unsigned long flags)
+                            const u8 *txp, unsigned long flags)
 {
        struct davinci_spi_slave *ds = to_davinci_spi(slave);
        unsigned int data1_reg_val;
@@ -237,7 +237,7 @@ static int davinci_spi_read_write(struct spi_slave *slave, unsigned int len,
 #endif
 
 int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
-               const void *dout, void *din, unsigned long flags)
+            const void *dout, void *din, unsigned long flags)
 {
        unsigned int len;
 
@@ -266,6 +266,10 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
 #ifndef CONFIG_SPI_HALF_DUPLEX
        else
                return davinci_spi_read_write(slave, len, din, dout, flags);
+#else
+       printf("SPI full duplex transaction requested with "
+              "CONFIG_SPI_HALF_DUPLEX defined.\n");
+       flags |= SPI_XFER_END;
 #endif
 
 out:
index 513d005ee4f15bad978683a369f7039e3f7c0b60..10af21b1b8b3c5faf245b0d9e3d29c152b538132 100644 (file)
@@ -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 */
index 1076de6fcd0c27f001425c8d51920d084094c5e5..281577153fce2c6af4f49c9a6d211f11a5fca485 100644 (file)
@@ -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 */
index e018b217cf181f8f2ea91d137a241062abc2fe2c..ae5a7919d87a6ea83a82ecea23563600dac4c3e7 100644 (file)
@@ -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 */
index af7c65ad306c6b6c7a4c387543b0a316591da2ab..c4aa220f78900024875a89abee1fc8908ded30b3 100644 (file)
@@ -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 */
index b4418319f160bfc355c52707119f08515e746fca..3a3b389614c88f8e5e9954a3d014b9fec85961ce 100644 (file)
@@ -23,7 +23,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 */
index 9eba003c21fa1f9bc8b19efdb97de0495d845c84..3308aceb49264f9169b9382cbacf7b1adf6e08e2 100644 (file)
@@ -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 */
index d4482d3ae62a5ce696a7feea1a1da9a9a47c34c0..5439aa3dd9c74fb05e7fea2e20e79868f5bf0662 100644 (file)
@@ -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 */
index 1e88dc02e0d99270b55080d8f92efc1522d15ab8..f612e0fd19f7758c28528b81aee75f355f203d57 100644 (file)
@@ -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 */
index be9daf4fcdd375cc677c340df2020ad5c454802a..aaf929e08e284da5b2722d30fc4819572fa52cfc 100644 (file)
@@ -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/omap4_panda.h b/include/configs/omap4_panda.h
new file mode 100644 (file)
index 0000000..b1e40a3
--- /dev/null
@@ -0,0 +1,220 @@
+/*
+ * (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}
+
+/* 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
+#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_I2C         /* I2C serial bus support       */
+#define CONFIG_CMD_MMC         /* MMC support                  */
+
+/* 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" \
+       "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
+
+/*
+ * 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              "Panda # "
+#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 */
diff --git a/include/configs/omap4_sdp4430.h b/include/configs/omap4_sdp4430.h
new file mode 100644 (file)
index 0000000..8121554
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+ * (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}
+
+/* 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
+#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_I2C         /* I2C serial bus support       */
+#define CONFIG_CMD_MMC         /* MMC support                  */
+
+/* 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" \
+       "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
+
+/*
+ * 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 */
index 171ec94e761b0a9ef7dcaceac62ce2da6d992185..ff0dbd3c21ae5ff229f4160a429c6e0bc3f4796f 100644 (file)
@@ -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 */
index 09bce6d0fa612693fe663de7ba7fc2941eecb1ad..76a47c4456f3dac7e9ad730ce2637dff71f1fc83 100644 (file)
@@ -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 */
index 8973bc76583ad5affaacfb4259c7b7f194a7f76e..fcb237e81e4788c03408ceeb7d1fc94fcfc9b006 100644 (file)
@@ -271,6 +271,7 @@ int mmc_initialize(bd_t *bis);
 int mmc_init(struct mmc *mmc);
 int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size);
 struct mmc *find_mmc_device(int dev_num);
+int mmc_set_dev(int dev_num);
 void print_mmc_devices(char separator);
 int board_mmc_getcd(u8 *cd, struct mmc *mmc);