summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/memory.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/common/memory.c b/common/memory.c
index 392522bfc3..612ed87168 100644
--- a/common/memory.c
+++ b/common/memory.c
@@ -115,15 +115,11 @@ int barebox_add_memory_bank(const char *name, resource_size_t start,
resource_size_t size)
{
struct memory_bank *bank = xzalloc(sizeof(*bank));
- struct device_d *dev;
bank->res = request_iomem_region(name, start, start + size - 1);
if (IS_ERR(bank->res))
return PTR_ERR(bank->res);
- dev = add_mem_device(name, start, size, IORESOURCE_MEM_WRITEABLE);
-
- bank->dev = dev;
bank->start = start;
bank->size = size;
@@ -132,6 +128,19 @@ int barebox_add_memory_bank(const char *name, resource_size_t start,
return 0;
}
+static int add_mem_devices(void)
+{
+ struct memory_bank *bank;
+
+ for_each_memory_bank(bank) {
+ add_mem_device(bank->res->name, bank->start, bank->size,
+ IORESOURCE_MEM_WRITEABLE);
+ }
+
+ return 0;
+}
+mmu_initcall(add_mem_devices);
+
/*
* Request a region from the registered sdram
*/