public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Jerry Van Baren <gvb.uboot@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] mips board with no output from console
Date: Mon, 28 Sep 2009 20:55:40 -0400	[thread overview]
Message-ID: <4AC15B0C.2080001@gmail.com> (raw)
In-Reply-To: <1254182353.7952.1337072463@webmail.messagingengine.com>

myuboot at fastmail.fm wrote:
> I am trying to upgrade my u-boot from 2008.10 to 2009.06. So I used the
> buildroot 2009.06 to build the tool chain for my mips32 board as well as
> u-boot. I also copied the previous u-boot initialization code to
> initialze timer, serial port, ram and etc from u-boot 2008.10 to
> 2009.06. My previous version of u-boot-2008.10 was working, but after
> porting it over to u-boot 2009.06, there is no output from console at
> all. I used bdi hardware debugger to debug it, and found that u-boot is
> stuck in file drivers/serial/ns16550.c function NS16550_putc. There is a
> while loop there :
> while ((com_port>lsr & LSR_THRE) == 0);
> 
> My understanding is the line here is to wait for the hardware register
> (LSR_THRE) to acknowledge the input character was received by the
> hardware.
> 
> But I don't have any clue how to fix this issue. I think I have
> initialized the serial port the same way as I did for u-boot 2008.10.
> Can some one give me some suggestions on what to check for?
> 
> Thanks.  

Hi "myuboot",

If you look in ./include/ns16550.h you will see:
#define UART_LSR_THRE   0x20            /* Xmit holding register empty */

The code you quote is waiting for room in the transmit buffer to put the 
character in.  It is stuck in the loop because it is reading 0 == not 
empty, i.e. full.

This means the UART is not transmitting for some reason - that is why it 
is backed up.  My first suspicion would be that your UART is not being 
clocked.  I know nothing of your board or processor, but I would check 
clock configurations.  I would put a scope on the UART clock pin, 
assuming you can probe it, and *verify* that the clock is running at the 
expected rate.

If your clocking is OK, the next likely thing is that you have hardware 
handshaking and the RTS/CTS (DSR/DTR) lines are holding off the Tx. 
This could be due to actual handshaking hardware, or due to port (or 
SOC) configuration that makes the UART think that there are handshake 
lines that aren't connected or that are configured to be inactive.

I would put 98% odds on your clocking not clocking, however.

Good luck,
gvb

  reply	other threads:[~2009-09-29  0:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-28 23:59 [U-Boot] mips board with no output from console myuboot at fastmail.fm
2009-09-29  0:55 ` Jerry Van Baren [this message]
     [not found]   ` <1254264169.23326.1337258915@webmail.messagingengine.com>
2009-09-29 23:37     ` Jerry Van Baren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AC15B0C.2080001@gmail.com \
    --to=gvb.uboot@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox