This repository has been archived by the owner on Jan 6, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Mikko Ylinen <[email protected]>
- Loading branch information
Showing
4 changed files
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
62 changes: 62 additions & 0 deletions
62
...s-kernel/linux/linux-yocto/0001-x86-early_printk-Allow-for-skipping-PCI-class-check.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
From 6fd469063b7515dae4ee845775b299a2e5c1cf2a Mon Sep 17 00:00:00 2001 | ||
From: Andy Ross <[email protected]> | ||
Date: Mon, 9 Nov 2015 14:58:17 -0800 | ||
Subject: [PATCH] x86: early_printk: Allow for skipping PCI class check | ||
|
||
Some PCI UART devices have nonstandard class codes, but still want to | ||
be used as a boot console. Allow for skipping the class check on such | ||
platforms when you know that the passed device is correct. | ||
|
||
--- | ||
arch/x86/kernel/early_printk.c | 21 ++++++++++++++++----- | ||
1 file changed, 16 insertions(+), 5 deletions(-) | ||
|
||
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c | ||
index 21bf924..27ae392 100644 | ||
--- a/arch/x86/kernel/early_printk.c | ||
+++ b/arch/x86/kernel/early_printk.c | ||
@@ -218,7 +218,7 @@ static __init void early_pci_serial_init(char *s) | ||
{ | ||
unsigned divisor; | ||
unsigned long baud = DEFAULT_BAUD; | ||
- u8 bus, slot, func; | ||
+ u8 bus, slot, func, classcheck = 1; | ||
u32 classcode, bar0; | ||
u16 cmdreg; | ||
char *e; | ||
@@ -246,6 +246,15 @@ static __init void early_pci_serial_init(char *s) | ||
func = (u8)simple_strtoul(s, &e, 16); | ||
s = e; | ||
|
||
+ /* | ||
+ * Not all PCI UART devices have sane class codes, so allow a | ||
+ * "noclasscheck" flag to be prepended to disable the test. | ||
+ */ | ||
+ if (strstarts(s, ",noclasscheck")) { | ||
+ classcheck = 0; | ||
+ s += 13; | ||
+ } | ||
+ | ||
/* A baud might be following */ | ||
if (*s == ',') | ||
s++; | ||
@@ -260,10 +269,12 @@ static __init void early_pci_serial_init(char *s) | ||
/* | ||
* Verify it is a UART type device | ||
*/ | ||
- if (((classcode >> 16 != PCI_CLASS_COMMUNICATION_MODEM) && | ||
- (classcode >> 16 != PCI_CLASS_COMMUNICATION_SERIAL)) || | ||
- (((classcode >> 8) & 0xff) != 0x02)) /* 16550 I/F at BAR0 */ | ||
- return; | ||
+ if (classcheck) { | ||
+ if (((classcode >> 16 != PCI_CLASS_COMMUNICATION_MODEM) && | ||
+ (classcode >> 16 != PCI_CLASS_COMMUNICATION_SERIAL)) || | ||
+ (((classcode >> 8) & 0xff) != 0x02)) /* 16550 I/F at BAR0 */ | ||
+ return; | ||
+ } | ||
|
||
/* | ||
* Determine if it is IO or memory mapped | ||
-- | ||
1.9.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters