From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Thu, 14 Nov 2013 14:02:15 -0500 Subject: [U-Boot] [[PATCH v2]pandaboard: 1/1] Modification of Elpida DDR2 RAM for Pandaboard-ES Rev B3 In-Reply-To: References: <1382715750-10363-1-git-send-email-hardik.patel@volansystech.com> <1382715750-10363-2-git-send-email-hardik.patel@volansystech.com> <526E5DE6.1040804@ti.com> <526E60F9.7010106@ti.com> <526FDA4F.6060609@ti.com> <1384423612-18697-2-git-send-email-hardik.patel@volansystech.com> <5284F81F.70306@ti.com> <5284FB33.6090005@ti.com> Message-ID: <52851E37.7080701@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de -----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 > wrote: > On 11/14/2013 11:28 AM, Michael Trimarchi wrote: >>>> Hi >>>> >>>> On Thu, Nov 14, 2013 at 5:19 PM, Tom Rini > > wrote: >>>> On 11/14/2013 05:06 AM, Hardik wrote: >>>>>>> From: Hardik Patel > > >>>>>>> >>>>>>> Signed-off-by: Hardik Patel > > >>>>>>> --- >>>>>>> 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 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 , 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-----