Re: [U-Boot-Users] Serial Console

Based on some good advice from Marc, I have been tracing through the buffers to find my problem. I can see console output being written to a buffer at IMMR|0x2811 (0xFA202881 in my case). The buffer pointer appears to never advance, but this may be because I am debugging and the SMC services this buffer before the next call to smc_putc(...). I do not know. OR this may be one of the problems that I am looking for.
So, the culprit seems to be that the SMC buffer is not properly initialized, though the baudrate generator and SMC registers are set up correctly (see previous posts). Also, I am noticing that the serial initialization functions that set up the buffer are not called, but this could just be my oversight because of the unusual (or atlesat to me) way addresses for the functions are passed in a struct and then called by address somewhere else.
So what would help the most is if someone could inform me of the inilialization sequence and function calls used to set up the SMC. It seems conceptually straight forward, but my breakpoints in smc_init(), for example, are never hit when the buffer pointers are set up.
Thanks, JM

buffers to find my problem. I can see console output being written to a buffer at IMMR|0x2811 (0xFA202881 in my case). The buffer pointer
That should be fine, once the data is written on that location, it's the responsibility for the serial output to read/clear the data. Normally he next data will arrive once that location is cleared, when the data should have been handled and when there is now serial data available.
the SMC services this buffer before the next call to smc_putc(...). I do not know. OR this may be one of the problems that I am looking for.
I don't know how your serial output is configured, but maybe the output is waiting for the ready signals that never arrive.

In message 20060629171752.GI23183@scorpius.homelinux.org you wrote:
I don't know how your serial output is configured, but maybe the output is waiting for the ready signals that never arrive.
In 80% of the cases I've seen there was just no valid transmit clock.
Best regards,
Wolfgang Denk

seems conceptually straight forward, but my breakpoints in smc_init(), for example, are never hit when the buffer pointers are set up.
I would hazard a guess that your serial problem is just a symptom of an underlying problem. Well, it certainly was in our case.

In message 1628E43D99629C46988BE46087A3FBB96071D3@ep-01.EmbeddedPlanet.local you wrote:
So what would help the most is if someone could inform me of the inilialization sequence and function calls used to set up the SMC. It
You got the source code. Read it. It's not difficult to understand, as it follows closely the example pseudo code in the User's Manual.
seems conceptually straight forward, but my breakpoints in smc_init(), for example, are never hit when the buffer pointers are set up.
Maybe you do something wrong with your debugger.
A hint: check your clock routing.
Best regards,
Wolfgang Denk
participants (3)
-
Jeff Mann
-
Marc Leeman
-
Wolfgang Denk