fix(kernel): Fix PMM memory page table reservation, ATA driver timeout loops, and PCI probe order

- Fix PMM memory map parsing: always reserve lower 8MB on x86_64 to protect bootloader, GDT, IDT, and PML4 page tables
- Fix ATA driver: add bounded timeouts to ata_wait_ready() and ata_wait_drq() to eliminate infinite busy loops
- Fix PCI bus initialization order: probe PCI devices before AHCI/NVMe/NIC storage and network drivers
- Implement missing pmm_get_total_pages() and pmm_get_usable_memory() getters
This commit is contained in:
subhobhai943 committed 2026-08-18 12:00:33 +05:30
1 parent c02920d11b
commit f5dbc1453c
4 files changed
+138 -81

No files matched your search

+4 -1
View File
@@ -76,6 +76,10 @@
#include <userland/shell.h>
static void subos_modular_core_boot(void) {
#if defined(__x86_64__)
pci_init();
#endif
// Storage & Block Layer
printk(KERN_INFO "[4/14] Initializing Block Layer & Storage Controllers... ");
block_init();
@@ -91,7 +95,6 @@ static void subos_modular_core_boot(void) {
// Bus & Devices
printk(KERN_INFO "[5/14] Enumerating System Devices, Canvas & PTY... ");
#if defined(__x86_64__)
pci_init();
virt_init();
fb_init();
bochs_vbe_init();