[U-Boot] [[PATCH v2]pandaboard: 1/1] Modification of Elpida DDR2 RAM for Pandaboard-ES Rev B3
Tom Rini
trini at ti.com
Thu Nov 14 20:02:15 CET 2013
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 11/14/2013 01:43 PM, Hardik Patel wrote:
>
>
> On Thu, Nov 14, 2013 at 10:02 PM, Tom Rini <trini at ti.com
> <mailto:trini at ti.com>> wrote:
> On 11/14/2013 11:28 AM, Michael Trimarchi wrote:
>>>> Hi
>>>>
>>>> On Thu, Nov 14, 2013 at 5:19 PM, Tom Rini <trini at ti.com
>> <mailto:trini at ti.com>> wrote:
>>>> On 11/14/2013 05:06 AM, Hardik wrote:
>>>>>>> From: Hardik Patel <hardik.patel at volansystech.com
>> <mailto:hardik.patel at volansystech.com>>
>>>>>>>
>>>>>>> Signed-off-by: Hardik Patel <hardik.patel at volansystech.com
>> <mailto:hardik.patel at volansystech.com>>
>>>>>>> ---
>>>>>>> arch/arm/cpu/armv7/omap4/sdram_elpida.c | 2 +-
>>>>>>> board/ti/panda/panda.c | 24
>> ++++++++++++++++++++++++
>>>>>>> 2 files changed, 25 insertions(+), 1 deletion(-)
>>>>>>>
>>>>>>> diff --git a/arch/arm/cpu/armv7/omap4/sdram_elpida.c
>> b/arch/arm/cpu/armv7/omap4/sdram_elpida.c
>>>>>>> index e4c8316..9fbdeea 100644
>>>>>>> --- a/arch/arm/cpu/armv7/omap4/sdram_elpida.c
>>>>>>> +++ b/arch/arm/cpu/armv7/omap4/sdram_elpida.c
>>>>>>> @@ -123,7 +123,7 @@ static void emif_get_reg_dump_sdp(u32 emif_nr,
>> const struct emif_regs **regs)
>>>>>>> *regs = &emif_regs_elpida_200_mhz_2cs;
>>>>>>> else if (omap4_rev == OMAP4430_ES2_3)
>>>>>>> *regs = &emif_regs_elpida_400_mhz_1cs;
>>>>>>> - else if (omap4_rev < OMAP4470_ES1_0)
>>>>>>> + else if (omap4_rev < OMAP4470_ES1_0 && !is_panda_es_rev_b3())
>>>>>>> *regs = &emif_regs_elpida_400_mhz_2cs;
>>>>>>> else
>>>>>>> *regs = &emif_regs_elpida_400_mhz_1cs;
>>>>>>> diff --git a/board/ti/panda/panda.c b/board/ti/panda/panda.c
>>>>>>> index c104024..5a7f80a 100644
>>>>>>> --- a/board/ti/panda/panda.c
>>>>>>> +++ b/board/ti/panda/panda.c
>>>>>>> @@ -122,6 +122,30 @@ int get_board_revision(void)
>>>>>>> return board_id;
>>>>>>> }
>>>>>>>
>>>>>>> +/*
>>>>>>> +* Routine: is_panda_es_rev_b3
>>>>>>> +* Description: Detect if we are running on B3 version of ES panda
>> board,
>>>>>>> +* This can be done by reading the level of GPIO 171
>>>>>>> +* and checking the processor revisions.
>>>>>>> +* GPIO171: 1 => Panda ES Rev B3
>>>>>>> +*/
>>>>>>> +u8 is_panda_es_rev_b3(void)
>>>>>>> +{
>>>>>>> + int processor_rev = omap_revision();
>>>>>>> + int ret = 0;
>>>>>>> +
>>>>>>> + if ((processor_rev >= OMAP4460_ES1_0 &&
>>>>>>> + processor_rev <= OMAP4460_ES1_1)) {
>>>>>>> +
>>>>>>> + /* Setup the mux for the common board ID pins
>> (gpio 171) */
>>>>>>> + writew((IEN | M3),
>> (*ctrl)->control_padconf_core_base + UNIPRO_TX0);
>>>>>>> +
>>>>>>> + /* if processor_rev is panda ES and GPIO171 is 1,
>> it is rev b3 */
>>>>>>> + ret = gpio_get_value(PANDA_BOARD_ID_2_GPIO);
>>>>>>> + }
>>>>>>> + return ret;
>>>>>>> +}
>>>>>>> +
>>>>>>> /**
>>>>>>> * @brief misc_init_r - Configure Panda board specific configurations
>>>>>>> * such as power configurations, ethernet initialization as phase2 of
>>>>
>>>> This isn't right. What I was saying is that board/ti/panda/panda.c
>>>> needs to provide its own emif_get_reg_dump function, which will (as
>>>> designed) override the current one from
>>>> arch/arm/cpu/armv7/omap4/sdram_elpida.c
>>>>
>>>>
>>>>> Any problem to have visibility of emif_regs array of lpddr?
>
> Things that need exposing so that we can do what was intended before
> should be exposed, in <asm/arch-omap4/sys_proto.h> I think.
>
>
> Hi Tom, Michel,
>
> Thanks for your feedback on this.
>
> We had implemented override of "emif_get_reg_dump" function in panda.c.
> However, we thought checking detection of pandaboard in sdram_elpida.c
> be smaller change and it was also under omap4. However, now I realized
> after discussing that this may break in case of non panda.c OMAP4 boards.
>
> Based on your feedback,we are going to correct it like below. I am
> trying to explain it in brief:
>
> 1) We are going to extern emif_regs in <asm/arch-omap4/sys_proto.h>, so
> that we can access them in panda.c
> #ifdef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
> extern const struct emif_regs emif_regs_elpida_200_mhz_2cs;
> extern const struct emif_regs emif_regs_elpida_380_mhz_1cs;
> extern const struct emif_regs emif_regs_elpida_400_mhz_1cs;
> extern const struct emif_regs emif_regs_elpida_400_mhz_2cs;
> #endif
Minor nit, don't protect externs with #ifdef, that's not required.
Otherwise, sounds like a good plan, thanks.
- --
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBAgAGBQJShR43AAoJENk4IS6UOR1WZH4P+wTVrxdCNuvPVIhos2l7ilwR
yY/QJaPZ2KMlIAHkS56AGe1EYW+LvoVOgrocmYiTq4FgFbeDwEraJ9+Sqaeghg/+
pyTlvbLXjTUuipfe8G8sKFFeTMlRQSDA4xIsDNR05cU3NcC2IvUrYA8IaWG/b4cE
FndWWAPOqnJ3ZQmzDgOtuMwmBm0kkhKJ/5eobzhW/eReS/d6SD9A0GZQ9VOCmulf
/bRIyebcq0/HXpzL9TMaBp5z+48e3TE/ANIL9TnaTQUwcCErGsJ8JcJUQ50hrCVf
mqv/rrH38FSI2B9ZoejcnpadmArHL2wLY+PQlyerS3tmeZ2BUVYE3ex5/9aXg32b
HJxd+9YgHyAtYNym92X08uXmtLv7eKnN65TR89A8pWqwNuhfsBZIPjNh0zCDJaY6
nGupJIU/XKBACJsnSaiQ08FfXjasBTcZe5XZEOxMU6/FOiYs9uqJGy4XoeWFONrN
w4SNryORZmdggAuSD/OPKTeZWECXI2AES0O1gHHZj3dUx5S0009sZBQ2odJDkrD+
ZBMF60y8DNBAgImCyL4SOaOcX8iPwktTc/mj2eQyPSbS8oEjJEuCO5a76MaVrc1m
kkFiuxjmURn3J23z6wByyvaVKw2ElQL4vmFCvaDAP48SKGVdtEJlLDDpgA4xSOjs
TL1otD20nlVXUh/Coz/D
=IXue
-----END PGP SIGNATURE-----
More information about the U-Boot
mailing list