From: Waldemar Kozaczuk <[email protected]> Committer: Waldemar Kozaczuk <[email protected]> Branch: master
aarch64: do not probe for pci if opt_pci_disabled Signed-off-by: Waldemar Kozaczuk <[email protected]> --- diff --git a/arch/aarch64/arch-setup.cc b/arch/aarch64/arch-setup.cc --- a/arch/aarch64/arch-setup.cc +++ b/arch/aarch64/arch-setup.cc @@ -72,6 +72,7 @@ void arch_setup_pci() mmu::page_size, mmu::mattr::dev); } +extern bool opt_pci_disabled; void arch_setup_free_memory() { setup_temporary_phys_map(); @@ -119,7 +120,9 @@ void arch_setup_free_memory() mmu::linear_map((void *)cpu, (mmu::phys)cpu, cpu_len, mmu::page_size, mmu::mattr::dev); - arch_setup_pci(); + if (!opt_pci_disabled) { + arch_setup_pci(); + } // get rid of the command line, before memory is unmapped console::mmio_isa_serial_console::clean_cmdline(cmdline); @@ -163,26 +166,28 @@ void arch_init_drivers() { extern boot_time_chart boot_time; - int irqmap_count = dtb_get_pci_irqmap_count(); - if (irqmap_count > 0) { - u32 mask = dtb_get_pci_irqmask(); - u32 *bdfs = (u32 *)alloca(sizeof(u32) * irqmap_count); - int *irqs = (int *)alloca(sizeof(int) * irqmap_count); - if (!dtb_get_pci_irqmap(bdfs, irqs, irqmap_count)) { - abort("arch-setup: failed to get PCI irqmap.\n"); + if (!opt_pci_disabled) { + int irqmap_count = dtb_get_pci_irqmap_count(); + if (irqmap_count > 0) { + u32 mask = dtb_get_pci_irqmask(); + u32 *bdfs = (u32 *)alloca(sizeof(u32) * irqmap_count); + int *irqs = (int *)alloca(sizeof(int) * irqmap_count); + if (!dtb_get_pci_irqmap(bdfs, irqs, irqmap_count)) { + abort("arch-setup: failed to get PCI irqmap.\n"); + } + pci::set_pci_irqmap(bdfs, irqs, irqmap_count, mask); } - pci::set_pci_irqmap(bdfs, irqs, irqmap_count, mask); - } #if CONF_logger_debug - pci::dump_pci_irqmap(); + pci::dump_pci_irqmap(); #endif - // Enumerate PCI devices - size_t pci_cfg_len; - if (pci::get_pci_cfg(&pci_cfg_len)) { - pci::pci_device_enumeration(); - boot_time.event("pci enumerated"); + // Enumerate PCI devices + size_t pci_cfg_len; + if (pci::get_pci_cfg(&pci_cfg_len)) { + pci::pci_device_enumeration(); + boot_time.event("pci enumerated"); + } } // Register any parsed virtio-mmio devices diff --git a/drivers/pci-generic.cc b/drivers/pci-generic.cc --- a/drivers/pci-generic.cc +++ b/drivers/pci-generic.cc @@ -19,6 +19,8 @@ #include "drivers/virtio.hh" #include "drivers/virtio-pci-device.hh" +extern bool opt_pci_disabled; + namespace pci { void pci_device_print(u8 bus, u8 slot, u8 func) @@ -42,6 +44,10 @@ void pci_device_print(u8 bus, u8 slot, u8 func) void pci_devices_print() { + if (opt_pci_disabled) { + return; + } + u16 bus, slot, func; for (bus = 0; bus < 256; bus++) { -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/00000000000058e31305c482b54f%40google.com.
