diff options
author | Eric Biederman <ebiederm@xmission.com> | 2004-10-14 21:25:53 +0000 |
---|---|---|
committer | Eric Biederman <ebiederm@xmission.com> | 2004-10-14 21:25:53 +0000 |
commit | 03acab694b3f2fcedd2ffc152db0c08bba8eebdd (patch) | |
tree | 1cd66d4ff0aaccbe4b089389370447d738ba5c7c /src/devices/root_device.c | |
parent | 992cd008f1d4217c3e7dd6d0a1e8445ade5da63d (diff) |
- Updates for 64bit resource support, handling missing devices and cpus in the config file
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1664 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/devices/root_device.c')
-rw-r--r-- | src/devices/root_device.c | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/src/devices/root_device.c b/src/devices/root_device.c index 04c96770fe..1642e8beda 100644 --- a/src/devices/root_device.c +++ b/src/devices/root_device.c @@ -9,34 +9,29 @@ */ void root_dev_read_resources(device_t root) { - int res = 0; + struct resource *resource; /* Initialize the system wide io space constraints */ - root->resource[res].base = 0x400; - root->resource[res].size = 0; - root->resource[res].align = 0; - root->resource[res].gran = 0; - root->resource[res].limit = 0xffffUL; - root->resource[res].flags = IORESOURCE_IO; - root->resource[res].index = 0; - compute_allocate_resource(&root->link[0], &root->resource[res], + resource = new_resource(root, 0); + resource->base = 0x400; + resource->size = 0; + resource->align = 0; + resource->gran = 0; + resource->limit = 0xffffUL; + resource->flags = IORESOURCE_IO; + compute_allocate_resource(&root->link[0], resource, IORESOURCE_IO, IORESOURCE_IO); - res++; /* Initialize the system wide memory resources constraints */ - root->resource[res].base = 0; - root->resource[res].size = 0; - root->resource[res].align = 0; - root->resource[res].gran = 0; - root->resource[res].limit = 0xffffffffUL; - root->resource[res].flags = IORESOURCE_MEM; - root->resource[res].index = 1; - compute_allocate_resource(&root->link[0], &root->resource[res], + resource = new_resource(root, 1); + resource->base = 0; + resource->size = 0; + resource->align = 0; + resource->gran = 0; + resource->limit = 0xffffffffUL; + resource->flags = IORESOURCE_MEM; + compute_allocate_resource(&root->link[0], resource, IORESOURCE_MEM, IORESOURCE_MEM); - res++; - - root->resources = res; - printk_spew("%s DONE\n", __func__); } /** @@ -124,8 +119,13 @@ void enable_childrens_resources(device_t dev) } } +void root_dev_enable_resources(device_t dev) +{ + enable_childrens_resources(dev); +} + /** - * @brief Scan root bus for generic PCI systems + * @brief Scan root bus for generic systems * * @param root The root device structure * @param max The current bus number scanned so fat, usually 0x00 @@ -135,9 +135,14 @@ void enable_childrens_resources(device_t dev) * generic PCI bus system is at Bus 0, Dev 0, Fun 0 so we scan the whole PCI * buses from there. */ -unsigned int root_dev_scan_pci_bus(device_t root, unsigned int max) +unsigned int root_dev_scan_bus(device_t root, unsigned int max) +{ + return scan_static_bus(root, max); +} + +void root_dev_init(device_t root) { - return pci_scan_bus(&root->link[0], 0, 0xff, max); + initialize_cpus(root); } /** @@ -153,9 +158,9 @@ unsigned int root_dev_scan_pci_bus(device_t root, unsigned int max) struct device_operations default_dev_ops_root = { .read_resources = root_dev_read_resources, .set_resources = root_dev_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, - .scan_bus = root_dev_scan_pci_bus, + .enable_resources = root_dev_enable_resources, + .init = root_dev_init, + .scan_bus = root_dev_scan_bus, }; /** @@ -169,11 +174,4 @@ struct device dev_root = { .bus = &dev_root.link[0], .path = { .type = DEVICE_PATH_ROOT }, .enabled = 1, - .links = 1, - .link = { - [0] = { - .dev = &dev_root, - .link = 0, - }, - }, }; |