-
-
Notifications
You must be signed in to change notification settings - Fork 187
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
modules/linux: Support building with Linux 6.1.8.
This is particularly beneficial for servers with Aspeed BMC video, because it introduces framebuffer console acceleration. The framebuffer console is much more responsive. Patches were ported from 5.10.5: 0001-fake-acpi.patch: This may not be needed any more, but it applies cleanly and I don't think it would harm anything. 0002-nmi-squelch.patch: The comment mentions qemu but I see this message on physical machines occasionally, so I think this is needed. 0003-fake-trampoline.patch: This patch does not apply cleanly. It could be ported, but I don't think it's needed, I dropped it. Dates back to a very old commit where Linux was being embedded into a vendor UEFI firmware: a4d7654. 0010-winterfell-ahci.patch: Minor change of %x to %lx in context. Signed-off-by: Jonathon Hall <jonathon.hall@puri.sm>
- Loading branch information
1 parent
e9a5b27
commit 12c7dfd
Showing
4 changed files
with
73 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
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,32 @@ | ||
diff --recursive -u ./clean/linux-4.9.80/drivers/acpi/acpica/evxfevnt.c linux-4.9.80/drivers/acpi/acpica/evxfevnt.c | ||
--- ./clean/linux-4.9.80/drivers/acpi/acpica/evxfevnt.c 2018-02-03 11:05:43.000000000 -0500 | ||
+++ linux-4.9.80/drivers/acpi/acpica/evxfevnt.c 2018-02-07 15:51:28.786502597 -0500 | ||
@@ -111,6 +111,8 @@ | ||
} | ||
|
||
ACPI_ERROR((AE_INFO, "Hardware did not enter ACPI mode")); | ||
+printk("%s:%d faking ACPI mode\n", __func__, __LINE__); | ||
+ return_ACPI_STATUS(AE_OK); | ||
return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE); | ||
} | ||
|
||
diff --recursive -u ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c linux-4.9.80/drivers/acpi/acpica/hwacpi.c | ||
--- ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-03 11:05:43.000000000 -0500 | ||
+++ linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-07 15:51:35.126557868 -0500 | ||
@@ -168,12 +168,16 @@ | ||
|
||
status = acpi_read_bit_register(ACPI_BITREG_SCI_ENABLE, &value); | ||
if (ACPI_FAILURE(status)) { | ||
+printk("%s:%d faking ACPI mode\n", __func__, __LINE__); | ||
+ return_UINT32(ACPI_SYS_MODE_ACPI); | ||
return_UINT32(ACPI_SYS_MODE_LEGACY); | ||
} | ||
|
||
if (value) { | ||
return_UINT32(ACPI_SYS_MODE_ACPI); | ||
} else { | ||
+//printk("%s:%d faking ACPI mode\n", __func__, __LINE__); | ||
+// return_UINT32(ACPI_SYS_MODE_ACPI); | ||
return_UINT32(ACPI_SYS_MODE_LEGACY); | ||
} | ||
} |
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,20 @@ | ||
diff --recursive -u ./clean/linux-4.9.80/arch/x86/kernel/nmi.c linux-4.9.80/arch/x86/kernel/nmi.c | ||
--- ./clean/linux-4.9.80/arch/x86/kernel/nmi.c 2018-02-03 11:05:43.000000000 -0500 | ||
+++ linux-4.9.80/arch/x86/kernel/nmi.c 2018-02-07 18:56:10.475613884 -0500 | ||
@@ -303,6 +303,8 @@ | ||
|
||
__this_cpu_add(nmi_stats.unknown, 1); | ||
|
||
+#if 0 | ||
+// qemu generates these for some reason | ||
pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n", | ||
reason, smp_processor_id()); | ||
|
||
@@ -311,6 +313,7 @@ | ||
nmi_panic(regs, "NMI: Not continuing"); | ||
|
||
pr_emerg("Dazed and confused, but trying to continue\n"); | ||
+#endif | ||
} | ||
NOKPROBE_SYMBOL(unknown_nmi_error); | ||
|
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,18 @@ | ||
diff --recursive -u ./clean/linux-4.9.80/drivers/ata/libahci.c linux-4.9.80/drivers/ata/libahci.c | ||
--- ./clean/linux-4.9.80/drivers/ata/libahci.c 2018-02-03 11:05:43.000000000 -0500 | ||
+++ linux-4.9.80/drivers/ata/libahci.c 2018-02-07 18:02:32.526535910 -0500 | ||
@@ -537,8 +537,12 @@ | ||
} | ||
|
||
/* fabricate port_map from cap.nr_ports for < AHCI 1.3 */ | ||
- if (!port_map && vers < 0x10300) { | ||
- port_map = (1 << ahci_nr_ports(cap)) - 1; | ||
+ if (!port_map) { // && vers < 0x10300) { | ||
+ printk("%s: saved_port=%02x\n", __func__, hpriv->saved_port_map); | ||
+ writel(0x1, mmio + HOST_PORTS_IMPL); | ||
+ port_map = readl(mmio + HOST_PORTS_IMPL); | ||
+ | ||
+ //port_map = (1 << ahci_nr_ports(cap)) - 1; | ||
dev_warn(dev, "forcing PORTS_IMPL to 0x%lx\n", port_map); | ||
|
||
/* write the fixed up value to the PI register */ |