Finally move the LEGKEY garbage into ich2/.
authorJoshua Wise <joshua@escape.wv.cc.cmu.edu>
Sat, 10 Oct 2009 20:54:14 +0000 (16:54 -0400)
committerJoshua Wise <joshua@escape.wv.cc.cmu.edu>
Sat, 10 Oct 2009 20:54:14 +0000 (16:54 -0400)
grubload/main.c
ich2/smi.c
include/reg-82801b.h
netwatch/firstrun.c
netwatch/smi.c

index 904b1e3..72524d8 100644 (file)
@@ -60,20 +60,11 @@ void c_start(unsigned int magic, struct mb_info *mbinfo)
 
        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));
+       outputf("Current SMRAMC state is: %02x", (unsigned char)smram_save_state());
+       outputf("Current SMI state is: %08x", inl(0x830));      // XXX ICH2 specific
        
        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();
 
@@ -92,7 +83,7 @@ void c_start(unsigned int magic, struct mb_info *mbinfo)
        info->firstrun();
        smram_restore_state(old_smramc);
        
-       outputf("New SMRAMC state is: %02x", pci_read8(0, 0, 0, 0x70));
+       outputf("New SMRAMC state is: %02x", (unsigned char)smram_save_state());
 
        puts("Waiting for a bit before returning to real mode...");
        for (i=0; i<0x500000; i++)
index 8865eab..0e43185 100644 (file)
@@ -33,6 +33,15 @@ void smi_disable()
 {
        unsigned short smi_en = _get_PMBASE() + ICH2_PMBASE_SMI_EN;
        outl(smi_en, inl(smi_en) & ~ICH2_SMI_EN_GBL_SMI_EN);
+       
+       /* Try really hard to shut up USB_LEGKEY. */
+       pci_write16(ICH2_USB0_BUS, ICH2_USB0_DEV, ICH2_USB0_FN, ICH2_USB_LEGKEY, 0x0);
+       pci_write16(ICH2_USB0_BUS, ICH2_USB0_DEV, ICH2_USB0_FN, ICH2_USB_LEGKEY,
+               pci_read16(ICH2_USB0_BUS, ICH2_USB0_DEV, ICH2_USB0_FN, ICH2_USB_LEGKEY));
+       pci_write16(ICH2_USB1_BUS, ICH2_USB1_DEV, ICH2_USB1_FN, ICH2_USB_LEGKEY, 0x0);
+       pci_write16(ICH2_USB1_BUS, ICH2_USB1_DEV, ICH2_USB1_FN, ICH2_USB_LEGKEY,
+               pci_read16(ICH2_USB1_BUS, ICH2_USB1_DEV, ICH2_USB1_FN, ICH2_USB_LEGKEY));
+       
 }
 
 void smi_enable()
index 3192228..4675d34 100644 (file)
 #define ICH2_USB1_DEV                  31
 #define ICH2_USB1_FN                   4
 
+#define ICH2_USB_LEGKEY                        0xC0
+
 #define ICH2_SMBUS_BUS                 0
 #define ICH2_SMBUS_DEV                 31
 #define ICH2_SMBUS_FN                  3
index 66b08d4..e2a8f4b 100644 (file)
@@ -36,12 +36,6 @@ void smi_init() {
 
        outputf("NetWatch running");
 
-       /* 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);
-
        /* Turn on the SMIs we want */
        smi_disable();
        
index e551ac4..88570a6 100644 (file)
@@ -74,14 +74,8 @@ extern void timer_handler(smi_event_t ev);
 extern void kbc_handler(smi_event_t ev);
 extern void gbl_rls_handler(smi_event_t ev);
 
-void __firstrun_stub() {
-
-        /* 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);
-
+void __firstrun_stub()
+{
         /* Turn on the SMIs we want */
         smi_disable();
 
This page took 0.075551 seconds and 4 git commands to generate.