From d324331325b79a224234ed81883a0416d2f6a018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= <josef.soentgen@genode-labs.com> Date: Tue, 3 May 2022 17:17:38 +0200 Subject: [PATCH] pc: centralize initcall header Instead of each driver providing its own header file use a central header as the initcall order header should cover _all_ provided initcalls resulting from the used 'pc_linux' kernel config. Note that the 'pc_linux' configuration was extended with the 'USB_USBNET' option because the module's initcall is needed for the Genode C API for USB glue-code and the 'PACKET' option needed by the wireless lan driver. The lack of theses options was not noticed as each driver used its own initcall header so far that stemmed from the initial porting effort. Issue #4500. --- repos/pc/lib/import/import-pc_lx_emul.mk | 2 + .../framebuffer/intel/pc/lx_emul/pci_fixups.h | 18 -- .../usb_host/pc/lx_emul/initcall_order.h | 166 -------------- .../pc => include}/lx_emul/initcall_order.h | 14 +- .../pc => include}/lx_emul/pci_fixups.h | 0 .../pc/src/lib/wifi/lx_emul/initcall_order.h | 208 ------------------ repos/pc/src/lib/wifi/lx_emul/pci_fixups.h | 5 - repos/pc/src/pc_linux/target.inc | 4 +- 8 files changed, 17 insertions(+), 400 deletions(-) delete mode 100644 repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/pci_fixups.h delete mode 100644 repos/pc/src/drivers/usb_host/pc/lx_emul/initcall_order.h rename repos/pc/src/{drivers/framebuffer/intel/pc => include}/lx_emul/initcall_order.h (95%) rename repos/pc/src/{drivers/usb_host/pc => include}/lx_emul/pci_fixups.h (100%) delete mode 100644 repos/pc/src/lib/wifi/lx_emul/initcall_order.h delete mode 100644 repos/pc/src/lib/wifi/lx_emul/pci_fixups.h diff --git a/repos/pc/lib/import/import-pc_lx_emul.mk b/repos/pc/lib/import/import-pc_lx_emul.mk index 7e9a411ec4..bbc0ee67a5 100644 --- a/repos/pc/lib/import/import-pc_lx_emul.mk +++ b/repos/pc/lib/import/import-pc_lx_emul.mk @@ -9,6 +9,8 @@ LX_GEN_DIR := $(LIB_CACHE_DIR)/pc_linux_generated include $(call select_from_repositories,lib/import/import-lx_emul_common.inc) +INC_DIR += $(REP_DIR)/src/include + # Handle specific source requirements CC_OPT_drivers/usb/host/xhci-trace += -I$(LX_SRC_DIR)/drivers/usb/host diff --git a/repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/pci_fixups.h b/repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/pci_fixups.h deleted file mode 100644 index 22a98ff709..0000000000 --- a/repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/pci_fixups.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * \brief PCI fixups - * \author Josef Soentgen - * \date 2022-01-20 - */ - -/* - * Copyright (C) 2022 Genode Labs GmbH - * - * This file is distributed under the terms of the GNU General Public License - * version 2. - */ - -#pragma once - -static const char * lx_emul_pci_final_fixups[] = { - "END_OF_PCI_FIXUPS" -}; diff --git a/repos/pc/src/drivers/usb_host/pc/lx_emul/initcall_order.h b/repos/pc/src/drivers/usb_host/pc/lx_emul/initcall_order.h deleted file mode 100644 index d62a44db38..0000000000 --- a/repos/pc/src/drivers/usb_host/pc/lx_emul/initcall_order.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * \brief Array defining order of Linux Kernel initcalls - * \author Automatically generated file - do no edit - * \date 2022-02-21 - */ - -#pragma once - -static const char * lx_emul_initcall_order[] = { - "__initcall_init_hw_perf_eventsearly", - "__initcall_start", - "__initcall_init_real_modeearly", - "__initcall_validate_x2apicearly", - "__initcall_register_nmi_cpu_backtrace_handlerearly", - "__initcall_spawn_ksoftirqdearly", - "__initcall_static_call_initearly", - "__initcall_init_zero_pfnearly", - "__initcall_initialize_ptr_randomearly", - "__initcall_init_mmap_min_addr0", - "__initcall_pci_realloc_setup_params0", - "__initcall_reboot_init1", - "__initcall_wq_sysfs_init1", - "__initcall_ksysfs_init1", - "__initcall_rcu_set_runtime_mode1", - "__initcall_init_jiffies_clocksource1", - "__initcall_init_script_binfmt1", - "__initcall_init_elf_binfmt1", - "__initcall_prandom_init_early1", - "__initcall_irq_sysfs_init2", - "__initcall_bdi_class_init2", - "__initcall_mm_sysfs_init2", - "__initcall_init_per_zone_wmark_min2", - "__initcall_pcibus_class_init2", - "__initcall_pci_driver_init2", - "__initcall_tty_class_init2", - "__initcall_vtconsole_class_init2", - "__initcall_devlink_class_init2", - "__initcall_software_node_init2", - "__initcall_amd_postcore_init2", - "__initcall_bts_init3", - "__initcall_pt_init3", - "__initcall_boot_params_ksysfs_init3", - "__initcall_sbf_init3", - "__initcall_arch_kdebugfs_init3", - "__initcall_intel_pconfig_init3", - "__initcall_pci_arch_init3", - "__initcall_init_vdso4", - "__initcall_fixup_ht_bug4", - "__initcall_topology_init4", - "__initcall_uid_cache_init4", - "__initcall_param_sysfs_init4", - "__initcall_user_namespace_sysctl_init4", - "__initcall_oom_init4", - "__initcall_default_bdi_init4", - "__initcall_percpu_enable_async4", - "__initcall_init_user_reserve4", - "__initcall_init_admin_reserve4", - "__initcall_init_reserve_notifier4", - "__initcall_pci_slot_init4", - "__initcall_misc_init4", - "__initcall_usb_common_init4", - "__initcall_usb_init4", - "__initcall_serio_init4", - "__initcall_input_init4", - "__initcall_pci_subsys_init4", - "__initcall_nmi_warning_debugfs5", - "__initcall_hpet_late_init5", - "__initcall_init_amd_nbs5", - "__initcall_iomem_init_inode5", - "__initcall_clocksource_done_booting5", - "__initcall_init_pipe_fs5", - "__initcall_anon_inode_init5", - "__initcall_proc_cmdline_init5", - "__initcall_proc_consoles_init5", - "__initcall_proc_cpuinfo_init5", - "__initcall_proc_devices_init5", - "__initcall_proc_interrupts_init5", - "__initcall_proc_loadavg_init5", - "__initcall_proc_meminfo_init5", - "__initcall_proc_stat_init5", - "__initcall_proc_uptime_init5", - "__initcall_proc_version_init5", - "__initcall_proc_softirqs_init5", - "__initcall_proc_kmsg_init5", - "__initcall_proc_page_init5", - "__initcall_init_ramfs_fs5", - "__initcall_chr_dev_init5", - "__initcall_pcibios_assign_resources5", - "__initcall_pci_apply_final_quirks5s", - "__initcall_populate_rootfsrootfs", - "__initcall_pci_iommu_initrootfs", - "__initcall_rapl_pmu_init6", - "__initcall_amd_uncore_init6", - "__initcall_amd_ibs_init6", - "__initcall_msr_init6", - "__initcall_intel_uncore_init6", - "__initcall_cstate_pmu_init6", - "__initcall_register_kernel_offset_dumper6", - "__initcall_i8259A_init_ops6", - "__initcall_init_tsc_clocksource6", - "__initcall_add_rtc_cmos6", - "__initcall_umwait_init6", - "__initcall_ioapic_init_ops6", - "__initcall_sysfb_init6", - "__initcall_proc_execdomains_init6", - "__initcall_ioresources_init6", - "__initcall_timekeeping_init_ops6", - "__initcall_init_clocksource_sysfs6", - "__initcall_init_timer_list_procfs6", - "__initcall_alarmtimer_init6", - "__initcall_clockevents_init_sysfs6", - "__initcall_utsname_sysctl_init6", - "__initcall_perf_event_sysfs_init6", - "__initcall_kswapd_init6", - "__initcall_workingset_init6", - "__initcall_proc_vmalloc_init6", - "__initcall_fcntl_init6", - "__initcall_proc_filesystems_init6", - "__initcall_start_dirtytime_writeback6", - "__initcall_init_devpts_fs6", - "__initcall_pci_proc_init6", - "__initcall_gpio_clk_driver_init6", - "__initcall_plt_clk_driver_init6", - "__initcall_n_null_init6", - "__initcall_pty_init6", - "__initcall_serial8250_init6", - "__initcall_serial_pci_driver_init6", - "__initcall_exar_pci_driver_init6", - "__initcall_lpss8250_pci_driver_init6", - "__initcall_mid8250_pci_driver_init6", - "__initcall_topology_sysfs_init6", - "__initcall_cacheinfo_sysfs_init6", - "__initcall_ehci_hcd_init6", - "__initcall_ehci_pci_init6", - "__initcall_ohci_hcd_mod_init6", - "__initcall_ohci_pci_init6", - "__initcall_uhci_hcd_init6", - "__initcall_xhci_hcd_init6", - "__initcall_xhci_pci_init6", - "__initcall_i8042_init6", - "__initcall_serport_init6", - "__initcall_atkbd_init6", - "__initcall_psmouse_init6", - "__initcall_pmc_atom_init6", - "__initcall_usbnet_init6", - "__initcall_update_mp_table7", - "__initcall_lapic_insert_resource7", - "__initcall_print_ICs7", - "__initcall_create_tlb_single_page_flush_ceiling7", - "__initcall_init_oops_id7", - "__initcall_reboot_ksysfs_init7", - "__initcall_sched_clock_init_late7", - "__initcall_sched_init_debug7", - "__initcall_printk_late_init7", - "__initcall_check_early_ioremap_leak7", - "__initcall_prandom_init_late7", - "__initcall_pci_resource_alignment_sysfs_init7", - "__initcall_pci_sysfs_init7", - "__initcall_sync_state_resume_initcall7", - "__initcall_deferred_probe_initcall7", - "__initcall_clk_disable_unused7s", - "__initcall_con_initcon", - "__initcall_end", - "__initcall_univ8250_console_initcon", - "END_OF_INITCALL_ORDER_ARRAY_DUMMY_ENTRY" -}; diff --git a/repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/initcall_order.h b/repos/pc/src/include/lx_emul/initcall_order.h similarity index 95% rename from repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/initcall_order.h rename to repos/pc/src/include/lx_emul/initcall_order.h index 1e8de4480e..fcb38449c2 100644 --- a/repos/pc/src/drivers/framebuffer/intel/pc/lx_emul/initcall_order.h +++ b/repos/pc/src/include/lx_emul/initcall_order.h @@ -1,7 +1,7 @@ /* * \brief Array defining order of Linux Kernel initcalls * \author Automatically generated file - do no edit - * \date 2022-03-28 + * \date 2022-05-03 */ #pragma once @@ -91,6 +91,7 @@ static const char * lx_emul_initcall_order[] = { "__initcall_pnp_init4", "__initcall_misc_init4", "__initcall_dma_buf_init4", + "__initcall_phy_init4", "__initcall_usb_common_init4", "__initcall_usb_init4", "__initcall_serio_init4", @@ -198,9 +199,19 @@ static const char * lx_emul_initcall_order[] = { "__initcall_cacheinfo_sysfs_init6", "__initcall_net_olddevs_init6", "__initcall_blackhole_netdev_init6", + "__initcall_phy_module_init6", + "__initcall_fixed_mdio_bus_init6", "__initcall_iwl_drv_init6", "__initcall_iwl_init6", "__initcall_iwl_mvm_init6", + "__initcall_asix_driver_init6", + "__initcall_ax88179_178a_driver_init6", + "__initcall_cdc_driver_init6", + "__initcall_net1080_driver_init6", + "__initcall_cdc_subset_driver_init6", + "__initcall_zaurus_driver_init6", + "__initcall_usbnet_init6", + "__initcall_cdc_ncm_driver_init6", "__initcall_ehci_hcd_init6", "__initcall_ehci_pci_init6", "__initcall_ohci_hcd_mod_init6", @@ -216,6 +227,7 @@ static const char * lx_emul_initcall_order[] = { "__initcall_thermal_throttle_init_device6", "__initcall_pmc_atom_init6", "__initcall_sock_diag_init6", + "__initcall_packet_init6", "__initcall_hpet_insert_resource7", "__initcall_update_mp_table7", "__initcall_lapic_insert_resource7", diff --git a/repos/pc/src/drivers/usb_host/pc/lx_emul/pci_fixups.h b/repos/pc/src/include/lx_emul/pci_fixups.h similarity index 100% rename from repos/pc/src/drivers/usb_host/pc/lx_emul/pci_fixups.h rename to repos/pc/src/include/lx_emul/pci_fixups.h diff --git a/repos/pc/src/lib/wifi/lx_emul/initcall_order.h b/repos/pc/src/lib/wifi/lx_emul/initcall_order.h deleted file mode 100644 index 3d2d9e5750..0000000000 --- a/repos/pc/src/lib/wifi/lx_emul/initcall_order.h +++ /dev/null @@ -1,208 +0,0 @@ -/* - * \brief Array defining order of Linux Kernel initcalls - * \author Automatically generated file - do no edit - * \date 2022-02-28 - */ - -#pragma once - -static const char * lx_emul_initcall_order[] = { - "__initcall_init_hw_perf_eventsearly", - "__initcall_start", - "__initcall_init_real_modeearly", - "__initcall_validate_x2apicearly", - "__initcall_register_nmi_cpu_backtrace_handlerearly", - "__initcall_spawn_ksoftirqdearly", - "__initcall_static_call_initearly", - "__initcall_init_zero_pfnearly", - "__initcall_initialize_ptr_randomearly", - "__initcall_init_mmap_min_addr0", - "__initcall_pci_realloc_setup_params0", - "__initcall_net_ns_init0", - "__initcall_reboot_init1", - "__initcall_wq_sysfs_init1", - "__initcall_ksysfs_init1", - "__initcall_rcu_set_runtime_mode1", - "__initcall_init_jiffies_clocksource1", - "__initcall_init_script_binfmt1", - "__initcall_init_elf_binfmt1", - "__initcall_prandom_init_early1", - "__initcall_sock_init1", - "__initcall_net_inuse_init1", - "__initcall_net_defaults_init1", - "__initcall_init_default_flow_dissectors1", - "__initcall_netlink_proto_init1", - "__initcall_genl_init1", - "__initcall_irq_sysfs_init2", - "__initcall_bdi_class_init2", - "__initcall_mm_sysfs_init2", - "__initcall_init_per_zone_wmark_min2", - "__initcall_mpi_init2", - "__initcall_pcibus_class_init2", - "__initcall_pci_driver_init2", - "__initcall_tty_class_init2", - "__initcall_vtconsole_class_init2", - "__initcall_devlink_class_init2", - "__initcall_software_node_init2", - "__initcall_amd_postcore_init2", - "__initcall_kobject_uevent_init2", - "__initcall_bts_init3", - "__initcall_pt_init3", - "__initcall_boot_params_ksysfs_init3", - "__initcall_sbf_init3", - "__initcall_arch_kdebugfs_init3", - "__initcall_intel_pconfig_init3", - "__initcall_cryptomgr_init3", - "__initcall_pci_arch_init3", - "__initcall_init_vdso4", - "__initcall_fixup_ht_bug4", - "__initcall_topology_init4", - "__initcall_uid_cache_init4", - "__initcall_param_sysfs_init4", - "__initcall_user_namespace_sysctl_init4", - "__initcall_oom_init4", - "__initcall_default_bdi_init4", - "__initcall_percpu_enable_async4", - "__initcall_init_user_reserve4", - "__initcall_init_admin_reserve4", - "__initcall_init_reserve_notifier4", - "__initcall_rsa_init4", - "__initcall_crypto_cmac_module_init4", - "__initcall_crypto_null_mod_init4", - "__initcall_sha256_generic_mod_init4", - "__initcall_crypto_ctr_module_init4", - "__initcall_crypto_gcm_module_init4", - "__initcall_crypto_ccm_module_init4", - "__initcall_aes_init4", - "__initcall_ghash_mod_init4", - "__initcall_pci_slot_init4", - "__initcall_misc_init4", - "__initcall_usb_common_init4", - "__initcall_usb_init4", - "__initcall_serio_init4", - "__initcall_input_init4", - "__initcall_proto_init4", - "__initcall_net_dev_init4", - "__initcall_neigh_init4", - "__initcall_fib_notifier_init4", - "__initcall_ethnl_init4", - "__initcall_ieee80211_init4", - "__initcall_pci_subsys_init4", - "__initcall_nmi_warning_debugfs5", - "__initcall_hpet_late_init5", - "__initcall_init_amd_nbs5", - "__initcall_iomem_init_inode5", - "__initcall_clocksource_done_booting5", - "__initcall_init_pipe_fs5", - "__initcall_anon_inode_init5", - "__initcall_proc_cmdline_init5", - "__initcall_proc_consoles_init5", - "__initcall_proc_cpuinfo_init5", - "__initcall_proc_devices_init5", - "__initcall_proc_interrupts_init5", - "__initcall_proc_loadavg_init5", - "__initcall_proc_meminfo_init5", - "__initcall_proc_stat_init5", - "__initcall_proc_uptime_init5", - "__initcall_proc_version_init5", - "__initcall_proc_softirqs_init5", - "__initcall_proc_kmsg_init5", - "__initcall_proc_page_init5", - "__initcall_init_ramfs_fs5", - "__initcall_chr_dev_init5", - "__initcall_firmware_class_init5", - "__initcall_sysctl_core_init5", - "__initcall_eth_offload_init5", - "__initcall_cfg80211_init5", - "__initcall_pcibios_assign_resources5", - "__initcall_pci_apply_final_quirks5s", - "__initcall_populate_rootfsrootfs", - "__initcall_pci_iommu_initrootfs", - "__initcall_rapl_pmu_init6", - "__initcall_packet_init6", - "__initcall_amd_uncore_init6", - "__initcall_amd_ibs_init6", - "__initcall_msr_init6", - "__initcall_intel_uncore_init6", - "__initcall_cstate_pmu_init6", - "__initcall_register_kernel_offset_dumper6", - "__initcall_i8259A_init_ops6", - "__initcall_init_tsc_clocksource6", - "__initcall_add_rtc_cmos6", - "__initcall_umwait_init6", - "__initcall_ioapic_init_ops6", - "__initcall_sysfb_init6", - "__initcall_proc_execdomains_init6", - "__initcall_ioresources_init6", - "__initcall_timekeeping_init_ops6", - "__initcall_init_clocksource_sysfs6", - "__initcall_init_timer_list_procfs6", - "__initcall_alarmtimer_init6", - "__initcall_clockevents_init_sysfs6", - "__initcall_utsname_sysctl_init6", - "__initcall_perf_event_sysfs_init6", - "__initcall_system_trusted_keyring_init6", - "__initcall_kswapd_init6", - "__initcall_workingset_init6", - "__initcall_proc_vmalloc_init6", - "__initcall_fcntl_init6", - "__initcall_proc_filesystems_init6", - "__initcall_start_dirtytime_writeback6", - "__initcall_init_devpts_fs6", - "__initcall_key_proc_init6", - "__initcall_crypto_algapi_init6", - "__initcall_asymmetric_key_init6", - "__initcall_x509_key_init6", - "__initcall_pci_proc_init6", - "__initcall_gpio_clk_driver_init6", - "__initcall_plt_clk_driver_init6", - "__initcall_n_null_init6", - "__initcall_pty_init6", - "__initcall_serial8250_init6", - "__initcall_serial_pci_driver_init6", - "__initcall_exar_pci_driver_init6", - "__initcall_lpss8250_pci_driver_init6", - "__initcall_mid8250_pci_driver_init6", - "__initcall_topology_sysfs_init6", - "__initcall_cacheinfo_sysfs_init6", - "__initcall_net_olddevs_init6", - "__initcall_blackhole_netdev_init6", - "__initcall_iwl_drv_init6", - "__initcall_iwl_init6", - "__initcall_iwl_mvm_init6", - "__initcall_ehci_hcd_init6", - "__initcall_ehci_pci_init6", - "__initcall_ohci_hcd_mod_init6", - "__initcall_ohci_pci_init6", - "__initcall_xhci_hcd_init6", - "__initcall_xhci_pci_init6", - "__initcall_i8042_init6", - "__initcall_serport_init6", - "__initcall_atkbd_init6", - "__initcall_psmouse_init6", - "__initcall_pmc_atom_init6", - "__initcall_sock_diag_init6", - "__initcall_update_mp_table7", - "__initcall_lapic_insert_resource7", - "__initcall_print_ICs7", - "__initcall_create_tlb_single_page_flush_ceiling7", - "__initcall_init_oops_id7", - "__initcall_reboot_ksysfs_init7", - "__initcall_sched_clock_init_late7", - "__initcall_sched_init_debug7", - "__initcall_printk_late_init7", - "__initcall_load_system_certificate_list7", - "__initcall_check_early_ioremap_leak7", - "__initcall_init_root_keyring7", - "__initcall_prandom_init_late7", - "__initcall_pci_resource_alignment_sysfs_init7", - "__initcall_pci_sysfs_init7", - "__initcall_sync_state_resume_initcall7", - "__initcall_deferred_probe_initcall7", - "__initcall_regulatory_init_db7", - "__initcall_clk_disable_unused7s", - "__initcall_con_initcon", - "__initcall_end", - "__initcall_univ8250_console_initcon", - "END_OF_INITCALL_ORDER_ARRAY_DUMMY_ENTRY" -}; diff --git a/repos/pc/src/lib/wifi/lx_emul/pci_fixups.h b/repos/pc/src/lib/wifi/lx_emul/pci_fixups.h deleted file mode 100644 index 866a2be59f..0000000000 --- a/repos/pc/src/lib/wifi/lx_emul/pci_fixups.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -static const char * lx_emul_pci_final_fixups[] = { - "END_OF_PCI_FIXUPS" -}; diff --git a/repos/pc/src/pc_linux/target.inc b/repos/pc/src/pc_linux/target.inc index c5e4b86b0e..12f84eb54d 100644 --- a/repos/pc/src/pc_linux/target.inc +++ b/repos/pc/src/pc_linux/target.inc @@ -18,7 +18,7 @@ LX_ENABLE += PCI LX_ENABLE += ACPI # general network and WLAN support -LX_ENABLE += NET NETDEVICES +LX_ENABLE += NET NETDEVICES PACKET LX_ENABLE += WLAN CFG80211 MAC80211 # iwlwifi @@ -26,7 +26,7 @@ LX_ENABLE += WLAN_VENDOR_INTEL IWLWIFI IWLDVM IWLMVM # USB host-controller support 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 +LX_ENABLE += USB_PCI USB_UHCI_HCD USB_USBNET # Intel framebuffer LX_ENABLE += DRM DRM_I915