linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: zhichang <zhichang.yuan02@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org,
	Zhichang Yuan <yuanzhichang@hisilicon.com>,
	linuxarm@huawei.com, linux-kernel@vger.kernel.org,
	lorenzo.pieralisi@arm.com, minyard@acm.org,
	benh@kernel.crashing.org, gabriele.paoloni@huawei.com,
	john.garry@huawei.com, liviu.dudau@arm.com,
	zourongrong@gmail.com
Subject: Re: [PATCH V2 4/4] ARM64 LPC: support earlycon for UART connected to LPC
Date: Thu, 08 Sep 2016 13:04:01 +0200	[thread overview]
Message-ID: <7585762.SZVHZyJdka@wuerfel> (raw)
In-Reply-To: <57D137AF.9070306@gmail.com>

On Thursday, September 8, 2016 6:04:31 PM CEST zhichang wrote:
> Hi, Arnd,
> 
> On 2016年09月07日 22:52, Arnd Bergmann wrote:
> > On Wednesday, September 7, 2016 9:33:53 PM CEST Zhichang Yuan wrote:
> >> From: "zhichang.yuan" <yuanzhichang@hisilicon.com>
> >>
> >> This patch support the earlycon for UART connected to LPC on Hip06.
> >> This patch is depended on the LPC driver.
> >>
> >> Signed-off-by: zhichang.yuan <yuanzhichang@hisilicon.com>
> >>
> > 
> > I'm skeptical about this too. Is this just needed because the 8250
> > earlycon support comes before the lpc bus initialization?
> I think you wonder why early_serial8250_setup can not be used direclty for this earlycon of LPC uart.
> 
> 1. the earlycon kernel parameter format of LPC uart is different from 8250. something like that
> "earlycon=hisilpcuart,mmio,0xa01b0000,0,0x2f8". You see, there is one more parameter after the baudrate.

We should never need to specify the addresses manually like this,
it's actually supposed to work if you just list "earlycon" here.

The first membase is apparently only used during setup:

+       writel(LPC_IRQ_CLEAR, device->port.membase + LPC_REG_IRQ_ST);
+       /* ensure the LPC is available */
+       while (!(readl(device->port.membase + LPC_REG_OP_STATUS) &
+                       LPC_STATUS_IDLE))

Why doesn't the firmware do this before handing off control of
the kernel to the console?

> Hip06 LPC uart need two base addresses for earlycon.
> 2. the IO type is mmio to introduce a memory base address to access LPC register file. But the real uart
> IO type is UPIO_PORT. This is spcial...

This sounds like a deficiency in the of_setup_earlycon() function,
which can only handle MMIO addresses, and won't actually
be able to understand nodes without a "ranges" property like
you have here.

I think we need to add a special case for port ranges here.

	Arnd

  reply	other threads:[~2016-09-08 11:04 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-07 13:33 [PATCH V2 0/4] ARM64 LPC: legacy ISA I/O support Zhichang Yuan
2016-09-07 13:33 ` [PATCH V2 1/4] ARM64 LPC: Indirect ISA port IO introduced Zhichang Yuan
2016-09-07 15:06   ` Arnd Bergmann
2016-09-08  7:45     ` zhichang.yuan
2016-09-08 13:23       ` Arnd Bergmann
2016-09-13  6:08         ` zhichang
2016-09-07 15:21   ` kbuild test robot
2016-09-07 13:33 ` [PATCH V2 2/4] ARM64 LPC: LPC driver implementation on Hip06 Zhichang Yuan
2016-09-07 15:27   ` Arnd Bergmann
2016-09-08  8:06     ` zhichang.yuan
2016-09-08 10:00       ` Arnd Bergmann
2016-09-13  6:31         ` zhichang
2016-09-14 12:34           ` Arnd Bergmann
2016-09-07 17:51   ` kbuild test robot
2016-09-07 13:33 ` [PATCH V2 3/4] ARM64 LPC: support serial based on low-pin-count Zhichang Yuan
2016-09-07 14:50   ` Arnd Bergmann
2016-09-08  9:51     ` zhichang
2016-09-08  9:58       ` Arnd Bergmann
2016-09-14 11:48         ` zhichang.yuan
2016-09-14 12:07           ` Arnd Bergmann
2016-09-07 13:33 ` [PATCH V2 4/4] ARM64 LPC: support earlycon for UART connected to LPC Zhichang Yuan
2016-09-07 14:52   ` Arnd Bergmann
2016-09-08 10:04     ` zhichang
2016-09-08 11:04       ` Arnd Bergmann [this message]
2016-09-14 11:26         ` zhichang
2016-09-14 12:36           ` Arnd Bergmann
2016-09-08  9:26   ` kbuild test robot

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=7585762.SZVHZyJdka@wuerfel \
    --to=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=gabriele.paoloni@huawei.com \
    --cc=john.garry@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=liviu.dudau@arm.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=minyard@acm.org \
    --cc=yuanzhichang@hisilicon.com \
    --cc=zhichang.yuan02@gmail.com \
    --cc=zourongrong@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).