ARM: shmobile: rcar-gen2: Use ICRAM1 for jump stub on all SoCs
authorGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 17 May 2016 15:15:33 +0000 (17:15 +0200)
committerSimon Horman <horms+renesas@verge.net.au>
Mon, 30 May 2016 00:39:43 +0000 (09:39 +0900)
Currently the different SoCs in the R-Car Gen2 family use different
types of on-chip RAM for the jump stub:
  - R-Car H2 uses Media RAM,
  - R-Car M2-W uses another type of optional On-chip RAM, as it doesn't
    have Media RAM,
  - R-Car M2-N uses Inter Connect RAM in Magnus Damm's "ARM: shmobile:
    r8a7793 boot address update".

As all R-Car Gen2 SoCs have 4 KiB of Inter Connect RAM, consolidate the
code by always using that.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/pm-rcar-gen2.c

index 691ac166a277c03fe1a562d5521affa6c75e5fc3..61361dac6068210a04bec143d1100a6ed9c02eeb 100644 (file)
@@ -26,8 +26,7 @@
 #define CA7RESCNT      0x0044
 
 /* On-chip RAM */
-#define MERAM          0xe8080000
-#define RAM            0xe6300000
+#define ICRAM1         0xe63c0000      /* Inter Connect RAM1 (4 KiB) */
 
 /* SYSC */
 #define SYSCIER 0x0c
@@ -58,7 +57,7 @@ void __init rcar_gen2_pm_init(void)
        struct device_node *np, *cpus;
        bool has_a7 = false;
        bool has_a15 = false;
-       phys_addr_t boot_vector_addr = 0;
+       phys_addr_t boot_vector_addr = ICRAM1;
        u32 syscier = 0;
 
        if (once++)
@@ -75,14 +74,10 @@ void __init rcar_gen2_pm_init(void)
                        has_a7 = true;
        }
 
-       if (of_machine_is_compatible("renesas,r8a7790")) {
-               boot_vector_addr = MERAM;
+       if (of_machine_is_compatible("renesas,r8a7790"))
                syscier = 0x013111ef;
-
-       } else if (of_machine_is_compatible("renesas,r8a7791")) {
-               boot_vector_addr = RAM;
+       else if (of_machine_is_compatible("renesas,r8a7791"))
                syscier = 0x00111003;
-       }
 
        /* RAM for jump stub, because BAR requires 256KB aligned address */
        p = ioremap_nocache(boot_vector_addr, shmobile_boot_size);