summaryrefslogtreecommitdiff
path: root/board/sunxi
diff options
context:
space:
mode:
authorFrom: Karl Palsson <karlp@tweak.net.au>2018-12-19 13:00:39 +0000
committerJagan Teki <jagan@amarulasolutions.com>2018-12-30 00:57:17 +0530
commit44c214dc2738da979d277d8d45fe50997b62b5f8 (patch)
tree408a576de6d8db95bd51edb0d970eaf73703423f /board/sunxi
parentbea3d826203f90507ff32ed24bd0a3c53479e55c (diff)
Revert "sunxi: board: Print error after power initialization fails"
Commit a8011eb84dfa("sunxi: board: Print error after power initialization fails") moved the DRAM init after the increase of the CPU clock frequency. This lead to various DRAM initialisation failures on some boards (hangs or wrong size reported, on a NanoPi Duo2 and OrangePi Zero, for instance). Lowering the CPU frequency significantly (for instance to 408 MHz) seems to work around the problem, so this points to some timing issues in the DRAM code. Debugging this sounds like a larger job, so let's just revert this patch to bring back those boards. Beside this probably unintended change the patch just moved the error message around, so reverting this is not a real loss. This reverts commit a8011eb84dfac5187cebf00ed8bc981bdb5c1fa1. Tested-By: Priit Laes <plaes@plaes.org> Signed-off-by: Karl Palsson <karlp@tweak.net.au> Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Jagan Teki <jagan@openedev.com>
Diffstat (limited to 'board/sunxi')
-rw-r--r--board/sunxi/board.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 917f5b18f6..f022f365e9 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -637,6 +637,13 @@ void sunxi_board_init(void)
power_failed |= axp_set_sw(IS_ENABLED(CONFIG_AXP_SW_ON));
#endif
#endif
+ printf("DRAM:");
+ gd->ram_size = sunxi_dram_init();
+ printf(" %d MiB\n", (int)(gd->ram_size >> 20));
+ if (!gd->ram_size)
+ hang();
+
+ sunxi_spl_store_dram_size(gd->ram_size);
/*
* Only clock up the CPU to full speed if we are reasonably
@@ -645,16 +652,7 @@ void sunxi_board_init(void)
if (!power_failed)
clock_set_pll1(CONFIG_SYS_CLK_FREQ);
else
- printf("Error setting up the power controller.\n"
- "CPU frequency not set.\n");
-
- printf("DRAM:");
- gd->ram_size = sunxi_dram_init();
- printf(" %d MiB\n", (int)(gd->ram_size >> 20));
- if (!gd->ram_size)
- hang();
-
- sunxi_spl_store_dram_size(gd->ram_size);
+ printf("Failed to set core voltage! Can't set CPU frequency\n");
}
#endif