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

Robert Nelson robertcnelson at gmail.com
Thu Nov 14 16:29:59 CET 2013


On Thu, Nov 14, 2013 at 4:06 AM, Hardik <hardik.patel at volansystech.com> wrote:
> From: Hardik Patel <hardik.patel at volansystech.com>
>
> Signed-off-by: Hardik Patel <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


Nice, this works great on my Panda ES B3.

Tested-by: Robert Nelson <robertcnelson at gmai.com>


U-Boot SPL 2013.10-00339-g712d969 (Nov 14 2013 - 09:21:19)
OMAP4460 ES1.1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
reading u-boot.img
reading u-boot.img


U-Boot 2013.10-00339-g712d969 (Nov 14 2013 - 09:21:19)

CPU  : OMAP4460 ES1.1
Board: OMAP4 Panda
I2C:   ready
DRAM:  1 GiB
MMC:   OMAP SD/MMC: 0
Using default environment

BTW, should be bump the system enviroment board_name, that way it
loads a different kernel *.dtb? (omap4-panda-es-b3.dtb)

As right now it'll load the omap4-panda-es.dtb which currently uses
both cs lines on the emif driver..

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap4-panda-common.dtsi#n373

Regards,

-- 
Robert Nelson
http://www.rcn-ee.com/


More information about the U-Boot mailing list