TI: tnetv107x patch series
Subsystems (2)
v4 cover TI: tnetv107x patch series
TNETV107X is a Texas Instruments SoC based on an ARM1176 core, and with a bunch on on-chip integrated peripherals. This patch series generalizes current ARM1176 code to allow for the addition of new ARM1176 SOCs. The remaining patches in this series add arch and board support.
The contents of this series are identical to the v2 patch series posted earlier, with the exception of an added comment in tnetv107x_evm.h indicating the reasoning behind reusing the davinci_nand MTDID.
Cyril Chemparathy (3):
ARM1176: Coexist with other ARM1176 platforms
ARM1176: TI: TNETV107X soc initial support
TI: TNETV107X EVM initial support
MAINTAINERS | 4 + MAKEALL | 1 + Makefile | 3 + board/ti/tnetv107xevm/Makefile | 49 +++ board/ti/tnetv107xevm/config.mk | 20 + board/ti/tnetv107xevm/sdb_board.c | 66 ++++ cpu/arm1176/cpu.c | 3 - cpu/arm1176/start.S | 62 +++- cpu/arm1176/tnetv107x/Makefile | 44 +++ cpu/arm1176/tnetv107x/aemif.c | 151 ++++++++ cpu/arm1176/tnetv107x/clock.c | 542 ++++++++++++++++++++++++++++ cpu/arm1176/tnetv107x/init.c | 41 ++ cpu/arm1176/tnetv107x/lowlevel_init.S | 25 ++ cpu/arm1176/tnetv107x/mux.c | 463 ++++++++++++++++++++++++ cpu/arm1176/tnetv107x/timer.c | 125 +++++++ cpu/arm1176/tnetv107x/wdt.c | 172 +++++++++ include/asm-arm/arch-tnetv107x/clock.h | 50 +++ include/asm-arm/arch-tnetv107x/emif_defs.h | 1 + include/asm-arm/arch-tnetv107x/hardware.h | 184 ++++++++++ include/asm-arm/arch-tnetv107x/mux.h | 307 ++++++++++++++++ include/asm-arm/arch-tnetv107x/nand_defs.h | 38 ++ include/configs/smdk6400.h | 6 + include/configs/tnetv107x_evm.h | 214 +++++++++++ 23 files changed, 2557 insertions(+), 14 deletions(-) create mode 100644 board/ti/tnetv107xevm/Makefile create mode 100644 board/ti/tnetv107xevm/config.mk create mode 100644 board/ti/tnetv107xevm/sdb_board.c create mode 100644 cpu/arm1176/tnetv107x/Makefile create mode 100644 cpu/arm1176/tnetv107x/aemif.c create mode 100644 cpu/arm1176/tnetv107x/clock.c create mode 100644 cpu/arm1176/tnetv107x/init.c create mode 100644 cpu/arm1176/tnetv107x/lowlevel_init.S create mode 100644 cpu/arm1176/tnetv107x/mux.c create mode 100644 cpu/arm1176/tnetv107x/timer.c create mode 100644 cpu/arm1176/tnetv107x/wdt.c create mode 100644 include/asm-arm/arch-tnetv107x/clock.h create mode 100644 include/asm-arm/arch-tnetv107x/emif_defs.h create mode 100644 include/asm-arm/arch-tnetv107x/hardware.h create mode 100644 include/asm-arm/arch-tnetv107x/mux.h create mode 100644 include/asm-arm/arch-tnetv107x/nand_defs.h create mode 100644 include/configs/tnetv107x_evm.h
PATCH v4 1/3 ARM1176: Coexist with other ARM1176 platforms
The current ARM1176 CPU specific code is too specific to the SMDK6400 architecture. The following changes were necessary prerequisites for the addition of other SoCs based on ARM1176.
Existing board's (SMDK6400) configuration has been modified to keep behavior unchanged despite these changes.
1. Peripheral port remap configurability
The earlier code had hardcoded remap values specific to s3c64xx in start.S. This change makes the peripheral port remap addresses and sizes configurable.
2. Skip low level initialization
Ability to skip low level initialization if necessary. Many other platforms have a similar capability, and this is quite useful during debug/bring-up.
3. U-Boot code relocation support
Most architectures allow u-boot code to run initially at a different address (possibly in NOR) and then get relocated to its final resting place in RAM. Added support for this capability in ARM1176 architecture.
4. Disable TCM if necessary
If a ROM based bootloader happened to have initialized TCM, we disable it here to keep things sane.
5. Remove unnecessary SoC specific includes
ARM1176 code does not really need this SoC specific include. The presence of this include prevents builds on other ARM1176 archs.
6. ARM926 style MMU disable when !CONFIG_ENABLE_MMU
The original MMU disable code masks out too many bits from the load address when it tries to figure out the physical address of the jump target label. Consequently, it ends up branching to the wrong address after disabling the MMU.
---
v4: rebased on next in u-boot-arm.git
v3: unchanged from v2
v2: unchanged from v1
cpu/arm1176/cpu.c | 3 -- cpu/arm1176/start.S | 62 ++++++++++++++++++++++++++++++++++++-------- include/configs/smdk6400.h | 6 ++++ 3 files changed, 57 insertions(+), 14 deletions(-)
cpu/arm1176/cpu.c +0 -3
@@ -33,9 +33,6 @@#include <common.h> #include <command.h> -#ifdef CONFIG_S3C64XX -#include <asm/arch/s3c6400.h> -#endif #include <asm/system.h> static void cache_flush (void );
cpu/arm1176/start.S +51 -11
120 lines not on this page · raw message
include/configs/smdk6400.h +6 -0
@@ -40,6 +40,12 @@#define CONFIG_S3C64XX 1/* in a SAMSUNG S3C64XX Family */ #define CONFIG_SMDK6400 1/* on a SAMSUNG SMDK6400 Board */ +#define CONFIG_SKIP_RELOCATE_UBOOT + +#define CONFIG_PERIPORT_REMAP +#define CONFIG_PERIPORT_BASE 0x70000000 +#define CONFIG_PERIPORT_SIZE 0x13 +#define CONFIG_SYS_SDRAM_BASE 0x50000000/* input clock of PLL: SMDK6400 has 12MHz input clock */
Signature · 1 line
1.6.3.3
PATCH v4 2/3 ARM1176: TI: TNETV107X soc initial support
TNETV107X is a Texas Instruments SoC based on an ARM1176 core, and with a bunch on on-chip integrated peripherals. This is an initial commit with basic functionality, more commits with drivers, etc. to follow.
---
v4: rebased on next in u-boot-arm.git (unchanged)
v3: unchanged from v2
v2: macroized aemif configuration to reduce verbosity
v2: consolidated lpsc utilities, inlined clock enable/disable
cpu/arm1176/tnetv107x/Makefile | 44 +++ cpu/arm1176/tnetv107x/aemif.c | 151 ++++++++ cpu/arm1176/tnetv107x/clock.c | 542 ++++++++++++++++++++++++++++ cpu/arm1176/tnetv107x/init.c | 41 ++ cpu/arm1176/tnetv107x/lowlevel_init.S | 25 ++ cpu/arm1176/tnetv107x/mux.c | 463 ++++++++++++++++++++++++ cpu/arm1176/tnetv107x/timer.c | 125 +++++++ cpu/arm1176/tnetv107x/wdt.c | 172 +++++++++ include/asm-arm/arch-tnetv107x/clock.h | 50 +++ include/asm-arm/arch-tnetv107x/emif_defs.h | 1 + include/asm-arm/arch-tnetv107x/hardware.h | 184 ++++++++++ include/asm-arm/arch-tnetv107x/mux.h | 307 ++++++++++++++++ include/asm-arm/arch-tnetv107x/nand_defs.h | 38 ++ 13 files changed, 2143 insertions(+), 0 deletions(-) create mode 100644 cpu/arm1176/tnetv107x/Makefile create mode 100644 cpu/arm1176/tnetv107x/aemif.c create mode 100644 cpu/arm1176/tnetv107x/clock.c create mode 100644 cpu/arm1176/tnetv107x/init.c create mode 100644 cpu/arm1176/tnetv107x/lowlevel_init.S create mode 100644 cpu/arm1176/tnetv107x/mux.c create mode 100644 cpu/arm1176/tnetv107x/timer.c create mode 100644 cpu/arm1176/tnetv107x/wdt.c create mode 100644 include/asm-arm/arch-tnetv107x/clock.h create mode 100644 include/asm-arm/arch-tnetv107x/emif_defs.h create mode 100644 include/asm-arm/arch-tnetv107x/hardware.h create mode 100644 include/asm-arm/arch-tnetv107x/mux.h create mode 100644 include/asm-arm/arch-tnetv107x/nand_defs.h
cpu/arm1176/tnetv107x/Makefile new file +44 -0
@@ -0,0 +1,44 @@ +# +# 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., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(SOC).a + +COBJS += aemif.o clock.o init.o mux.o timer.o wdt.o +SOBJS += lowlevel_init.o + +SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c) + +OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) +START := $(addprefix $(obj),$(START)) + +all: $(obj).depend $(LIB) + +$(LIB): $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################
cpu/arm1176/tnetv107x/aemif.c new file +151 -0
151 lines not on this page · raw message
cpu/arm1176/tnetv107x/clock.c new file +542 -0
542 lines not on this page · raw message
cpu/arm1176/tnetv107x/init.c new file +41 -0
41 lines not on this page · raw message
cpu/arm1176/tnetv107x/lowlevel_init.S new file +25 -0
@@ -0,0 +1,25 @@ +/* + * TNETV107X: Low-level pre-relocation initialization + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +.globl lowlevel_init +lowlevel_init: + /* nothing for now, maybe needed for more exotic boot modes */ + mov pc, lr
cpu/arm1176/tnetv107x/mux.c new file +463 -0
463 lines not on this page · raw message
cpu/arm1176/tnetv107x/timer.c new file +125 -0
125 lines not on this page · raw message
cpu/arm1176/tnetv107x/wdt.c new file +172 -0
172 lines not on this page · raw message
include/asm-arm/arch-tnetv107x/clock.h new file +50 -0
50 lines not on this page · raw message
include/asm-arm/arch-tnetv107x/emif_defs.h new file +1 -0
@@ -0,0 +1 @@ +#include <asm/arch-davinci/emif_defs.h>
include/asm-arm/arch-tnetv107x/hardware.h new file +184 -0
184 lines not on this page · raw message
include/asm-arm/arch-tnetv107x/mux.h new file +307 -0
307 lines not on this page · raw message
include/asm-arm/arch-tnetv107x/nand_defs.h new file +38 -0
@@ -0,0 +1,38 @@ +/* +* TNETV107X: NAND definitions +* +* 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#ifndef _NAND_DEFS_H_ +#define _NAND_DEFS_H_ + +#include <asm/arch/hardware.h> +#include <asm/arch/emif_defs.h> + +#define DAVINCI_ASYNC_EMIF_CNTRL_BASE TNETV107X_ASYNC_EMIF_CNTRL_BASE + +#define MASK_CLE 0x4000 +#define MASK_ALE 0x2000 + +#define NAND_READ_START 0x00 +#define NAND_READ_END 0x30 +#define NAND_STATUS 0x70 + +extern void davinci_nand_init (struct nand_chip *nand); + +#endif
Signature · 1 line
1.6.3.3
PATCH v4 3/3 TI: TNETV107X EVM initial support
TNETV107X is a Texas Instruments SoC based on an ARM1176 core, and with a bunch on on-chip integrated peripherals. This patch adds support for the TNETV107X EVM board.
---
v4: rebased on next in u-boot-arm.git (unchanged)
v3: Added NAND MTDID comment in board config
v2: Added maintainers entry
v2: Fixed sort order in main makefile
v2: Remove board specific linker script
v2: Style fixes - multiline comments
v2: Replaced clk_get() with clk_get_rate()
MAINTAINERS | 4 + MAKEALL | 1 + Makefile | 3 + board/ti/tnetv107xevm/Makefile | 49 +++++++++ board/ti/tnetv107xevm/config.mk | 20 ++++ board/ti/tnetv107xevm/sdb_board.c | 66 +++++++++++ include/configs/tnetv107x_evm.h | 214 +++++++++++++++++++++++++++++++++++++ 7 files changed, 357 insertions(+), 0 deletions(-) create mode 100644 board/ti/tnetv107xevm/Makefile create mode 100644 board/ti/tnetv107xevm/config.mk create mode 100644 board/ti/tnetv107xevm/sdb_board.c create mode 100644 include/configs/tnetv107x_evm.h
MAINTAINERS +4 -0
@@ -62,6 +62,10 @@ Oliver Brown <[email protected]> gw8260 MPC8260 +Cyril Chemparathy <[email protected]> + + tnetv107x_evm tnetv107x + Conn Clark <[email protected]> ESTEEM192E MPC8xx
MAKEALL +1 -0
@@ -623,6 +623,7 @@ LIST_ARM11=" \ mx31pdk_nand \ qong \ smdk6400 \ + tnetv107x_evm \ " #########################################################################
Makefile +3 -0
@@ -3313,6 +3313,9 @@ smdk6400_config : unconfig fi @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk +tnetv107x_evm_config: unconfig + @$(MKCONFIG) $(@:_config=) arm arm1176 tnetv107xevm ti tnetv107x + #======================================================================== # i386 #========================================================================
board/ti/tnetv107xevm/Makefile new file +49 -0
49 lines not on this page · raw message
board/ti/tnetv107xevm/config.mk new file +20 -0
@@ -0,0 +1,20 @@ +# +# 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., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +TEXT_BASE = 0x83FC0000
board/ti/tnetv107xevm/sdb_board.c new file +66 -0
66 lines not on this page · raw message
include/configs/tnetv107x_evm.h new file +214 -0
214 lines not on this page · raw message
Signature · 1 line
1.6.3.3
v4 cover TI: tnetv107x patch series
In reply to Cyril ChemparathyQuoted 9 lines · Cyril Chemparathy
TNETV107X is a Texas Instruments SoC based on an ARM1176 core, and with a bunch on on-chip integrated peripherals. This patch series generalizes current ARM1176 code to allow for the addition of new ARM1176 SOCs. The remaining patches in this series add arch and board support.
The contents of this series are identical to the v2 patch series posted earlier, with the exception of an added comment in
tnetv107x_evm.hindicating the reasoning behind reusing thedavinci_nandMTDID.
Cyril,
There was a very extensive change to the ordering of the directories See.
http://lists.denx.de/pipermail/u-boot/2010-April/069488.html
Please rebase this patchset.
Sorry for the inconvenience,
Tom
Quoted 6 lines
Cyril Chemparathy (3):
ARM1176: Coexist with other ARM1176 platforms
ARM1176: TI: TNETV107X soc initial support
TI: TNETV107X EVM initial support