arm: imx: cx9020: remove usage of mx53_dram_size
authorPatrick Bruenn <p.bruenn@beckhoff.com>
Tue, 16 Jan 2018 06:59:01 +0000 (07:59 +0100)
committerStefano Babic <sbabic@denx.de>
Sun, 4 Feb 2018 11:00:58 +0000 (12:00 +0100)
Static variables are not available during board_init_f().
'static uint32_t mx53_dram_size[2];' was used in board specific
dram_init(), dram_init_banksize() and get_effective_memsize() to avoid
multiple calls to get_ram_size().

However multiple calls are better than undefined behavior...
This fixes:
https://lists.denx.de/pipermail/u-boot/2017-November/313214.html
https://lists.denx.de/pipermail/u-boot/2017-December/314480.html

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
board/beckhoff/mx53cx9020/mx53cx9020.c

index 021bd967c457d31d9916a416fb77fc3e6833a16f..d8bdfc27bb46c29cb2f06c5b23701086962b0bdb 100644 (file)
@@ -59,8 +59,6 @@ static const u32 CCAT_MODE_RUN = 0x0033DC8F;
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static uint32_t mx53_dram_size[2];
-
 phys_size_t get_effective_memsize(void)
 {
        /*
@@ -74,15 +72,13 @@ phys_size_t get_effective_memsize(void)
         * U-Boot into invalid memory area close to the end of the first
         * DRAM bank.
         */
-       return mx53_dram_size[0];
+       return get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
 }
 
 int dram_init(void)
 {
-       mx53_dram_size[0] = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
-       mx53_dram_size[1] = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
-
-       gd->ram_size = mx53_dram_size[0] + mx53_dram_size[1];
+       gd->ram_size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
+       gd->ram_size += get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
 
        return 0;
 }
@@ -90,10 +86,10 @@ int dram_init(void)
 int dram_init_banksize(void)
 {
        gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-       gd->bd->bi_dram[0].size = mx53_dram_size[0];
+       gd->bd->bi_dram[0].size = get_ram_size((void *)PHYS_SDRAM_1, 1 << 30);
 
        gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
-       gd->bd->bi_dram[1].size = mx53_dram_size[1];
+       gd->bd->bi_dram[1].size = get_ram_size((void *)PHYS_SDRAM_2, 1 << 30);
 
        return 0;
 }