diff options
Diffstat (limited to 'arch/arm/lib')
-rw-r--r-- | arch/arm/lib/armlinux.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c index df5a61bdd1..432b4fb8c2 100644 --- a/arch/arm/lib/armlinux.c +++ b/arch/arm/lib/armlinux.c @@ -23,6 +23,7 @@ #include <common.h> #include <command.h> +#include <driver.h> #include <image.h> #include <zlib.h> #include <asm/byteorder.h> @@ -277,14 +278,19 @@ static void setup_start_tag (bd_t *bd) #ifdef CONFIG_SETUP_MEMORY_TAGS static void setup_memory_tags (bd_t *bd) { - int i; + struct device_d *dev = NULL; + + while (1) { + dev = get_device_by_type(DEVICE_TYPE_DRAM, dev); + + if (!dev) + return; - for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { params->hdr.tag = ATAG_MEM; params->hdr.size = tag_size (tag_mem32); - params->u.mem.start = bd->bi_dram[i].start; - params->u.mem.size = bd->bi_dram[i].size; + params->u.mem.start = dev->map_base; + params->u.mem.size = dev->size; params = tag_next (params); } |