confusion about relocation (ARM)
matthias at kaehlcke.net
Mon Jan 4 14:21:53 EST 2010
El Mon, Jan 04, 2010 at 01:07:58PM +0100 Sascha Hauer ha dit:
> On Fri, Jan 01, 2010 at 10:48:26PM +0100, Matthias Kaehlcke wrote:
> > El Fri, Jan 01, 2010 at 09:36:29PM +0100 Eric Bénard ha dit:
> > > Le 01/01/2010 20:48, Matthias Kaehlcke a écrit :
> > >> a comment in start_barebox() says 'We are running from RAM now', so i
> > >> deduced SDRAM must work. but after having a look at start-arm.S i'm a
> > >> little bit confused. as far as i understand the barebox code is copied
> > >> to RAM in copy_loop(). what i don't see is where the program counter
> > >> is set to the address in RAM?
> > >>
> > > in arch/arm/cpu/start-arm.S @ line 245 :
> > > ldr pc, _start_armboot
> > i saw this line, but i don't understand how it comes that
> > the address at _start_armboot points to RAM and not to the flash.
> When your barebox image is linked to RAM (that is 0x05700000 in your
> case) _start_armboot is in RAM, too.
> > another question: how does ARCH_TEXT_BASE fit in here? i defined it as
> > 0x05700000, but in the barebox image _TEXT_BASE is 0x00000000
> Have a look at barebox.S, it should look like:
> barebox: file format elf32-littlearm
> Disassembly of section .text:
> 87f00000 <_start>:
thanks for your reply!
finally i figured out what was going wrong: after getting compiler errors
when using a config file created from scratch, i took a defconfig of
another ARM board as starting point. this board defines
CONFIG_TEXT_BASE as 0x00000000, in consequence ARCH_TEXT_BASE
(0x05700000) of the edb93xx board wasn't used.
after setting CONFIG_TEST_BASE to the correct value i got a barebox
Embedded Linux Developer
Debugging is like alien abduction. Large blocks of time disappear,
for which you have no explanation
using free software / Debian GNU/Linux | http://debian.org : :' :
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-
More information about the barebox