mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-31 19:41:46 +00:00
ARMV7: Add basic support for TI OMAP4
This patch adds minimum support for OMAP4. Code which can be shared between OMAP3 and OMAP4 is placed in arch/arm/cpu/armv7/omap-common Signed-off-by: Aneesh V <aneesh@ti.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
This commit is contained in:
parent
f56348af5d
commit
d34efc767d
13 changed files with 580 additions and 2 deletions
7
Makefile
7
Makefile
|
@ -245,6 +245,13 @@ LIBS += lib/libfdt/libfdt.a
|
||||||
LIBS += api/libapi.a
|
LIBS += api/libapi.a
|
||||||
LIBS += post/libpost.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))
|
LIBS := $(addprefix $(obj),$(LIBS))
|
||||||
.PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)
|
.PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)
|
||||||
|
|
||||||
|
|
46
arch/arm/cpu/armv7/omap-common/Makefile
Normal file
46
arch/arm/cpu/armv7/omap-common/Makefile
Normal file
|
@ -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
|
||||||
|
|
||||||
|
#########################################################################
|
33
arch/arm/cpu/armv7/omap-common/config.mk
Normal file
33
arch/arm/cpu/armv7/omap-common/config.mk
Normal file
|
@ -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,))
|
|
@ -84,6 +84,11 @@ void set_timer(ulong t)
|
||||||
/* delay x useconds */
|
/* delay x useconds */
|
||||||
void __udelay(unsigned long usec)
|
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;
|
long tmo = usec * (TIMER_CLOCK / 1000) / 1000;
|
||||||
unsigned long now, last = readl(&timer_base->tcrr);
|
unsigned long now, last = readl(&timer_base->tcrr);
|
||||||
|
|
|
@ -27,7 +27,6 @@ LIB = $(obj)lib$(SOC).a
|
||||||
|
|
||||||
SOBJS := lowlevel_init.o
|
SOBJS := lowlevel_init.o
|
||||||
SOBJS += cache.o
|
SOBJS += cache.o
|
||||||
SOBJS += reset.o
|
|
||||||
|
|
||||||
COBJS += board.o
|
COBJS += board.o
|
||||||
COBJS += clock.o
|
COBJS += clock.o
|
||||||
|
@ -35,7 +34,6 @@ COBJS += gpio.o
|
||||||
COBJS += mem.o
|
COBJS += mem.o
|
||||||
COBJS += syslib.o
|
COBJS += syslib.o
|
||||||
COBJS += sys_info.o
|
COBJS += sys_info.o
|
||||||
COBJS += timer.o
|
|
||||||
|
|
||||||
COBJS-$(CONFIG_EMIF4) += emif4.o
|
COBJS-$(CONFIG_EMIF4) += emif4.o
|
||||||
COBJS-$(CONFIG_SDRC) += sdrc.o
|
COBJS-$(CONFIG_SDRC) += sdrc.o
|
||||||
|
|
48
arch/arm/cpu/armv7/omap4/Makefile
Normal file
48
arch/arm/cpu/armv7/omap4/Makefile
Normal file
|
@ -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
|
||||||
|
|
||||||
|
#########################################################################
|
90
arch/arm/cpu/armv7/omap4/board.c
Normal file
90
arch/arm/cpu/armv7/omap4/board.c
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
48
arch/arm/cpu/armv7/omap4/lowlevel_init.S
Normal file
48
arch/arm/cpu/armv7/omap4/lowlevel_init.S
Normal file
|
@ -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}
|
||||||
|
|
54
arch/arm/cpu/armv7/omap4/sys_info.c
Normal file
54
arch/arm/cpu/armv7/omap4/sys_info.c
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
94
arch/arm/include/asm/arch-omap4/cpu.h
Normal file
94
arch/arm/include/asm/arch-omap4/cpu.h
Normal file
|
@ -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 */
|
118
arch/arm/include/asm/arch-omap4/omap4.h
Normal file
118
arch/arm/include/asm/arch-omap4/omap4.h
Normal file
|
@ -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
|
37
arch/arm/include/asm/arch-omap4/sys_proto.h
Normal file
37
arch/arm/include/asm/arch-omap4/sys_proto.h
Normal file
|
@ -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
|
Loading…
Add table
Reference in a new issue