Move the v3 resource allocator to v2.
[coreboot.git] / src / southbridge / sis / sis966 / sis966_lpc.c
index 6d3dd8e798805d9b844ed036632f3732d60f2a04..c6762a9cdbfe9f9cbbd1e753f7247cf1caf830f7 100644 (file)
@@ -239,13 +239,23 @@ static void sis966_lpc_read_resources(device_t dev)
        /* Get the normal pci resources of this device */
        pci_dev_read_resources(dev); // We got one for APIC, or one more for TRAP
 
-       /* Add an extra subtractive resource for both memory and I/O */
+       /* Add an extra subtractive resource for both memory and I/O. */
        res = new_resource(dev, IOINDEX_SUBTRACTIVE(0, 0));
-       res->flags = IORESOURCE_IO | IORESOURCE_SUBTRACTIVE | IORESOURCE_ASSIGNED;
+       res->base = 0;
+       res->size = 0x1000;
+       res->flags = IORESOURCE_IO | IORESOURCE_SUBTRACTIVE |
+                    IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
 
        res = new_resource(dev, IOINDEX_SUBTRACTIVE(1, 0));
-       res->flags = IORESOURCE_MEM | IORESOURCE_SUBTRACTIVE | IORESOURCE_ASSIGNED;
-
+       res->base = 0xff800000;
+       res->size = 0x00800000; /* 8 MB for flash */
+       res->flags = IORESOURCE_MEM | IORESOURCE_SUBTRACTIVE |
+                    IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
+
+       res = new_resource(dev, 3); /* IOAPIC */
+       res->base = 0xfec00000;
+       res->size = 0x00001000;
+       res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
 }
 
 /**
@@ -274,7 +284,7 @@ static void sis966_lpc_enable_childrens_resources(device_t dev)
                device_t child;
                for (child = dev->link[link].children; child; child = child->sibling) {
                        enable_resources(child);
-                       if(child->have_resources && (child->path.type == DEVICE_PATH_PNP)) {
+                       if(child->enabled && (child->path.type == DEVICE_PATH_PNP)) {
                                for(i=0;i<child->resources;i++) {
                                        struct resource *res;
                                        unsigned long base, end; // don't need long long