From 092781ba57236250a1fc6c0ec304ffac5c58a755 Mon Sep 17 00:00:00 2001 From: Martin Petr Date: Wed, 3 Dec 2025 21:31:39 +0100 Subject: [PATCH] Extend PCI driver --- src/system/src/kernel/drivers/dev/pci.drv.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/system/src/kernel/drivers/dev/pci.drv.ts b/src/system/src/kernel/drivers/dev/pci.drv.ts index 1729c66..3e9a84b 100644 --- a/src/system/src/kernel/drivers/dev/pci.drv.ts +++ b/src/system/src/kernel/drivers/dev/pci.drv.ts @@ -27,6 +27,13 @@ export class PCIKDriver extends KernelDriver { for (let bus = 0; bus < 256; bus++) { for (let device = 0; device < 32; device++) { this.#checkDevice(bus, device, 0); + + const headerType = this.#getHeaderType(bus, device, 0); + if ((headerType & 0x80) === 0) continue; + + for (let func = 1; func < 8; func++) { + this.#checkDevice(bus, device, func); + } } } } @@ -76,6 +83,10 @@ export class PCIKDriver extends KernelDriver { return (this.#readConfig(bus, device, func, 8) >> 16) & 0xff; } + #getHeaderType(bus: number, device: number, func: number) { + return (this.#readConfig(bus, device, func, 12) >> 16) & 0xff; + } + #readConfig(bus: number, device: number, func: number, offset: number) { return kc.pciReadDword((bus << 16) | (device << 11) | (func << 8) | offset); }