aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/devices/device_util.c23
-rw-r--r--src/include/device/device.h19
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);