<br>Here&#39;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 &quot;Decompressing&quot; and &quot;booting&quot; 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&#39;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&#39;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>