[PATCH 1/2] ARM: i.MX: Allow disabling SDRAM autodetection
Sascha Hauer
s.hauer at pengutronix.de
Fri Apr 26 17:48:35 EDT 2013
Some boards setup more memory than they actually have. The real memory
size can then be detected later for example by reading a board id.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
arch/arm/mach-imx/esdctl.c | 14 ++++++++++++++
arch/arm/mach-imx/include/mach/esdctl.h | 1 +
2 files changed, 15 insertions(+)
diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c
index cb57d45..e2025b3 100644
--- a/arch/arm/mach-imx/esdctl.c
+++ b/arch/arm/mach-imx/esdctl.c
@@ -39,6 +39,17 @@ struct imx_esdctl_data {
void (*add_mem)(void *esdctlbase, struct imx_esdctl_data *);
};
+static int imx_esdctl_disabled;
+
+/*
+ * Boards can disable SDRAM detection if it doesn't work for them. In
+ * this case arm_add_mem_device has to be called by board code.
+ */
+void imx_esdctl_disable(void)
+{
+ imx_esdctl_disabled = 1;
+}
+
/*
* v1 - found on i.MX1
*/
@@ -239,6 +250,9 @@ static int imx_esdctl_probe(struct device_d *dev)
if (!base)
return -ENOMEM;
+ if (imx_esdctl_disabled)
+ return 0;
+
data->add_mem(base, data);
return 0;
diff --git a/arch/arm/mach-imx/include/mach/esdctl.h b/arch/arm/mach-imx/include/mach/esdctl.h
index 26436d9..b7219d9 100644
--- a/arch/arm/mach-imx/include/mach/esdctl.h
+++ b/arch/arm/mach-imx/include/mach/esdctl.h
@@ -136,6 +136,7 @@ void __naked __noreturn imx35_barebox_entry(uint32_t boarddata);
void __naked __noreturn imx51_barebox_entry(uint32_t boarddata);
void __naked __noreturn imx53_barebox_entry(uint32_t boarddata);
void __naked __noreturn imx6_barebox_entry(uint32_t boarddata);
+void imx_esdctl_disable(void);
#endif
#endif /* __MACH_ESDCTL_V2_H */
--
1.8.2.rc2
More information about the barebox
mailing list