Skip to contentSkip to conversation

Isseus with porting and debugging u-boot

U-Boot-Users Abdel El-Masoudi 1 participant 1 message May 4, 2005

lore
Share & tools
lore
#0 lore raw

I want to upgrade my u-boot version (1.0.0) For a EP7312(ARM7) based custom designed board to the latest u-boot version.

I downloaded u-boot 1.1.2 and patched it manually with my specific board configuration files. Unfortunally the patched u-boot version would not boot. I did the following to debug the u-boot with a bdi2000 (with a good configuration file, hardware breakpoints).

Load u-boot.bin at 0x00000000
Start GDB with u-boot elf file (first address = 0xc0f00000) connect to bdi20000
etc..

board information
FLASH = 0x00000000
RAM = 0xc0000000
TEXT_BASE = 0xc0f00000
/
System.map
/bash-2.05b$ more System.map
c0f00000 T _start
c0f00020 t _undefined_instruction
c0f00024 t _software_interrupt
c0f00028 t _prefetch_abort/

*How to debug u-boot when the first address in the ELF file is not the same as the address of the image on the target?*/

I tried to change the addresses by changing TEXT_BASE to 0x00000000 in the board specific config.mk file, but i think this is not the solution!!

When i debugged u-boot in FLASH i could step through it, but it looks like i did not execute any code. For example the registers R0, R1 etc.. did not get a proper value when a assembler move instruction executed.

I tried the latest u-boot cvs version, because it had the capability to start from RAM by skipping relocation code (CONFIG_SKIP_RELOCATE_UBOOT). My BDI2000 did the initial configuration and start/load the U-boot RAM version.
A strange thing is that the u-boot version starts without any problems, but when i compile u-boot without CONFIG_SKIP_RELOCATE_UBOOT and flash it to the first address (0x00000000) it would not start. The difference between the two version is only the relocation code.
My u-boot 1.0.0 with my board specific patches works without any problem.

Could somebody have any clue what the problem is?