[U-Boot] [PATCH v2] powerpc/mpc85xx: The end address of the bss in the SPL should be 4byte alignment

From: Ying Zhang b40530@freescale.com
There will clear the BSS in the function clear_bss(), the reset address of the BSS started from the __bss_start, and increased by four-byte increments, finally stoped depending on the adress is equal to the _bss_end. If the end address __bss_end is not alignment to 4byte, it will be an infinite loop.
The end address of the bss should be 4byte aligned.
This patch is on top of the patch "powerpc/mpc85xx: support application without resetvec segment in the linker script".
Signed-off-by: Ying Zhang b40530@freescale.com --- arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds index dff2398..154438b 100644 --- a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds @@ -1,5 +1,5 @@ /* - * (C) Copyright 2006 + * (C) Copyright 2013 * Wolfgang Denk, DENX Software Engineering, wd@denx.de * * Copyright 2009 Freescale Semiconductor, Inc. @@ -98,5 +98,6 @@ SECTIONS *(.sbss*) *(.bss*) } + . = ALIGN(4); __bss_end = .; }

Dear ying.zhang@freescale.com,
In message 1368520918-22496-1-git-send-email-ying.zhang@freescale.com you wrote:
From: Ying Zhang b40530@freescale.com
You mark this patch as V2 but there is no history of changes. Please always include information what exactly was changed.
There will clear the BSS in the function clear_bss(), the reset address of the BSS started from the __bss_start, and increased by four-byte increments, finally stoped depending on the adress is equal to the _bss_end. If the end address __bss_end is not alignment to 4byte, it will be an infinite loop.
The end address of the bss should be 4byte aligned.
NAK. This is the wrong way to fix this.
Instead, the test in the loop should be fixed to test for "<=".
/*
- (C) Copyright 2006
- (C) Copyright 2013
- Wolfgang Denk, DENX Software Engineering, wd@denx.de
And PLEASE do not mess with _my_ copyrights!!!
Best regards,
Wolfgang Denk

On 05/14/2013 05:30:05 AM, Wolfgang Denk wrote:
Dear ying.zhang@freescale.com,
In message 1368520918-22496-1-git-send-email-ying.zhang@freescale.com you wrote:
From: Ying Zhang b40530@freescale.com
You mark this patch as V2 but there is no history of changes. Please always include information what exactly was changed.
There will clear the BSS in the function clear_bss(), the reset
address of
the BSS started from the __bss_start, and increased by four-byte
increments,
finally stoped depending on the adress is equal to the _bss_end. If
the end
address __bss_end is not alignment to 4byte, it will be an infinite
loop.
The end address of the bss should be 4byte aligned.
NAK. This is the wrong way to fix this.
Instead, the test in the loop should be fixed to test for "<=".
I agree that we should use <= in the loop, but 4-byte alignment is also needed unless we change it from an stw loop to an stb loop.
-Scott
participants (3)
-
Scott Wood
-
Wolfgang Denk
-
ying.zhang@freescale.com