env: Move env_set() to env.h
[oweals/u-boot.git] / arch / arm / mach-socfpga / misc_s10.c
index 60c96090ce1c47ad2151e23d1986811f3006f38b..0a5fab11c0de46384292dded0a960c91a2756175 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <altera.h>
 #include <common.h>
+#include <env.h>
 #include <errno.h>
 #include <fdtdec.h>
 #include <miiphy.h>
@@ -16,6 +17,7 @@
 #include <asm/arch/misc.h>
 #include <asm/pl310.h>
 #include <linux/libfdt.h>
+#include <asm/arch/mailbox_s10.h>
 
 #include <dt-bindings/reset/altr,rst-mgr-s10.h>
 
@@ -152,5 +154,16 @@ int arch_early_init_r(void)
 
 void do_bridge_reset(int enable, unsigned int mask)
 {
+       /* Check FPGA status before bridge enable */
+       if (enable) {
+               int ret = mbox_get_fpga_config_status(MBOX_RECONFIG_STATUS);
+
+               if (ret && ret != MBOX_CFGSTAT_STATE_CONFIG)
+                       ret = mbox_get_fpga_config_status(MBOX_CONFIG_STATUS);
+
+               if (ret)
+                       return;
+       }
+
        socfpga_bridges_reset(enable);
 }