
This patch series fixes a long standing problem with the tegra2 u-boot build. Tegra2 contains an ARM7TDMI boot processor and a Cortex A9 main processor. Prior to this patch series this was accomplished by #ifdefing out any armv7 code from the early boot sequence and creating a single binary that runs on both both the ARM7TDMI and A9. This was very fragile as changes to compiler options or any additions or rearranging of the early boot code could add additional armv7 specific code causing it to fail on the ARM7TDMI.
This patch series pulls all the armv4t code out into a separate SPL that does nothing more than initialize the A9 and transfer control to it. The resultint SPL and armv7 u-boot are concatenated together into a single image.
[PATCH 1/9] tegra2: move tegra2 SoC code to arch/arm/cpu/tegra2-common [PATCH 2/9] mkconfig: add support for SPL CPU [PATCH 3/9] ARM: Fix arm720t SPL build [PATCH 4/9] tegra: Add SPL build support to tegra boards [PATCH 5/9] ARM: add tegra support to arm720t [PATCH 6/9] tegra: enable SPL build for seaboard [PATCH 7/9] tegra: add u-boot.t2 target [PATCH 8/9] tegra2: Remove CPU init code from tegra2 u-boot [PATCH 9/9] tegra2: Remove USE_PRIVATE_LIBGCC and armv4t build flags
Makefile | 9 + arch/arm/cpu/arm720t/cpu.c | 3 +- arch/arm/cpu/arm720t/interrupts.c | 5 +- arch/arm/cpu/arm720t/start.S | 19 +- arch/arm/cpu/arm720t/tegra2/Makefile | 48 ++ arch/arm/cpu/arm720t/tegra2/board.h | 25 + arch/arm/cpu/arm720t/tegra2/cpu.c | 259 +++++++ arch/arm/cpu/arm720t/tegra2/cpu.h | 99 +++ arch/arm/cpu/arm720t/tegra2/spl.c | 133 ++++ arch/arm/cpu/armv7/start.S | 2 - arch/arm/cpu/armv7/tegra2/Makefile | 12 +- arch/arm/cpu/armv7/tegra2/ap20.c | 324 --------- arch/arm/cpu/armv7/tegra2/ap20.h | 102 --- arch/arm/cpu/armv7/tegra2/board.c | 151 ---- arch/arm/cpu/armv7/tegra2/clock.c | 1052 --------------------------- arch/arm/cpu/armv7/tegra2/config.mk | 8 - arch/arm/cpu/armv7/tegra2/funcmux.c | 184 ----- arch/arm/cpu/armv7/tegra2/lowlevel_init.S | 41 -- arch/arm/cpu/armv7/tegra2/pinmux.c | 572 --------------- arch/arm/cpu/armv7/tegra2/sys_info.c | 35 - arch/arm/cpu/armv7/tegra2/timer.c | 111 --- arch/arm/cpu/tegra2-common/Makefile | 56 ++ arch/arm/cpu/tegra2-common/ap20.c | 73 ++ arch/arm/cpu/tegra2-common/board.c | 129 ++++ arch/arm/cpu/tegra2-common/clock.c | 1052 +++++++++++++++++++++++++++ arch/arm/cpu/tegra2-common/funcmux.c | 184 +++++ arch/arm/cpu/tegra2-common/lowlevel_init.S | 41 ++ arch/arm/cpu/tegra2-common/pinmux.c | 572 +++++++++++++++ arch/arm/cpu/tegra2-common/sys_info.c | 35 + arch/arm/cpu/tegra2-common/timer.c | 111 +++ arch/arm/include/asm/arch-tegra2/hardware.h | 29 + board/nvidia/common/Makefile | 2 +- board/nvidia/common/board.c | 2 + board/nvidia/seaboard/config.mk | 1 + boards.cfg | 7 +- doc/README.SPL | 12 + include/configs/seaboard.h | 9 + include/configs/tegra2-common.h | 23 +- mkconfig | 15 +- spl/Makefile | 4 + 40 files changed, 2949 insertions(+), 2602 deletions(-)
-- nvpublic