
Wolfgang Denk wrote:
that works apart from 'help' is 'version' :P I think I screwed something with the cmdtbl. I've a slightly messed up u-boot.lds where all input sections (.text, .data, .rodata*, . u_boot_cmd,..) in one huge section.
You're meddling with a lot of pretty critical places all at once. I wouldn't do that, if I were you. I see no reason to mess with the linker script, for example.
I had to do that because., the boot code starts executing at 0x40000000 which is a ROM., and the DRAM is at 0x90000000. So., the startup relocation code is linked at 0x40000000 while the relocatable code (the rest of u-boot) is linked at 0x90000000. In the startup code., i move u-boot out to the DRAM and transfer control to 'start_armboot' in lib_arm/board.c
All existing linker scripts start at one constant address., and so have no issues. Anywayz., I figured the problem is not with the linker script., but something weird with the macros.
For example., I checked using #error messages and found that the following '#if' in common/cmd_mem.c is failing.,
#if (CONFIG_COMMANDS & (CFG_CMD_MEMORY | \ CFG_CMD_I2C | \ CFG_CMD_ITEST | \ CFG_CMD_PCI | \ CMD_CMD_PORTIO ) )
I have '#define CONFIG_COMMANDS CFG_CMD_ALL' in my configs/myboard.h.
I'm quite confused how the compiler did not throw an error. When compiling common/cmd_mem.c, the first header to be included is the config.h, in which CFG_CMD_ALL is used but not defined. I found that it is defined in include/cmd_confdefs.h. Should I be including this header in the configs/myboard.h?