From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Thu, 12 Dec 2013 11:29:35 +0100 Subject: [U-Boot] [PATCH] ARM: fix the standalone programs In-Reply-To: <1385069571-10554-1-git-send-email-jeroen@myspectrum.nl> References: <1385069571-10554-1-git-send-email-jeroen@myspectrum.nl> Message-ID: <20131212112935.1241de7d@lilith> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Jeroen, On Thu, 21 Nov 2013 22:32:51 +0100, Jeroen Hofstee wrote: > The standalone programs do not use the api calls, but rely > directly on u-boot variable gd->jt for the jump table. Commit > fe1378a - "ARM: use r9 for gd" changed the register holding > the address of gd, but the assembly code in the standalone > examples was not updated accordingly. This broke the programs > on ARM relying on the jumptable in the v2013.10 release. > This patch unbricks them by using the correct register. > > Cc: Michal Simek > Cc: Albert ARIBAUD > Signed-off-by: Jeroen Hofstee > --- > examples/standalone/stubs.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/examples/standalone/stubs.c b/examples/standalone/stubs.c > index 8fb1765..5d2ab56 100644 > --- a/examples/standalone/stubs.c > +++ b/examples/standalone/stubs.c > @@ -40,14 +40,14 @@ gd_t *global_data; > : : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "r11"); > #elif defined(CONFIG_ARM) > /* > - * r8 holds the pointer to the global_data, ip is a call-clobbered > + * r9 holds the pointer to the global_data, ip is a call-clobbered > * register > */ > #define EXPORT_FUNC(x) \ > asm volatile ( \ > " .globl " #x "\n" \ > #x ":\n" \ > -" ldr ip, [r8, %0]\n" \ > +" ldr ip, [r9, %0]\n" \ > " ldr pc, [ip, %1]\n" \ > : : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "ip"); > #elif defined(CONFIG_MIPS) Applied to u-boot-arm/master, thanks! Amicalement, -- Albert.