Debugging a boot issue on a Coreboot Intel machine with both console and earlycon turned on and using a uart serial device to get logs. Added the following boot parameters: console=ttyS2,115200,keep ignore_loglevel debug verbose earlycon=uart,mmio32,0xde000000,115200n8 keep_bootcon This causes the serial driver to crash in early_serial8250_write+0x0/0x1a and by examining with objdump I think the crash actually happens in serial8250_early_in() on the "offset <<= port->regshift;" line. If I don't use the keep_bootcon parameter then the crash doesn't happen and I can boot just fine and get both earlycon and console output. Is keep_bootcon not supposed to be used with earlycon uart devices? If so AFAIK this is not documented anywhere. If keep_bootcon is supposed to be used with earlycon and uart devices then this is a bug.
[ 1.849311] Freeing unused kernel memory: 1292K [ 1.854382] kernel tried to execute NX-protected page - exploit attempt? (uid: 0) [ 1.854383] BUG: unable to handle kernel paging request at ffffffff923812e6 [ 1.854392] IP: early_serial8250_write+0x0/0x1a [ 1.854394] PGD 127612067 [ 1.854394] PUD 127613063 [ 1.854395] PMD 1794c3063 [ 1.854396] PTE 8000000127781163 [ 1.854396] [ 1.854399] Oops: 0011 [#1] PREEMPT SMP [ 1.854401] Modules linked in: [ 1.854406] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.10.0-rc6-00165-g86da676-dirty #81 [ 1.854407] task: ffff97423b108000 task.stack: ffffb3d74000c000 [ 1.854410] RIP: 0010:early_serial8250_write+0x0/0x1a [ 1.854411] RSP: 0000:ffffb3d74000fd88 EFLAGS: 00010046 [ 1.854412] RAX: 0000000000000001 RBX: 0000000000000033 RCX: ffffffff923812e6 [ 1.854413] RDX: 0000000000000033 RSI: ffffffff92491e40 RDI: ffffffff922b2580 [ 1.854414] RBP: ffffb3d74000fdd8 R08: 000000000001fff4 R09: 0000000000000000 [ 1.854414] R10: ffffb3d740683000 R11: 0000000000000000 R12: 0000000000000000 [ 1.854415] R13: 0000000000000001 R14: ffff97423ff112e8 R15: ffffffff922b2580 [ 1.854417] FS: 0000000000000000(0000) GS:ffff97423fd00000(0000) knlGS:0000000000000000