-
-
Notifications
You must be signed in to change notification settings - Fork 186
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support Multiple Kernel Options (#805)
* modules/linux: Add support for multiple kernel versions Follow same pattern as used for coreboot. Add existing kernel version as default for all existing boards. Signed-off-by: Matt DeVillier <[email protected]> * modules/linux: Add option to use 4.19 LTS kernel Add option to use kernel 4.19.139 (current LTS version). Duplicate existing patches from 4.14.62 as they all apply cleanly. Signed-off-by: Matt DeVillier <[email protected]>
- Loading branch information
1 parent
b14e564
commit f23ced0
Showing
25 changed files
with
185 additions
and
6 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
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
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
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
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
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
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
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
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
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
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,54 @@ | ||
diff -u --recursive ../../clean/linux-4.14.62/arch/x86/boot/compressed/eboot.c linux-4.14.62/arch/x86/boot/compressed/eboot.c | ||
--- ../../clean/linux-4.14.62/arch/x86/boot/compressed/eboot.c 2018-08-09 06:16:40.000000000 -0400 | ||
+++ linux-4.14.62/arch/x86/boot/compressed/eboot.c 2018-08-09 10:13:11.801000000 -0400 | ||
@@ -630,8 +630,8 @@ | ||
u16 *s2; | ||
u8 *s1; | ||
int i; | ||
- unsigned long ramdisk_addr; | ||
- unsigned long ramdisk_size; | ||
+ unsigned long ramdisk_addr = 0; | ||
+ unsigned long ramdisk_size = 0; | ||
|
||
efi_early = c; | ||
sys_table = (efi_system_table_t *)(unsigned long)efi_early->table; | ||
@@ -686,9 +686,6 @@ | ||
/* Fill in upper bits of command line address, NOP on 32 bit */ | ||
boot_params->ext_cmd_line_ptr = (u64)(unsigned long)cmdline_ptr >> 32; | ||
|
||
- hdr->ramdisk_image = 0; | ||
- hdr->ramdisk_size = 0; | ||
- | ||
/* Clear APM BIOS info */ | ||
memset(bi, 0, sizeof(*bi)); | ||
|
||
@@ -712,10 +709,16 @@ | ||
|
||
if (status != EFI_SUCCESS) | ||
goto fail2; | ||
- hdr->ramdisk_image = ramdisk_addr & 0xffffffff; | ||
- hdr->ramdisk_size = ramdisk_size & 0xffffffff; | ||
- boot_params->ext_ramdisk_image = (u64)ramdisk_addr >> 32; | ||
- boot_params->ext_ramdisk_size = (u64)ramdisk_size >> 32; | ||
+ | ||
+ // don't overwrite the bzImage or loader provided ramdisk pointer | ||
+ // unless the kernel command line specified a different one. | ||
+ if (ramdisk_addr != 0) | ||
+ { | ||
+ hdr->ramdisk_image = ramdisk_addr & 0xffffffff; | ||
+ hdr->ramdisk_size = ramdisk_size & 0xffffffff; | ||
+ boot_params->ext_ramdisk_image = (u64)ramdisk_addr >> 32; | ||
+ boot_params->ext_ramdisk_size = (u64)ramdisk_size >> 32; | ||
+ } | ||
|
||
return boot_params; | ||
fail2: | ||
--- clean/linux-4.14.62/arch/x86/boot/compressed/early_serial_console.c 2018-08-09 12:16:40.000000000 +0200 | ||
+++ linux-4.14.62/arch/x86/boot/compressed/early_serial_console.c 2018-09-28 11:59:36.824015244 +0200 | ||
@@ -1,5 +1,5 @@ | ||
#include "misc.h" | ||
|
||
-int early_serial_base; | ||
+int early_serial_base = 0x3f8; | ||
|
||
#include "../early_serial_console.c" |
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,28 @@ | ||
diff --recursive -u ./clean/linux-4.9.80/arch/x86/realmode/init.c linux-4.9.80/arch/x86/realmode/init.c | ||
--- ./clean/linux-4.9.80/arch/x86/realmode/init.c 2018-02-03 11:05:43.000000000 -0500 | ||
+++ linux-4.9.80/arch/x86/realmode/init.c 2018-02-07 15:51:28.538500435 -0500 | ||
@@ -35,8 +35,8 @@ | ||
/* Has to be under 1M so we can execute real-mode AP code. */ | ||
mem = memblock_find_in_range(0, 1<<20, size, PAGE_SIZE); | ||
if (!mem) { | ||
- pr_info("No sub-1M memory is available for the trampoline\n"); | ||
- return; | ||
+ mem = 0x4000; | ||
+ pr_info("No sub-1M memory is available for the trampoline, guessing %p\n", mem); | ||
} | ||
|
||
memblock_reserve(mem, size); | ||
@@ -138,7 +138,12 @@ | ||
static int __init init_real_mode(void) | ||
{ | ||
if (!real_mode_header) | ||
- panic("Real mode trampoline was not allocated"); | ||
+ { | ||
+ // ignore for now | ||
+ //panic("Real mode trampoline was not allocated"); | ||
+ pr_warn("Real mode trampoline was not allocated"); | ||
+ return 0; | ||
+ } | ||
|
||
setup_real_mode(); | ||
set_real_mode_permissions(); |
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%x\n", port_map); | ||
|
||
/* write the fixed up value to the PI register */ |