From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Thu, 05 Jan 2012 09:53:42 -0700 Subject: [U-Boot] [PATCH 1/2] tegra2: Always build with USE_PRIVATE_LIBGCC=yes. In-Reply-To: <20120105155033.52FFC1FC941@gemini.denx.de> References: <1321524246-5187-1-git-send-email-thierry.reding@avionic-design.de> <1321524246-5187-2-git-send-email-thierry.reding@avionic-design.de> <20120105155033.52FFC1FC941@gemini.denx.de> Message-ID: <4F05D596.6030900@nvidia.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 01/05/2012 08:50 AM, Wolfgang Denk wrote: > Dear Thierry Reding, > > In message <1321524246-5187-2-git-send-email-thierry.reding@avionic-design.de> you wrote: >> The AVP on Tegra2 doesn't boot properly when U-Boot is linked against >> the GCC provided libgcc. To work around this, always build and link >> against a private libgcc for Tegra2-based boards. > > I notice this patch only now, when pulling in from u-boot-arm. > > I will accept this only temporarily. Why don't you use a working tool > chain instead, or fix the one you are using? I believe the issue isn't that the toolchain is broken, but due to the mix of multiple CPU types on Tegra, all of which run the same U-Boot binary. U-Boot starts execution on the AVP CPU, an ARMv4(?) CPU. U-Boot then inits the main CPUs, ARMv7 Cortex A9s, and arranges for them to continue running U-Boot. The libraries included in the toolchain are built for the ARMv7 CPUs, and hence fail to operate correctly when used by the portion of U-Boot which runs on the ARMv4 CPU, presumably due to ISA differences. IIRC, there are overrides in the U-Boot build process such that some/all of U-Boot is built so it'll run on ARMv4 OK, which is why using libgcc built by U-Boot solves this. -- nvpublic