]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
arm: zynq: Do not remap OCM to high address
authorMichal Simek <michal.simek@xilinx.com>
Wed, 28 Aug 2013 06:26:41 +0000 (08:26 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 6 Sep 2013 10:54:07 +0000 (12:54 +0200)
In case where ps-ddr is not used, do not remap
OCM to high address and keep it from 0x0.
Linux SMP requires to have memory at 0x0.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/cpu/armv7/zynq/cpu.c

index 09bec8b45e1ed6fa7d93d6d54dfd25a692155caa..4345ee61577f2160ef3b6904ad8ca72b1273cba4 100644 (file)
@@ -32,13 +32,15 @@ void lowlevel_init(void)
 int arch_cpu_init(void)
 {
        zynq_slcr_unlock();
-       /* remap DDR to zero, FILTERSTART */
-       writel(0, &scu_base->filter_start);
 
        /* Device config APB, unlock the PCAP */
        writel(0x757BDF0D, &devcfg_base->unlock);
        writel(0xFFFFFFFF, &devcfg_base->rom_shadow);
 
+#if (CONFIG_SYS_SDRAM_BASE == 0)
+       /* remap DDR to zero, FILTERSTART */
+       writel(0, &scu_base->filter_start);
+
        /* OCM_CFG, Mask out the ROM, map ram into upper addresses */
        writel(0x1F, &slcr_base->ocm_cfg);
        /* FPGA_RST_CTRL, clear resets on AXI fabric ports */
@@ -49,6 +51,7 @@ int arch_cpu_init(void)
        writel(0x0, &slcr_base->ddr_urgent_sel);
        /* Urgent write, ports S2/S3 */
        writel(0xC, &slcr_base->ddr_urgent);
+#endif
 
        zynq_slcr_lock();