@@ -221,26 +221,31 @@ void do_bridge_reset(int enable, unsigned int mask)
int i;
if (enable) {
- socfpga_bridges_set_handoff_regs(!(mask & BIT(0)),
- !(mask & BIT(1)),
- !(mask & BIT(2)));
- for (i = 0; i < 2; i++) { /* Reload SW setting cache */
- iswgrp_handoff[i] =
- readl(socfpga_get_sysmgr_addr() +
- SYSMGR_ISWGRP_HANDOFF_OFFSET(i));
+ if (fpgamgr_test_fpga_ready()) {
+ socfpga_bridges_set_handoff_regs(!(mask & BIT(0)),
+ !(mask & BIT(1)),
+ !(mask & BIT(2)));
+ for (i = 0; i < 2; i++) { /* Reload SW setting cache */
+ iswgrp_handoff[i] =
+ readl(socfpga_get_sysmgr_addr() +
+ SYSMGR_ISWGRP_HANDOFF_OFFSET(i));
+ }
+
+ writel(iswgrp_handoff[2],
+ socfpga_get_sysmgr_addr() +
+ SYSMGR_GEN5_FPGAINFGRP_MODULE);
+ writel(iswgrp_handoff[3], &sdr_ctrl->fpgaport_rst);
+ writel(iswgrp_handoff[0],
+ socfpga_get_rstmgr_addr() + RSTMGR_GEN5_BRGMODRST);
+ writel(iswgrp_handoff[1], &nic301_regs->remap);
+
+ writel(0x7, socfpga_get_rstmgr_addr() + RSTMGR_GEN5_BRGMODRST);
+ writel(iswgrp_handoff[0],
+ socfpga_get_rstmgr_addr() + RSTMGR_GEN5_BRGMODRST);
+ } else {
+ puts("Bridges: Failed to enable because FPGA is not ");
+ puts("in user mode\n");
}
-
- writel(iswgrp_handoff[2],
- socfpga_get_sysmgr_addr() +
- SYSMGR_GEN5_FPGAINFGRP_MODULE);
- writel(iswgrp_handoff[3], &sdr_ctrl->fpgaport_rst);
- writel(iswgrp_handoff[0],
- socfpga_get_rstmgr_addr() + RSTMGR_GEN5_BRGMODRST);
- writel(iswgrp_handoff[1], &nic301_regs->remap);
-
- writel(0x7, socfpga_get_rstmgr_addr() + RSTMGR_GEN5_BRGMODRST);
- writel(iswgrp_handoff[0],
- socfpga_get_rstmgr_addr() + RSTMGR_GEN5_BRGMODRST);
} else {
writel(0, socfpga_get_sysmgr_addr() +
SYSMGR_GEN5_FPGAINFGRP_MODULE);