pc_linux: enable EFI and EFI_STUB

With these options enabled comparative testing between pc_linux drivers
and bzImages becomes much easier on EFI-only machines. The impact on the
actual Genode drivers is minimal.
This commit is contained in:
Christian Helmuth 2023-06-28 09:35:28 +02:00 committed by Norman Feske
parent e2ddcee440
commit 1a7ff195d9
5 changed files with 59 additions and 31 deletions

View File

@ -71,4 +71,7 @@ static inline struct page *virt_to_page(void const *v) { return lx_emul_virt_to_
#include <asm/memory_model.h>
#include <asm-generic/getorder.h>
/* referenced in pgtable_64_types.h by VMALLOC_START */
extern unsigned long vmalloc_base;
#endif /* __ASM_GENERIC_PAGE_H */

View File

@ -13,6 +13,10 @@
#include <lx_emul.h>
/* arch/x86/kernel/head64.c */
unsigned long vmalloc_base;
#include <asm-generic/sections.h>
char __start_rodata[] = {};
@ -194,6 +198,8 @@ void register_irq_proc(unsigned int irq,struct irq_desc * desc)
}
struct cdev;
int cdev_add(struct cdev * p,dev_t dev,unsigned count)
{
lx_emul_trace(__func__);
@ -392,5 +398,3 @@ DEFINE_PER_CPU(bool, hardirq_stack_inuse);
DEFINE_PER_CPU_READ_MOSTLY(struct cpuinfo_x86, cpu_info);
EXPORT_PER_CPU_SYMBOL(cpu_info);

View File

@ -544,3 +544,40 @@ void __crypto_xor(u8 *dst, const u8 *src1, const u8 *src2, unsigned int len)
while (len--)
*dst++ = *src1++ ^ *src2++;
}
#include <../drivers/net/wireless/intel/iwlwifi/iwl-trans.h>
#include <../drivers/net/wireless/intel/iwlwifi/fw/uefi.h>
void *iwl_uefi_get_pnvm(struct iwl_trans *trans, size_t *len)
{
lx_emul_trace(__func__);
return ERR_PTR(-EOPNOTSUPP);
}
void *iwl_uefi_get_reduced_power(struct iwl_trans *trans, size_t *len)
{
lx_emul_trace(__func__);
return ERR_PTR(-EOPNOTSUPP);
}
void iwl_uefi_get_sgom_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwrt)
{
lx_emul_trace(__func__);
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
char * strreplace(char * s,char old,char new)
{
lx_emul_trace_and_stop(__func__);
}

View File

@ -1,7 +1,7 @@
/*
* \brief Dummy definitions of Linux Kernel functions
* \author Automatically generated file - do no edit
* \date 2023-03-23
* \date 2023-06-30
*/
#include <lx_emul.h>
@ -447,22 +447,6 @@ ssize_t generic_splice_sendpage(struct pipe_inode_info * pipe,struct file * out,
}
#include <linux/kernel.h>
int get_option(char ** str,int * pint)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/kernel.h>
char * get_options(const char * str,int nints,int * ints)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/file.h>
int get_unused_fd_flags(unsigned flags)
@ -1091,14 +1075,6 @@ int string_escape_mem(const char * src,size_t isz,char * dst,size_t osz,unsigned
}
#include <linux/string.h>
char * strreplace(char * s,char old,char new)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/printk.h>
int suppress_printk;

View File

@ -23,6 +23,9 @@ LX_ENABLE += IOMMU_SUPPORT INTEL_IOMMU
# ACPI support
LX_ENABLE += ACPI
# EFI support
LX_ENABLE += EFI EFI_STUB
# general network and WLAN support
LX_ENABLE += NET NETDEVICES PACKET
LX_ENABLE += WLAN CFG80211 MAC80211
@ -44,9 +47,10 @@ LX_ENABLE += ATH9K_DEBUGFS
LX_ENABLE += E1000 E1000E PCNET32
LX_ENABLE += R8169
# USB host-controller support
# USB host-controller support (keep USB_USBNET hook)
LX_ENABLE += USB_USBNET
LX_ENABLE += USB_SUPPORT USB USB_ARCH_HAS_HCD USB_XHCI_HCD USB_EHCI_HCD USB_OHCI_HCD
LX_ENABLE += USB_PCI USB_UHCI_HCD USB_USBNET
LX_ENABLE += USB_PCI USB_UHCI_HCD
# Intel framebuffer
LX_ENABLE += DRM DRM_I915
@ -59,10 +63,14 @@ LX_ENABLE += PROC_FS SYSFS
# Options for testing pc_linux images
#
# - EFI support for tests on EFI-only devices
#LX_ENABLE += EFI EFI_STUB
# - network support for NFS root
#LX_ENABLE += INET IP_PNP IP_PNP_DHCP NFS_FS FILE_LOCKING MULTIUSER ROOT_NFS
# - log all input events (requires "debug" on the kernel commandline)
#LX_ENABLE += INPUT_EVBUG
# - in-kernel symbolic backtraces with show_stack(NULL, NULL, KERN_DEFAULT)
#LX_ENABLE += KALLSYMS
# - provide console on screen
#LX_ENABLE += FRAMEBUFFER_CONSOLE
# disable cpu frequency scaling
LX_DISABLE += SCHED_MC CPU_FREQ