[U-Boot-Users] PXA270 board startup: printf does not work
JP
jp-linux at att.net
Tue May 27 16:47:52 CEST 2008
JP wrote:
> Jerry Van Baren wrote:
>> Your talk about having a corrupted local char buffer confused me. If it
>> were not for that detail, I would have been positive that you have a
>> problem with handling your UART's Tx busy flag.
>>
>> Your symptoms are typical of not waiting for the UART to complete
>> transmitting a character before stuffing the next one in once the UART
>> FIFO is full. The result is that, if the string has fewer than /n/
>> characters (/n/ being the depth of the UART's Tx FIFO, possibly a few
>> more), it works OK. If the string is longer than /n/, it gets corrupted
>> by your s/w overwriting characters in the UART. Depending on the UART
>> implementation, this could include the one currently being shifted out,
>> resulting in garbage characters.
>
> A very long (already initialized) string prints correctly with puts, so
> I suspect the FIFO implementation is OK. We're using the FFUART.
>> What in your processor is 32 bytes long? UART FIFO? Cache line? Hmmmm,
>> could you be having cache consistency problems? Cache problems would be
>> consistent with garbage in memory.
>>
>> BIG WARNING NOTE: Writing memory with a debugger is typically very
>> benign (s.l.o.w.) compared to writing with the processor. Writing
>> single memory locations with the processor is typically benign compared
>> to a cache line burst read/write. SDRAM (including DDR/DDR2)
>> initialization problems typically do *not* show up until cache is
>> enabled because it is the burst read/write that violates the "S" in
>> SDRAM (you end up out of sync "synchronous").
>> FAQ: <http://www.denx.de/wiki/DULG/SDRAM>
>
> Thanks for those ideas. We haven't found many examples to compare our
> configuration to, but we did have trouble initially getting the SDRAM
> startup sequence working. Your description and the wiki entry describe
> what could be happening.
>
> JP
This turned out to be a hardware problem: the DQM 0/1 lines that select
8 bits of a 32 bit location were reversed.
More information about the U-Boot
mailing list