
Hi Johnson Yu,
Hi Detlev Z,
Thanks for your suggestions, and after I upgraded the toolchain to v3.2, those problems went away.
Why did you upgrade only to 3.2? We are currently using gcc-4.2.2. You are welcome to download ELDK 4.2 for arm[1] and give it a try.
However, new errors turned up as expected:
You expected new errors? Uh uh, I was hoping for them to go away ;)
- the invocations of U_BOOT_CMD in several .c files,
common/cmd_bootm.c line 923, common/cmd_source.c line 232, common/cmd_ximg.c line 186 terminated the make process for the "unterminated argument list invoking macro "U_BOOT_CMD" ", known as the "parse error". So, I set the last argument of U_BOOT_CMD marco to NULL, and then make went silent.
I don't understand this. include/common.h defines U_BOOT_CMD to take 6 parameters. Your example common/cmd_boot.c also provides 6 parameters:
U_BOOT_CMD( bootm, CONFIG_SYS_MAXARGS, 1, do_bootm, "boot application image from memory", "[addr [arg ...]]\n - boot application image stored in memory\n" "\tpassing arguments 'arg ...'; when booting a Linux kernel,\n" ...... [more concatenations below this point]
So I count 4 parameters on the first line, 1 parameter on the next and the 6th parameter is the long list of concatenated strings.
Why should you need to add another parameter here?
- this error came at the linking stage:
"arm-linux-ld:/home/johnson-yn/GEARI/u-boot-2009.06/board/atmel/at91rm9200dk/u-boot.lds:40: parse error make: *** [u-boot] Error 1"
and the line 40 of u-boot.lds is :
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
how should I solve this?
The easiest way would be to upgrade to a _recent_ toolchain (i.e. >4). On the other hand, the line you mention was added in this commit:
http://git.denx.de/?p=u-boot.git;a=commit;h=f62fb99941c625605aa16a0097b396a5...
If you check the commit msg, you get an idea of how you may "unwind" this optimization.
However, why invest time, if a recent toolchain "just works"?
If I just don't need use NAND flash module in u-boot, what are the steps I should take??
It should be enough to #undef CONFIG_CMD_NAND in the config file.
Cheers Detlev
[1] http://www.denx.de/wiki/view/DULG/ELDKDownload?stickboard=qong