+ if (magic != 0x2BADB002)
+ panic("Bootloader was not multiboot compliant; cannot continue.");
+
+ for (i = 0; i < mbinfo->mod_cnt; i++)
+ {
+ puts("Module found:\n");
+ puts(" Start: "); puthex(mods[i].mod_start); puts("\n");
+ puts(" Size: "); puthex(mods[i].mod_end - mods[i].mod_start); puts("\n");
+ puts(" Name: "); puts(mods[i].mod_string); puts("\n");
+ }
+
+ if (mbinfo->mod_cnt != 1)
+ panic("Expected exactly one module; cannot continue.");
+
+ puts("Current USB state is: "); puthex(pci_read16(0, 31, 2, 0xC0)); puts(" "); puthex(pci_read16(0, 31, 4, 0xC0)); puts("\n");
+ puts("Current SMI state is: "); puthex(inl(0x830)); puts("\n");
+ puts("Current SMRAMC state is: "); puthex(pci_read8(0, 0, 0, 0x70)); puts("\n");
+
+ outl(0x830, inl(0x830) & ~0x1); /* turn off SMIs */
+
+ /* Try really hard to shut up USB_LEGKEY. */
+ pci_write16(0, 31, 2, 0xC0, pci_read16(0, 31, 2, 0xC0));
+ pci_write16(0, 31, 2, 0xC0, 0);
+ pci_write16(0, 31, 4, 0xC0, pci_read16(0, 31, 4, 0xC0));
+ pci_write16(0, 31, 4, 0xC0, 0);
+