[U-Boot] [PATCH 1/2] improve printf behavior on arm/pxa after enabling 64bit support in printf by default.

Marek Vasut marek.vasut at gmail.com
Thu Apr 15 09:44:15 CEST 2010


Dne Čt 15. dubna 2010 01:12:30 Mikhail Kshevetskiy napsal(a):
> Yes, you was right. This is definitely an alignment issue.
> Here is a patch to fix this issue.

Thanks, actually, I pushed a different patch that fixed the stack alignment 
issue, but forgot to reserve the space for abort stack in my patch. Therefore I 
pushed a patch on top of mine based on your patch. The patch is attached below.

Ah also please, keep track of the u-boot-pxa.git repo, that should contain most 
recent fixes for xscale. http://git.denx.de/?p=u-boot/u-boot-pxa.git;a=summary
> 
> Sorry for attaching file. I am in a trip and use web browser for sending
> mail

Fine by me.

But please, stop top posting (post below the mail or into the body). It's some 
rule that improves readability. Thanks!
> 
> 2010/4/10 Wolfgang Denk <wd at denx.de>:
> > Dear Mikhail Kshevetskiy,
> > 
> > In message <20100329162346.017a43dc at laska.campus-ws.pu.ru> you wrote:
> >> commit 4b142febff71eabdb7ddbb125c7b583b24ddc434 (common: delete
> >> CONFIG_SYS_64BIT_VSPRINTF and CONFIG_SYS_64BIT_STRTOUL) breaks printf on
> >> my arm/pxa270 board. For example, the code
> >> 
> >>       int a = 128;
> >>       printf("a= %d\n", a);
> >> 
> >> will print zero on the console. The problem reproduced on gcc 4.1.1,
> >> 4.3.3, 4.4.1 and 4.4.2.
> >> 
> >> This patch fix printf unless you'll need printing 64-bit values.
> > 
> > I doubt that your patch addresses the real cause of the problem.
> > Did you check if the stack alignment problem discussed here earlier
> > has been fixed for your architecture?
> > From: Marek Vasut <marek.vasut at gmail.com>

Date: Thu, 15 Apr 2010 09:35:04 +0200
Subject: [PATCH] PXA: Fix abort stack

The stack alignment patch didn't reserve space for abort stack anymore. This
patch fixes the problem.

Original patch that pointed this issue out was by Mikhail Kshevetskiy.

Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
---
 arch/arm/cpu/pxa/start.S |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
index f7236bf..3989fa6 100644
--- a/arch/arm/cpu/pxa/start.S
+++ b/arch/arm/cpu/pxa/start.S
@@ -140,8 +140,8 @@ stack_setup:
 #ifdef CONFIG_USE_IRQ
        sub     r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
 #endif /* CONFIG_USE_IRQ */
-       bic     sp, r0, #7              /* leave 4 words for abort-stack    */
-                                       /* NOTE: stack MUST be aligned to   */
+       sub     r0, r0, #12             /* leave 3 words for abort-stack    */
+       bic     sp, r0, #7              /* NOTE: stack MUST be aligned to   */
                                        /* 8 bytes in case we want to use   */
                                        /* 64bit datatypes (eg. VSPRINTF64) */
 
-- 
1.7.0
> > Best regards,
> > 
> > Wolfgang Denk
> > 
> > --
> > DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> > Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> > Die Scheu vor Verantwortung ist die Krankheit unserer Zeit.
> >                                                 -- Otto von Bismarck


More information about the U-Boot mailing list