summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorBhupesh Sharma <bhupesh.sharma@freescale.com>2015-03-19 16:20:43 (GMT)
committerYork Sun <yorksun@freescale.com>2015-04-21 17:26:29 (GMT)
commit422cb08acb1bc9a05ffa68ba68b4e196dad1af5b (patch)
tree1aae2fc085d1317f5ee6b9e26f44fffa5435be36 /board
parent1fb5ff9ae732d63c8810bd1a6922273e14329093 (diff)
downloadu-boot-422cb08acb1bc9a05ffa68ba68b4e196dad1af5b.tar.xz
armv8/fsl-lsch3: Add Freescale Debug Server driver
The Debug Server driver is responsible for loading the Debug server FW on the Service Processor (Cortex-A5 core) on LS2085A like SoCs and then polling for the successful initialization of the same. TOP MEM HIDE is adjusted to ensure the space required by Debug Server FW is accounted for. MC uses the DDR area which is calculated as: MC DDR region start = Top of DDR - area reserved by Debug Server FW Signed-off-by: Bhupesh Sharma <bhupesh.sharma@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'board')
-rw-r--r--board/freescale/ls2085a/ls2085a.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/board/freescale/ls2085a/ls2085a.c b/board/freescale/ls2085a/ls2085a.c
index 519d61c..a16c2c8 100644
--- a/board/freescale/ls2085a/ls2085a.c
+++ b/board/freescale/ls2085a/ls2085a.c
@@ -12,6 +12,7 @@
#include <asm/io.h>
#include <fdt_support.h>
#include <libfdt.h>
+#include <fsl_debug_server.h>
#include <fsl-mc/fsl_mc.h>
#include <environment.h>
@@ -79,6 +80,34 @@ void reset_cpu(ulong addr)
{
}
+#if defined(CONFIG_ARCH_MISC_INIT)
+int arch_misc_init(void)
+{
+#ifdef CONFIG_FSL_DEBUG_SERVER
+ debug_server_init();
+#endif
+
+ return 0;
+}
+#endif
+
+unsigned long get_dram_size_to_hide(void)
+{
+ unsigned long dram_to_hide = 0;
+
+/* Carve the Debug Server private DRAM block from the end of DRAM */
+#ifdef CONFIG_FSL_DEBUG_SERVER
+ dram_to_hide += debug_server_get_dram_block_size();
+#endif
+
+/* Carve the MC private DRAM block from the end of DRAM */
+#ifdef CONFIG_FSL_MC_ENET
+ dram_to_hide += mc_get_dram_block_size();
+#endif
+
+ return dram_to_hide;
+}
+
int board_eth_init(bd_t *bis)
{
int error = 0;