Hi Tom, On Tue, Jul 3, 2012 at 12:47 AM, Tom Warren <twar...@nvidia.com> wrote: > Wolfgang, > >> -----Original Message----- >> From: Allen Martin [mailto:amar...@nvidia.com] >> Sent: Monday, June 25, 2012 3:55 PM >> To: Tom Warren; swar...@wwwdotorg.org; s...@chromium.org; >> thierry.red...@avionic-design.de >> Cc: u-boot@lists.denx.de >> Subject: [PATCH v5 00/13] split tegra20 arm7 code into separate SPL >> >> This patch series fixes a long standing problem with the tegra20 u-boot >> build. Tegra20 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. > > Any input on the validity of this patch series as a whole, and the changes to > mkconfig/boards.cfg in particular, or any objections? I'd like to get it into > u-boot-tegra/next soon. > > I'd also like to see all Tegra contributors sign-off or at least comment, as > this is a major change (Simon, Thierry, Igor, Konstantin, Lucas, and anyone > I've missed).
Sorry for the delay on this. I did comment on the earlier series, and sent a few more comments just now, but I think overall this is a good solution to sticky problem, and better than what we had. Regards, Simon > > Thanks, > > Tom >> >> This patch series is also available from: >> git://github.com/arm000/u-boot.git >> branch: tegra-spl-v5 >> >> Changes: >> v5: >> - added missing mkdir rules in all tegra20 board Makefiles that include >> common code and changed them to be unconditional >> - make new u-boot-dtb-t2.bin rule default for tegra20 and copy resulting >> binary over u-boot.bin >> v4: >> - rebased to u-boot-tegra/next >> - reordered entire patch series to preserve git bisect, verified build and >> boot at each patch >> - merged patches that add SPL config defines and removes duplicate code >> from u-boot init, these have to go in atomically to preserve building at >> each patch >> - fixed compiler warnings introduced >> - fixed blank line at end of file on cpu.c >> - renamed u-boot.t2 to u-boot-t2.bin >> - cleaned up config.mk generation in mkconfig to make it more readable >> - added some text to clarify using arm720t code for arm7tdmi >> - rearranged SPL memory map to make resulting SPL + u-boot image much >> smaller >> - removed separate PAD_TO define in favor of just using >> CONFIG_SYS_TEXT_BASE >> - moved warmboot_save_sdram_params() from dram_init() to board_init() >> v3: >> - git bisect still does not work across this series, I'm saving that for >> the next revision, but I had enough changes that I wanted to get this out >> for review >> - expanded the tegra2 -> tegra20 rename to include functions/variables/ >> defines >> - rebased to u-boot-tegra/next >> - removed some extra -march=armv4t flags, kept armv4t flags on >> warmboot_avp since it's special >> - removed bashisms from mkconfig >> - renamed CONFIG_MACH_TEGRA_GENERIC to CONFIG_TEGRA >> - moved SPL overrides to tegra2-common-post.h >> - changed SPL base address to 0x108000, u-boot goes to 0x208000 >> - moved warboot_save_sdram_params fix to separate patch >> - remove USE_PRIVATE_LIBGCC from non SPL build >> - expanded SPL support to all tegra20 boards, not just seaboard >> v2: >> - renamed tegra2 to tegra20 to match kernel and devicetree naming policy >> - pulled all SPL related config overrides to a separate file to clean up >> ifdefs from seabard.h >> - rebased to TOT u-boot/master and fixed a bug related to init sequence >> changes between this patch series and new EMC code >> - made u-boot.t2 target work even if CONFIG_OF is disabled >> - added back USE_PRIVATE_LIBGCC >> >> [PATCH v5 01/13] tegra20: rename tegra2 -> tegra20 [PATCH v5 02/13] tegra20: >> move tegra20 SoC code to [PATCH v5 03/13] tegra20: rename >> CONFIG_MACH_TEGRA_GENERIC [PATCH v5 04/13] tegra20: tec: add tegra20-common- >> post.h [PATCH v5 05/13] tegra20: make board mkdir commands unconditional >> [PATCH v5 06/13] mkconfig: add support for SPL CPU [PATCH v5 07/13] ARM: Fix >> arm720t SPL build [PATCH v5 08/13] tegra20: remove timer_init from SPL build >> [PATCH v5 09/13] ARM: add tegra20 support to arm720t [PATCH v5 10/13] >> tegra20: add u-boot-t2.bin target [PATCH v5 11/13] tegra20: move SDRAM param >> save to later in boot [PATCH v5 12/13] tegra20: enable SPL for tegra20 >> boards [PATCH v5 13/13] tegra20: Remove armv4t build flags >> >> MAINTAINERS | 18 +-- >> Makefile | 24 ++++ >> arch/arm/cpu/arm720t/cpu.c | 2 + >> arch/arm/cpu/arm720t/interrupts.c | 5 + >> arch/arm/cpu/arm720t/start.S | 19 ++- >> .../arm/cpu/arm720t/tegra20}/Makefile | 27 ++-- >> .../arch-tegra2 => cpu/arm720t/tegra20}/board.h | 11 +- >> .../{armv7/tegra2/ap20.c => arm720t/tegra20/cpu.c} | 148 ++--------------- >> --- >> .../ap20.h => cpu/arm720t/tegra20/cpu.h} | 15 +- >> arch/arm/cpu/arm720t/tegra20/spl.c | 132 +++++++++++++++++ >> arch/arm/cpu/armv7/start.S | 2 - >> arch/arm/cpu/armv7/{tegra2 => tegra20}/Makefile | 15 +- >> .../cpu/armv7/{tegra2 => tegra20}/cmd_enterrcm.c | 4 +- >> arch/arm/cpu/armv7/{tegra2 => tegra20}/config.mk | 12 +- >> arch/arm/cpu/armv7/{tegra2 => tegra20}/usb.c | 2 +- >> .../cpu/{armv7/tegra2 => tegra20-common}/Makefile | 29 ++-- >> arch/arm/cpu/tegra20-common/ap20.c | 131 +++++++++++++++++ >> .../cpu/{armv7/tegra2 => tegra20-common}/board.c | 39 ++---- >> .../cpu/{armv7/tegra2 => tegra20-common}/clock.c | 10 +- >> .../cpu/{armv7/tegra2 => tegra20-common}/crypto.c | 0 >> .../cpu/{armv7/tegra2 => tegra20-common}/crypto.h | 0 >> .../arm/cpu/{armv7/tegra2 => tegra20-common}/emc.c | 2 +- >> .../cpu/{armv7/tegra2 => tegra20-common}/funcmux.c | 2 +- >> .../tegra2 => tegra20-common}/lowlevel_init.S | 0 >> .../cpu/{armv7/tegra2 => tegra20-common}/pinmux.c | 4 +- >> .../arm/cpu/{armv7/tegra2 => tegra20-common}/pmu.c | 2 +- >> .../{armv7/tegra2 => tegra20-common}/sys_info.c | 2 +- >> .../cpu/{armv7/tegra2 => tegra20-common}/timer.c | 2 +- >> .../{armv7/tegra2 => tegra20-common}/warmboot.c | 18 +-- >> .../tegra2 => tegra20-common}/warmboot_avp.c | 4 +- >> .../tegra2 => tegra20-common}/warmboot_avp.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/ap20.h | 4 +- >> .../asm/{arch-tegra2 => arch-tegra20}/apb_misc.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/board.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/clk_rst.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/clock.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/emc.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/flow.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/funcmux.h | 2 +- >> .../asm/{arch-tegra2 => arch-tegra20}/fuse.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/gp_padctrl.h | 2 +- >> .../asm/{arch-tegra2 => arch-tegra20}/gpio.h | 2 +- >> arch/arm/include/asm/arch-tegra20/hardware.h | 29 ++++ >> .../asm/{arch-tegra2 => arch-tegra20}/mmc.h | 8 +- >> .../asm/{arch-tegra2 => arch-tegra20}/pinmux.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/pmc.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/pmu.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/scu.h | 0 >> .../{arch-tegra2 => arch-tegra20}/sdram_param.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/sys_proto.h | 4 +- >> .../tegra2.h => arch-tegra20/tegra20.h} | 18 +-- >> .../asm/{arch-tegra2 => arch-tegra20}/tegra_i2c.h | 2 +- >> .../asm/{arch-tegra2 => arch-tegra20}/tegra_spi.h | 4 +- >> .../asm/{arch-tegra2 => arch-tegra20}/timer.h | 6 +- >> .../uart-spi-switch.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/uart.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/usb.h | 0 >> .../asm/{arch-tegra2 => arch-tegra20}/warmboot.h | 0 >> board/avionic-design/common/tamonten.c | 4 +- >> .../dts/{tegra2-medcom.dts => tegra20-medcom.dts} | 0 >> .../dts/{tegra2-plutux.dts => tegra20-plutux.dts} | 0 >> .../dts/{tegra2-tec.dts => tegra20-tec.dts} | 0 >> board/avionic-design/medcom/Makefile | 2 - >> board/avionic-design/plutux/Makefile | 2 - >> board/avionic-design/tec/Makefile | 2 - >> .../dts/{tegra2-paz00.dts => tegra20-paz00.dts} | 0 >> board/compal/paz00/Makefile | 2 - >> board/compal/paz00/paz00.c | 6 +- >> ...{tegra2-trimslice.dts => tegra20-trimslice.dts} | 0 >> board/compulab/trimslice/Makefile | 2 - >> board/compulab/trimslice/trimslice.c | 6 +- >> board/nvidia/common/board.c | 17 ++- >> board/nvidia/common/emc.c | 2 +- >> board/nvidia/common/uart-spi-switch.c | 2 +- >> .../{tegra2-harmony.dts => tegra20-harmony.dts} | 2 +- >> .../{tegra2-seaboard.dts => tegra20-seaboard.dts} | 0 >> .../{tegra2-ventana.dts => tegra20-ventana.dts} | 2 +- >> .../{tegra2-whistler.dts => tegra20-whistler.dts} | 2 +- >> board/nvidia/harmony/harmony.c | 6 +- >> board/nvidia/seaboard/seaboard.c | 6 +- >> board/nvidia/whistler/whistler.c | 6 +- >> boards.cfg | 23 +-- >> doc/README.SPL | 12 ++ >> drivers/gpio/tegra_gpio.c | 12 +- >> drivers/i2c/tegra_i2c.c | 12 +- >> drivers/input/Makefile | 2 +- >> drivers/mmc/tegra_mmc.c | 32 ++--- >> drivers/mmc/tegra_mmc.h | 12 +- >> drivers/spi/tegra_spi.c | 10 +- >> include/configs/harmony.h | 14 +- >> include/configs/medcom.h | 12 +- >> include/configs/paz00.h | 12 +- >> include/configs/plutux.h | 12 +- >> include/configs/seaboard.h | 20 +-- >> include/configs/tec.h | 12 +- >> ...{tegra2-common-post.h => tegra20-common-post.h} | 73 +++++++++- >> .../configs/{tegra2-common.h => tegra20-common.h} | 44 +++--- >> include/configs/trimslice.h | 14 +- >> include/configs/ventana.h | 12 +- >> include/configs/whistler.h | 14 +- >> include/fdtdec.h | 12 +- >> include/serial.h | 2 +- >> mkconfig | 24 ++-- >> spl/Makefile | 4 + >> 104 files changed, 738 insertions(+), 491 deletions(-) >> > -- > nvpublic _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot