[PATCH] linux-luv: Bump kernel to v4.19
by Megha Dey
Update the LINUX_VERSION, SRC_REV and recipe name for Linux v4.19. Also,
the patches related to efi_warn_on_illegal_accesses have been accepted
upstream in the Linux4.20-rc1 tree. Thus, we can use those patches
instead of the ones we currently carry in LUV.
Signed-off-by: Megha Dey <megha.dey(a)linux.intel.com>
---
...i_rts_work-accessible-to-efi-page-fault-h.patch | 162 ++++++++++++++
...dle-page-faults-occurring-while-running-E.patch | 243 +++++++++++++++++++++
...ove-__init-attribute-from-memory-mapping-.patch | 168 --------------
...e-EFI_MEMORY_MAP-passed-by-firmware-perma.patch | 125 -----------
...y-support-functions-to-install-uninstall-.patch | 109 ---------
...fi_mem_desc_lookup-find-illegally-accesse.patch | 46 ----
...-function-to-fixup-page-faults-in-illegal.patch | 135 ------------
...06-x86-mm-Allocate-pages-without-sleeping.patch | 103 ---------
...7-x86-efi-Fixup-faults-from-UEFI-firmware.patch | 60 -----
...fi-Introduce-EFI_WARN_ON_ILLEGAL_ACCESSES.patch | 83 -------
meta-luv/recipes-kernel/linux/linux-luv_4.18.bb | 162 --------------
meta-luv/recipes-kernel/linux/linux-luv_4.19.bb | 156 +++++++++++++
12 files changed, 561 insertions(+), 991 deletions(-)
create mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0001-efi-Make-efi_rts_work-accessible-to-efi-page-fault-h.patch
create mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0001-efi-x86-Handle-page-faults-occurring-while-running-E.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0001-x86-efi-remove-__init-attribute-from-memory-mapping-.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0002-x86-efi-Save-EFI_MEMORY_MAP-passed-by-firmware-perma.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0003-x86-efi-Copy-support-functions-to-install-uninstall-.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0004-efi-Allow-efi_mem_desc_lookup-find-illegally-accesse.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0005-x86-efi-Add-function-to-fixup-page-faults-in-illegal.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0006-x86-mm-Allocate-pages-without-sleeping.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0007-x86-efi-Fixup-faults-from-UEFI-firmware.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv/0008-x86-efi-Introduce-EFI_WARN_ON_ILLEGAL_ACCESSES.patch
delete mode 100644 meta-luv/recipes-kernel/linux/linux-luv_4.18.bb
create mode 100644 meta-luv/recipes-kernel/linux/linux-luv_4.19.bb
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0001-efi-Make-efi_rts_work-accessible-to-efi-page-fault-h.patch b/meta-luv/recipes-kernel/linux/linux-luv/0001-efi-Make-efi_rts_work-accessible-to-efi-page-fault-h.patch
new file mode 100644
index 0000000..920be03
--- /dev/null
+++ b/meta-luv/recipes-kernel/linux/linux-luv/0001-efi-Make-efi_rts_work-accessible-to-efi-page-fault-h.patch
@@ -0,0 +1,162 @@
+From 9dbbedaa6171247c4c7c40b83f05b200a117c2e0 Mon Sep 17 00:00:00 2001
+From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
+Date: Tue, 11 Sep 2018 12:15:21 -0700
+Subject: [PATCH] efi: Make efi_rts_work accessible to efi page fault handler
+
+After the kernel has booted, if any accesses by firmware causes a page
+fault, the efi page fault handler would freeze efi_rts_wq and schedules
+a new process. To do this, the efi page fault handler needs
+efi_rts_work. Hence, make it accessible.
+
+There will be no race conditions in accessing this structure, because
+all the calls to efi runtime services are already serialized.
+
+Tested-by: Bhupesh Sharma <bhsharma(a)redhat.com>
+Suggested-by: Matt Fleming <matt(a)codeblueprint.co.uk>
+Based-on-code-from: Ricardo Neri <ricardo.neri(a)intel.com>
+Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
+Signed-off-by: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
+---
+ drivers/firmware/efi/runtime-wrappers.c | 53 ++++++---------------------------
+ include/linux/efi.h | 36 ++++++++++++++++++++++
+ 2 files changed, 45 insertions(+), 44 deletions(-)
+
+diff --git a/drivers/firmware/efi/runtime-wrappers.c b/drivers/firmware/efi/runtime-wrappers.c
+index aa66cbf..b18b2d8 100644
+--- a/drivers/firmware/efi/runtime-wrappers.c
++++ b/drivers/firmware/efi/runtime-wrappers.c
+@@ -45,39 +45,7 @@
+ #define __efi_call_virt(f, args...) \
+ __efi_call_virt_pointer(efi.systab->runtime, f, args)
+
+-/* efi_runtime_service() function identifiers */
+-enum efi_rts_ids {
+- GET_TIME,
+- SET_TIME,
+- GET_WAKEUP_TIME,
+- SET_WAKEUP_TIME,
+- GET_VARIABLE,
+- GET_NEXT_VARIABLE,
+- SET_VARIABLE,
+- QUERY_VARIABLE_INFO,
+- GET_NEXT_HIGH_MONO_COUNT,
+- UPDATE_CAPSULE,
+- QUERY_CAPSULE_CAPS,
+-};
+-
+-/*
+- * efi_runtime_work: Details of EFI Runtime Service work
+- * @arg<1-5>: EFI Runtime Service function arguments
+- * @status: Status of executing EFI Runtime Service
+- * @efi_rts_id: EFI Runtime Service function identifier
+- * @efi_rts_comp: Struct used for handling completions
+- */
+-struct efi_runtime_work {
+- void *arg1;
+- void *arg2;
+- void *arg3;
+- void *arg4;
+- void *arg5;
+- efi_status_t status;
+- struct work_struct work;
+- enum efi_rts_ids efi_rts_id;
+- struct completion efi_rts_comp;
+-};
++struct efi_runtime_work efi_rts_work;
+
+ /*
+ * efi_queue_work: Queue efi_runtime_service() and wait until it's done
+@@ -91,7 +59,6 @@ struct efi_runtime_work {
+ */
+ #define efi_queue_work(_rts, _arg1, _arg2, _arg3, _arg4, _arg5) \
+ ({ \
+- struct efi_runtime_work efi_rts_work; \
+ efi_rts_work.status = EFI_ABORTED; \
+ \
+ init_completion(&efi_rts_work.efi_rts_comp); \
+@@ -184,18 +151,16 @@ void efi_call_virt_check_flags(unsigned long flags, const char *call)
+ */
+ static void efi_call_rts(struct work_struct *work)
+ {
+- struct efi_runtime_work *efi_rts_work;
+ void *arg1, *arg2, *arg3, *arg4, *arg5;
+ efi_status_t status = EFI_NOT_FOUND;
+
+- efi_rts_work = container_of(work, struct efi_runtime_work, work);
+- arg1 = efi_rts_work->arg1;
+- arg2 = efi_rts_work->arg2;
+- arg3 = efi_rts_work->arg3;
+- arg4 = efi_rts_work->arg4;
+- arg5 = efi_rts_work->arg5;
++ arg1 = efi_rts_work.arg1;
++ arg2 = efi_rts_work.arg2;
++ arg3 = efi_rts_work.arg3;
++ arg4 = efi_rts_work.arg4;
++ arg5 = efi_rts_work.arg5;
+
+- switch (efi_rts_work->efi_rts_id) {
++ switch (efi_rts_work.efi_rts_id) {
+ case GET_TIME:
+ status = efi_call_virt(get_time, (efi_time_t *)arg1,
+ (efi_time_cap_t *)arg2);
+@@ -253,8 +218,8 @@ static void efi_call_rts(struct work_struct *work)
+ */
+ pr_err("Requested executing invalid EFI Runtime Service.\n");
+ }
+- efi_rts_work->status = status;
+- complete(&efi_rts_work->efi_rts_comp);
++ efi_rts_work.status = status;
++ complete(&efi_rts_work.efi_rts_comp);
+ }
+
+ static efi_status_t virt_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc)
+diff --git a/include/linux/efi.h b/include/linux/efi.h
+index 22e4de9..a929d2b 100644
+--- a/include/linux/efi.h
++++ b/include/linux/efi.h
+@@ -1662,6 +1662,42 @@ struct linux_efi_tpm_eventlog {
+
+ extern int efi_tpm_eventlog_init(void);
+
++/* efi_runtime_service() function identifiers */
++enum efi_rts_ids {
++ GET_TIME,
++ SET_TIME,
++ GET_WAKEUP_TIME,
++ SET_WAKEUP_TIME,
++ GET_VARIABLE,
++ GET_NEXT_VARIABLE,
++ SET_VARIABLE,
++ QUERY_VARIABLE_INFO,
++ GET_NEXT_HIGH_MONO_COUNT,
++ UPDATE_CAPSULE,
++ QUERY_CAPSULE_CAPS,
++};
++
++/*
++ * efi_runtime_work: Details of EFI Runtime Service work
++ * @arg<1-5>: EFI Runtime Service function arguments
++ * @status: Status of executing EFI Runtime Service
++ * @efi_rts_id: EFI Runtime Service function identifier
++ * @efi_rts_comp: Struct used for handling completions
++ */
++struct efi_runtime_work {
++ void *arg1;
++ void *arg2;
++ void *arg3;
++ void *arg4;
++ void *arg5;
++ efi_status_t status;
++ struct work_struct work;
++ enum efi_rts_ids efi_rts_id;
++ struct completion efi_rts_comp;
++};
++
++extern struct efi_runtime_work efi_rts_work;
++
+ /* Workqueue to queue EFI Runtime Services */
+ extern struct workqueue_struct *efi_rts_wq;
+
+--
+1.9.1
+
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0001-efi-x86-Handle-page-faults-occurring-while-running-E.patch b/meta-luv/recipes-kernel/linux/linux-luv/0001-efi-x86-Handle-page-faults-occurring-while-running-E.patch
new file mode 100644
index 0000000..8dbef99
--- /dev/null
+++ b/meta-luv/recipes-kernel/linux/linux-luv/0001-efi-x86-Handle-page-faults-occurring-while-running-E.patch
@@ -0,0 +1,243 @@
+From 3425d934fc0312f62024163736a7afe4de20c10f Mon Sep 17 00:00:00 2001
+From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
+Date: Tue, 11 Sep 2018 12:15:22 -0700
+Subject: [PATCH] efi/x86: Handle page faults occurring while running EFI
+ runtime services
+
+Memory accesses performed by UEFI runtime services should be limited to:
+- reading/executing from EFI_RUNTIME_SERVICES_CODE memory regions
+- reading/writing from/to EFI_RUNTIME_SERVICES_DATA memory regions
+- reading/writing by-ref arguments
+- reading/writing from/to the stack.
+
+Accesses outside these regions may cause the kernel to hang because the
+memory region requested by the firmware isn't mapped in efi_pgd, which
+causes a page fault in ring 0 and the kernel fails to handle it, leading
+to die(). To save kernel from hanging, add an EFI specific page fault
+handler which recovers from such faults by
+1. If the efi runtime service is efi_reset_system(), reboot the machine
+ through BIOS.
+2. If the efi runtime service is _not_ efi_reset_system(), then freeze
+ efi_rts_wq and schedule a new process.
+
+The EFI page fault handler offers us two advantages:
+1. Avoid potential hangs caused by buggy firmware.
+2. Shout loud that the firmware is buggy and hence is not a kernel bug.
+
+Tested-by: Bhupesh Sharma <bhsharma(a)redhat.com>
+Suggested-by: Matt Fleming <matt(a)codeblueprint.co.uk>
+Based-on-code-from: Ricardo Neri <ricardo.neri(a)intel.com>
+Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
+Reviewed-by: Thomas Gleixner <tglx(a)linutronix.de>
+[ardb: clarify commit log]
+Signed-off-by: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
+---
+ arch/x86/include/asm/efi.h | 1 +
+ arch/x86/mm/fault.c | 9 ++++
+ arch/x86/platform/efi/quirks.c | 78 +++++++++++++++++++++++++++++++++
+ drivers/firmware/efi/runtime-wrappers.c | 8 ++++
+ include/linux/efi.h | 8 +++-
+ 5 files changed, 103 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
+index cec5fae..eea40d5 100644
+--- a/arch/x86/include/asm/efi.h
++++ b/arch/x86/include/asm/efi.h
+@@ -140,6 +140,7 @@ extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size,
+ extern int __init efi_reuse_config(u64 tables, int nr_tables);
+ extern void efi_delete_dummy_variable(void);
+ extern void efi_switch_mm(struct mm_struct *mm);
++extern void efi_recover_from_page_fault(unsigned long phys_addr);
+
+ struct efi_setup_data {
+ u64 fw_vendor;
+diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
+index 47bebfe..a5b9ddb 100644
+--- a/arch/x86/mm/fault.c
++++ b/arch/x86/mm/fault.c
+@@ -16,6 +16,7 @@
+ #include <linux/prefetch.h> /* prefetchw */
+ #include <linux/context_tracking.h> /* exception_enter(), ... */
+ #include <linux/uaccess.h> /* faulthandler_disabled() */
++#include <linux/efi.h> /* efi_recover_from_page_fault()*/
+ #include <linux/mm_types.h>
+
+ #include <asm/cpufeature.h> /* boot_cpu_has, ... */
+@@ -25,6 +26,7 @@
+ #include <asm/vsyscall.h> /* emulate_vsyscall */
+ #include <asm/vm86.h> /* struct vm86 */
+ #include <asm/mmu_context.h> /* vma_pkey() */
++#include <asm/efi.h> /* efi_recover_from_page_fault()*/
+
+ #define CREATE_TRACE_POINTS
+ #include <asm/trace/exceptions.h>
+@@ -789,6 +791,13 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
+ return;
+
+ /*
++ * Buggy firmware could access regions which might page fault, try to
++ * recover from such faults.
++ */
++ if (IS_ENABLED(CONFIG_EFI))
++ efi_recover_from_page_fault(address);
++
++ /*
+ * Oops. The kernel tried to access some bad page. We'll have to
+ * terminate things with extreme prejudice:
+ */
+diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
+index 844d31c..669babc 100644
+--- a/arch/x86/platform/efi/quirks.c
++++ b/arch/x86/platform/efi/quirks.c
+@@ -16,6 +16,7 @@
+ #include <asm/efi.h>
+ #include <asm/uv/uv.h>
+ #include <asm/cpu_device_id.h>
++#include <asm/reboot.h>
+
+ #define EFI_MIN_RESERVE 5120
+
+@@ -654,3 +655,80 @@ int efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff,
+ }
+
+ #endif
++
++/*
++ * If any access by any efi runtime service causes a page fault, then,
++ * 1. If it's efi_reset_system(), reboot through BIOS.
++ * 2. If any other efi runtime service, then
++ * a. Return error status to the efi caller process.
++ * b. Disable EFI Runtime Services forever and
++ * c. Freeze efi_rts_wq and schedule new process.
++ *
++ * @return: Returns, if the page fault is not handled. This function
++ * will never return if the page fault is handled successfully.
++ */
++void efi_recover_from_page_fault(unsigned long phys_addr)
++{
++ if (!IS_ENABLED(CONFIG_X86_64))
++ return;
++
++ /*
++ * Make sure that an efi runtime service caused the page fault.
++ * "efi_mm" cannot be used to check if the page fault had occurred
++ * in the firmware context because efi=old_map doesn't use efi_pgd.
++ */
++ if (efi_rts_work.efi_rts_id == NONE)
++ return;
++
++ /*
++ * Address range 0x0000 - 0x0fff is always mapped in the efi_pgd, so
++ * page faulting on these addresses isn't expected.
++ */
++ if (phys_addr >= 0x0000 && phys_addr <= 0x0fff)
++ return;
++
++ /*
++ * Print stack trace as it might be useful to know which EFI Runtime
++ * Service is buggy.
++ */
++ WARN(1, FW_BUG "Page fault caused by firmware at PA: 0x%lx\n",
++ phys_addr);
++
++ /*
++ * Buggy efi_reset_system() is handled differently from other EFI
++ * Runtime Services as it doesn't use efi_rts_wq. Although,
++ * native_machine_emergency_restart() says that machine_real_restart()
++ * could fail, it's better not to compilcate this fault handler
++ * because this case occurs *very* rarely and hence could be improved
++ * on a need by basis.
++ */
++ if (efi_rts_work.efi_rts_id == RESET_SYSTEM) {
++ pr_info("efi_reset_system() buggy! Reboot through BIOS\n");
++ machine_real_restart(MRR_BIOS);
++ return;
++ }
++
++ /*
++ * Before calling EFI Runtime Service, the kernel has switched the
++ * calling process to efi_mm. Hence, switch back to task_mm.
++ */
++ arch_efi_call_virt_teardown();
++
++ /* Signal error status to the efi caller process */
++ efi_rts_work.status = EFI_ABORTED;
++ complete(&efi_rts_work.efi_rts_comp);
++
++ clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
++ pr_info("Froze efi_rts_wq and disabled EFI Runtime Services\n");
++
++ /*
++ * Call schedule() in an infinite loop, so that any spurious wake ups
++ * will never run efi_rts_wq again.
++ */
++ for (;;) {
++ set_current_state(TASK_IDLE);
++ schedule();
++ }
++
++ return;
++}
+diff --git a/drivers/firmware/efi/runtime-wrappers.c b/drivers/firmware/efi/runtime-wrappers.c
+index b18b2d8..a19d845 100644
+--- a/drivers/firmware/efi/runtime-wrappers.c
++++ b/drivers/firmware/efi/runtime-wrappers.c
+@@ -61,6 +61,11 @@
+ ({ \
+ efi_rts_work.status = EFI_ABORTED; \
+ \
++ if (!efi_enabled(EFI_RUNTIME_SERVICES)) { \
++ pr_warn_once("EFI Runtime Services are disabled!\n"); \
++ goto exit; \
++ } \
++ \
+ init_completion(&efi_rts_work.efi_rts_comp); \
+ INIT_WORK_ONSTACK(&efi_rts_work.work, efi_call_rts); \
+ efi_rts_work.arg1 = _arg1; \
+@@ -79,6 +84,8 @@
+ else \
+ pr_err("Failed to queue work to efi_rts_wq.\n"); \
+ \
++exit: \
++ efi_rts_work.efi_rts_id = NONE; \
+ efi_rts_work.status; \
+ })
+
+@@ -393,6 +400,7 @@ static void virt_efi_reset_system(int reset_type,
+ "could not get exclusive access to the firmware\n");
+ return;
+ }
++ efi_rts_work.efi_rts_id = RESET_SYSTEM;
+ __efi_call_virt(reset_system, reset_type, status, data_size, data);
+ up(&efi_runtime_lock);
+ }
+diff --git a/include/linux/efi.h b/include/linux/efi.h
+index a929d2b..845174e 100644
+--- a/include/linux/efi.h
++++ b/include/linux/efi.h
+@@ -1662,8 +1662,13 @@ struct linux_efi_tpm_eventlog {
+
+ extern int efi_tpm_eventlog_init(void);
+
+-/* efi_runtime_service() function identifiers */
++/*
++ * efi_runtime_service() function identifiers.
++ * "NONE" is used by efi_recover_from_page_fault() to check if the page
++ * fault happened while executing an efi runtime service.
++ */
+ enum efi_rts_ids {
++ NONE,
+ GET_TIME,
+ SET_TIME,
+ GET_WAKEUP_TIME,
+@@ -1673,6 +1678,7 @@ enum efi_rts_ids {
+ SET_VARIABLE,
+ QUERY_VARIABLE_INFO,
+ GET_NEXT_HIGH_MONO_COUNT,
++ RESET_SYSTEM,
+ UPDATE_CAPSULE,
+ QUERY_CAPSULE_CAPS,
+ };
+--
+1.9.1
+
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0001-x86-efi-remove-__init-attribute-from-memory-mapping-.patch b/meta-luv/recipes-kernel/linux/linux-luv/0001-x86-efi-remove-__init-attribute-from-memory-mapping-.patch
deleted file mode 100644
index 7746fa5..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0001-x86-efi-remove-__init-attribute-from-memory-mapping-.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From d56abcecddb52955b14f9e64afe6ebfc2f0435c7 Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Fri, 19 May 2017 16:09:33 -0700
-Subject: [PATCH 1/9] x86/efi: remove __init attribute from memory mapping
- functions
-
-All these functions will be used by the page fault handler to fixup
-illegal accesses to EFI_CONVENTIONAL_MEMORY, EFI_BOOT_SERVICES_CODE/DATA
-and EFI_LOADER_CODE/DATA regions. The page fault handler doesn't have an
-__init attribute because it fixes up page faults that occur even after
-kernel has booted, but these functions have it and thus warns at build
-(WARNING: modpost: Found * section mismatch(es).) and to fix that we
-remove __init attribute for all these functions.
-
-In order to not keep these functions needlessly when
-"CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES" is not selected, we add a new
-__init_fixup attribute whose value changes based on whether the config
-option is selected or not.
-
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
-CC: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
----
- arch/x86/include/asm/efi.h | 8 ++++----
- arch/x86/platform/efi/efi.c | 4 ++--
- arch/x86/platform/efi/efi_32.c | 2 +-
- arch/x86/platform/efi/efi_64.c | 6 +++---
- drivers/firmware/efi/efi.c | 2 +-
- include/linux/efi.h | 9 +++++++++
- 6 files changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
-index cda9940bed7a..a981f44a11b6 100644
---- a/arch/x86/include/asm/efi.h
-+++ b/arch/x86/include/asm/efi.h
-@@ -93,7 +93,7 @@ struct efi_scratch {
- preempt_enable(); \
- })
-
--extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size,
-+extern void __iomem *__init_fixup efi_ioremap(unsigned long addr, unsigned long size,
- u32 type, u64 attribute);
-
- #ifdef CONFIG_KASAN
-@@ -116,13 +116,13 @@ extern int __init efi_memblock_x86_reserve_range(void);
- extern pgd_t * __init efi_call_phys_prolog(void);
- extern void __init efi_call_phys_epilog(pgd_t *save_pgd);
- extern void __init efi_print_memmap(void);
--extern void __init efi_memory_uc(u64 addr, unsigned long size);
--extern void __init efi_map_region(efi_memory_desc_t *md);
-+extern void __init_fixup efi_memory_uc(u64 addr, unsigned long size);
-+extern void __init_fixup efi_map_region(efi_memory_desc_t *md);
- extern void __init efi_map_region_fixed(efi_memory_desc_t *md);
- extern void efi_sync_low_kernel_mappings(void);
- extern int __init efi_alloc_page_tables(void);
- extern int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages);
--extern void __init old_map_region(efi_memory_desc_t *md);
-+extern void __init_fixup old_map_region(efi_memory_desc_t *md);
- extern void __init runtime_code_page_mkexec(void);
- extern void __init efi_runtime_update_mappings(void);
- extern void __init efi_dump_pagetable(void);
-diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
-index cf3861f5bbb0..b4f80acbe85e 100644
---- a/arch/x86/platform/efi/efi.c
-+++ b/arch/x86/platform/efi/efi.c
-@@ -572,7 +572,7 @@ void __init runtime_code_page_mkexec(void)
- }
- }
-
--void __init efi_memory_uc(u64 addr, unsigned long size)
-+void __init_fixup efi_memory_uc(u64 addr, unsigned long size)
- {
- unsigned long page_shift = 1UL << EFI_PAGE_SHIFT;
- u64 npages;
-@@ -582,7 +582,7 @@ void __init efi_memory_uc(u64 addr, unsigned long size)
- set_memory_uc(addr, npages);
- }
-
--void __init old_map_region(efi_memory_desc_t *md)
-+void __init_fixup old_map_region(efi_memory_desc_t *md)
- {
- u64 start_pfn, end_pfn, end;
- unsigned long size;
-diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
-index 324b93328b37..3650a980fba6 100644
---- a/arch/x86/platform/efi/efi_32.c
-+++ b/arch/x86/platform/efi/efi_32.c
-@@ -58,7 +58,7 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
- return 0;
- }
-
--void __init efi_map_region(efi_memory_desc_t *md)
-+void __init_fixup efi_map_region(efi_memory_desc_t *md)
- {
- old_map_region(md);
- }
-diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
-index 3a24bc4c69e5..e94ac1a1d261 100644
---- a/arch/x86/platform/efi/efi_64.c
-+++ b/arch/x86/platform/efi/efi_64.c
-@@ -403,7 +403,7 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
- return 0;
- }
-
--static void __init __map_region(efi_memory_desc_t *md, u64 va)
-+static void __init_fixup __map_region(efi_memory_desc_t *md, u64 va)
- {
- unsigned long flags = _PAGE_RW;
- unsigned long pfn;
-@@ -421,7 +421,7 @@ static void __init __map_region(efi_memory_desc_t *md, u64 va)
- md->phys_addr, va);
- }
-
--void __init efi_map_region(efi_memory_desc_t *md)
-+void __init_fixup efi_map_region(efi_memory_desc_t *md)
- {
- unsigned long size = md->num_pages << PAGE_SHIFT;
- u64 pa = md->phys_addr;
-@@ -483,7 +483,7 @@ void __init efi_map_region_fixed(efi_memory_desc_t *md)
- __map_region(md, md->virt_addr);
- }
-
--void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size,
-+void __iomem *__init_fixup efi_ioremap(unsigned long phys_addr, unsigned long size,
- u32 type, u64 attribute)
- {
- unsigned long last_map_pfn;
-diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
-index a6511ffb4158..358322052a70 100644
---- a/drivers/firmware/efi/efi.c
-+++ b/drivers/firmware/efi/efi.c
-@@ -402,7 +402,7 @@ subsys_initcall(efisubsys_init);
- * and if so, populate the supplied memory descriptor with the appropriate
- * data.
- */
--int __init efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md)
-+int __init_fixup efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md)
- {
- efi_memory_desc_t *md;
-
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index cb66079ff76d..23e9b29d2bfc 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -1065,6 +1065,15 @@ extern int efi_memattr_apply_permissions(struct mm_struct *mm,
- for_each_efi_memory_desc_in_map(&efi.memmap, md)
-
- /*
-+ * __init_fixup - remove __init modifier to support CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES
-+ */
-+#ifdef CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES
-+#define __init_fixup
-+#else
-+#define __init_fixup __init
-+#endif
-+
-+/*
- * Format an EFI memory descriptor's type and attributes to a user-provided
- * character buffer, as per snprintf(), and return the buffer.
- */
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0002-x86-efi-Save-EFI_MEMORY_MAP-passed-by-firmware-perma.patch b/meta-luv/recipes-kernel/linux/linux-luv/0002-x86-efi-Save-EFI_MEMORY_MAP-passed-by-firmware-perma.patch
deleted file mode 100644
index 5adef5b..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0002-x86-efi-Save-EFI_MEMORY_MAP-passed-by-firmware-perma.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From d8b1747ec9cccc8b4a4076af6c0c89db81af80c2 Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Wed, 6 Sep 2017 10:36:35 -0700
-Subject: [PATCH 2/9] x86/efi: Save EFI_MEMORY_MAP passed by firmware
- permanently
-
-When CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES is enabled, in order to fixup
-page faults we need the original memory map passed by firmware. We look
-up this memory map to find a memory descriptor that describes the memory
-region that the page fault occurred at. Presently, we discard the
-original memory map passed by firmware and replace it with a new memory
-map that has only EFI_RUNTIME regions. But illegal accesses by firmware
-can occur at any region, hence, create a backup of original memory map,
-so that we can fix *any* illegal accesses to efi regions.
-
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
-CC: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
----
- arch/x86/include/asm/efi.h | 9 +++++++++
- arch/x86/platform/efi/efi.c | 3 +++
- arch/x86/platform/efi/quirks.c | 44 ++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 56 insertions(+)
-
-diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
-index a981f44a11b6..6ccf0939c0b6 100644
---- a/arch/x86/include/asm/efi.h
-+++ b/arch/x86/include/asm/efi.h
-@@ -164,6 +164,15 @@ extern void parse_efi_setup(u64 phys_addr, u32 data_len);
-
- extern void efifb_setup_from_dmi(struct screen_info *si, const char *opt);
-
-+extern phys_addr_t orig_new_phys;
-+extern int orig_num_entries;
-+
-+#ifdef CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES
-+extern void __init efi_save_orig_memmap(void);
-+#else
-+static inline void __init efi_save_orig_memmap(void) { }
-+#endif /* CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES */
-+
- #ifdef CONFIG_EFI_MIXED
- extern void efi_thunk_runtime_setup(void);
- extern efi_status_t efi_thunk_set_virtual_address_map(
-diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
-index b4f80acbe85e..c19e736f7221 100644
---- a/arch/x86/platform/efi/efi.c
-+++ b/arch/x86/platform/efi/efi.c
-@@ -944,6 +944,9 @@ static void __init __efi_enter_virtual_mode(void)
-
- pa = __pa(new_memmap);
-
-+ if (IS_ENABLED(CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES))
-+ efi_save_orig_memmap();
-+
- /*
- * Unregister the early EFI memmap from efi_init() and install
- * the new EFI memory map that we are about to pass to the
-diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
-index 5b513ccffde4..103a569a244a 100644
---- a/arch/x86/platform/efi/quirks.c
-+++ b/arch/x86/platform/efi/quirks.c
-@@ -78,6 +78,8 @@ struct quark_security_header {
- static efi_char16_t efi_dummy_name[6] = { 'D', 'U', 'M', 'M', 'Y', 0 };
-
- static bool efi_no_storage_paranoia;
-+phys_addr_t orig_new_phys = 0x0;
-+int orig_num_entries = 0;
-
- /*
- * Some firmware implementations refuse to boot if there's insufficient
-@@ -652,3 +654,45 @@ int efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff,
- }
-
- #endif
-+
-+#ifdef CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES
-+void __init efi_save_orig_memmap(void)
-+{
-+ phys_addr_t new_phys, new_size;
-+ efi_memory_desc_t *md;
-+ int num_entries = 0;
-+ void *new, *new_md;
-+
-+ for_each_efi_memory_desc(md) {
-+ num_entries++;
-+ }
-+
-+ new_size = efi.memmap.desc_size * num_entries;
-+ new_phys = efi_memmap_alloc(num_entries);
-+ if (!new_phys) {
-+ pr_err("Failed to allocate new EFI memmap\n");
-+ return;
-+ }
-+
-+ new = memremap(new_phys, new_size, MEMREMAP_WB);
-+ if (!new) {
-+ pr_err("Failed to map new EFI memmap\n");
-+ return;
-+ }
-+
-+ /*
-+ * Build a new EFI memmap that has *all* entries of original memory
-+ * map, because we need these entries to dynamically fixup page
-+ * faults caused by illegal accesses from firmware.
-+ */
-+ new_md = new;
-+ for_each_efi_memory_desc(md) {
-+ memcpy(new_md, md, efi.memmap.desc_size);
-+ new_md += efi.memmap.desc_size;
-+ }
-+
-+ memunmap(new);
-+ orig_new_phys = new_phys;
-+ orig_num_entries = num_entries;
-+}
-+#endif /* CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES */
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0003-x86-efi-Copy-support-functions-to-install-uninstall-.patch b/meta-luv/recipes-kernel/linux/linux-luv/0003-x86-efi-Copy-support-functions-to-install-uninstall-.patch
deleted file mode 100644
index bf56b67..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0003-x86-efi-Copy-support-functions-to-install-uninstall-.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 6d35523b89292a3d16d2aa3f2e7a92332ed86206 Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Fri, 19 May 2017 16:13:51 -0700
-Subject: [PATCH 3/9] x86/efi: Copy support functions to install/uninstall
- original_memory_map
-
-These functions are already implemented at drivers/firmware/efi/memmap.c
-We cannot call these functions in page fault handler because they have
-__init modifier and we don't want that. Removing __init modifier for
-these functions require changes till __early_memremap which is too
-invasive and hence not at all acceptable, so instead just have modified
-versions of the same functions without the need for __init.
-
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
-Cc: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
----
- arch/x86/platform/efi/quirks.c | 72 ++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 72 insertions(+)
-
-diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
-index 103a569a244a..08ed0da663b8 100644
---- a/arch/x86/platform/efi/quirks.c
-+++ b/arch/x86/platform/efi/quirks.c
-@@ -695,4 +695,76 @@ void __init efi_save_orig_memmap(void)
- orig_new_phys = new_phys;
- orig_num_entries = num_entries;
- }
-+
-+/**
-+ * __efi_memmap_init - Map the passed EFI memory map
-+ * @data: EFI memory map data
-+ * @late: Use early or late mapping function? (unused)
-+ *
-+ * Returns zero on success, a negative error code on failure.
-+ */
-+static int __efi_memmap_init(struct efi_memory_map_data *data, bool late)
-+{
-+ struct efi_memory_map map;
-+ phys_addr_t phys_map;
-+
-+ if (efi_enabled(EFI_PARAVIRT))
-+ return 0;
-+
-+ phys_map = data->phys_map;
-+
-+ map.map = memremap(phys_map, data->size, MEMREMAP_WB);
-+
-+ if (!map.map) {
-+ pr_err("Could not map the memory map!\n");
-+ return -ENOMEM;
-+ }
-+
-+ map.phys_map = data->phys_map;
-+ map.nr_map = data->size / data->desc_size;
-+ map.map_end = map.map + data->size;
-+
-+ map.desc_version = data->desc_version;
-+ map.desc_size = data->desc_size;
-+ map.late = late;
-+
-+ set_bit(EFI_MEMMAP, &efi.flags);
-+
-+ efi.memmap = map;
-+
-+ return 0;
-+}
-+
-+/**
-+ * efi_unmap_memmap - Unmap the existing EFI memory map
-+ */
-+static void efi_unmap_memmap(void)
-+{
-+ memunmap(efi.memmap.map);
-+
-+ efi.memmap.map = NULL;
-+ clear_bit(EFI_MEMMAP, &efi.flags);
-+}
-+
-+/**
-+ * efi_install_memmap - Install a new EFI memory map in efi.memmap
-+ * @addr: Physical address of the memory map
-+ * @nr_map: Number of entries in the memory map
-+ *
-+ * Returns zero on success, a negative error code on failure.
-+ */
-+static int efi_install_memmap(phys_addr_t addr, unsigned int nr_map)
-+{
-+ struct efi_memory_map_data data;
-+
-+ efi_unmap_memmap();
-+
-+ data.phys_map = addr;
-+ data.size = efi.memmap.desc_size * nr_map;
-+ data.desc_version = efi.memmap.desc_version;
-+ data.desc_size = efi.memmap.desc_size;
-+
-+ return __efi_memmap_init(&data, efi.memmap.late);
-+}
-+
- #endif /* CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES */
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0004-efi-Allow-efi_mem_desc_lookup-find-illegally-accesse.patch b/meta-luv/recipes-kernel/linux/linux-luv/0004-efi-Allow-efi_mem_desc_lookup-find-illegally-accesse.patch
deleted file mode 100644
index d5b336f..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0004-efi-Allow-efi_mem_desc_lookup-find-illegally-accesse.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 59e605d068fdf1df5d9ea8a8575c32d26e5d7aad Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Fri, 19 May 2017 16:16:01 -0700
-Subject: [PATCH 4/9] efi: Allow efi_mem_desc_lookup find illegally accessed
- EFI regions
-
-CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES detects illegal accesses to EFI
-regions using the offending physical address of the access. We need the
-memory descriptor of such region so that it can be mapped as a fixup to
-a page fault. These illegal accesses can occur in
-EFI_CONVENTIONAL_MEMORY, EFI_LOADER_CODE/DATA or
-EFI_BOOT_SERVICES_CODE/DATA regions. Thus, allow efi_mem_desc_lookup to
-return the descriptor of any of the above regions.
-
-Signed-off-by: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
----
- drivers/firmware/efi/efi.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
-index 358322052a70..2d0d4a1cceb8 100644
---- a/drivers/firmware/efi/efi.c
-+++ b/drivers/firmware/efi/efi.c
-@@ -422,6 +422,12 @@ int __init_fixup efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md)
-
- if (!(md->attribute & EFI_MEMORY_RUNTIME) &&
- md->type != EFI_BOOT_SERVICES_DATA &&
-+#if defined(CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES)
-+ md->type != EFI_BOOT_SERVICES_CODE &&
-+ md->type != EFI_CONVENTIONAL_MEMORY &&
-+ md->type != EFI_LOADER_CODE &&
-+ md->type != EFI_LOADER_DATA &&
-+#endif
- md->type != EFI_RUNTIME_SERVICES_DATA) {
- continue;
- }
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0005-x86-efi-Add-function-to-fixup-page-faults-in-illegal.patch b/meta-luv/recipes-kernel/linux/linux-luv/0005-x86-efi-Add-function-to-fixup-page-faults-in-illegal.patch
deleted file mode 100644
index ebacc3d..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0005-x86-efi-Add-function-to-fixup-page-faults-in-illegal.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 79d6b2ebdda4b69f493ef67d97af59385727dafc Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Wed, 6 Sep 2017 11:39:51 -0700
-Subject: [PATCH 5/9] x86/efi: Add function to fixup page faults in illegal efi
- regions
-
-As per the UEFI specification, after the call to ExitBootServices(),
-accesses by firmware to any memory regions except EFI_RUNTIME_CODE/DATA
-regions is considered illegal. However, some buggy firmware
-implementations still access these regions after such call.
-
-Rather than safely mapping all the BOOT_SERVICES_* regions, map only
-EFI_RUNTIME regions and trap all other illegal accesses. The function
-efi_illegal_accesses_fixup() is intended to be called from the page
-fault handler.
-
-[ All BOOT_SERVICES_* regions are still marked as reserved until
- efi_free_boot_services() is called, so we're OK to dynamically
- fixup any faults since the pages won't have been reused - Matt ]
-
-We are fixing up faults even after efi_free_boot_services() is called
-and we are also fixing faults not only for EFI_BOOT_SERVICES_CODE/DATA
-but also for EFI_CONVENTIONAL_MEMORY and EFI_LOADER_CODE/DATA which are
-not reserved. We cannot reserve these regions as they are very huge and
-reserving them will make kernel un-bootable. We are still considering
-this fixup because we could at least save few random kernel hangs on
-buggy machines. So, even though we fix the page fault we cannot
-guarantee any data integrity.
-
-Finally, this new mapping will not impact a reboot from kexec, as kexec
-is only concerned about runtime memory regions.
-
-Signed-off-by: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
----
- arch/x86/platform/efi/quirks.c | 60 ++++++++++++++++++++++++++++++++++++++++++
- include/linux/efi.h | 5 ++++
- 2 files changed, 65 insertions(+)
-
-diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
-index 08ed0da663b8..d4c6577a63e3 100644
---- a/arch/x86/platform/efi/quirks.c
-+++ b/arch/x86/platform/efi/quirks.c
-@@ -767,4 +767,64 @@ static int efi_install_memmap(phys_addr_t addr, unsigned int nr_map)
- return __efi_memmap_init(&data, efi.memmap.late);
- }
-
-+int efi_illegal_accesses_fixup(unsigned long phys_addr)
-+{
-+ int num_entries;
-+ efi_memory_desc_t md;
-+ bool fixed_page_fault;
-+ efi_memory_desc_t *p_md;
-+ phys_addr_t old_memmap_phys;
-+
-+ num_entries = 0;
-+ fixed_page_fault = false;
-+
-+ if (phys_addr == 0x0)
-+ return 0;
-+
-+ /* Save already existing memory map */
-+ old_memmap_phys = efi.memmap.phys_map;
-+ for_each_efi_memory_desc(p_md) {
-+ num_entries++;
-+ }
-+
-+ /* Install original memory map passed by firmware */
-+ if (efi_install_memmap(orig_new_phys, orig_num_entries)) {
-+ pr_err("Could not install original EFI memmap\n");
-+ return 0;
-+ }
-+
-+ if (efi_mem_desc_lookup(phys_addr, &md))
-+ goto unmap;
-+
-+ if (md.type == EFI_BOOT_SERVICES_CODE ||
-+ md.type == EFI_BOOT_SERVICES_DATA ||
-+ md.type == EFI_CONVENTIONAL_MEMORY ||
-+ md.type == EFI_LOADER_CODE ||
-+ md.type == EFI_LOADER_DATA) {
-+ /*
-+ * If the page fault was caused by an acccess to illegal memory
-+ * regions, just map the region... and warn about it. By now we
-+ * should have found the virtual address of the system table.
-+ * Thus, no need to update.
-+ */
-+ pr_warn(FW_BUG "Fixing illegal access to EFI region at PA: "
-+ "0x%lx\n", phys_addr);
-+ efi_map_region(&md);
-+ fixed_page_fault = true;
-+ }
-+
-+unmap:
-+ /*
-+ * Install the memory map that was already present before
-+ * switiching to original EFI Memory Map.
-+ */
-+ if (efi_install_memmap(old_memmap_phys, num_entries))
-+ pr_err("Could not install previous EFI memmap\n");
-+
-+ if (fixed_page_fault)
-+ return 1;
-+
-+ return 0;
-+}
-+
- #endif /* CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES */
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 23e9b29d2bfc..863dbfb1b211 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -1069,8 +1069,13 @@ extern int efi_memattr_apply_permissions(struct mm_struct *mm,
- */
- #ifdef CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES
- #define __init_fixup
-+extern int efi_illegal_accesses_fixup(unsigned long phys_addr);
- #else
- #define __init_fixup __init
-+static inline int efi_illegal_accesses_fixup(unsigned long phys_addr)
-+{
-+ return 0;
-+}
- #endif
-
- /*
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0006-x86-mm-Allocate-pages-without-sleeping.patch b/meta-luv/recipes-kernel/linux/linux-luv/0006-x86-mm-Allocate-pages-without-sleeping.patch
deleted file mode 100644
index 71ed366..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0006-x86-mm-Allocate-pages-without-sleeping.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 774f1b26f31a042da7d6642b5ac9e81bf7f8b73b Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Wed, 10 Jan 2018 11:23:47 -0800
-Subject: [PATCH 6/9] x86/mm: Allocate pages without sleeping
-
-When CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES is enabled, and if some
-firmware does illegal accesses, kernel will be in interrupt context when
-it's trying to fixup this page fault. Hence, allocate pages without
-sleeping in interrupt context.
-
-This change shouldn't affect any other page allocations because this
-allocation is used only by efi functions and not any other.
-
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
-CC: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
----
- arch/x86/include/asm/pgalloc.h | 5 +++++
- arch/x86/mm/pageattr.c | 18 ++++++++++++++++--
- arch/x86/platform/efi/quirks.c | 2 ++
- 3 files changed, 23 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
-index aff42e1da6ee..62e1d21eca4d 100644
---- a/arch/x86/include/asm/pgalloc.h
-+++ b/arch/x86/include/asm/pgalloc.h
-@@ -42,6 +42,11 @@ extern gfp_t __userpte_alloc_gfp;
- #endif
-
- /*
-+ * Are we allocating pages to firmware while fixing illegal access
-+ */
-+extern bool fixing_efi_illegal_access;
-+
-+/*
- * Allocate and free page tables.
- */
- extern pgd_t *pgd_alloc(struct mm_struct *);
-diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
-index 85cf12219dea..91b41c617a91 100644
---- a/arch/x86/mm/pageattr.c
-+++ b/arch/x86/mm/pageattr.c
-@@ -42,6 +42,8 @@ struct cpa_data {
- struct page **pages;
- };
-
-+bool fixing_efi_illegal_access = false;
-+
- /*
- * Serialize cpa() (for !DEBUG_PAGEALLOC which uses large identity mappings)
- * using cpa_lock. So that we don't allow any other cpu, with stale large tlb
-@@ -904,7 +906,13 @@ static void unmap_pud_range(p4d_t *p4d, unsigned long start, unsigned long end)
-
- static int alloc_pte_page(pmd_t *pmd)
- {
-- pte_t *pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
-+ pte_t *pte;
-+
-+ if (fixing_efi_illegal_access)
-+ pte = (pte_t *)get_zeroed_page(GFP_ATOMIC);
-+ else
-+ pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
-+
- if (!pte)
- return -1;
-
-@@ -914,7 +922,13 @@ static int alloc_pte_page(pmd_t *pmd)
-
- static int alloc_pmd_page(pud_t *pud)
- {
-- pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
-+ pmd_t *pmd;
-+
-+ if (fixing_efi_illegal_access)
-+ pmd = (pmd_t *)get_zeroed_page(GFP_ATOMIC);
-+ else
-+ pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
-+
- if (!pmd)
- return -1;
-
-diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
-index d4c6577a63e3..a9ac6c97ec4d 100644
---- a/arch/x86/platform/efi/quirks.c
-+++ b/arch/x86/platform/efi/quirks.c
-@@ -809,7 +809,9 @@ int efi_illegal_accesses_fixup(unsigned long phys_addr)
- */
- pr_warn(FW_BUG "Fixing illegal access to EFI region at PA: "
- "0x%lx\n", phys_addr);
-+ fixing_efi_illegal_access = true;
- efi_map_region(&md);
-+ fixing_efi_illegal_access = false;
- fixed_page_fault = true;
- }
-
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0007-x86-efi-Fixup-faults-from-UEFI-firmware.patch b/meta-luv/recipes-kernel/linux/linux-luv/0007-x86-efi-Fixup-faults-from-UEFI-firmware.patch
deleted file mode 100644
index 8e2c95c..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0007-x86-efi-Fixup-faults-from-UEFI-firmware.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From fcfd32e96efbc418a27e509a42483c86c96a5c9b Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Fri, 19 May 2017 16:18:43 -0700
-Subject: [PATCH 7/9] x86/efi: Fixup faults from UEFI firmware
-
-Firmware may try to access illegal efi memory regions even after
-those regions were surrendered to kernel for its own consumption. Fix
-that up.
-
-Signed-off-by: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
----
- arch/x86/mm/fault.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index 06fe3d51d385..7fa8585e2359 100644
---- a/arch/x86/mm/fault.c
-+++ b/arch/x86/mm/fault.c
-@@ -16,6 +16,7 @@
- #include <linux/prefetch.h> /* prefetchw */
- #include <linux/context_tracking.h> /* exception_enter(), ... */
- #include <linux/uaccess.h> /* faulthandler_disabled() */
-+#include <linux/efi.h> /* fixup for buggy UEFI firmware*/
-
- #include <asm/cpufeature.h> /* boot_cpu_has, ... */
- #include <asm/traps.h> /* dotraplinkage, ... */
-@@ -24,6 +25,7 @@
- #include <asm/vsyscall.h> /* emulate_vsyscall */
- #include <asm/vm86.h> /* struct vm86 */
- #include <asm/mmu_context.h> /* vma_pkey() */
-+#include <asm/efi.h> /* fixup for buggy UEFI firmware*/
-
- #define CREATE_TRACE_POINTS
- #include <asm/trace/exceptions.h>
-@@ -822,6 +824,15 @@ no_context(struct pt_regs *regs, unsigned long error_code,
- return;
-
- /*
-+ * Try to fixup faults caused by illegal accesses to efi regions by
-+ * UEFI firmware.
-+ */
-+ if (IS_ENABLED(CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES)) {
-+ if (efi_illegal_accesses_fixup(address))
-+ return;
-+ }
-+
-+ /*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice:
- */
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv/0008-x86-efi-Introduce-EFI_WARN_ON_ILLEGAL_ACCESSES.patch b/meta-luv/recipes-kernel/linux/linux-luv/0008-x86-efi-Introduce-EFI_WARN_ON_ILLEGAL_ACCESSES.patch
deleted file mode 100644
index 7a9436f..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv/0008-x86-efi-Introduce-EFI_WARN_ON_ILLEGAL_ACCESSES.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 05c6c4f4bb66dfb94b25a0a8868be08e6b2b8dd0 Mon Sep 17 00:00:00 2001
-From: Sai Praneeth <sai.praneeth.prakhya(a)intel.com>
-Date: Fri, 19 May 2017 16:19:20 -0700
-Subject: [PATCH 8/9] x86/efi: Introduce EFI_WARN_ON_ILLEGAL_ACCESSES
-
-There may exist buggy implementations of UEFI firmware that access efi
-memory regions like EFI_CONVENTIONAL_MEMORY, EFI_LOADER_CODE/DATA and
-EFI_BOOT_SERVICES_CODE/DATA regions after the call to ExitBootServices()
-(e.g., when calling SetVirtualAddressMap() or while executing some
-efi_runtime_service()). This is in direct violation of the UEFI
-specification.
-
-If selected, this debug option will print a warning message if the UEFI
-firmware tries to access the aforementioned memory regions. Along with
-the warning, the kernel will fixup the page fault so that the firmware
-can proceed further.
-
-If not selected, EFI_BOOT_SERVICES_CODE/DATA memory regions will be
-mapped along with the runtime memory regions so that the buggy firmware
-does not cause any page faults when accessing such memory regions. This
-is the approach from Matthew Garrett in commit 916f676f8dc0 ("x86, efi:
-Retain boot service code until after switching to virtual mode").
-
-However, firmware developers are less likely to find and avoid such
-illegal access as the kernel silently works around their bug.
-
-Signed-off-by: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
-Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya(a)intel.com>
-Cc: Lee, Chun-Yi <jlee(a)suse.com>
-Cc: Borislav Petkov <bp(a)alien8.de>
-Cc: Fenghua Yu <fenghua.yu(a)intel.com>
-Cc: Ravi Shankar <ravi.v.shankar(a)intel.com>
-Cc: Matt Fleming <matt(a)codeblueprint.co.uk>
-Cc: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
----
- arch/x86/Kconfig | 12 ++++++++++++
- arch/x86/platform/efi/efi.c | 4 ++++
- 2 files changed, 16 insertions(+)
-
-diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index d4fc98c50378..55302c579266 100644
---- a/arch/x86/Kconfig
-+++ b/arch/x86/Kconfig
-@@ -1904,6 +1904,18 @@ config EFI_MIXED
-
- If unsure, say N.
-
-+config EFI_WARN_ON_ILLEGAL_ACCESSES
-+ bool "Warn about illegal accesses to efi memory regions"
-+ depends on EFI
-+ ---help---
-+ Enable this debug feature to make the kernel issue a warning if
-+ memory regions marked other than EFI_RUNTIME_CODE/DATA are
-+ accessed after the kernel calls ExitBootServices() on the
-+ firmware. Please see the UEFI specification for details on
-+ the expectations of memory usage.
-+
-+ If unsure, say N.
-+
- config SECCOMP
- def_bool y
- prompt "Enable seccomp to safely compute untrusted bytecode"
-diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
-index c19e736f7221..b272afd6b6d7 100644
---- a/arch/x86/platform/efi/efi.c
-+++ b/arch/x86/platform/efi/efi.c
-@@ -768,9 +768,13 @@ static bool should_map_region(efi_memory_desc_t *md)
- /*
- * Map boot services regions as a workaround for buggy
- * firmware that accesses them even when they shouldn't.
-+ * (only if CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES is disabled)
- *
- * See efi_{reserve,free}_boot_services().
- */
-+ if (IS_ENABLED(CONFIG_EFI_WARN_ON_ILLEGAL_ACCESSES))
-+ return false;
-+
- if (md->type == EFI_BOOT_SERVICES_CODE ||
- md->type == EFI_BOOT_SERVICES_DATA)
- return true;
---
-2.1.4
-
diff --git a/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb b/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb
deleted file mode 100644
index 3d58d44..0000000
--- a/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb
+++ /dev/null
@@ -1,162 +0,0 @@
-# linux-yocto-custom.bb:
-#
-# An example kernel recipe that uses the linux-yocto and oe-core
-# kernel classes to apply a subset of yocto kernel management to git
-# managed kernel repositories.
-#
-# To use linux-yocto-custom in your layer, create a
-# linux-yocto-custom.bbappend file containing at least the following
-# lines:
-#
-# FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-# COMPATIBLE_MACHINE_yourmachine = "yourmachine"
-#
-# You must also provide a Linux kernel configuration. The most direct
-# method is to copy your .config to files/defconfig in your layer,
-# in the same directory as the bbappend and add file://defconfig to
-# your SRC_URI.
-#
-# To use the yocto kernel tooling to generate a BSP configuration
-# using modular configuration fragments, see the yocto-bsp and
-# yocto-kernel tools documentation.
-#
-# Warning:
-#
-# Building this example without providing a defconfig or BSP
-# configuration will result in build or boot errors. This is not a
-# bug.
-#
-#
-# Notes:
-#
-# patches: patches can be merged into to the source git tree itself,
-# added via the SRC_URI, or controlled via a BSP
-# configuration.
-#
-# defconfig: When a defconfig is provided, the linux-yocto configuration
-# uses the filename as a trigger to use a 'allnoconfig' baseline
-# before merging the defconfig into the build.
-#
-# If the defconfig file was created with make_savedefconfig,
-# not all options are specified, and should be restored with their
-# defaults, not set to 'n'. To properly expand a defconfig like
-# this, specify: KCONFIG_MODE="--alldefconfig" in the kernel
-# recipe.
-#
-# example configuration addition:
-# SRC_URI += "file://smp.cfg"
-# example patch addition (for kernel v3.4 only):
-# SRC_URI += "file://0001-linux-version-tweak.patch
-# example feature addition (for kernel v3.4 only):
-# SRC_URI += "file://feature.scc"
-#
-
-KBRANCH="master"
-inherit kernel
-require recipes-kernel/linux/linux-yocto.inc
-
-KERNEL_FEATURES_remove= " features/debug/printk.scc \
- features/kernel-sample/kernel-sample.scc \
- "
-
-# Override SRC_URI in a bbappend file to point at a different source
-# tree if you do not want to build from Linus' tree.
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol..."
-
-# These patches are under discussion on ML
-SRC_URI += "file://0001-serial-SPCR-check-bit-width-for-the-16550-UART.patch \
- "
-
-# Detect illegal accesses to EFI regions (like EFI_CONVENTIONAL_MEMORY,
-# EFI_LOADER_CODE/DATA, EFI_BOOT_SERVICES_CODE/DATA) by firmware.
-SRC_URI += "file://0001-PCI-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-earl.patch \
- file://0002-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch \
- file://0001-x86-efi-remove-__init-attribute-from-memory-mapping-.patch \
- file://0002-x86-efi-Save-EFI_MEMORY_MAP-passed-by-firmware-perma.patch \
- file://0003-x86-efi-Copy-support-functions-to-install-uninstall-.patch \
- file://0004-efi-Allow-efi_mem_desc_lookup-find-illegally-accesse.patch \
- file://0005-x86-efi-Add-function-to-fixup-page-faults-in-illegal.patch \
- file://0006-x86-mm-Allocate-pages-without-sleeping.patch \
- file://0007-x86-efi-Fixup-faults-from-UEFI-firmware.patch \
- file://0008-x86-efi-Introduce-EFI_WARN_ON_ILLEGAL_ACCESSES.patch \
- file://0001-selftests-change-reboot-flag-location.patch \
- file://0001-pstore-test-remove-log-directory.patch \
- file://0001-x86-mttr-Update-only-valid-variable-range-MTRRs.patch \
- "
-
-COMMON_CFG_x86 = " file://qemux86/modules.cfg \
- file://qemux86/display.cfg \
- file://qemux86/ram_block.cfg \
- file://qemux86/debug.cfg \
- file://qemux86/efi_x86.cfg \
- file://qemux86/usb_hcd.cfg \
- file://qemux86/network.cfg \
- file://qemux86/network-devices.cfg \
- file://qemux86/usb_ethernet.cfg \
- "
-
-# Add the kernel configuration fragments for x86/x86-64/arm64
-SRC_URI_append_x86 = "${COMMON_CFG_x86} \
- file://qemux86/highmem.cfg \
- "
-SRC_URI_append_x86-64 = "${COMMON_CFG_x86} \
- file://qemux86/ndctl.cfg \
- file://qemux86-64/linux_quirks.cfg \
- file://qemux86-64/efi_x86-64.cfg \
- "
-SRC_URI_append_aarch64 = " file://qemuarm64/network.cfg \
- file://qemuarm64/sbbr.cfg \
- file://qemuarm64/64Kpages.cfg \
- "
-
-# pstore, highmem and efi configs are common to all the supported architectures
-SRC_URI_append = "file://pstore.cfg \
- file://pstore-test.cfg \
- file://efi.cfg \
- file://cpus.cfg \
- file://lockup.cfg \
- "
-
-# Override KCONFIG_MODE to '--alldefconfig' from the default '--allnoconfig'
-KCONFIG_MODE = 'alldefconfig'
-
-# If a defconfig is specified via the KBUILD_DEFCONFIG variable, we copy it
-# from the source tree, into a common location and normalized "defconfig" name,
-# where the rest of the process will include and incoroporate it into the build
-
-# If the fetcher has already placed a defconfig in WORKDIR (from the SRC_URI),
-# we don't overwrite it, but instead warn the user that SRC_URI defconfigs take
-# precendence.
-KBUILD_DEFCONFIG = "defconfig"
-KBUILD_DEFCONFIG_x86 = "i386_defconfig"
-KBUILD_DEFCONFIG_x86-64 = "x86_64_defconfig"
-LINUX_VERSION = "4.18"
-LINUX_VERSION_EXTENSION = "-luv"
-
-# Override SRCREV to point to a different commit in a bbappend file to
-# build a different release of the Linux kernel.
-# tag: v4.18 94710cac0ef4ee177a63b5227664b38c95bbf703
-SRCREV = "94710cac0ef4ee177a63b5227664b38c95bbf703"
-
-PR = "r5"
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-# Override COMPATIBLE_MACHINE to include your machine in a bbappend
-# file. Leaving it empty here ensures an early explicit build failure.
-COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm64"
-
-# extract-cert.c requires openssl development files
-# kernel-source/scripts/extract-cert.c:21:25:
-# fatal error: openssl/bio.h: No such file or directory
-DEPENDS += "openssl-native"
-HOST_EXTRACFLAGS += "-I${STAGING_INCDIR_NATIVE}"
-
-do_install_append() {
- if [ "${TARGET_ARCH}" = "x86_64" ]; then
- # There are 2 copies of the NVDIMM modules which are built. This is a
- # temporary fix to make sure the correct set of modules are used.
- rm -rf ${D}/lib/modules/${LINUX_VERSION}.0${LINUX_VERSION_EXTENSION}/kernel/drivers/nvdimm/
- rm -rf ${D}/lib/modules/${LINUX_VERSION}.0${LINUX_VERSION_EXTENSION}/kernel/drivers/dax/
- rm -rf ${D}/lib/modules/${LINUX_VERSION}.0${LINUX_VERSION_EXTENSION}/kernel/drivers/acpi/
- fi
-}
diff --git a/meta-luv/recipes-kernel/linux/linux-luv_4.19.bb b/meta-luv/recipes-kernel/linux/linux-luv_4.19.bb
new file mode 100644
index 0000000..cc88cd4
--- /dev/null
+++ b/meta-luv/recipes-kernel/linux/linux-luv_4.19.bb
@@ -0,0 +1,156 @@
+# linux-yocto-custom.bb:
+#
+# An example kernel recipe that uses the linux-yocto and oe-core
+# kernel classes to apply a subset of yocto kernel management to git
+# managed kernel repositories.
+#
+# To use linux-yocto-custom in your layer, create a
+# linux-yocto-custom.bbappend file containing at least the following
+# lines:
+#
+# FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+# COMPATIBLE_MACHINE_yourmachine = "yourmachine"
+#
+# You must also provide a Linux kernel configuration. The most direct
+# method is to copy your .config to files/defconfig in your layer,
+# in the same directory as the bbappend and add file://defconfig to
+# your SRC_URI.
+#
+# To use the yocto kernel tooling to generate a BSP configuration
+# using modular configuration fragments, see the yocto-bsp and
+# yocto-kernel tools documentation.
+#
+# Warning:
+#
+# Building this example without providing a defconfig or BSP
+# configuration will result in build or boot errors. This is not a
+# bug.
+#
+#
+# Notes:
+#
+# patches: patches can be merged into to the source git tree itself,
+# added via the SRC_URI, or controlled via a BSP
+# configuration.
+#
+# defconfig: When a defconfig is provided, the linux-yocto configuration
+# uses the filename as a trigger to use a 'allnoconfig' baseline
+# before merging the defconfig into the build.
+#
+# If the defconfig file was created with make_savedefconfig,
+# not all options are specified, and should be restored with their
+# defaults, not set to 'n'. To properly expand a defconfig like
+# this, specify: KCONFIG_MODE="--alldefconfig" in the kernel
+# recipe.
+#
+# example configuration addition:
+# SRC_URI += "file://smp.cfg"
+# example patch addition (for kernel v3.4 only):
+# SRC_URI += "file://0001-linux-version-tweak.patch
+# example feature addition (for kernel v3.4 only):
+# SRC_URI += "file://feature.scc"
+#
+
+KBRANCH="master"
+inherit kernel
+require recipes-kernel/linux/linux-yocto.inc
+
+KERNEL_FEATURES_remove= " features/debug/printk.scc \
+ features/kernel-sample/kernel-sample.scc \
+ "
+
+# Override SRC_URI in a bbappend file to point at a different source
+# tree if you do not want to build from Linus' tree.
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol..."
+
+# These patches are under discussion on ML
+SRC_URI += "file://0001-serial-SPCR-check-bit-width-for-the-16550-UART.patch \
+ "
+
+# Detect illegal accesses to EFI regions (like EFI_CONVENTIONAL_MEMORY,
+# EFI_LOADER_CODE/DATA, EFI_BOOT_SERVICES_CODE/DATA) by firmware.
+SRC_URI += "file://0001-PCI-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-earl.patch \
+ file://0002-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch \
+ file://0001-efi-Make-efi_rts_work-accessible-to-efi-page-fault-h.patch \
+ file://0001-efi-x86-Handle-page-faults-occurring-while-running-E.patch \
+ file://0001-selftests-change-reboot-flag-location.patch \
+ file://0001-pstore-test-remove-log-directory.patch \
+ file://0001-x86-mttr-Update-only-valid-variable-range-MTRRs.patch \
+ "
+
+COMMON_CFG_x86 = " file://qemux86/modules.cfg \
+ file://qemux86/display.cfg \
+ file://qemux86/ram_block.cfg \
+ file://qemux86/debug.cfg \
+ file://qemux86/efi_x86.cfg \
+ file://qemux86/usb_hcd.cfg \
+ file://qemux86/network.cfg \
+ file://qemux86/network-devices.cfg \
+ file://qemux86/usb_ethernet.cfg \
+ "
+
+# Add the kernel configuration fragments for x86/x86-64/arm64
+SRC_URI_append_x86 = "${COMMON_CFG_x86} \
+ file://qemux86/highmem.cfg \
+ "
+SRC_URI_append_x86-64 = "${COMMON_CFG_x86} \
+ file://qemux86/ndctl.cfg \
+ file://qemux86-64/linux_quirks.cfg \
+ file://qemux86-64/efi_x86-64.cfg \
+ "
+SRC_URI_append_aarch64 = " file://qemuarm64/network.cfg \
+ file://qemuarm64/sbbr.cfg \
+ file://qemuarm64/64Kpages.cfg \
+ "
+
+# pstore, highmem and efi configs are common to all the supported architectures
+SRC_URI_append = "file://pstore.cfg \
+ file://pstore-test.cfg \
+ file://efi.cfg \
+ file://cpus.cfg \
+ file://lockup.cfg \
+ "
+
+# Override KCONFIG_MODE to '--alldefconfig' from the default '--allnoconfig'
+KCONFIG_MODE = 'alldefconfig'
+
+# If a defconfig is specified via the KBUILD_DEFCONFIG variable, we copy it
+# from the source tree, into a common location and normalized "defconfig" name,
+# where the rest of the process will include and incoroporate it into the build
+
+# If the fetcher has already placed a defconfig in WORKDIR (from the SRC_URI),
+# we don't overwrite it, but instead warn the user that SRC_URI defconfigs take
+# precendence.
+KBUILD_DEFCONFIG = "defconfig"
+KBUILD_DEFCONFIG_x86 = "i386_defconfig"
+KBUILD_DEFCONFIG_x86-64 = "x86_64_defconfig"
+LINUX_VERSION = "4.19"
+LINUX_VERSION_EXTENSION = "-luv"
+
+# Override SRCREV to point to a different commit in a bbappend file to
+# build a different release of the Linux kernel.
+# tag: v4.19 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d
+SRCREV = "84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d"
+
+PR = "r5"
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+# Override COMPATIBLE_MACHINE to include your machine in a bbappend
+# file. Leaving it empty here ensures an early explicit build failure.
+COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm64"
+
+# extract-cert.c requires openssl development files
+# kernel-source/scripts/extract-cert.c:21:25:
+# fatal error: openssl/bio.h: No such file or directory
+DEPENDS += "openssl-native"
+HOST_EXTRACFLAGS += "-I${STAGING_INCDIR_NATIVE}"
+
+do_install_append() {
+ if [ "${TARGET_ARCH}" = "x86_64" ]; then
+ # There are 2 copies of the NVDIMM modules which are built. This is a
+ # temporary fix to make sure the correct set of modules are used.
+ rm -rf ${D}/lib/modules/${LINUX_VERSION}.0${LINUX_VERSION_EXTENSION}/kernel/drivers/nvdimm/
+ rm -rf ${D}/lib/modules/${LINUX_VERSION}.0${LINUX_VERSION_EXTENSION}/kernel/drivers/dax/
+ rm -rf ${D}/lib/modules/${LINUX_VERSION}.0${LINUX_VERSION_EXTENSION}/kernel/drivers/acpi/
+ fi
+}
--
1.9.1
3 years, 6 months
[PATCH] Move LIC_FILES_CHKSUM inc to bb file
by Naresh Bhat
Move LIC_FILES_CHKSUM inc to bb file
Signed-off-by: Naresh Bhat <naresh.bhat(a)linaro.org>
---
meta-luv/recipes-kernel/linux/linux-luv_4.18.bb | 3 +++
meta/recipes-kernel/linux/linux-yocto.inc | 1 -
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb b/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb
index 3d58d447d1..d2c54822df 100644
--- a/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb
+++ b/meta-luv/recipes-kernel/linux/linux-luv_4.18.bb
@@ -52,6 +52,9 @@
#
KBRANCH="master"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
inherit kernel
require recipes-kernel/linux/linux-yocto.inc
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc
index 8c4d4c32bd..7e2bdcb2af 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -2,7 +2,6 @@ SUMMARY = "Linux kernel"
SECTION = "kernel"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
--
2.17.1
3 years, 6 months
[PATCH] Add symlink to LUV README from root
by Thiebaud Weksteen
When unfamiliar with yocto/poky, it is unexpected to find the entry point
of the LUV documentation in a sub-directory. This patch adds a symlink from
the root to meta-luv/README, similarly to what is done with
README.hardware or README.poky.
Signed-off-by: Thiébaud Weksteen <tweek(a)google.com>
---
README.luv | 1 +
1 file changed, 1 insertion(+)
create mode 120000 README.luv
diff --git a/README.luv b/README.luv
new file mode 120000
index 0000000000..aaf980cfcf
--- /dev/null
+++ b/README.luv
@@ -0,0 +1 @@
+meta-luv/README
\ No newline at end of file
--
2.19.1.1215.g8438c0b245-goog
3 years, 6 months
[PATCH] fwts: Update fwts to v18.11.00
by Naresh Bhat
Update FWTS to version v18.11.00
Signed-off-by: Naresh Bhat <naresh.bhat(a)linaro.org>
---
meta-luv/recipes-core/fwts/fwts_git.bb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-luv/recipes-core/fwts/fwts_git.bb b/meta-luv/recipes-core/fwts/fwts_git.bb
index 08c67ae912..a3c105384f 100644
--- a/meta-luv/recipes-core/fwts/fwts_git.bb
+++ b/meta-luv/recipes-core/fwts/fwts_git.bb
@@ -4,9 +4,9 @@ HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
-PV = "V18.09.00+git${SRCPV}"
+PV = "V18.11.00+git${SRCPV}"
-SRCREV = "55ecee114fd2a91ba01750914cff8efed77f58d4"
+SRCREV = "be475359aa91728e952117af764bab39b1528c68"
SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \
file://luv-parser-fwts \
"
--
2.17.1
3 years, 6 months
[PATCH] bits: Add -no-pie flag to support Debian.
by Thiebaud Weksteen
On Debian, ld has PIE enabled by default. This is similar to the
commit bc209d9b8dbfb842eb00f0a09e52025f1ca403ae for grub2.
Signed-off-by: Thiébaud Weksteen <tweek(a)google.com>
---
meta-luv/recipes-bsp/bits/bits_git.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-luv/recipes-bsp/bits/bits_git.bb b/meta-luv/recipes-bsp/bits/bits_git.bb
index d82de4dfe2..9648fef178 100644
--- a/meta-luv/recipes-bsp/bits/bits_git.bb
+++ b/meta-luv/recipes-bsp/bits/bits_git.bb
@@ -21,6 +21,7 @@ BBCLASSEXTEND = "native"
# maintaining it, resolving all these warnings consumes a lot of time.
# Thus, we have decided to not treat the warnings as errors.
CFLAGS_append = " -Wno-error "
+LDFLAGS_append = " -no-pie "
BITSVERSION="2079"
PV="${BITSVERSION}+git${SRCPV}"
--
2.19.1.1215.g8438c0b245-goog
3 years, 6 months
[PATCH] linux-libc-headers: Bump linux-libc-headers to v4.19
by Megha Dey
Since we are updating the kernel LUV uses to v4.19, it is imperative
that we update the linux-libc-headers as well.
Also update LINUXLIBCVERSION variable.
Signed-off-by: Megha Dey <megha.dey(a)linux.intel.com>
---
meta-luv/conf/distro/luv.conf | 2 +-
.../recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb | 6 ------
.../recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb | 6 ++++++
3 files changed, 7 insertions(+), 7 deletions(-)
delete mode 100644 meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
create mode 100644 meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
diff --git a/meta-luv/conf/distro/luv.conf b/meta-luv/conf/distro/luv.conf
index 29bf152..860452a 100644
--- a/meta-luv/conf/distro/luv.conf
+++ b/meta-luv/conf/distro/luv.conf
@@ -4,7 +4,7 @@ DISTRO_VERSION = "2.3"
TCLIBCAPPEND = ""
PREFERRED_PROVIDER_virtual/kernel = "linux-luv"
-LINUXLIBCVERSION = "4.18"
+LINUXLIBCVERSION = "4.19"
LAYER_CONF_VERSION ?= "6"
diff --git a/meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb b/meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
deleted file mode 100644
index 80d6421..0000000
--- a/meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require recipes-kernel/linux-libc-headers/linux-libc-headers.inc
-
-FILESEXTRAPATHS_prepend :="../../../meta/recipes-kernel/linux-libc-headers:"
-
-SRC_URI[md5sum] = "bee5fe53ee1c3142b8f0c12c0d3348f9"
-SRC_URI[sha256sum] = "19d8bcf49ef530cd4e364a45b4a22fa70714b70349c8100e7308488e26f1eaf1"
diff --git a/meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
new file mode 100644
index 0000000..e14f2a0
--- /dev/null
+++ b/meta-luv/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
@@ -0,0 +1,6 @@
+require recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+
+FILESEXTRAPATHS_prepend :="../../../meta/recipes-kernel/linux-libc-headers:"
+
+SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900"
+SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1"
--
1.9.1
3 years, 7 months
[PATCH] meta-luv: Update kernel selftest recipes
by Megha Dey
Kernel Commit b2d35fa "selftests: add headers_install to lib.mk"
requires every test-directory in tools/testing/selftests which includes
the lib.mk file to have access to the kernel root directory
(top_srcdir):
+top_srcdir ?= ../../../..
+include $(top_srcdir)/scripts/subarch.include
+ARCH ?= $(SUBARCH)
In LUV, these tests are the efivarfs-test and the pstore-test. Currently
for both these recipes, we simply copy the respective tests to a
directory and build it from there. Since we do not copy the entire kernel,
we see some errors like the following due to missing files:
make: *** No rule to make target `../../../../scripts/subarch.include'.
Stop.
Instead, we make changes to the existing recipes so that the tests are
built from the kernel source directory itself, without having to copy it
to separate directories.
Signed-off-by: Megha Dey <megha.dey(a)linux.intel.com>
---
meta-luv/recipes-core/efivarfs/efivarfs-test.bb | 43 ++++++++--------------
meta-luv/recipes-core/pstore-test/pstore-test.bb | 45 +++++++++---------------
2 files changed, 30 insertions(+), 58 deletions(-)
diff --git a/meta-luv/recipes-core/efivarfs/efivarfs-test.bb b/meta-luv/recipes-core/efivarfs/efivarfs-test.bb
index 9f185fd..4bde21d 100644
--- a/meta-luv/recipes-core/efivarfs/efivarfs-test.bb
+++ b/meta-luv/recipes-core/efivarfs/efivarfs-test.bb
@@ -12,43 +12,25 @@ SRC_URI = "file://luv-parser-efivarfs \
#we need some of the stuff below
DEPENDS_class-native += "qemu-native"
-SRCREV="${AUTOREV}"
inherit autotools luv-test
-
+DEPENDS = "virtual/kernel"
RDEPENDS_${PN} += "e2fsprogs bash"
-do_fetch[noexec] = "1"
-do_unpack[depends] += "virtual/kernel:do_shared_workdir"
-do_patch[depends] += "virtual/kernel:do_shared_workdir"
-do_package[depends] += "virtual/kernel:do_populate_sysroot"
+S="${STAGING_KERNEL_DIR}"
-do_unpack_append() {
- bb.build.exec_func('unpack_test_code', d)
-}
-unpack_test_code() {
- mkdir -p ${S}/src/efivarfs
- cp -pRv ${STAGING_KERNEL_DIR}/tools/testing/selftests/efivarfs/* ${S}/src/efivarfs
- cp -pRv ${STAGING_KERNEL_DIR}/tools/testing/selftests/lib.mk ${S}/src
-}
+do_fetch[noexec] = "1"
+do_unpack[noexec] = "1"
+do_configure[noexec] = "1"
+do_clean[noexec] = "1"
EXTRA_OEMAKE = " \
CC='${CC}' \
- -C ${S}/src/efivarfs"
+ -C ${S}/tools/testing/selftests/efivarfs"
# This is to just to satisfy the compilation error
#I am not sure why I am getting this
FILES_${PN}-dbg += "/usr/share/efivarfs-test/.debug"
-do_configure_prepend() {
- # We need to ensure the --sysroot option in CC is preserved
- if [ -e "${S}/src/efivarfs/Makefile" ]; then
- sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/src/efivarfs/Makefile
- fi
-
- # Fix for rebuilding
- oe_runmake clean
-}
-
#This is the compilation area
#we need to compile the self tests
do_compile() {
@@ -56,21 +38,24 @@ do_compile() {
oe_runmake
}
-
#Installing is nothing but putting things in place
do_install() {
# Creating a directory
install -d ${D}${datadir}/efivarfs-test
#Copying some of the files, these are part of the linux code
- install -m 0755 ${S}/src/efivarfs/create-read ${D}${datadir}/efivarfs-test
- install -m 0755 ${S}/src/efivarfs/open-unlink ${D}${datadir}/efivarfs-test
- install -m 0755 ${S}/src/efivarfs/efivarfs.sh ${D}${datadir}/efivarfs-test
+ install -m 0755 ${S}/tools/testing/selftests/efivarfs/create-read ${D}${datadir}/efivarfs-test
+ install -m 0755 ${S}/tools/testing/selftests/efivarfs/open-unlink ${D}${datadir}/efivarfs-test
+ install -m 0755 ${S}/tools/testing/selftests/efivarfs/efivarfs.sh ${D}${datadir}/efivarfs-test
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/efivarfs ${D}${bindir}
}
+do_cleanall() {
+ cd ${S}/tools/testing/selftests/efivarfs
+ oe_runmake clean
+}
LUV_TEST_LOG_PARSER="luv-parser-efivarfs"
LUV_TEST_JSON="efivarfs.json"
LUV_TEST="efivarfs"
diff --git a/meta-luv/recipes-core/pstore-test/pstore-test.bb b/meta-luv/recipes-core/pstore-test/pstore-test.bb
index 345d40b..0751ee3 100644
--- a/meta-luv/recipes-core/pstore-test/pstore-test.bb
+++ b/meta-luv/recipes-core/pstore-test/pstore-test.bb
@@ -12,23 +12,15 @@ SRC_URI = "file://pstore-test-runner \
#we need some of the stuff below
DEPENDS_class-native += "qemu-native"
-SRCREV="${AUTOREV}"
inherit autotools luv-test
+DEPENDS = "virtual/kernel"
do_fetch[noexec] = "1"
-do_unpack[depends] += "virtual/kernel:do_shared_workdir"
-do_patch[depends] += "virtual/kernel:do_shared_workdir"
-do_package[depends] += "virtual/kernel:do_populate_sysroot"
+do_unpack[noexec] = "1"
+do_configure[noexec] = "1"
+do_clean[noexec] = "1"
-do_unpack_append() {
- bb.build.exec_func('unpack_test_code', d)
-}
-
-unpack_test_code() {
- mkdir -p ${S}/src/pstore
- cp -pRv ${STAGING_KERNEL_DIR}/tools/testing/selftests/pstore/* ${S}/src/pstore
- cp -pRv ${STAGING_KERNEL_DIR}/tools/testing/selftests/lib.mk ${S}/src
-}
+S="${STAGING_KERNEL_DIR}"
# If the LUV_STORAGE variable in luv_test_manager.bb ever changes,
# the reboot_dir variable should be changed accordingly
@@ -36,10 +28,10 @@ reboot_dir = "/mnt/luv-storage"
EXTRA_OEMAKE = " \
CC='${CC}' \
- -C ${S}/src/pstore"
+ -C ${S}/tools/testing/selftests/pstore"
patch() {
- sed -i 's,REBOOT_DIR,${reboot_dir},g' ${S}/src/pstore/common_tests
+ sed -i 's,REBOOT_DIR,${reboot_dir},g' ${S}/tools/testing/selftests/pstore/common_tests
sed -i 's,REBOOT_DIR,${reboot_dir},g' ${WORKDIR}/luv-parser-pstore-test
sed -i 's,REBOOT_DIR,${reboot_dir},g' ${WORKDIR}/pstore-test-runner
}
@@ -48,32 +40,27 @@ do_patch_append() {
bb.build.exec_func('patch', d)
}
-do_configure_prepend() {
- # We need to ensure the --sysroot option in CC is preserved
- if [ -e "${S}/src/pstore/Makefile" ]; then
- sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/src/pstore/Makefile
- fi
-
- # Fix for rebuilding
- oe_runmake clean
-}
-
# Installing is nothing but putting things in place
do_install() {
# Creating a directory
install -d ${D}${datadir}/pstore-test
# Copying some of the files, these are part of the linux code
- install -m 0755 ${S}/src/pstore/common_tests ${D}${datadir}/pstore-test
- install -m 0755 ${S}/src/pstore/pstore_crash_test ${D}${datadir}/pstore-test
- install -m 0755 ${S}/src/pstore/pstore_post_reboot_tests ${D}${datadir}/pstore-test
- install -m 0755 ${S}/src/pstore/pstore_tests ${D}${datadir}/pstore-test
+ install -m 0755 ${S}/tools/testing/selftests/pstore/common_tests ${D}${datadir}/pstore-test
+ install -m 0755 ${S}/tools/testing/selftests/pstore/pstore_crash_test ${D}${datadir}/pstore-test
+ install -m 0755 ${S}/tools/testing/selftests/pstore/pstore_post_reboot_tests ${D}${datadir}/pstore-test
+ install -m 0755 ${S}/tools/testing/selftests/pstore/pstore_tests ${D}${datadir}/pstore-test
# This is the script which will run all the tests
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/pstore-test-runner ${D}${bindir}
}
+do_cleanall() {
+ cd ${S}/tools/testing/selftests/pstore
+ oe_runmake clean
+}
+
FILES_${PN} += "/usr/share/pstore-test/common_tests \
/usr/share/pstore-test/pstore_crash_test \
/usr/share/pstore-test/pstore_post_reboot \
--
1.9.1
3 years, 7 months
[PATCH] LUV v2.4-dev
by Megha Dey
We are now in the v2.4 development cycle. Update the distro version to
reflect this.
Signed-off-by: Megha Dey <megha.dey(a)linux.intel.com>
---
meta-luv/conf/distro/luv.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-luv/conf/distro/luv.conf b/meta-luv/conf/distro/luv.conf
index 860452a..66329ea 100644
--- a/meta-luv/conf/distro/luv.conf
+++ b/meta-luv/conf/distro/luv.conf
@@ -1,5 +1,5 @@
DISTRO_NAME = "Linux UEFI Validation Distribution"
-DISTRO_VERSION = "2.3"
+DISTRO_VERSION = "2.4-dev"
TCLIBCAPPEND = ""
--
1.9.1
3 years, 7 months
[PATCH] meta-luv: update LAYERSERIES_COMPAT_layername
by Megha Dey
Yocto layers are expected to set LAYERSERIES_COMPAT_layername
to match the version(s) of OpenEmbedded-Core they are compatible
with. Update to the latest poky version i.e thud.
Signed-off-by: Megha Dey <megha.dey(a)linux.intel.com>
---
meta-luv/conf/layer.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-luv/conf/layer.conf b/meta-luv/conf/layer.conf
index 4440415..5a55aaf 100644
--- a/meta-luv/conf/layer.conf
+++ b/meta-luv/conf/layer.conf
@@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "luv"
BBFILE_PATTERN_luv = "^${LAYERDIR}/"
BBFILE_PRIORITY_luv = "6"
-LAYERSERIES_COMPAT_luv = "sumo"
+LAYERSERIES_COMPAT_luv = "thud"
--
1.9.1
3 years, 7 months
FWTS 18.11.00 is released
by ivanhu
FWTS 18.11.00 is released.
It is available from:
Tar: http://fwts.ubuntu.com/release/fwts-V18.11.00.tar.gz
PPA: https://launchpad.net/~firmware-testing-team/+archive/ubuntu/ppa-fwts-stable
Release notes: https://wiki.ubuntu.com/FirmwareTestSuite/ReleaseNotes/18.11.00
= New Features =
* ACPICA: Update to version 20181031
* ACPICA: Update to version 20181003
* ACPICA: Update to version 20180927
* olog:olog.json: Update OPAL skiboot errors to check on olog scan
= Fixed Bugs =
* acpi: button: check fixed hardware & control method power buttons
* kernelscan: add -k option to specify klog json filename
* README: update package dependency notes for RHEL
* acpica: fix linker issues when building with ACPI disabled
* src/lib: add module probing helper functions
* lib: fwts_efi_module: use the new module loading helper functions
* lib/fwts_cpu: use new use the new module loading helper functions
* snapcraft: update confinement and plugs
* lib: fwts_coreboot_cbmem: don't use void * pointer arithmetic
* lib: fwts_coreboot_cbmem: shift UL values rather than signed int values
* lib: fwts_log: shift UL values rather than signed int values
* acpi: syntaxcheck: rename syntaxcheck_table to syntaxcheck_single_table
* dmicheck: fix Maximum Capacity checking range
* mcfg: fix MMIO config space checking
* madt: fix the Local APIC NMI processor UID checking
* auto-packager: mkpackage.sh: add disco
= Detail Changelog =
To check /usr/share/doc/fwts/changelog.Debian.gz or fwts_18.11.00-0ubuntu1.debian.tar.gz from https://launchpad.net/ubuntu/+source/fwts
3 years, 7 months