[U-Boot-Users] [patch 0/3] KB9202 CodeSourcery ARM EABI toolchainbuild fixes

Johannes Stezenbach js at sig21.net
Thu Jan 24 16:10:40 CET 2008


On Wed, Jan 23, 2008, Peter Pearse wrote:
> > -----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.
> 
> 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.


> > 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. 
> 
> 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 at 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.

Signed-off-by: Johannes Stezenbach <js at sig21.net>

diff --git a/include/configs/kb9202.h b/include/configs/kb9202.h
index 75d9c3b..88e8737 100644
--- a/include/configs/kb9202.h
+++ b/include/configs/kb9202.h
@@ -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




More information about the U-Boot mailing list