diff mbox

[U-Boot,[PATCH] pandaboard: 1/1] Modification of Elpida DDR2 RAM for Pandaboard-ES Rev B3

Message ID 1382715750-10363-2-git-send-email-hardik.patel@volansystech.com
State Changes Requested
Delegated to: Tom Rini
Headers show

Commit Message

Hardik Oct. 25, 2013, 3:42 p.m. UTC
From: Hardik Patel <hardik.patel@volansystech.com>


Signed-off-by: Hardik Patel <hardik.patel@volansystech.com>
---
 include/configs/omap4_common.h |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Dan Murphy Oct. 28, 2013, 12:51 p.m. UTC | #1
On 10/25/2013 10:42 AM, Hardik wrote:
> From: Hardik Patel <hardik.patel@volansystech.com>
>
>
> Signed-off-by: Hardik Patel <hardik.patel@volansystech.com>
> ---
>  include/configs/omap4_common.h |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h
> index e9f2383..9aa4030 100644
> --- a/include/configs/omap4_common.h
> +++ b/include/configs/omap4_common.h
> @@ -240,7 +240,12 @@
>  #define CONFIG_SYS_CACHELINE_SIZE	32
>  
>  /* Defines for SDRAM init */
> -#define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
> +
> +/*
> + * Enable automatic sdram detection
> + * for detecting Elpida RAM on Rev B3
> + */
> +#undef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS

Nak

This is used on all other Panda revisions.

Why are we just disabling this for all devices when one device is the issue?
And as discussed off line I have an older B3 which boots fine on the uBoot mainline.

So what is the difference between your B3 and my B3?  Please answer this to the community or
point to a reference were one can determine what B3 board they have


Dan
>  
>  #ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
>  #define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION
Tom Rini Oct. 28, 2013, 1:04 p.m. UTC | #2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/28/2013 08:51 AM, Dan Murphy wrote:
> On 10/25/2013 10:42 AM, Hardik wrote:
>> From: Hardik Patel <hardik.patel@volansystech.com>
>> 
>> 
>> Signed-off-by: Hardik Patel <hardik.patel@volansystech.com> --- 
>> include/configs/omap4_common.h |    7 ++++++- 1 file changed, 6
>> insertions(+), 1 deletion(-)
>> 
>> diff --git a/include/configs/omap4_common.h
>> b/include/configs/omap4_common.h index e9f2383..9aa4030 100644 
>> --- a/include/configs/omap4_common.h +++
>> b/include/configs/omap4_common.h @@ -240,7 +240,12 @@ #define
>> CONFIG_SYS_CACHELINE_SIZE	32
>> 
>> /* Defines for SDRAM init */ -#define
>> CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS + +/* + * Enable
>> automatic sdram detection + * for detecting Elpida RAM on Rev B3 
>> + */ +#undef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
> 
> Nak
> 
> This is used on all other Panda revisions.
> 
> Why are we just disabling this for all devices when one device is
> the issue? And as discussed off line I have an older B3 which boots
> fine on the uBoot mainline.
> 
> So what is the difference between your B3 and my B3?  Please answer
> this to the community or point to a reference were one can
> determine what B3 board they have

I think we've got two issues here:
a) Your B3 is apparently an early non-public rev.
b) When we use the automatic timing calculation code, it then spits
out what the values are (I would swear) so that you can then plug them
back in.

We should make B3 know what the right timing values to use are.

- -- 
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSbmD5AAoJENk4IS6UOR1WuZcQAIvGDclBm78ecq6NTz+3Otv1
ln5C67Yo+7ZuiP5s7N5Ag7kKP2ZkzioouV+W9qFj/VxQBY6k2auyfXGRQ/aCamm5
pTmvdkQQCnqFgTfBTWofpRTQJkwMTT16cVpe+BQa4EriowklvHRfR8dHGmS5Figp
5Ta/xTo3HVa2eU5AK4StB7eQHjqMxHA5EUSD+c1sSmqSdX6aXi2DDjA3IpvakrOf
GsrZ6hKzooMPYPEgg/kqWRO5fOESu+bTw87afkpxntkanTa8XTq8INb4EiR8iMSp
3dyvZxEzmslykPV5k38hN8UPT/ZInn9pD6nXtXp/JqqQm7MQguCR+nvS/BpP3S9z
LWwCYtxtHoigw9v+LBTZ93AbgGgeOH8w5l0DFABFNWQhEilSHPYn7t3cpH9GfLjy
1nmTYezYTfoeiIkqtuUmGzJ6zM43W0lka/yCIi0TfFRha6qvR5LYadSe2YmKZaSg
yxV4Q6v4VIMQWLXpS2777ExQDcTcGLZR+MHdLfLsmUd4X+3kU9Dk7XO0o0Ek/n8F
pleX3+d6QJpPe7kFUReHPGRaGbRo52zwz5J8k2FcUY7aAS2fPBC4l/xbH+iD7TAn
q6k7yAs0r5+zsWtosg/tkWwQUzlvgf7KmmYyBnMRtQojvQrhbRfj8a7wuboPmzlT
6XuJH/wGNtgCFZ/IQuBe
=+35Q
-----END PGP SIGNATURE-----
Hardik Oct. 29, 2013, 2:17 p.m. UTC | #3
Tom, Dan,

Thanks for your feedback on patch.

If I understand correctly, you are suggesting to put static timing values
for RevB3(instead of putting it for auto detection) in "emif_get_reg_dump"
 and "emif_get_dmm_regs_sdp"  functions as we do it for other panda
revisions.

We have already figured out timing values for Elpida RAM on Rev B3.
However, We need a way to differentiate "Rev-B2" and "Rev-B3", as both
boards are very similar. We have checked that "omap_revision()" returns
same value on both B2 and B3.

We have found one difference between both revisions that we may use.
GPIO171 is '0' for Rev B1/B2, and it comes to '1' for Rev B3. We have
verified this between two boards.
* GPIO2, GPIO3, GPIO171, GPIO48, GPIO182: 0 0 0 1 1 => B1/B2
* GPIO2, GPIO3, GPIO171, GPIO48, GPIO182: 0 0 1 1 1 => B3

Please suggest a correct way to differentiate between B2 and B3 in
"sdram_elpida.c", so that patch gets accepted.
Should we export and use "get_board_revision()" along with
"omap_revision()" in "sdram_elpida.c" to differentiate between B2 and B3?
In current code "get_board_revision()" is not exported to "sdram_elpida.c".

Thanks,
Hardik

On Mon, Oct 28, 2013 at 6:34 PM, Tom Rini <trini@ti.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 10/28/2013 08:51 AM, Dan Murphy wrote:
> > On 10/25/2013 10:42 AM, Hardik wrote:
> >> From: Hardik Patel <hardik.patel@volansystech.com>
> >>
> >>
> >> Signed-off-by: Hardik Patel <hardik.patel@volansystech.com> ---
> >> include/configs/omap4_common.h |    7 ++++++- 1 file changed, 6
> >> insertions(+), 1 deletion(-)
> >>
> >> diff --git a/include/configs/omap4_common.h
> >> b/include/configs/omap4_common.h index e9f2383..9aa4030 100644
> >> --- a/include/configs/omap4_common.h +++
> >> b/include/configs/omap4_common.h @@ -240,7 +240,12 @@ #define
> >> CONFIG_SYS_CACHELINE_SIZE    32
> >>
> >> /* Defines for SDRAM init */ -#define
> >> CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS + +/* + * Enable
> >> automatic sdram detection + * for detecting Elpida RAM on Rev B3
> >> + */ +#undef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
> >
> > Nak
> >
> > This is used on all other Panda revisions.
> >
> > Why are we just disabling this for all devices when one device is
> > the issue? And as discussed off line I have an older B3 which boots
> > fine on the uBoot mainline.
> >
> > So what is the difference between your B3 and my B3?  Please answer
> > this to the community or point to a reference were one can
> > determine what B3 board they have
>
> I think we've got two issues here:
> a) Your B3 is apparently an early non-public rev.
> b) When we use the automatic timing calculation code, it then spits
> out what the values are (I would swear) so that you can then plug them
> back in.
>
> We should make B3 know what the right timing values to use are.
>
> - --
> Tom
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQIcBAEBAgAGBQJSbmD5AAoJENk4IS6UOR1WuZcQAIvGDclBm78ecq6NTz+3Otv1
> ln5C67Yo+7ZuiP5s7N5Ag7kKP2ZkzioouV+W9qFj/VxQBY6k2auyfXGRQ/aCamm5
> pTmvdkQQCnqFgTfBTWofpRTQJkwMTT16cVpe+BQa4EriowklvHRfR8dHGmS5Figp
> 5Ta/xTo3HVa2eU5AK4StB7eQHjqMxHA5EUSD+c1sSmqSdX6aXi2DDjA3IpvakrOf
> GsrZ6hKzooMPYPEgg/kqWRO5fOESu+bTw87afkpxntkanTa8XTq8INb4EiR8iMSp
> 3dyvZxEzmslykPV5k38hN8UPT/ZInn9pD6nXtXp/JqqQm7MQguCR+nvS/BpP3S9z
> LWwCYtxtHoigw9v+LBTZ93AbgGgeOH8w5l0DFABFNWQhEilSHPYn7t3cpH9GfLjy
> 1nmTYezYTfoeiIkqtuUmGzJ6zM43W0lka/yCIi0TfFRha6qvR5LYadSe2YmKZaSg
> yxV4Q6v4VIMQWLXpS2777ExQDcTcGLZR+MHdLfLsmUd4X+3kU9Dk7XO0o0Ek/n8F
> pleX3+d6QJpPe7kFUReHPGRaGbRo52zwz5J8k2FcUY7aAS2fPBC4l/xbH+iD7TAn
> q6k7yAs0r5+zsWtosg/tkWwQUzlvgf7KmmYyBnMRtQojvQrhbRfj8a7wuboPmzlT
> 6XuJH/wGNtgCFZ/IQuBe
> =+35Q
> -----END PGP SIGNATURE-----
>
Tom Rini Oct. 29, 2013, 3:54 p.m. UTC | #4
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/29/2013 10:17 AM, Hardik Patel wrote:
> Tom, Dan,
> 
> Thanks for your feedback on patch.
> 
> If I understand correctly, you are suggesting to put static timing
> values for RevB3(instead of putting it for auto detection) in
> "emif_get_reg_dump"
>  and "emif_get_dmm_regs_sdp"  functions as we do it for other panda
> revisions.
> 
> We have already figured out timing values for Elpida RAM on Rev B3.
> However, We need a way to differentiate "Rev-B2" and "Rev-B3", as both
> boards are very similar. We have checked that "omap_revision()" returns
> same value on both B2 and B3.
> 
> We have found one difference between both revisions that we may use.
> GPIO171 is '0' for Rev B1/B2, and it comes to '1' for Rev B3. We have
> verified this between two boards.
> * GPIO2, GPIO3, GPIO171, GPIO48, GPIO182: 0 0 0 1 1 => B1/B2
> * GPIO2, GPIO3, GPIO171, GPIO48, GPIO182: 0 0 1 1 1 => B3
> 
> Please suggest a correct way to differentiate between B2 and B3 in
> "sdram_elpida.c", so that patch gets accepted.
> Should we export and use "get_board_revision()" along with
> "omap_revision()" in "sdram_elpida.c" to differentiate between B2 and
> B3? In current code "get_board_revision()" is not exported to
> "sdram_elpida.c".

Note that emif_get_device_details is a weak function, so you can just
add one to board/ti/panda/panda.c that will provide the correct data out
of sdram_elpida.c, and not have to modify the function in sdram_elpida.c

- -- 
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSb9pPAAoJENk4IS6UOR1WJe0QAJZwCubK04YYMVPHcSXPw6ND
TXg1RR/8IC0UWpStKvj4BBobF/M2bemK4Bw+Rfu/tQLLP7Q92/WK0n02VVOYhWTN
kg1FnXDzjGzjvB7KKt+CMftNAYH0PQn1VmbMgQFf4qlteL5oCNT4gZl3YOppYSo5
47g3ckBh51IwwGPPB2hjyFJwWn1IOUtYFEL+HlIXO70fT8Z5hUHcPQPXN/53l3QJ
cM6z7hJV43oSYLjaQ7RBc4FQoU2xfNd2EQpmogd58GC1grVfiDxZ2iDaSNdUBRwk
RcNZRobRkjPDEbG2eLVq+NeFR6UOsEmjB/ZirWOskWnegAqLl3XRBhlUSAg8cJIF
EaBL8M3r/BxH+yn7J2okyTvQ7H2BkUKIqGV1KS5EFCFMAjiFg1Bx3/Ua4NLpDv+N
xIjw0X/XojZ2NIrDXgqOKRKr7Sh5NYqfUSQzyE1t5YJ2k91b8QjNd4vnxsz6iwxe
5d3DXE29nyFgUtcyyJNOm5+nYqOBN9MJOWRFROb8GHFzzgERzW1V07D0W+LSc9cy
Zx7c9SShVWmrKZJHtNDiMetUV6pqDU3v1BTXkqw0ocF/uwm0Il0uvk/GrNs1+D62
WziWXd5qXok67Ynmrf1gsE8Ol29Axf1Br1H2DPgqfkUr2pI57vX2x8UbQen+4Zie
lO5ipCHEw6czTUMz/5o+
=Mfm1
-----END PGP SIGNATURE-----
Hardik Nov. 14, 2013, 10:05 a.m. UTC | #5
From: Hardik Patel <hardik.patel@volansystech.com>

This patch adds Elpida DDR2 RAM support for Pandaboard-ES Rev-B3 board. We need to use emif_regs_elpida_400_mhz_1cs struct to dump timings required for Elpida RAM on Pandaboard-ES Rev-B3. So, we detected Pandaboard-ES Rev-B3, and put a check to differentiate Rev-B3 with other panda boards. We verified that u-boot works on Panadaboard-ES Rev-B2 board with this patch.

---
Changes for v2:
   - Use pre-calculated timings for Elpida RAM instead of automatic
   - Added function to detect Pandaboard-ES Rev-B3 using GPIO 171

Hardik Patel (1):
  Modification of Elpida DDR2 RAM

 arch/arm/cpu/armv7/omap4/sdram_elpida.c |    2 +-
 board/ti/panda/panda.c                  |   24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
Hardik Nov. 14, 2013, 10:06 a.m. UTC | #6
From: Hardik Patel <hardik.patel@volansystech.com>

This patch adds Elpida DDR2 RAM support for Pandaboard-ES Rev-B3 board. We need to use emif_regs_elpida_400_mhz_1cs struct to dump timings required for Elpida RAM on Pandaboard-ES Rev-B3. So, we detected Pandaboard-ES Rev-B3, and put a check to differentiate Rev-B3 with other panda boards. We verified that u-boot works on Panadaboard-ES Rev-B2 board with this patch.

---
Changes for v2:
   - Use pre-calculated timings for Elpida RAM instead of automatic
   - Added function to detect Pandaboard-ES Rev-B3 using GPIO 171

Hardik Patel (1):
  Modification of Elpida DDR2 RAM

 arch/arm/cpu/armv7/omap4/sdram_elpida.c |    2 +-
 board/ti/panda/panda.c                  |   24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h
index e9f2383..9aa4030 100644
--- a/include/configs/omap4_common.h
+++ b/include/configs/omap4_common.h
@@ -240,7 +240,12 @@ 
 #define CONFIG_SYS_CACHELINE_SIZE	32
 
 /* Defines for SDRAM init */
-#define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
+
+/*
+ * Enable automatic sdram detection
+ * for detecting Elpida RAM on Rev B3
+ */
+#undef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
 
 #ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
 #define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION