
-----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@ti.com mailto:trini@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@ti.com
mailto:trini@ti.com> wrote:
On 11/14/2013 05:06 AM, Hardik wrote:
> From: Hardik Patel <hardik.patel@volansystech.com
mailto:hardik.patel@volansystech.com>
> > Signed-off-by: Hardik Patel <hardik.patel@volansystech.com
mailto:hardik.patel@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:
- 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