]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Separate omap24xx specific code from arm1136
authorSascha Hauer <s.hauer@pengutronix.de>
Sun, 30 Mar 2008 10:28:46 +0000 (11:28 +0100)
committerPeter Pearse <peter.pearse@arm.com>
Sun, 30 Mar 2008 10:28:46 +0000 (11:28 +0100)
Move omap24xx code to cpu/arm1136/omap24xx, rename include/asm-arm/arch-arm1136 to cpu/arm1136/omap24xx.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
16 files changed:
Makefile
cpu/arm1136/Makefile
cpu/arm1136/cpu.c
cpu/arm1136/omap24xx/Makefile [new file with mode: 0644]
cpu/arm1136/omap24xx/interrupts.c [moved from cpu/arm1136/interrupts.c with 50% similarity]
cpu/arm1136/omap24xx/start.S [new file with mode: 0644]
cpu/arm1136/start.S
include/asm-arm/arch-omap24xx/bits.h [moved from include/asm-arm/arch-arm1136/bits.h with 100% similarity]
include/asm-arm/arch-omap24xx/clocks.h [moved from include/asm-arm/arch-arm1136/clocks.h with 100% similarity]
include/asm-arm/arch-omap24xx/i2c.h [moved from include/asm-arm/arch-arm1136/i2c.h with 100% similarity]
include/asm-arm/arch-omap24xx/mem.h [moved from include/asm-arm/arch-arm1136/mem.h with 100% similarity]
include/asm-arm/arch-omap24xx/mux.h [moved from include/asm-arm/arch-arm1136/mux.h with 100% similarity]
include/asm-arm/arch-omap24xx/omap2420.h [moved from include/asm-arm/arch-arm1136/omap2420.h with 100% similarity]
include/asm-arm/arch-omap24xx/sizes.h [moved from include/asm-arm/arch-arm1136/sizes.h with 100% similarity]
include/asm-arm/arch-omap24xx/sys_info.h [moved from include/asm-arm/arch-arm1136/sys_info.h with 100% similarity]
include/asm-arm/arch-omap24xx/sys_proto.h [moved from include/asm-arm/arch-arm1136/sys_proto.h with 100% similarity]

index b9b09cb589c51212a11fa6c4dc124cf3ed31a5c2..9a49aecd7e743826c725006e2d1c0562698c2846 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2590,12 +2590,12 @@ zylonite_config :
 ## ARM1136 Systems
 #########################################################################
 omap2420h4_config      : unconfig
-       @$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4
+       @$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 NULL omap24xx
 
 apollon_config         : unconfig
        @mkdir -p $(obj)include
        @echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
-       @$(MKCONFIG) $(@:_config=) arm arm1136 apollon
+       @$(MKCONFIG) $(@:_config=) arm arm1136 apollon NULL omap24xx
        @echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk
 
 #========================================================================
index d5ac7d3fd980e66e909bbe55dadaf3c3906c3737..7701b03bbeb736a530a9ad970be5cbe01904f599 100644 (file)
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB    = $(obj)lib$(CPU).a
 
 START  = start.o
-COBJS  = interrupts.o cpu.o
+COBJS  = cpu.o
 
 SRCS   := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS   := $(addprefix $(obj),$(COBJS) $(SOBJS))
index fa78eaa7f06816373982b6577ef935a306a28e4e..90e955303b393a162d45e1a5efb389e3e9b7a50e 100644 (file)
@@ -33,9 +33,6 @@
 
 #include <common.h>
 #include <command.h>
-#if !defined(CONFIG_INTEGRATOR) && ! defined(CONFIG_ARCH_CINTEGRATOR)
-#include <asm/arch/omap2420.h>
-#endif
 
 #ifdef CONFIG_USE_IRQ
 DECLARE_GLOBAL_DATA_PTR;
@@ -47,10 +44,10 @@ static unsigned long read_p15_c1 (void)
        unsigned long value;
 
        __asm__ __volatile__(
-                                               "mrc    p15, 0, %0, c1, c0, 0   @ read control reg\n"
-                                               : "=r" (value)
-                                               :
-                                               : "memory");
+               "mrc    p15, 0, %0, c1, c0, 0   @ read control reg\n"
+               : "=r" (value)
+               :
+               : "memory");
        return value;
 }
 
diff --git a/cpu/arm1136/omap24xx/Makefile b/cpu/arm1136/omap24xx/Makefile
new file mode 100644 (file)
index 0000000..39b0a82
--- /dev/null
@@ -0,0 +1,46 @@
+#
+# (C) Copyright 2000-2008
+# 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 Foundatio; 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
+
+COBJS  = interrupts.o
+SOBJS  = start.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
+
+#########################################################################
similarity index 50%
rename from cpu/arm1136/interrupts.c
rename to cpu/arm1136/omap24xx/interrupts.c
index 491c902ace3838224e85621ff92537878a5ea456..5963d621bd601d59f2a6f5e5ace2af1eef9732d4 100644 (file)
 
 #include <common.h>
 #include <asm/arch/bits.h>
-
-#if !defined(CONFIG_INTEGRATOR) && ! defined(CONFIG_ARCH_CINTEGRATOR)
-# include <asm/arch/omap2420.h>
-#endif
+#include <asm/arch/omap2420.h>
 
 #define TIMER_LOAD_VAL 0
 
 /* macro to read the 32 bit timer */
-#define READ_TIMER (*(volatile ulong *)(CFG_TIMERBASE+TCRR))
-
-#if defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_CINTEGRATOR)
-/* Use the IntegratorCP function from board/integratorcp.c */
-#else
+#define READ_TIMER (*volatile ulong*(CFG_TIMERBASE+TCRR))
 
 static ulong timestamp;
 static ulong lastinc;
 
-/* nothing really to do with interrupts, just starts up a counter. */
-int interrupt_init (void)
+/*
+ * nothing really to do with interrupts, just starts up a counter.
+ */
+int interrupt_init(void)
 {
        int32_t val;
 
        /* Start the counter ticking up */
-       *((int32_t *) (CFG_TIMERBASE + TLDR)) = TIMER_LOAD_VAL; /* reload value on overflow*/
-       val = (CFG_PVT << 2) | BIT5 | BIT1 | BIT0;              /* mask to enable timer*/
+       /* reload value on overflow*/
+       *((int32_t *) (CFG_TIMERBASE + TLDR)) = TIMER_LOAD_VAL;
+       /* mask to enable timer*/
+       val = (CFG_PVT << 2) | BIT5 | BIT1 | BIT0;
        *((int32_t *) (CFG_TIMERBASE + TCLR)) = val;    /* start timer */
 
        reset_timer_masked(); /* init the timestamp and lastinc value */
@@ -66,82 +63,99 @@ int interrupt_init (void)
 /*
  * timer without interrupts
  */
-void reset_timer (void)
+void reset_timer(void)
 {
-       reset_timer_masked ();
+       reset_timer_masked();
 }
 
-ulong get_timer (ulong base)
+ulong get_timer(ulong base)
 {
-       return get_timer_masked () - base;
+       return get_timer_masked() - base;
 }
 
-void set_timer (ulong t)
+void set_timer(ulong t)
 {
        timestamp = t;
 }
 
 /* delay x useconds AND perserve advance timstamp value */
-void udelay (unsigned long usec)
+void udelay(unsigned long usec)
 {
        ulong tmo, tmp;
 
-       if (usec >= 1000) {                     /* if "big" number, spread normalization to seconds */
-               tmo = usec / 1000;              /* start to normalize for usec to ticks per sec */
-               tmo *= CFG_HZ;                  /* find number of "ticks" to wait to achieve target */
-               tmo /= 1000;                    /* finish normalize. */
-       } else {                                        /* else small number, don't kill it prior to HZ multiply */
+       /* if "big" number, spread normalization to seconds */
+       if (usec >= 1000) {
+               /* start to normalize for usec to ticks per sec */
+               tmo = usec / 1000;
+               /* find number of "ticks" to wait to achieve target */
+               tmo *= CFG_HZ;
+               /* finish normalize. */
+               tmo /= 1000;
+       } else {
+               /* else small number, don't kill it prior to HZ multiply */
                tmo = usec * CFG_HZ;
                tmo /= (1000*1000);
        }
-
-       tmp = get_timer (0);            /* get current timestamp */
-       if ( (tmo + tmp + 1) < tmp )/* if setting this forward will roll time stamp */
-               reset_timer_masked ();  /* reset "advancing" timestamp to 0, set lastinc value */
+       /* get current timestamp */
+       tmp = get_timer(0);
+       if ((tmo + tmp + 1) < tmp)
+               /* setting this forward will roll time stamp */
+               /* reset "advancing" timestamp to 0, set lastinc value */
+               reset_timer_masked();
        else
-               tmo     += tmp;                         /* else, set advancing stamp wake up time */
-       while (get_timer_masked () < tmo)/* loop till event */
+               /* else, set advancing stamp wake up time */
+               tmo     += tmp;
+       while (get_timer_masked() < tmo)/* loop till event */
                /*NOP*/;
 }
 
-void reset_timer_masked (void)
+void reset_timer_masked(void)
 {
        /* reset time */
-       lastinc = READ_TIMER;           /* capture current incrementer value time */
-       timestamp = 0;                          /* start "advancing" time stamp from 0 */
+       /* capture current incrementer value time */
+       lastinc = READ_TIMER;
+       /* start "advancing" time stamp from 0 */
+       timestamp = 0;
 }
 
-ulong get_timer_masked (void)
+ulong get_timer_masked(void)
 {
-       ulong now = READ_TIMER;         /* current tick value */
+       ulong now = READ_TIMER; /* current tick value */
 
-       if (now >= lastinc)                     /* normal mode (non roll) */
-               timestamp += (now - lastinc); /* move stamp fordward with absoulte diff ticks */
-       else                                            /* we have rollover of incrementer */
+       /* normal mode (non roll) */
+       if (now >= lastinc)
+               /* move stamp forward with absolute diff ticks */
+               timestamp += (now - lastinc);
+       else
+               /* we have rollover of incrementer */
                timestamp += (0xFFFFFFFF - lastinc) + now;
        lastinc = now;
        return timestamp;
 }
 
 /* waits specified delay value and resets timestamp */
-void udelay_masked (unsigned long usec)
+void udelay_masked(unsigned long usec)
 {
        ulong tmo;
        ulong endtime;
        signed long diff;
 
-       if (usec >= 1000) {                     /* if "big" number, spread normalization to seconds */
-               tmo = usec / 1000;              /* start to normalize for usec to ticks per sec */
-               tmo *= CFG_HZ;                  /* find number of "ticks" to wait to achieve target */
-               tmo /= 1000;                    /* finish normalize. */
-       } else {                                        /* else small number, don't kill it prior to HZ multiply */
+       if (usec >= 1000) {
+               /* "big" number, spread normalization to seconds */
+               /* start to normalize for usec to ticks per sec */
+               tmo = usec / 1000;
+               /* find number of "ticks" to wait to achieve target */
+               tmo *= CFG_HZ;
+               tmo /= 1000;/* finish normalize. */
+       } else {
+               /* else small number, don't kill it prior to HZ multiply */
                tmo = usec * CFG_HZ;
                tmo /= (1000*1000);
        }
-       endtime = get_timer_masked () + tmo;
+       endtime = get_timer_masked() + tmo;
 
        do {
-               ulong now = get_timer_masked ();
+               ulong now = get_timer_masked();
                diff = endtime - now;
        } while (diff >= 0);
 }
@@ -158,10 +172,9 @@ unsigned long long get_ticks(void)
  * This function is derived from PowerPC code (timebase clock frequency).
  * On ARM it returns the number of timer ticks per second.
  */
-ulong get_tbclk (void)
+ulong get_tbclk(void)
 {
        ulong tbclk;
        tbclk = CFG_HZ;
        return tbclk;
 }
-#endif /* !Integrator/CP */
diff --git a/cpu/arm1136/omap24xx/start.S b/cpu/arm1136/omap24xx/start.S
new file mode 100644 (file)
index 0000000..5634312
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ *  armboot - Startup Code for OMP2420/ARM1136 CPU-core
+ *
+ *  Copyright (c) 2004 Texas Instruments <r-woodruff2@ti.com>
+ *
+ *  Copyright (c) 2001 Marius Gr??ger <mag@sysgo.de>
+ *  Copyright (c) 2002 Alex Z??pke <azu@sysgo.de>
+ *  Copyright (c) 2002 Gary Jennejohn <gj@denx.de>
+ *  Copyright (c) 2003 Richard Woodruff <r-woodruff2@ti.com>
+ *  Copyright (c) 2003 Kshitij <kshitij@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/omap2420.h>
+
+.globl reset_cpu
+reset_cpu:
+       ldr     r1, rstctl      /* get addr for global reset reg */
+       mov     r3, #0x2        /* full reset pll+mpu */
+       str     r3, [r1]        /* force reset */
+       mov     r0, r0
+_loop_forever:
+       b       _loop_forever
+rstctl:
+       .word   PM_RSTCTRL_WKUP
index 8b765f1e806d0c5418214c924c9930941cb9bed6..56009d0fb339d7f43114c8a97bd1be2cf8705254 100644 (file)
@@ -30,9 +30,6 @@
 
 #include <config.h>
 #include <version.h>
-#if !defined(CONFIG_INTEGRATOR) && ! defined(CONFIG_ARCH_CINTEGRATOR)
-#include <asm/arch/omap2420.h>
-#endif
 .globl _start
 _start: b      reset
 #ifdef CONFIG_ONENAND_IPL
@@ -438,22 +435,4 @@ fiq:
 arm1136_cache_flush:
                mcr     p15, 0, r1, c7, c5, 0   @ invalidate I cache
                mov     pc, lr                  @ back to caller
-
-#if defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_CINTEGRATOR)
-/* Use the IntegratorCP function from board/integratorcp/platform.S */
-#else
-
-       .align  5
-.globl reset_cpu
-reset_cpu:
-       ldr     r1, rstctl      /* get addr for global reset reg */
-       mov     r3, #0x2        /* full reset pll+mpu */
-       str     r3, [r1]        /* force reset */
-       mov     r0, r0
-_loop_forever:
-       b       _loop_forever
-rstctl:
-       .word   PM_RSTCTRL_WKUP
-
-#endif
 #endif /* CONFIG_ONENAND_IPL */