x86/earlyprintk: Add support for earlyprintk via USB3 debug port
Add support for earlyprintk by writing debug messages to the USB3 debug port. Users can use this type of early printk by specifying the kernel parameter of "earlyprintk=xdbc". This gives users a chance of providing debugging output. The hardware for USB3 debug port requires DMA memory blocks. This requires to delay setting up debugging hardware and registering boot console until the memblocks are filled. Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mathias Nyman <mathias.nyman@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: linux-usb@vger.kernel.org Link: http://lkml.kernel.org/r/1490083293-3792-4-git-send-email-baolu.lu@linux.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Родитель
aeb9dd1de9
Коммит
1b5aeebf3a
|
@ -989,6 +989,7 @@
|
|||
earlyprintk=ttySn[,baudrate]
|
||||
earlyprintk=dbgp[debugController#]
|
||||
earlyprintk=pciserial,bus:device.function[,baudrate]
|
||||
earlyprintk=xdbc[xhciController#]
|
||||
|
||||
earlyprintk is useful when the kernel crashes before
|
||||
the normal console is initialized. It is not enabled by
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <asm/intel-mid.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <linux/usb/ehci_def.h>
|
||||
#include <linux/usb/xhci-dbgp.h>
|
||||
#include <linux/efi.h>
|
||||
#include <asm/efi.h>
|
||||
#include <asm/pci_x86.h>
|
||||
|
@ -381,6 +382,10 @@ static int __init setup_early_printk(char *buf)
|
|||
if (!strncmp(buf, "efi", 3))
|
||||
early_console_register(&early_efi_console, keep);
|
||||
#endif
|
||||
#ifdef CONFIG_EARLY_PRINTK_USB_XDBC
|
||||
if (!strncmp(buf, "xdbc", 4))
|
||||
early_xdbc_parse_parameter(buf + 4);
|
||||
#endif
|
||||
|
||||
buf++;
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
#include <linux/tboot.h>
|
||||
#include <linux/jiffies.h>
|
||||
|
||||
#include <linux/usb/xhci-dbgp.h>
|
||||
#include <video/edid.h>
|
||||
|
||||
#include <asm/mtrr.h>
|
||||
|
@ -1144,6 +1145,9 @@ void __init setup_arch(char **cmdline_p)
|
|||
memblock_set_current_limit(ISA_END_ADDRESS);
|
||||
memblock_x86_fill();
|
||||
|
||||
if (!early_xdbc_setup_hardware())
|
||||
early_xdbc_register_console();
|
||||
|
||||
reserve_bios_regions();
|
||||
|
||||
if (efi_enabled(EFI_MEMMAP)) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче