+ if (mbinfo->mod_cnt != 1)
+ panic("Expected exactly one module; cannot continue.");
+ outputf("Current SMRAMC state is: %02x", pci_read8(0, 0, 0, 0x70));
+ outputf("Current USB state is: %04x %04x", pci_read16(0, 31, 2, 0xC0), pci_read16(0, 31, 4, 0xC0));
+ outputf("Current SMI state is: %08x", inl(0x830));
+
+ smi_disable();
+
+ /* 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);
+
+ pci_bus_enum();
+
+ /* Open the SMRAM aperture and load our ELF. */
+ old_smramc = smram_save_state();
+
+ if (smram_aseg_set_state(SMRAM_ASEG_OPEN) != 0)
+ panic("Opening SMRAM failed; cannot load ELF.");
+
+ load_elf(mods[0].mod_start, (unsigned long)mods[0].mod_end - (unsigned long)mods[0].mod_start);
+
+ info = (struct info_section *)0x10000;
+ if (info->signature != INFO_SIGNATURE)