Moved the E1000 MMIO addr to a makelocal variable.
authorKevin Klues <klueska@ros-dev.(none)>
Tue, 20 Apr 2010 18:48:47 +0000 (11:48 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:43 +0000 (17:35 -0700)
The physical address the E1000 device expects its MMIO to be at is
now controlable via a #def in the makelocal. Specifically,
E1000_MMIO_ADDR. Without that set, it does nothing for MMIO.

kern/arch/i686/e1000.c
kern/src/manager.c

index 884a646..f48d302 100644 (file)
@@ -212,14 +212,16 @@ int e1000_scan_pci() {
                                                        result = result & PCI_MEM_MASK;
                                                        result = (result ^ 0xFFFFFFFF) + 1;
                                                        e1000_addr_size = result;
-
+                                                        e1000_debug("-->MMIO Size %x\n", e1000_addr_size);
+                                                       outl(PCI_CONFIG_DATA, e1000_mmio_base_addr);
+                               
+#ifdef __CONFIG_E1000_MMIO_HACK__
                                                        // Map the page in.
-                                                       printk("HACK FIX\n");
-                                                       e1000_mmio_base_addr = 0xfbee0000;
+                                                       printd("HACK FOR BROKEN MMIO\n");
+                                                       e1000_mmio_base_addr = E1000_MMIO_ADDR;
                                                        outl(PCI_CONFIG_DATA, e1000_mmio_base_addr);
-                                                       e1000_mmio_base_addr = 0xfee00000 + 0x20000;
-                                                       e1000_debug("-->MMIO Size %x\n", e1000_addr_size);
-
+                                                       e1000_mmio_base_addr = 0xfee00000 + 0x1000;
+#endif
                                                }
                                        }                                               
                                }
index 0ff709d..39d02c2 100644 (file)
@@ -203,7 +203,7 @@ void manager_pearce()
 
        if (progress == 0) {
                progress++;
-               envs[0] = kfs_proc_create(kfs_lookup_path("parlib_httpserver"));
+               envs[0] = kfs_proc_create(kfs_lookup_path("parlib_httpserver_integrated"));
                //envs[0] = kfs_proc_create(kfs_lookup_path("parlib_lock_test"));
                __proc_set_state(envs[0], PROC_RUNNABLE_S);
                proc_run(envs[0]);