From: Amit Singh Tomar <amittomer25@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH v4 1/2] Actions: OWL: Calculate SDRAM size
Date: Sat, 9 May 2020 13:45:07 +0530 [thread overview]
Message-ID: <1589012108-11064-2-git-send-email-amittomer25@gmail.com> (raw)
In-Reply-To: <1589012108-11064-1-git-send-email-amittomer25@gmail.com>
Calculate the SDRAM size from DDR capacity register registers instead
of using hard-coded value. This is quite useful to get correct size
on differnt boards based on Actions OWL family of SoCs (S700 and S900).
There is no documentation available that talks about DDR registers, and
this is very much taken from vendor source.
This commit lets Linux boot on Cubieboard7-lite(based on S700).
Signed-off-by: Amit Singh Tomar <amittomer25@gmail.com>
---
Changes since v3:
* Fixed S900 support as suggested by Mani.
* Changes the function name to owl_get_ddrcap.
Changes since v2:
* Fixed the variable name so that it can compile
for S900.
Changes since v1:
* added support for S900
* updated the commit message to reflect common OWL
support.
---
arch/arm/mach-owl/soc.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-owl/soc.c b/arch/arm/mach-owl/soc.c
index 409cbd319f20..fcf61d39b63a 100644
--- a/arch/arm/mach-owl/soc.c
+++ b/arch/arm/mach-owl/soc.c
@@ -13,14 +13,34 @@
#include <asm/mach-types.h>
#include <asm/psci.h>
+#define DMM_INTERLEAVE_PER_CH_CFG 0xe0290028
+
DECLARE_GLOBAL_DATA_PTR;
+unsigned int owl_get_ddrcap(void)
+{
+ unsigned int val, cap;
+
+ /* ddr capacity register initialized by ddr driver
+ * in early bootloader
+ */
+#if defined(CONFIG_MACH_S700)
+ val = (readl(DMM_INTERLEAVE_PER_CH_CFG) >> 8) & 0x7;
+ cap = (val + 1) * 256;
+#elif defined(CONFIG_MACH_S900)
+ val = (readl(DMM_INTERLEAVE_PER_CH_CFG) >> 8) & 0xf;
+ cap = 64 * (1 << val);
+#endif
+
+ return cap;
+}
+
/*
* dram_init - sets uboots idea of sdram size
*/
int dram_init(void)
{
- gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
+ gd->ram_size = owl_get_ddrcap() * 1024 * 1024;
return 0;
}
--
2.7.4
next prev parent reply other threads:[~2020-05-09 8:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-09 8:15 [PATCH v4 0/2] Calculate SDRAM size for Actions OWL SoCs Amit Singh Tomar
2020-05-09 8:15 ` Amit Singh Tomar [this message]
2020-05-09 10:11 ` [PATCH v4 1/2] Actions: OWL: Calculate SDRAM size Manivannan Sadhasivam
2020-07-08 3:02 ` Tom Rini
2020-05-09 8:15 ` [PATCH v4 2/2] arm: actions: remove "CONFIG_SYS_SDRAM_SIZE" for Actions Owl Semi SoCs Amit Singh Tomar
2020-05-09 10:12 ` Manivannan Sadhasivam
2020-07-08 3:02 ` Tom Rini
2020-06-12 18:26 ` [PATCH v4 0/2] Calculate SDRAM size for Actions OWL SoCs Amit Tomer
2020-06-12 18:42 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1589012108-11064-2-git-send-email-amittomer25@gmail.com \
--to=amittomer25@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.