Bladeren bron

Kernel: Print out PCI devices during boot

This will make boot logs much more useful on real hardware, by showing
exactly what Serenity is trying to boot on.
Conrad Pankoff 6 jaren geleden
bovenliggende
commit
d1a7316799
1 gewijzigde bestanden met toevoegingen van 11 en 0 verwijderingen
  1. 11 0
      Kernel/init.cpp

+ 11 - 0
Kernel/init.cpp

@@ -32,6 +32,7 @@
 #include <Kernel/Multiboot.h>
 #include <Kernel/Multiboot.h>
 #include <Kernel/Net/E1000NetworkAdapter.h>
 #include <Kernel/Net/E1000NetworkAdapter.h>
 #include <Kernel/Net/NetworkTask.h>
 #include <Kernel/Net/NetworkTask.h>
+#include <Kernel/PCI.h>
 #include <Kernel/TTY/PTYMultiplexer.h>
 #include <Kernel/TTY/PTYMultiplexer.h>
 #include <Kernel/TTY/VirtualConsole.h>
 #include <Kernel/TTY/VirtualConsole.h>
 #include <Kernel/VM/MemoryManager.h>
 #include <Kernel/VM/MemoryManager.h>
@@ -215,6 +216,16 @@ extern "C" [[noreturn]] void init()
     MemoryManager::initialize();
     MemoryManager::initialize();
     PIT::initialize();
     PIT::initialize();
 
 
+    PCI::enumerate_all([](const PCI::Address& address, PCI::ID id) {
+        kprintf("PCI device: bus=%d slot=%d function=%d id=%w:%w\n",
+            address.bus(),
+            address.slot(),
+            address.function(),
+            id.vendor_id,
+            id.device_id
+        );
+    });
+
     new BXVGADevice;
     new BXVGADevice;
 
 
     auto e1000 = E1000NetworkAdapter::autodetect();
     auto e1000 = E1000NetworkAdapter::autodetect();