Skip to content

KB9202 CodeSourcery ARM EABI toolchainbuild fixes

Johannes Stezenbach u-boot 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 3 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 3 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [U-Boot-Users] [patch 0/3] KB9202 CodeSourcery ARM EABI toolchainbuild fixes
Quoted 22 lines · Peter Pearse
Quoted 11 lines

-----Original Message-----
From: u-boot-users-bounces at lists.sourceforge.net [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of Johannes Stezenbach
Sent: 25 October 2007 17:11

I wanted to build u-boot-1.3.0-rc3 for the KwikByte KB9202 board with the current ARM toolchain from CodeSourcery. I needed the following three patches to get it to build.

The first one is probably a bugfix needed for other toolchains, too.

Thanks for this - it has alerted me to the use of
sub rx, rx, #CONSTANT in several of the ARM .S assembler files. Whilst sub rx, rx, #CONSTANT saves code size it does demand that users understand their constants, what they are for and where they are used.
For ARM #CONSTANT in this context must be capable of being formed by rotating
an 8 bit constant in a 32 bit register
e.g. 0x22000 is allowed whereas 0x20200 is not.

Quoted 6 lines

I am going to reject your patch though. It is the code that should be changed.
I have added an action to my list of required patches
http://www.denx.de/wiki/UBoot/PatchStatus to examine the use of constants in the ARM assembler
code.

The simple patch below at least circumvents the problem and allows u-boot to build for the kb9202. Please consider applying this one. It is not toolchain specific.

Quoted 10 lines
Quoted 6 lines

The other two patches are specific to the CodeSourcery toolchain (or probably to any EABI toolchain with gcc-4.2.x). I haven't checked if they break the build for other ARM toolchains, so it's probably better to not apply them unless someone else confirms they're OK.

Thanks for submitting these - they will be of use/interest to users building EABI code.

Quoted 8 lines

However I do not propose to submit them to the main tree since they are toolchain
specific. The standard toolchain for building U-Boot is that supplied in the ELDK
http://www.denx.de/wiki/DULG/ELDK.
Of course many users have reasons for using others, however to support all possible
toolchains would result in a support nightmare.....

The patch propsed in

[U-Boot-Users] [patch u-boot git 2/3] better ARM9 compiler options
From: David Brownell <david-b@pa...> - 2008-01-18 20:55
http://sourceforge.net/mailarchive/forum.php?thread_name=200801181250.50303.david-b%40pacbell.net&forum_name=u-boot-users

would take care of the CodeSourcery build issues, too. It should work with any toolchain.

---
KB9202 compile fix

make -C cpu/arm920t start.o
...
start.S: Assembler messages:
start.S:205: Error: invalid constant (20200) after fixup etc.

The environment size is the same as in the kb9202
patch available from www.kwikbyte.com.

include/configs/kb9202.h +2 -2
index 75d9c3b..88e8737 100644
@@ -128,8 +128,8 @@
 #define	CFG_ENV_IS_IN_EEPROM
 
 #ifdef CONFIG_KB9202
-#define CFG_ENV_OFFSET			0x3E00
-#define CFG_ENV_SIZE			0x0200
+#define CFG_ENV_OFFSET			0x2000
+#define CFG_ENV_SIZE			0x2000
 #else
 #define CFG_ENV_OFFSET			0x1000
 #define CFG_ENV_SIZE			0x1000

Thanks,
Johannes