- Moved hlt() to it's own header.
[coreboot.git] / src / devices / chip.c
index c9e1ac564318394e975a225f1f41c2edf0bb6bb9..d8a59e30621b1276aa5f4c4eb378f5a070baf9bc 100644 (file)
@@ -80,6 +80,7 @@ void chip_enumerate(struct chip *chip)
                        link += 1;
                }
                if (dev) {
+                       struct chip_resource *res, *res_limit;
                        printk_spew("path (%p) %s %s", dev, dev_path(dev), identical_paths?"identical":"");
                        printk_spew(" parent: (%p) %s\n",dev->bus->dev,  dev_path(dev->bus->dev));
                        dev->chip = chip;
@@ -90,6 +91,16 @@ void chip_enumerate(struct chip *chip)
                                        child->bus = &dev->link[link];
                                }
                        }
+                       res = &chip->path[i].resource[0];
+                       res_limit = &chip->path[i].resource[MAX_RESOURCES];
+                       for(; res < res_limit; res++) {
+                               if (res->flags) {
+                                       struct resource *resource;
+                                       resource = get_resource(dev, res->index);
+                                       resource->flags = res->flags | IORESOURCE_FIXED | IORESOURCE_ASSIGNED;
+                                       resource->base = res->base;
+                               }
+                       }
                }
                if (dev && !chip->dev) {
                        chip->dev = dev;