All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Keir Fraser <keir.fraser@eu.citrix.com>
Cc: Xen-devel <xen-devel@lists.xensource.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: Hang on boot when using IPMI 2.0 SoL console
Date: Thu, 10 Dec 2009 11:34:39 -0800	[thread overview]
Message-ID: <4B214D4F.70706@goop.org> (raw)
In-Reply-To: <C7463EC6.410A%keir.fraser@eu.citrix.com>

On 12/09/09 21:59, Keir Fraser wrote:
> So the interrupt line isn't working for your com3, for some reason.
>    

The Linux driver has two SoL-specific hacks (below).  But I don't think 
either of these are coming into play in this case; the first only 
applies with a serial break, and the second is only enabled if it 
detects specific Intel PCI devices (which don't exist on this particular 
machine; the SoL is part of the integrated IPMI BMC, not an AMT ethernet 
device).

Presumably the Linux driver is managing to work around the problems - 
either accidentally or deliberately - in some more subtle way.

     J

static void
receive_chars(struct uart_8250_port *up, unsigned int *status)
{
	struct tty_struct *tty = up->port.info->port.tty;
	unsigned char ch, lsr = *status;
	int max_count = 256;
	char flag;

	do {
		if (likely(lsr&  UART_LSR_DR))
			ch = serial_inp(up, UART_RX);
		else
			/*
			 * Intel 82571 has a Serial Over Lan device that will
			 * set UART_LSR_BI without setting UART_LSR_DR when
			 * it receives a break. To avoid reading from the
			 * receive buffer without UART_LSR_DR bit set, we
			 * just force the read character to be 0
			 */
			ch = 0;

and

static int serial8250_startup(struct uart_port *port)
{
...
	/* Serial over Lan (SoL) hack:
	   Intel 8257x Gigabit ethernet chips have a
	   16550 emulation, to be used for Serial Over Lan.
	   Those chips take a longer time than a normal
	   serial device to signalize that a transmission
	   data was queued. Due to that, the above test generally
	   fails. One solution would be to delay the reading of
	   iir. However, this is not reliable, since the timeout
	   is variable. So, let's just don't test if we receive
	   TX irq. This way, we'll never enable UART_BUG_TXEN.
	 */
	if (up->port.flags&  UPF_NO_TXEN_TEST)
		goto dont_test_tx_en;
...

  parent reply	other threads:[~2009-12-10 19:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-10  0:19 Hang on boot when using IPMI 2.0 SoL console Jeremy Fitzhardinge
2009-12-10  1:38 ` Jeremy Fitzhardinge
2009-12-10  1:42   ` Jeremy Fitzhardinge
2009-12-10  5:59     ` Keir Fraser
2009-12-10  8:10       ` Andrew Lyon
2009-12-10 18:25         ` Jeremy Fitzhardinge
2009-12-10 18:21       ` Jeremy Fitzhardinge
2009-12-10 19:34       ` Jeremy Fitzhardinge [this message]
2009-12-10  5:57 ` Keir Fraser

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=4B214D4F.70706@goop.org \
    --to=jeremy@goop.org \
    --cc=keir.fraser@eu.citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=xen-devel@lists.xensource.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.