On Mon, 9 Dec 2019 at 20:12, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > On Fri, Dec 06, 2019 at 04:55:42PM +0000, Ard Biesheuvel wrote: > > From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > > > > When commit 69c1f396f25b > > > > "efi/x86: Convert x86 EFI earlyprintk into generic earlycon implementation" > > > > moved the x86 specific EFI earlyprintk implementation to a shared location, > > it also tweaked the behaviour. In particular, it dropped a trick with full > > framebuffer remapping after page initialization, leading to two regressions: > > 1) very slow scrolling after page initialization, > > 2) kernel hang when the 'keep_bootcon' command line argument is passed. > > > > Putting the tweak back fixes #2 and mitigates #1, i.e., it limits the slow > > behavior to the early boot stages, presumably due to eliminating heavy > > map()/unmap() operations per each pixel line on the screen. > > > > Could the efi earlycon have an interaction with PCI resource allocation, > similar to what commit dcf8f5ce3165 ("drivers/fbdev/efifb: Allow BAR to > be moved instead of claiming it") fixed for efifb? Yes. If the BAR gets moved, things will break. This is mostly an issue for the keep_bootcon case, but that is documented as being a debug feature specifically for addressing console initialization related issues. Earlycon itself is also a debug feature, so if you hit the BAR reallocation issue, you're simply out of luck. Note that this happens rarely in practice, only on non-x86 systems where the firmware and the kernel have very different policies regarding BAR allocation, and on DT based systems, you can force the OS to honour the existing allocation by using linux,pci-probe-only