ARM: socfpga: Fully unmap the FPGA bridges from L3 space
authorMarek Vasut <marex@denx.de>
Tue, 16 Apr 2019 20:13:29 +0000 (22:13 +0200)
committerMarek Vasut <marex@denx.de>
Mon, 29 Apr 2019 08:08:55 +0000 (10:08 +0200)
Instead of just putting the bridges into reset, fully remove the bridges
from the L3 main bridge space when disabling them by clearing bits in
NIC-301 remap register. Moreover, only touch the 3 LSbits in brgmodrst
register as the rest of the bits are undefined.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <chin.liang.see@intel.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
arch/arm/mach-socfpga/reset_manager_gen5.c

index 66af924485ef677d0e766f59bb2c0c477c7d6206..89a384b59c84c085f3202e4dfc2004996999009e 100644 (file)
@@ -103,7 +103,8 @@ void socfpga_bridges_reset(int enable)
 
        if (enable) {
                /* brdmodrst */
-               writel(0xffffffff, &reset_manager_base->brg_mod_reset);
+               writel(0x7, &reset_manager_base->brg_mod_reset);
+               writel(L3REGS_REMAP_OCRAM_MASK, SOCFPGA_L3REGS_ADDRESS);
        } else {
                socfpga_bridges_set_handoff_regs(false, false, false);