Hi Yinghai, On 04/02/2015 05:15 AM, Yinghai Lu wrote: > On Wed, Apr 1, 2015 at 8:22 PM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> wrote: >> The documented behavior of console=ttyS options, to which your >> quote refers, clearly states: >> >> Default is "9600n8". > > drivers/tty/serial/8250/8250_early.c:early_serial8250_setup > still have calling to probe_baud, but it is not triggered. > > Here is root cause. > The gap between entries in earlycon_table cause > iteration fail to find next entry, so uart8250 handler is > not called proplerly. Thanks for finding that bug; so the earlycon never started, right? > attached patch fix the problem. Would you please try the patch below instead? Regards, Peter Hurley --- >% --- From: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> Subject: [PATCH] earlycon: Fix __earlycon_table stride Signed-off-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> --- include/asm-generic/vmlinux.lds.h | 2 +- include/linux/serial_core.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 7b0ef49..2e11f31 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -151,7 +151,7 @@ #endif #ifdef CONFIG_SERIAL_EARLYCON -#define EARLYCON_TABLE() . = ALIGN(8); \ +#define EARLYCON_TABLE() STRUCT_ALIGN(); \ VMLINUX_SYMBOL(__earlycon_table) = .; \ *(__earlycon_table) \ *(__earlycon_table_end) diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 34de168..025dad9 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -342,7 +342,7 @@ struct earlycon_device { struct earlycon_id { char name[16]; int (*setup)(struct earlycon_device *, const char *options); -}; +} __aligned(32); extern int setup_earlycon(char *buf); extern int of_setup_earlycon(unsigned long addr, -- 2.3.5 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html