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
					
				
							
								
								
									
										7
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										7
									
								
								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) | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
| #########################################################################
 | ||||
|  | @ -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 */ | ||||
| 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); | ||||
| 
 | ||||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
| #########################################################################
 | ||||
|  | @ -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; | ||||
| } | ||||
| 
 | ||||
|  | @ -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} | ||||
| 
 | ||||
|  | @ -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; | ||||
| } | ||||
| 
 | ||||
|  | @ -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 */ | ||||
|  | @ -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 | ||||
|  | @ -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…
	
		Reference in New Issue