[U-Boot] [PATCH 0/2] ARMV7: Fixing Vexpress build errors and warnings

From: Matt Waddel matt.waddel@linaro.org
These patches fix several build errors and warnings. A successful build for this platform depends on Steve Sakoman's "ARMV7: Fix build for non-OMAP3 boards" patch.
Matt Waddel (2): ARMV7: Vexpress build errors ARMV7: Vexpress compile warnings
arch/arm/include/asm/arch-armv7/sys_proto.h | 29 ++++++++++++ board/armltd/vexpress/ca9x4_ct_vxp.c | 9 +++- board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 --------------------------- 4 files changed, 36 insertions(+), 70 deletions(-) create mode 100644 arch/arm/include/asm/arch-armv7/sys_proto.h delete mode 100644 board/armltd/vexpress/u-boot.lds

From: Matt Waddel matt.waddel@linaro.org
This patch fixes build errors in the vexpress system: - syslib.c requires sys_proto.h file, used the example from /arch-mx5/. - The linker script was missing required sections. Found the default armv7 linker script can be used by vexpress. Switched to that one. - Renamed TEXT_BASE to CONFIG_SYS_TEXT_BASE.
Signed-off-by: Matt Waddel matt.waddel@linaro.org --- arch/arm/include/asm/arch-armv7/sys_proto.h | 29 ++++++++++++ board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 --------------------------- 3 files changed, 30 insertions(+), 67 deletions(-) create mode 100644 arch/arm/include/asm/arch-armv7/sys_proto.h delete mode 100644 board/armltd/vexpress/u-boot.lds
diff --git a/arch/arm/include/asm/arch-armv7/sys_proto.h b/arch/arm/include/asm/arch-armv7/sys_proto.h new file mode 100644 index 0000000..f77446a --- /dev/null +++ b/arch/arm/include/asm/arch-armv7/sys_proto.h @@ -0,0 +1,29 @@ +/* + * (C) Copyright 2009 + * Stefano Babic, DENX Software Engineering, sbabic@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef _SYS_PROTO_H_ +#define _SYS_PROTO_H_ + +void sdelay(unsigned long); + +#endif diff --git a/board/armltd/vexpress/config.mk b/board/armltd/vexpress/config.mk index 2d797d7..36395f2 100644 --- a/board/armltd/vexpress/config.mk +++ b/board/armltd/vexpress/config.mk @@ -19,5 +19,4 @@ # # Linux-Kernel is expected to be at 0x60008000 # -TEXT_BASE = 0x60800000 -LDSCRIPT := $(SRCTREE)/board/armltd/vexpress/u-boot.lds +CONFIG_SYS_TEXT_BASE = 0x60800000 diff --git a/board/armltd/vexpress/u-boot.lds b/board/armltd/vexpress/u-boot.lds deleted file mode 100644 index 5ac62f2..0000000 --- a/board/armltd/vexpress/u-boot.lds +++ /dev/null @@ -1,65 +0,0 @@ -/* - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, gj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - . = ALIGN(4); - .text : - { - arch/arm/cpu/armv7/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata))) } - - . = ALIGN(4); - .data : { *(.data) - __datarel_start = .; - *(.data.rel) - __datarelrolocal_start = .; - *(.data.rel.ro.local) - __datarellocal_start = .; - *(.data.rel.local) - __datarelro_start = .; - *(.data.rel.ro) - } - - __got_start = .; - . = ALIGN(4); - .got : { *(.got) } - __got_end = .; - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - __bss_start = .; - .bss : { *(.bss) } - _end = .; -}

From: Matt Waddel matt.waddel@linaro.org
This patch fixes build errors in the vexpress system: - Removed sys_proto.h requirement from syslib.c. - Switched vexpress to the default armv7 linker script. - Renamed TEXT_BASE to CONFIG_SYS_TEXT_BASE.
Signed-off-by: Matt Waddel matt.waddel@linaro.org --- Change log v2: Removed the new arch/arm/include/asm/arch-armv7/sys_proto.h file.
arch/arm/cpu/armv7/syslib.c | 1 - board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 -------------------------------------- 3 files changed, 1 insertions(+), 68 deletions(-) delete mode 100644 board/armltd/vexpress/u-boot.lds
diff --git a/arch/arm/cpu/armv7/syslib.c b/arch/arm/cpu/armv7/syslib.c index f9ed9a3..84d17f0 100644 --- a/arch/arm/cpu/armv7/syslib.c +++ b/arch/arm/cpu/armv7/syslib.c @@ -23,7 +23,6 @@
#include <common.h> #include <asm/io.h> -#include <asm/arch/sys_proto.h>
/************************************************************ * sdelay() - simple spin loop. Will be constant time as diff --git a/board/armltd/vexpress/config.mk b/board/armltd/vexpress/config.mk index 2d797d7..36395f2 100644 --- a/board/armltd/vexpress/config.mk +++ b/board/armltd/vexpress/config.mk @@ -19,5 +19,4 @@ # # Linux-Kernel is expected to be at 0x60008000 # -TEXT_BASE = 0x60800000 -LDSCRIPT := $(SRCTREE)/board/armltd/vexpress/u-boot.lds +CONFIG_SYS_TEXT_BASE = 0x60800000 diff --git a/board/armltd/vexpress/u-boot.lds b/board/armltd/vexpress/u-boot.lds deleted file mode 100644 index 5ac62f2..0000000 --- a/board/armltd/vexpress/u-boot.lds +++ /dev/null @@ -1,65 +0,0 @@ -/* - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, gj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - . = ALIGN(4); - .text : - { - arch/arm/cpu/armv7/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata))) } - - . = ALIGN(4); - .data : { *(.data) - __datarel_start = .; - *(.data.rel) - __datarelrolocal_start = .; - *(.data.rel.ro.local) - __datarellocal_start = .; - *(.data.rel.local) - __datarelro_start = .; - *(.data.rel.ro) - } - - __got_start = .; - . = ALIGN(4); - .got : { *(.got) } - __got_end = .; - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - __bss_start = .; - .bss : { *(.bss) } - _end = .; -}

Dear matt.waddel@linaro.org,
In message 1291318994-31573-1-git-send-email-matt.waddel@linaro.org you wrote:
From: Matt Waddel matt.waddel@linaro.org
This patch fixes build errors in the vexpress system:
- Removed sys_proto.h requirement from syslib.c.
- Switched vexpress to the default armv7 linker script.
- Renamed TEXT_BASE to CONFIG_SYS_TEXT_BASE.
Signed-off-by: Matt Waddel matt.waddel@linaro.org
Change log v2: Removed the new arch/arm/include/asm/arch-armv7/sys_proto.h file.
arch/arm/cpu/armv7/syslib.c | 1 - board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 -------------------------------------- 3 files changed, 1 insertions(+), 68 deletions(-) delete mode 100644 board/armltd/vexpress/u-boot.lds
Applied, thanks.
Best regards,
Wolfgang Denk

From: Matt Waddel matt.waddel@linaro.org
Fixed "pointer from integer without a cast" warnings in Vexpress.
Signed-off-by: Matt Waddel matt.waddel@linaro.org --- board/armltd/vexpress/ca9x4_ct_vxp.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/board/armltd/vexpress/ca9x4_ct_vxp.c b/board/armltd/vexpress/ca9x4_ct_vxp.c index 48dfc8c..c1c4ea1 100644 --- a/board/armltd/vexpress/ca9x4_ct_vxp.c +++ b/board/armltd/vexpress/ca9x4_ct_vxp.c @@ -95,16 +95,19 @@ static void flash__init(void)
int dram_init(void) { - gd->ram_size = get_ram_size(CONFIG_SYS_SDRAM_BASE, PHYS_SDRAM_1_SIZE); + gd->ram_size = + get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, PHYS_SDRAM_1_SIZE); return 0; }
void dram_init_banksize(void) { gd->bd->bi_dram[0].start = PHYS_SDRAM_1; - gd->bd->bi_dram[0].size = get_ram_size(PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE); + gd->bd->bi_dram[0].size = + get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE); gd->bd->bi_dram[1].start = PHYS_SDRAM_2; - gd->bd->bi_dram[1].size = get_ram_size(PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE); + gd->bd->bi_dram[1].size = + get_ram_size((long *)PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE); }
int timer_init(void)

Dear matt.waddel@linaro.org,
In message 1288740321-1341-3-git-send-email-matt.waddel@linaro.org you wrote:
From: Matt Waddel matt.waddel@linaro.org
Fixed "pointer from integer without a cast" warnings in Vexpress.
Signed-off-by: Matt Waddel matt.waddel@linaro.org
board/armltd/vexpress/ca9x4_ct_vxp.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk

Hey Wolfgang!
Would you mind considering these patches from earlier this month for u-boot-arm? These fixes the build of ca9x4_ct_vxp which currently fails for me: http://hudson.dooz.org/job/u-boot_master/BOARD=ca9x4_ct_vxp/39/console arm-linux-gnueabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ -I/srv/hudson.dooz.org/home/jobs/u-boot_master/workspace/BOARD/ca9x4_ct_vxp/include -fno-builtin -ffreestanding -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.4.5/include -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 -Wall -Wstrict-prototypes -DBUILD_TAG='"hudson-BOARD=ca9x4_ct_vxp-39"' -fno-stack-protector \ -o syslib.o syslib.c -c syslib.c:26: fatal error: asm/arch/sys_proto.h: No such file or directory compilation terminated.
Thanks!
On Tue, Nov 02, 2010, Matt Waddel wrote:
From: Matt Waddel matt.waddel@linaro.org
These patches fix several build errors and warnings. A successful build for this platform depends on Steve Sakoman's "ARMV7: Fix build for non-OMAP3 boards" patch.
Matt Waddel (2): ARMV7: Vexpress build errors ARMV7: Vexpress compile warnings
arch/arm/include/asm/arch-armv7/sys_proto.h | 29 ++++++++++++ board/armltd/vexpress/ca9x4_ct_vxp.c | 9 +++- board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 --------------------------- 4 files changed, 36 insertions(+), 70 deletions(-) create mode 100644 arch/arm/include/asm/arch-armv7/sys_proto.h delete mode 100644 board/armltd/vexpress/u-boot.lds

Le 03/11/2010 00:25, matt.waddel@linaro.org a écrit :
From: Matt Waddelmatt.waddel@linaro.org
These patches fix several build errors and warnings. A successful build for this platform depends on Steve Sakoman's "ARMV7: Fix build for non-OMAP3 boards" patch.
Matt Waddel (2): ARMV7: Vexpress build errors ARMV7: Vexpress compile warnings
arch/arm/include/asm/arch-armv7/sys_proto.h | 29 ++++++++++++ board/armltd/vexpress/ca9x4_ct_vxp.c | 9 +++- board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 --------------------------- 4 files changed, 36 insertions(+), 70 deletions(-) create mode 100644 arch/arm/include/asm/arch-armv7/sys_proto.h delete mode 100644 board/armltd/vexpress/u-boot.lds
Wofgang, maybe I can take over u-boot-arm now and start by applying these two patches (and let you pull u-boot-arm later this week)?
Amicalement,

On 29.11.2010 19:13, Albert ARIBAUD wrote:
Le 03/11/2010 00:25, matt.waddel@linaro.org a écrit :
From: Matt Waddelmatt.waddel@linaro.org
These patches fix several build errors and warnings. A successful build for this platform depends on Steve Sakoman's "ARMV7: Fix build for non-OMAP3 boards" patch.
Matt Waddel (2): ARMV7: Vexpress build errors ARMV7: Vexpress compile warnings
arch/arm/include/asm/arch-armv7/sys_proto.h | 29 ++++++++++++ board/armltd/vexpress/ca9x4_ct_vxp.c | 9 +++- board/armltd/vexpress/config.mk | 3 +- board/armltd/vexpress/u-boot.lds | 65 --------------------------- 4 files changed, 36 insertions(+), 70 deletions(-) create mode 100644 arch/arm/include/asm/arch-armv7/sys_proto.h delete mode 100644 board/armltd/vexpress/u-boot.lds
Wofgang, maybe I can take over u-boot-arm now and start by applying these two patches (and let you pull u-boot-arm later this week)?
With recent master, besides the two patches above, I additionally need something like below to get ca9x4_ct_vxp build:
ARMV7: Vexpress: Fix build error
Fix ca9x4_ct_vxp build error
Configuring for ca9x4_ct_vxp board... board/armltd/vexpress/libvexpress.o: In function `udelay': u-boot.git/board/armltd/vexpress/ca9x4_ct_vxp.c:161: multiple definition of `udelay' lib/libgeneric.o:u-boot.git/lib/time.c:34: first defined here
lib/libgeneric.o: In function `udelay':
zlib.c:(.text+0x1ee8): undefined reference to `__udelay'
Signed-of-by: Dirk Behme dirk.behme@googlemail.com
--- board/armltd/vexpress/ca9x4_ct_vxp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Index: u-boot.git/board/armltd/vexpress/ca9x4_ct_vxp.c =================================================================== --- u-boot.git.orig/board/armltd/vexpress/ca9x4_ct_vxp.c +++ u-boot.git/board/armltd/vexpress/ca9x4_ct_vxp.c @@ -157,7 +157,7 @@ void reset_cpu(ulong addr) * Delay x useconds AND perserve advance timstamp value * assumes timer is ticking at 1 msec */ -void udelay(ulong usec) +void __udelay(ulong usec) { ulong tmo, tmp;

Dear Dirk Behme,
In message 4CF3F77B.9080505@googlemail.com you wrote:
With recent master, besides the two patches above, I additionally need something like below to get ca9x4_ct_vxp build:
ARMV7: Vexpress: Fix build error
Fix ca9x4_ct_vxp build error
Configuring for ca9x4_ct_vxp board... board/armltd/vexpress/libvexpress.o: In function `udelay': u-boot.git/board/armltd/vexpress/ca9x4_ct_vxp.c:161: multiple definition of `udelay' lib/libgeneric.o:u-boot.git/lib/time.c:34: first defined here
lib/libgeneric.o: In function `udelay':
zlib.c:(.text+0x1ee8): undefined reference to `__udelay'
Signed-of-by: Dirk Behme dirk.behme@googlemail.com
board/armltd/vexpress/ca9x4_ct_vxp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (5)
-
Albert ARIBAUD
-
Dirk Behme
-
Loïc Minier
-
matt.waddel@linaro.org
-
Wolfgang Denk