#include "bregs.h" // struct bregs
#include "mptable.h" // mptable_init
#include "boot.h" // IPL
+#include "usb.h" // usb_setup
void
__set_irq(int vector, void *loc)
memset(bda, 0, sizeof(*bda));
int esize = EBDA_SIZE_START;
- SET_BDA(mem_size_kb, 640 - esize);
+ SET_BDA(mem_size_kb, BUILD_LOWRAM_END/1024 - esize);
u16 eseg = EBDA_SEGMENT_START;
SET_BDA(ebda_seg, eseg);
}
// Don't declare any memory between 0xa0000 and 0x100000
- add_e820(0xa0000, 0x50000, E820_HOLE);
+ add_e820(BUILD_LOWRAM_END, BUILD_BIOS_ADDR-BUILD_LOWRAM_END, E820_HOLE);
// Mark known areas as reserved.
u16 ebda_seg = get_ebda_seg();
malloc_setup();
pmm_setup();
+ pci_setup();
+ smm_init();
+
pnp_setup();
vga_setup();
+ usb_setup();
kbd_setup();
lpt_setup();
serial_setup();
mouse_setup();
- pci_bios_setup();
- smm_init();
-
init_bios_tables();
boot_setup();
drive_setup();
+ cdemu_setup();
floppy_setup();
ata_setup();
ramdisk_setup();
dprintf(3, "Jump to int19\n");
struct bregs br;
memset(&br, 0, sizeof(br));
+ br.flags = F_IF;
call16_int(0x19, &br);
}