<br>Here's the my summary:<br>1. Booting CNS3420 EVB v 1.3 failed with linux 2.6.36 and .35<br>2. Build fails if enable DEBUG in head.S. ( but I guess the cause is not in head.S, since at least "Decompressing" and "booting" is shown.)<br>
3. How should I debug before start_kernel?<br><br>Following is the description of the issues:<br>--------------------------------------<br>CNS3420 EVB v 1.3<br>Linux 2.6.36 and 2.6.35<br>Using
arch/arm/configs/cns3420vb_defconfig as default config. <br>Toolchain
is Sourcery G++ Lite for ARM GNU/Linux, arm-2010-q1 and arm-2009-q1 <br>
<br>My u-boot use following bootcmd to boot image:<br>---<br>set kfile bootpImage;<br>set ramaddr 4000000;<br>set bootcmd mmc\;fatload mmc 0 \$(ramaddr) \$(kfile)\; go \$(ramaddr);saveenv;<br>---<br>As for the ramaddr, I've tried 0x10000, 0x80000, 0x100000, 0x200000, 0x4000000. All failed.<br>
<br>The u-boot message:<br>--<br>
U-Boot 2008.10-mpcore-00653-g4f9d01a (Sep 17 2010 - 22:19:25)<br>Cavium Networks CNS3XXX SDK v1.0-1462<br><br>CPU: Cavium Networks CNS3000<br>ID Code: 410fb024 (Part number: 0xB02, Revision number: 4) <br>CPU ID: 900 <br>
Chip Version: c<br><br>DRAM: 256 MB<br>Flash: 128 MB<br>In: serial<br>Out: serial<br>Err: serial<br>CPU works at 600 MHz (600/1/1)<br>DDR2 Speed is 400 MHz <br>Hit any key to stop autoboot: 0 <br>mmc_init<br>Detected SD Card<br>
reading bootpImage<br><br>9363530 bytes read<br>enter do_eth_down!!!<br>## Starting application at 0x04000000 ...<br>Uncompressing Li done, booting t<br>--<br><br>With RVDS, the CPU stops at:<br>--<br>PC=0x815c<br>...<br>
0x815c: E1A00000: MOV r0,r0<br>
0x8560: E28F3048: B 0x815c<br>...<br>--<br>
The assembly seems really wrong, but I don't know where is it in the code.<br><br>So I tried to enable DEBUG in head.S with following patch:<br>
----<br>diff --git a/arch/arm/boot/compressed/head.S
b/arch/arm/boot/compressed/head.S<br>index c5191b1..fbd04c1 100644<br>---
a/arch/arm/boot/compressed/head.S<br>+++
b/arch/arm/boot/compressed/head.S<br>@@ -17,6 +17,7 @@<br>
* 100% relocatable. Any attempt to do so will result in a crash.<br>
* Please select one of the following when turning on debugging.<br> */<br>+#define
DEBUG<br> #ifdef DEBUG<br> <br> #if defined(CONFIG_DEBUG_ICEDCC)<br>
----<br><br>Then it failed at building:<br>----<br> AS arch/arm/boot/compressed/lib1funcs.o<br>
arch/arm/boot/compressed/head.S: Assembler messages:<br>
arch/arm/boot/compressed/head.S:1019: Error: too many positional
arguments<br>
arch/arm/boot/compressed/head.S:1036: Error: too many positional
arguments<br>
make[3]: *** [arch/arm/boot/compressed/head.o] Error 1<br>
----<br><br>Best Regards,<br>Mac Lin<br>