mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 12:13:00 -04:00
Fix alignment error on ARM for modules
Fix alignment fault on ARM when running modules. With out an explicit linker file gcc4.2.1 will half word align __bss_start's value. The word dereference will crash hello_world. signed-off-by Richard Woodruff <r-woodruff2@ti.com>
This commit is contained in:
parent
ce1120dd70
commit
118978c8eb
@ -30,8 +30,12 @@ LOAD_ADDR = 0x40000
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH),arm)
|
ifeq ($(ARCH),arm)
|
||||||
|
ifeq ($(BOARD),omap2420h4)
|
||||||
|
LOAD_ADDR = 0x80300000
|
||||||
|
else
|
||||||
LOAD_ADDR = 0xc100000
|
LOAD_ADDR = 0xc100000
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH),mips)
|
ifeq ($(ARCH),mips)
|
||||||
LOAD_ADDR = 0x80200000 -T mips.lds
|
LOAD_ADDR = 0x80200000 -T mips.lds
|
||||||
|
@ -190,10 +190,10 @@ extern unsigned long __bss_start, _end;
|
|||||||
|
|
||||||
void app_startup(char **argv)
|
void app_startup(char **argv)
|
||||||
{
|
{
|
||||||
unsigned long * cp = &__bss_start;
|
unsigned char * cp = (unsigned char *) &__bss_start;
|
||||||
|
|
||||||
/* Zero out BSS */
|
/* Zero out BSS */
|
||||||
while (cp < &_end) {
|
while (cp < (unsigned char *)&_end) {
|
||||||
*cp++ = 0;
|
*cp++ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user