From: Pekka Enberg on
Hi Yinghai,

Yinghai Lu wrote:
> Analyze "console=uart8250,io,0x3f8,115200n8" in i386_start_kernel/x86_64_start_kernel,
> and call setup_early_serial8250_console() to init early serial console.
>
> only can handle io port kind of 8250. because mmio need ioremap.
>
> Signed-off-by: Yinghai Lu <yinghai(a)kernel.org>

What's the purpose of this patch? Does it make my early boot I/O patch
obsolete?

Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: H. Peter Anvin on
On 07/12/2010 01:58 AM, Pekka Enberg wrote:
> Hi Yinghai,
>
> Yinghai Lu wrote:
>> Analyze "console=uart8250,io,0x3f8,115200n8" in
>> i386_start_kernel/x86_64_start_kernel,
>> and call setup_early_serial8250_console() to init early serial console.
>>
>> only can handle io port kind of 8250. because mmio need ioremap.
>>
>> Signed-off-by: Yinghai Lu <yinghai(a)kernel.org>
>
> What's the purpose of this patch? Does it make my early boot I/O patch
> obsolete?
>
> Pekka

No, they're complementary. Your patch serial-port enables the RM
kernel, whereas Yinghai pushes the initialization earlier in the PM kernel.

Incidentally, Yinghai: it would be possible to push even an MMIO
reference earlier by reserving a fixmap slot for the early console. I'm
not sure if it's worth it, though.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Yinghai Lu on
On 07/12/2010 08:47 AM, H. Peter Anvin wrote:
> On 07/12/2010 01:58 AM, Pekka Enberg wrote:
>> Hi Yinghai,
>>
>> Yinghai Lu wrote:
>>> Analyze "console=uart8250,io,0x3f8,115200n8" in
>>> i386_start_kernel/x86_64_start_kernel,
>>> and call setup_early_serial8250_console() to init early serial console.
>>>
>>> only can handle io port kind of 8250. because mmio need ioremap.
>>>
>>> Signed-off-by: Yinghai Lu <yinghai(a)kernel.org>
>>
>> What's the purpose of this patch? Does it make my early boot I/O patch
>> obsolete?
>>
>> Pekka
>
> No, they're complementary. Your patch serial-port enables the RM
> kernel, whereas Yinghai pushes the initialization earlier in the PM kernel.

yes. cover more range.

Can you consider to ask Pekka to anaylze "console=uart8250,io, 0x3f8,115200n8" instead?

it looks like we can remove "earlyprintk=ttyS0,115200", or "earlyprintk=serial" etc.

earlycon=uart8250 or console=uart8250 should be better than earlyprintk.
because it is shared between different archs already.

>
> Incidentally, Yinghai: it would be possible to push even an MMIO
> reference earlier by reserving a fixmap slot for the early console. I'm
> not sure if it's worth it, though.

in setup_arch() for x86, now we have

/* VMI may relocate the fixmap; do this before touching ioremap area */
vmi_init();

/* OFW also may relocate the fixmap */
olpc_ofw_detect();

early_trap_init();
early_cpu_init();
early_ioremap_init()

so may need to move these
vmi_init()
olpc_ofw_detect()
early_ioremap_init()

to i386_start_kernel(), x86_start_kernel()

may be not worth it at this time, could do that later if needed.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Cyrill Gorcunov on
On Mon, Jul 12, 2010 at 08:47:03AM -0700, H. Peter Anvin wrote:
> On 07/12/2010 01:58 AM, Pekka Enberg wrote:
> > Hi Yinghai,
> >
> > Yinghai Lu wrote:
> >> Analyze "console=uart8250,io,0x3f8,115200n8" in
> >> i386_start_kernel/x86_64_start_kernel,
> >> and call setup_early_serial8250_console() to init early serial console.
> >>
> >> only can handle io port kind of 8250. because mmio need ioremap.
> >>
> >> Signed-off-by: Yinghai Lu <yinghai(a)kernel.org>
> >
> > What's the purpose of this patch? Does it make my early boot I/O patch
> > obsolete?
> >
> > Pekka
>
> No, they're complementary. Your patch serial-port enables the RM
> kernel, whereas Yinghai pushes the initialization earlier in the PM kernel.
>
> Incidentally, Yinghai: it would be possible to push even an MMIO
> reference earlier by reserving a fixmap slot for the early console. I'm
> not sure if it's worth it, though.
>
> -hpa
>

Peter, while reviewing this patch I found another nit in
context of early_param usage, so the patch is below. It's
completely trivial. Actually I thought I've already fixed
all early_param cases long ago but this one somehow sneaked ;)

Anyway, Yinghai, Peter,

I'm not sure but can't we use some boot_param "pad" field for
"being copied" flag instead of new variable? There is a case
when boot_param is used as __initdata and I'm not sure we clear
this section explicitly.

-- Cyrill
---
From: Cyrill Gorcunov <gorcunov(a)openvz.org>
Subject: [PATCH] early console: Prevent early_param null dereference

In case if user passes "earlycon" without args there will
be null dereference.

Signed-off-by: Cyrill Gorcunov <gorcunov(a)openvz.org>
---
drivers/serial/8250_early.c | 3 +++
1 file changed, 3 insertions(+)

Index: linux-2.6.git/drivers/serial/8250_early.c
=====================================================================
--- linux-2.6.git.orig/drivers/serial/8250_early.c
+++ linux-2.6.git/drivers/serial/8250_early.c
@@ -217,6 +217,9 @@ int __init setup_early_serial8250_consol
char *options;
int err;

+ if (!cmdline)
+ return 0;
+
options = strstr(cmdline, "uart8250,");
if (!options) {
options = strstr(cmdline, "uart,");
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Yinghai Lu on
On 07/12/2010 11:09 AM, H. Peter Anvin wrote:
> On 07/12/2010 10:44 AM, Cyrill Gorcunov wrote:
>>
>> Peter, while reviewing this patch I found another nit in
>> context of early_param usage, so the patch is below. It's
>> completely trivial. Actually I thought I've already fixed
>> all early_param cases long ago but this one somehow sneaked ;)
>>
>> Anyway, Yinghai, Peter,
>>
>> I'm not sure but can't we use some boot_param "pad" field for
>> "being copied" flag instead of new variable? There is a case
>> when boot_param is used as __initdata and I'm not sure we clear
>> this section explicitly.
>>
>
> Actually, even better would be to simply use boot_params.hdr.version,
> which will never be zero.

Jeremy,

any reason that xen cat not use x86_64_start_kernel directly?

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/