Hi, after further investigation, I found out that my SMC problem is probably caused by cache issues.
> The SMC console works fine in U-Boot. 115200 8N1, no problem there. > > When booting a Linux 2.6.16 kernel, the processor doesn't print anything on > the console and seems to hang. Further analysis with a BDI2000 reveals the > following. > > - The CPU is stuck in cpm_uart_console_write, checking for > > while ((bdp->cbd_sc & BD_SC_READY) != 0); > > At that point, most of the external and internal memory read as 0 (SDRAM, > flash, ...). A few memory locations contain values different than 0, and I > suspect those to come directly from the cache. The only memory locations that aren't filled with 0 when read from the BDI are the ones present in D-cache lines. Accessing unmapped memory doesn't fail and returns 0. > - If I break right before setting the BD_SC_READY flag and run using stepi, > random characters are sent on the serial port. Measuring the baudrate using > an oscilloscope confirms that it has been correctly configured. Only the > data is wrong.