
On Fri, 3 Apr 2015, Marek Vasut wrote:
On Tuesday, March 31, 2015 at 11:07:57 PM, Pavel Machek wrote:
Hi!
On Mon 2015-03-30 17:01:14, dinguyen@opensource.altera.com wrote:
From: Dinh Nguyen dinguyen@opensource.altera.com
Remap SDRAM to 0x0, and clear OCRAM's ECC in board_init_f().
Signed-off-by: Dinh Nguyen dinguyen@opensource.altera.com Reviewed-by: Marek Vasut marex@denx.de
v3: Move the code from s_init to board_init_f
arch/arm/cpu/armv7/socfpga/spl.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
diff --git a/arch/arm/cpu/armv7/socfpga/spl.c b/arch/arm/cpu/armv7/socfpga/spl.c index a008eac..f2d3f79 100644 --- a/arch/arm/cpu/armv7/socfpga/spl.c +++ b/arch/arm/cpu/armv7/socfpga/spl.c @@ -6,6 +6,7 @@
#include <common.h> #include <asm/io.h>
+#include <asm/pl310.h>
#include <asm/u-boot.h> #include <asm/utils.h> #include <image.h>
@@ -19,6 +20,9 @@
DECLARE_GLOBAL_DATA_PTR;
+static struct pl310_regs *const pl310 =
- (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
#define MAIN_VCO_BASE ( \
(CONFIG_HPS_MAINPLLGRP_VCO_DENOM << \
CLKMGR_MAINPLLGRP_VCO_DENOM_OFFSET) | \
@@ -44,6 +48,32 @@ DECLARE_GLOBAL_DATA_PTR;
CLKMGR_SDRPLLGRP_VCO_NUMER_OFFSET) \
)
+void board_init_f(ulong dummy) +{ +#ifdef CONFIG_SPL_BUILD
I don't get it. File is called spl.c, still it has ifdefs for CONFIG_SPL_BUILD?
Yeah, this shouldn't be here. In case spl.c would be compiled into regular u-boot build, this board_init_f symbol would colide with the board_init_f implemented by common/board_f.c
Will fix in V4.
- struct socfpga_system_manager *sysmgr_regs =
(struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
- unsigned long reg;
- /*
* First C code to run. Clear fake OCRAM ECC first as SBE
* and DBE might triggered during power on
*/
- reg = readl(&sysmgr_regs->eccgrp_ocram);
- if (reg & SYSMGR_ECC_OCRAM_SERR)
writel(SYSMGR_ECC_OCRAM_SERR | SYSMGR_ECC_OCRAM_EN,
&sysmgr_regs->eccgrp_ocram);
- if (reg & SYSMGR_ECC_OCRAM_DERR)
writel(SYSMGR_ECC_OCRAM_DERR | SYSMGR_ECC_OCRAM_EN,
&sysmgr_regs->eccgrp_ocram);
+#endif /* CONFIG_SPL_BUILD */
- memset(__bss_start, 0, __bss_end - __bss_start);
Add a comment below?
/* Remap SDRAM to 0x0 */
I'll add to V4.
BR, Dinh