All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <florian@openwrt.org>
To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Linux-MIPS <linux-mips@linux-mips.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>,
	linux-serial@vger.kernel.org
Subject: Re: [PATCH 8/8] 8250: add Texas Instruments AR7 internal UART
Date: Sun, 14 Jun 2009 13:18:36 +0200	[thread overview]
Message-ID: <200906141318.38376.florian@openwrt.org> (raw)
In-Reply-To: <20090611093022.GA14510@alpha.franken.de>

Le Thursday 11 June 2009 11:30:22 Thomas Bogendoerfer, vous avez écrit :
> On Thu, Jun 11, 2009 at 10:28:39AM +0200, Florian Fainelli wrote:
> > Le Friday 05 June 2009 00:20:20 Thomas Bogendoerfer, vous avez écrit :
> > > On Thu, Jun 04, 2009 at 04:22:46PM +0200, Florian Fainelli wrote:
> > > > We discussed that in private, there are a couple of things
> > > > to fix in order to get 8250 working properly with TI AR7 HW.
> > > > If you can still merge that bit, this would ease future work, thanks
> > > > !
> > >
> > > I still have a tree here, which works without any changes to the 8250
> > > serial driver on a TNETD7300 device.
> >
> > Could you show me how you register the 8250 driver ? Without the
> > 8250-specific
>
> static struct plat_serial8250_port uart0_data = {
>         .mapbase = AR7_REGS_UART0,
>         .irq = AR7_IRQ_UART0,
>         .regshift = 2,
>         .iotype = UPIO_MEM,
>         .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
> };
>
>         uart_port[0].type = PORT_16550A;
>         uart_port[0].line = 0;
>         uart_port[0].irq = AR7_IRQ_UART0;
>         uart_port[0].uartclk = ar7_bus_freq() / 2;
>         uart_port[0].iotype = UPIO_MEM;
>         uart_port[0].mapbase = AR7_REGS_UART0 + 3;
>         uart_port[0].membase = ioremap(uart_port[0].mapbase, 256);
>         uart_port[0].regshift = 2;
>         res = early_serial_setup(&uart_port[0]);
>         if (res)
>                 return res;
>
>
> the +3 comes from the fact, that this machine is configured to run big
> endian.
>
> Here is the boot log:
>
> Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
> serial8250: ttyS0 at MMIO 0x8610e03 (irq = 15) is a 16550A
> console handover: boot [early0] -> real [ttyS0]
> serial8250: ttyS1 at MMIO 0x8610f00 (irq = 19) is a 16550A
> loop: module loaded
> Fixed MDIO Bus: probed
>
>
> ttyS1 uses the wrong address, but there is nothing connected to
> that port on the box.
>
> Do you see the problem on TNETD7200 devices as well ?

I no longer have TNETD7200 devices to test on unfortunately.

What I just found is that TNETD7300GDU revision 5 does not have this bug, 
while TNETD7300GDU revision 4 has. This seems to confirm the HW bug 
hypothesis. Let's just clean the serial console registration and we will keep 
in OpenWrt the 8250 workaround for older TNETD7300 revisions.
-- 
Best regards, Florian Fainelli
Email : florian@openwrt.org
http://openwrt.org
-------------------------------

WARNING: multiple messages have this Message-ID (diff)
From: Florian Fainelli <florian@openwrt.org>
To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Linux-MIPS <linux-mips@linux-mips.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>,
	linux-serial@vger.kernel.org
Subject: Re: [PATCH 8/8] 8250: add Texas Instruments AR7 internal UART
Date: Sun, 14 Jun 2009 13:18:36 +0200	[thread overview]
Message-ID: <200906141318.38376.florian@openwrt.org> (raw)
In-Reply-To: <20090611093022.GA14510@alpha.franken.de>

Le Thursday 11 June 2009 11:30:22 Thomas Bogendoerfer, vous avez écrit :
> On Thu, Jun 11, 2009 at 10:28:39AM +0200, Florian Fainelli wrote:
> > Le Friday 05 June 2009 00:20:20 Thomas Bogendoerfer, vous avez écrit :
> > > On Thu, Jun 04, 2009 at 04:22:46PM +0200, Florian Fainelli wrote:
> > > > We discussed that in private, there are a couple of things
> > > > to fix in order to get 8250 working properly with TI AR7 HW.
> > > > If you can still merge that bit, this would ease future work, thanks
> > > > !
> > >
> > > I still have a tree here, which works without any changes to the 8250
> > > serial driver on a TNETD7300 device.
> >
> > Could you show me how you register the 8250 driver ? Without the
> > 8250-specific
>
> static struct plat_serial8250_port uart0_data = {
>         .mapbase = AR7_REGS_UART0,
>         .irq = AR7_IRQ_UART0,
>         .regshift = 2,
>         .iotype = UPIO_MEM,
>         .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
> };
>
>         uart_port[0].type = PORT_16550A;
>         uart_port[0].line = 0;
>         uart_port[0].irq = AR7_IRQ_UART0;
>         uart_port[0].uartclk = ar7_bus_freq() / 2;
>         uart_port[0].iotype = UPIO_MEM;
>         uart_port[0].mapbase = AR7_REGS_UART0 + 3;
>         uart_port[0].membase = ioremap(uart_port[0].mapbase, 256);
>         uart_port[0].regshift = 2;
>         res = early_serial_setup(&uart_port[0]);
>         if (res)
>                 return res;
>
>
> the +3 comes from the fact, that this machine is configured to run big
> endian.
>
> Here is the boot log:
>
> Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
> serial8250: ttyS0 at MMIO 0x8610e03 (irq = 15) is a 16550A
> console handover: boot [early0] -> real [ttyS0]
> serial8250: ttyS1 at MMIO 0x8610f00 (irq = 19) is a 16550A
> loop: module loaded
> Fixed MDIO Bus: probed
>
>
> ttyS1 uses the wrong address, but there is nothing connected to
> that port on the box.
>
> Do you see the problem on TNETD7200 devices as well ?

I no longer have TNETD7200 devices to test on unfortunately.

What I just found is that TNETD7300GDU revision 5 does not have this bug, 
while TNETD7300GDU revision 4 has. This seems to confirm the HW bug 
hypothesis. Let's just clean the serial console registration and we will keep 
in OpenWrt the 8250 workaround for older TNETD7300 revisions.
-- 
Best regards, Florian Fainelli
Email : florian@openwrt.org
http://openwrt.org
-------------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-06-14 11:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-04 14:22 [PATCH 8/8] 8250: add Texas Instruments AR7 internal UART Florian Fainelli
2009-06-04 22:20 ` Thomas Bogendoerfer
2009-06-05 13:52   ` Florian Fainelli
2009-06-05 13:52     ` Florian Fainelli
2009-06-06 17:25   ` Florian Fainelli
2009-06-06 17:25     ` Florian Fainelli
2009-06-11  8:28   ` Florian Fainelli
2009-06-11  8:28     ` Florian Fainelli
2009-06-11  9:30     ` Thomas Bogendoerfer
2009-06-11  9:30       ` Thomas Bogendoerfer
2009-06-11 11:27       ` Alexander Clouter
2009-06-11 11:27         ` Alexander Clouter
2009-06-11 11:27         ` Alexander Clouter
2009-06-11 12:41         ` Alexander Clouter
2009-06-14 11:18       ` Florian Fainelli [this message]
2009-06-14 11:18         ` Florian Fainelli

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=200906141318.38376.florian@openwrt.org \
    --to=florian@openwrt.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=ralf@linux-mips.org \
    --cc=tsbogend@alpha.franken.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 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.