diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/device_util.c | 23 | ||||
-rw-r--r-- | src/include/device/device.h | 19 |
2 files changed, 20 insertions, 22 deletions
diff --git a/src/devices/device_util.c b/src/devices/device_util.c index 9362525180..6f088b2e84 100644 --- a/src/devices/device_util.c +++ b/src/devices/device_util.c @@ -795,8 +795,8 @@ void show_all_devs_resources(int debug_level, const char* msg) } } -void ram_resource(device_t dev, unsigned long index, - unsigned long basek, unsigned long sizek) +void fixed_mem_resource(device_t dev, unsigned long index, + unsigned long basek, unsigned long sizek, unsigned long type) { struct resource *resource; @@ -806,23 +806,10 @@ void ram_resource(device_t dev, unsigned long index, resource = new_resource(dev, index); resource->base = ((resource_t)basek) << 10; resource->size = ((resource_t)sizek) << 10; - resource->flags = IORESOURCE_MEM | IORESOURCE_CACHEABLE | \ - IORESOURCE_FIXED | IORESOURCE_STORED | IORESOURCE_ASSIGNED; -} - -void uma_resource(device_t dev, unsigned long index, - unsigned long basek, unsigned long sizek) -{ - struct resource *resource; - - if (!sizek) - return; + resource->flags = IORESOURCE_MEM | IORESOURCE_FIXED | + IORESOURCE_STORED | IORESOURCE_ASSIGNED; - resource = new_resource(dev, index); - resource->base = ((resource_t)basek) << 10; - resource->size = ((resource_t)sizek) << 10; - resource->flags = IORESOURCE_MEM | IORESOURCE_RESERVE | IORESOURCE_UMA_FB | - IORESOURCE_FIXED | IORESOURCE_STORED | IORESOURCE_ASSIGNED; + resource->flags |= type; } void tolm_test(void *gp, struct device *dev, struct resource *new) diff --git a/src/include/device/device.h b/src/include/device/device.h index 8cc937f94d..1515b45e02 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -170,10 +170,21 @@ void pci_domain_read_resources(struct device *dev); unsigned int pci_domain_scan_bus(struct device *dev, unsigned int max); unsigned int scan_static_bus(device_t bus, unsigned int max); -void ram_resource(device_t dev, unsigned long index, - unsigned long basek, unsigned long sizek); -void uma_resource(device_t dev, unsigned long index, - unsigned long basek, unsigned long sizek); +void fixed_mem_resource(device_t dev, unsigned long index, + unsigned long basek, unsigned long sizek, unsigned long type); + +#define ram_resource(dev, idx, basek, sizek) \ + fixed_mem_resource(dev, idx, basek, sizek, IORESOURCE_CACHEABLE) + +#define bad_ram_resource(dev, idx, basek, sizek) \ + fixed_mem_resource(dev, idx, basek, sizek, IORESOURCE_RESERVE | IORESOURCE_CACHEABLE ) + +#define uma_resource(dev, idx, basek, sizek) \ + fixed_mem_resource(dev, idx, basek, sizek, IORESOURCE_RESERVE | IORESOURCE_UMA_FB) + +#define mmio_resource(dev, idx, basek, sizek) \ + fixed_mem_resource(dev, idx, basek, sizek, IORESOURCE_RESERVE) + void tolm_test(void *gp, struct device *dev, struct resource *new); u32 find_pci_tolm(struct bus *bus); |