
Tegra devs,
Since I've not seen any objections (or discussion, really, beyond Simon/Allen), I'm going to apply u-boot-tegra/next to tegra/master (i.e. the SPL patches will now be de rigueur for u-boot-tegra going forward).
If you have Tegra patches that you are working on, or are in the middle of review/revision on the list (Simon's LCD and NAND), then you'll need to rework/rebase them on top of u-boot-tegra/master (w/the SPL changes) from this point on.
Thanks,
Tom
-----Original Message----- From: sjg@google.com [mailto:sjg@google.com] On Behalf Of Simon Glass Sent: Thursday, July 19, 2012 1:09 PM To: Tom Warren Cc: Allen Martin; swarren@wwwdotorg.org; thierry.reding@avionic-design.de; u-boot@lists.denx.de; Igor Grinberg; Konstantin Sinyuk Subject: Re: [PATCH v7 00/15] split tegra20 arm7 code into separate SPL
Hi Tom / Allen,
On Thu, Jul 19, 2012 at 4:37 PM, Tom Warren TWarren@nvidia.com wrote:
Allen,
-----Original Message----- From: Allen Martin [mailto:amartin@nvidia.com] Sent: Wednesday, July 18, 2012 5:02 PM To: Tom Warren Cc: swarren@wwwdotorg.org; sjg@chromium.org; thierry.reding@avionic- design.de; u-boot@lists.denx.de Subject: Re: [PATCH v7 00/15] split tegra20 arm7 code into separate SPL
On Tue, Jul 17, 2012 at 12:32:53PM -0700, Tom Warren wrote:
Allen,
-----Original Message----- From: Allen Martin [mailto:amartin@nvidia.com] Sent: Monday, July 16, 2012 4:02 PM To: Tom Warren; swarren@wwwdotorg.org; sjg@chromium.org; thierry.reding@avionic-design.de Cc: u-boot@lists.denx.de; Allen Martin Subject: [PATCH v7 00/15] 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.
This patch series is also available from: git://github.com/arm000/u-boot.git branch: tegra-spl-v7
Applied to u-boot-tegra/next AOK, tested on my Seaboard AOK, so: Tested-by: Tom Warren twarren@nvidia.com
Note that I was confused by the final binary name (u-boot-dtb-tegra.bin),
since I'm used to flashing u-boot-dtb.bin.
We need to come to a consensus about the final binary name for Tegra U-
Boot (I'd thought we had, and that it would be u-boot-dtb.bin, since that's what most devs are used to looking for in Tegra builds).
I think so.
Yeah, I'd like some stability there too. The -dtb rule is not tegra specific, which is why I didn't want to modify or remove it. I think we're the only one that uses it though, so maybe it's not so bad.
Not for long :-)
Also, one nit: I see the 2 sign-on strings (U-Boot SPL 2012.04.xxx, and
then U-Boot 2012.04.xxx), separated by 2 lines. I think it'd look better if you had them one right after the other, i.e. eliminate the
extra linefeeds.
The extra lines come from display_banner() which is ARM generic from the main u-boot. I assume they are there to separate the banner from any junk that was on your screen before you rebooted, so it would make sense to move them to the SPL banner instead if you have SPL
enabled.
I'll make a separate patch for that in a week after I get back from vacation.
I suspect you could remove the extra line by not printing a \n in SPL. The other one might be a bit tricky as I think it is in U-Boot proper as you say.
Also do we need the full version tag on the SPL version?
-Allen
Cool, thanks. Until then:
Tegra2 SPL patches have been applied to u-boot-tegra/next & pushed to
Denx. I'm going to hold off putting it into tegra/master and generating a pull request for awhile to allow all Tegra devs to test it, comment, etc., since it's a major change to the Tegra build.
If possible, please post any new Tegra changes against tegra/next (i.e.
using Allen's SPL file locations).
I have a few minor comments on the series now that I have made time to go through it in final form:
- In the resulting -tegra.bin image I see this:
00108038 <_fiq>: 108038: 00108038 .word 0x00108038 10803c: deadbeef .word 0xdeadbeef
00108040 <_TEXT_BASE>: 108040: 0010c000 .word 0x0010c000
To me it seems odd that SPL shows a TEXT_BASE of 10c000 when we actually need to load it at 108000. Can we change that? Also due to the difference between arm720 and armv7 there is no 0x12345678 tag before the text base. It would be nice if we could have that, as it is a convenient tag to point to the text base.
In the 'ARM: add tegra20 support' patch:
lastdec = 0 seems unnecessary since it should already be 0 at init.
Can we init the JTAG earlier (before any serial output, for example)? It
may be useful to be able to set breakpoints in SPL.
In 'tegra20: add u-boot-*-tegra.bin targets':
- The Makefile stuff could perhaps be split out a bit. You have:
ifeq ($(SOC),tegra20) ifeq ($(CONFIG_OF_SEPARATE),y) $(obj)u-boot-dtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin $(obj)u-boot.dtb $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin $(obj)u- boot.dtb > $@ rm $(obj)spl/u-boot-spl-pad.bin else $(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $@ rm $(obj)spl/u-boot-spl-pad.bin endif endif
Leaving aside the nodtb stuff which I think we already discussed, and breaking the 80col limit, maybe you could do cut it back from:
$(obj)spl/u-boot-spl-pad.bin: $(obj)spl/u-boot-spl.bin $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary \ $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin
$(obj)u-boot-dtb-tegra.bin: $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin $(obj)u-boot.dtb cat $^ > $@ rm $(obj)spl/u-boot-spl-pad.bin else $(obj)u-boot-nodtb-tegra.bin:$(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin cat $^ > $@ rm $(obj)spl/u-boot-spl-pad.bin
to something like:
%-spl-pad.bin: %-spl $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary \ $< $@ $(obj)u-boot-dtb-tegra.bin: $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin $(obj)u-boot.dtb cat $^ > $@ rm $< else $(obj)u-boot-nodtb-tegra.bin:$(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin cat $^ > $@ rm $<
If any of the above merit attention then perhaps you could do a follow-on patch or two?
Regards, Simon
Thanks,
Tom
-- nvpublic