Message ID | 1321341564-8012-1-git-send-email-thierry.reding@avionic-design.de |
---|---|
State | Accepted |
Commit | 0350c6b924146814ab5390dd5f74665088354a21 |
Headers | show |
Thierry Reding wrote at Tuesday, November 15, 2011 12:19 AM: > NVIDIA's flashing tools assume that the bootloader is loaded at address > 0x00108000. Instead of requiring non-standard builds of those tools > which allow a load address of 0x00E08000, this commit just switches all > Tegra2 boards to use the standard load address. > Note that to successfully boot a standalone U-Boot with this load > address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. Isn't that true irrespective of TEXT_BASE? That's certainly been my experience.
Yes, USE_PRIVATE_LIBGCC=yes is needed for any U-Boot Tegra build, regardless. It has to do with lib functions executing on the ARM7TDMI (AVP) IIRC. Tom -----Original Message----- From: Stephen Warren Sent: Tuesday, November 15, 2011 11:03 AM To: Thierry Reding; u-boot@lists.denx.de Cc: Tom Warren Subject: RE: [U-Boot] [PATCH] tegra2: Change CONFIG_SYS_TEXT_BASE to 0x00108000. Thierry Reding wrote at Tuesday, November 15, 2011 12:19 AM: > NVIDIA's flashing tools assume that the bootloader is loaded at > address 0x00108000. Instead of requiring non-standard builds of those > tools which allow a load address of 0x00E08000, this commit just > switches all > Tegra2 boards to use the standard load address. > Note that to successfully boot a standalone U-Boot with this load > address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. Isn't that true irrespective of TEXT_BASE? That's certainly been my experience. -- nvpublic
Hi Thierry. On Mon, Nov 14, 2011 at 11:19 PM, Thierry Reding <thierry.reding@avionic-design.de> wrote: > NVIDIA's flashing tools assume that the bootloader is loaded at address > 0x00108000. Instead of requiring non-standard builds of those tools > which allow a load address of 0x00E08000, this commit just switches all > Tegra2 boards to use the standard load address. > > Note that to successfully boot a standalone U-Boot with this load > address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. Would you please remove this comment? As mentioned by others on this thread it isn't affected by your change. Anyway: Tested-by: Simon Glass <sjg@chromium.org> > > Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> > --- > include/configs/tegra2-common.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/configs/tegra2-common.h b/include/configs/tegra2-common.h > index 9c3b9fa..bcdfe61 100644 > --- a/include/configs/tegra2-common.h > +++ b/include/configs/tegra2-common.h > @@ -153,7 +153,7 @@ > #define PHYS_SDRAM_1 TEGRA2_SDRC_CS0 > #define PHYS_SDRAM_1_SIZE 0x20000000 /* 512M */ > > -#define CONFIG_SYS_TEXT_BASE 0x00E08000 > +#define CONFIG_SYS_TEXT_BASE 0x00108000 > #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 > > #define CONFIG_SYS_INIT_RAM_ADDR CONFIG_STACKBASE > -- > 1.7.7.3 > >
* Stephen Warren wrote: > Thierry Reding wrote at Tuesday, November 15, 2011 12:19 AM: > > NVIDIA's flashing tools assume that the bootloader is loaded at address > > 0x00108000. Instead of requiring non-standard builds of those tools > > which allow a load address of 0x00E08000, this commit just switches all > > Tegra2 boards to use the standard load address. > > > Note that to successfully boot a standalone U-Boot with this load > > address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. > > Isn't that true irrespective of TEXT_BASE? That's certainly been my > experience. Yes, but the emphasis is on "standalone" since you can run mainline U-Boot as second stage for quickboot/fastboot and 0x00E08000 as load address without building with USE_PRIVATE_LIBGCC=yes. The reason for including this in the commit message was that it isn't documented anywhere else and I wanted to avoid a situation where this question needs to be answered over and over. Perhaps the commit message is not the best place, but I would still like to have this documented somewhere. Any suggestions? Thierry
Thierry Reding wrote at Tuesday, November 15, 2011 11:49 PM: > * PGP Signed by an unknown key > > * Stephen Warren wrote: > > Thierry Reding wrote at Tuesday, November 15, 2011 12:19 AM: > > > NVIDIA's flashing tools assume that the bootloader is loaded at address > > > 0x00108000. Instead of requiring non-standard builds of those tools > > > which allow a load address of 0x00E08000, this commit just switches all > > > Tegra2 boards to use the standard load address. > > > > > Note that to successfully boot a standalone U-Boot with this load > > > address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. > > > > Isn't that true irrespective of TEXT_BASE? That's certainly been my > > experience. > > Yes, but the emphasis is on "standalone" since you can run mainline U-Boot as > second stage for quickboot/fastboot and 0x00E08000 as load address without > building with USE_PRIVATE_LIBGCC=yes. OK. I think it's more just "standalone U-Boot" that "standalone U-Boot with this load address" then. I think the difference is that when running as a second stage under fastboot, U-Boot might get loaded on the A9 rather than the AVP, so the ARM ISA of the AVP doesn't come into play, and Tom Warren said he thought that USE_PRIVATE_LIBGCC=yes was only needed due to the AVP's ARM ISA difference. > The reason for including this in the > commit message was that it isn't documented anywhere else and I wanted to > avoid a situation where this question needs to be answered over and over. > > Perhaps the commit message is not the best place, but I would still like to > have this documented somewhere. Any suggestions? Can this option be selected by include/configs/tegra2-common.h? I suspect not since it's more of a make variable. Perhaps it can be forced on by a Tegra-specific makefile such as arch/arm/cpu/armv7/tegra2/config.mk or arch/arm/cpu/armv7/tegra2/Makefile? Then it wouldn't need to be documented; it'd be automatic.
* Stephen Warren wrote: > Thierry Reding wrote at Tuesday, November 15, 2011 11:49 PM: > > * PGP Signed by an unknown key > > > > * Stephen Warren wrote: > > > Thierry Reding wrote at Tuesday, November 15, 2011 12:19 AM: > > > > NVIDIA's flashing tools assume that the bootloader is loaded at address > > > > 0x00108000. Instead of requiring non-standard builds of those tools > > > > which allow a load address of 0x00E08000, this commit just switches all > > > > Tegra2 boards to use the standard load address. > > > > > > > Note that to successfully boot a standalone U-Boot with this load > > > > address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. > > > > > > Isn't that true irrespective of TEXT_BASE? That's certainly been my > > > experience. > > > > Yes, but the emphasis is on "standalone" since you can run mainline U-Boot as > > second stage for quickboot/fastboot and 0x00E08000 as load address without > > building with USE_PRIVATE_LIBGCC=yes. > > OK. I think it's more just "standalone U-Boot" that "standalone U-Boot > with this load address" then. I think the difference is that when running > as a second stage under fastboot, U-Boot might get loaded on the A9 rather > than the AVP, so the ARM ISA of the AVP doesn't come into play, and Tom > Warren said he thought that USE_PRIVATE_LIBGCC=yes was only needed due > to the AVP's ARM ISA difference. > > > The reason for including this in the > > commit message was that it isn't documented anywhere else and I wanted to > > avoid a situation where this question needs to be answered over and over. > > > > Perhaps the commit message is not the best place, but I would still like to > > have this documented somewhere. Any suggestions? > > Can this option be selected by include/configs/tegra2-common.h? I suspect > not since it's more of a make variable. Perhaps it can be forced on by a > Tegra-specific makefile such as arch/arm/cpu/armv7/tegra2/config.mk or > arch/arm/cpu/armv7/tegra2/Makefile? Then it wouldn't need to be documented; > it'd be automatic. Yes it can: arch/arm/cpu/armv7/tegra2/config.mk is included by the build system. The build output looks okay but I'll double-check if the resulting u-boot.bin actually boots in the morning when I have access to the hardware. I'll add both the CONFIG_SYS_TEXT_BASE (with the comment omitted) and this patch to a series and resend. Thierry
diff --git a/include/configs/tegra2-common.h b/include/configs/tegra2-common.h index 9c3b9fa..bcdfe61 100644 --- a/include/configs/tegra2-common.h +++ b/include/configs/tegra2-common.h @@ -153,7 +153,7 @@ #define PHYS_SDRAM_1 TEGRA2_SDRC_CS0 #define PHYS_SDRAM_1_SIZE 0x20000000 /* 512M */ -#define CONFIG_SYS_TEXT_BASE 0x00E08000 +#define CONFIG_SYS_TEXT_BASE 0x00108000 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 #define CONFIG_SYS_INIT_RAM_ADDR CONFIG_STACKBASE
NVIDIA's flashing tools assume that the bootloader is loaded at address 0x00108000. Instead of requiring non-standard builds of those tools which allow a load address of 0x00E08000, this commit just switches all Tegra2 boards to use the standard load address. Note that to successfully boot a standalone U-Boot with this load address, U-Boot needs to be built with USE_PRIVATE_LIBGCC=yes. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> --- include/configs/tegra2-common.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)