[U-Boot] [PATCH] am335x_evm / gumstix pepper: Correct DDR settings
Ash Charles
ash at gumstix.com
Wed Jul 9 01:38:36 CEST 2014
Works for me on the Pepper board. Thanks for the fix!
Tested-By: Ash Charles <ashcharles at gmail.com>
On Mon, Jul 7, 2014 at 6:40 PM, Tom Rini <trini at ti.com> wrote:
> As noted by clang, we have been shifting certain values out of 32bit
> range when setting some DDR registers. Upon further inspection these
> had been touching reserved fields (and having no impact). These came in
> from historical bring-up code and can be discarded. Similarly, we had
> been declaring some fields as 0 when they will be initialized that way.
> Tested on Beaglebone White.
>
> Reported-by: Jeroen Hofstee <jeroen at myspectrum.nl>
> Cc: Ash Charles <ash at gumstix.com>
> Signed-off-by: Tom Rini <trini at ti.com>
> ---
> arch/arm/include/asm/arch-am33xx/ddr_defs.h | 4 ----
> board/gumstix/pepper/board.c | 30 +++------------------------
> board/ti/am335x/board.c | 30 +++------------------------
> 3 files changed, 6 insertions(+), 58 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-am33xx/ddr_defs.h b/arch/arm/include/asm/arch-am33xx/ddr_defs.h
> index 4d89952..97bbfe2 100644
> --- a/arch/arm/include/asm/arch-am33xx/ddr_defs.h
> +++ b/arch/arm/include/asm/arch-am33xx/ddr_defs.h
> @@ -33,11 +33,7 @@
> #define MT47H128M16RT25E_EMIF_SDCFG 0x41805332
> #define MT47H128M16RT25E_EMIF_SDREF 0x0000081a
> #define MT47H128M16RT25E_RATIO 0x80
> -#define MT47H128M16RT25E_INVERT_CLKOUT 0x00
> #define MT47H128M16RT25E_RD_DQS 0x12
> -#define MT47H128M16RT25E_WR_DQS 0x00
> -#define MT47H128M16RT25E_PHY_WRLVL 0x00
> -#define MT47H128M16RT25E_PHY_GATELVL 0x00
> #define MT47H128M16RT25E_PHY_WR_DATA 0x40
> #define MT47H128M16RT25E_PHY_FIFO_WE 0x80
> #define MT47H128M16RT25E_IOCTRL_VALUE 0x18B
> diff --git a/board/gumstix/pepper/board.c b/board/gumstix/pepper/board.c
> index 75aac49..f644f81 100644
> --- a/board/gumstix/pepper/board.c
> +++ b/board/gumstix/pepper/board.c
> @@ -34,41 +34,17 @@ DECLARE_GLOBAL_DATA_PTR;
>
> #ifdef CONFIG_SPL_BUILD
> static const struct ddr_data ddr2_data = {
> - .datardsratio0 = ((MT47H128M16RT25E_RD_DQS<<30) |
> - (MT47H128M16RT25E_RD_DQS<<20) |
> - (MT47H128M16RT25E_RD_DQS<<10) |
> - (MT47H128M16RT25E_RD_DQS<<0)),
> - .datawdsratio0 = ((MT47H128M16RT25E_WR_DQS<<30) |
> - (MT47H128M16RT25E_WR_DQS<<20) |
> - (MT47H128M16RT25E_WR_DQS<<10) |
> - (MT47H128M16RT25E_WR_DQS<<0)),
> - .datawiratio0 = ((MT47H128M16RT25E_PHY_WRLVL<<30) |
> - (MT47H128M16RT25E_PHY_WRLVL<<20) |
> - (MT47H128M16RT25E_PHY_WRLVL<<10) |
> - (MT47H128M16RT25E_PHY_WRLVL<<0)),
> - .datagiratio0 = ((MT47H128M16RT25E_PHY_GATELVL<<30) |
> - (MT47H128M16RT25E_PHY_GATELVL<<20) |
> - (MT47H128M16RT25E_PHY_GATELVL<<10) |
> - (MT47H128M16RT25E_PHY_GATELVL<<0)),
> - .datafwsratio0 = ((MT47H128M16RT25E_PHY_FIFO_WE<<30) |
> - (MT47H128M16RT25E_PHY_FIFO_WE<<20) |
> - (MT47H128M16RT25E_PHY_FIFO_WE<<10) |
> - (MT47H128M16RT25E_PHY_FIFO_WE<<0)),
> - .datawrsratio0 = ((MT47H128M16RT25E_PHY_WR_DATA<<30) |
> - (MT47H128M16RT25E_PHY_WR_DATA<<20) |
> - (MT47H128M16RT25E_PHY_WR_DATA<<10) |
> - (MT47H128M16RT25E_PHY_WR_DATA<<0)),
> + .datardsratio0 = MT47H128M16RT25E_RD_DQS,
> + .datafwsratio0 = MT47H128M16RT25E_PHY_FIFO_WE,
> + .datawrsratio0 = MT47H128M16RT25E_PHY_WR_DATA,
> };
>
> static const struct cmd_control ddr2_cmd_ctrl_data = {
> .cmd0csratio = MT47H128M16RT25E_RATIO,
> - .cmd0iclkout = MT47H128M16RT25E_INVERT_CLKOUT,
>
> .cmd1csratio = MT47H128M16RT25E_RATIO,
> - .cmd1iclkout = MT47H128M16RT25E_INVERT_CLKOUT,
>
> .cmd2csratio = MT47H128M16RT25E_RATIO,
> - .cmd2iclkout = MT47H128M16RT25E_INVERT_CLKOUT,
> };
>
> static const struct emif_regs ddr2_emif_reg_data = {
> diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
> index da780ed..d81eec9 100644
> --- a/board/ti/am335x/board.c
> +++ b/board/ti/am335x/board.c
> @@ -84,41 +84,17 @@ static int read_eeprom(struct am335x_baseboard_id *header)
>
> #ifndef CONFIG_SKIP_LOWLEVEL_INIT
> static const struct ddr_data ddr2_data = {
> - .datardsratio0 = ((MT47H128M16RT25E_RD_DQS<<30) |
> - (MT47H128M16RT25E_RD_DQS<<20) |
> - (MT47H128M16RT25E_RD_DQS<<10) |
> - (MT47H128M16RT25E_RD_DQS<<0)),
> - .datawdsratio0 = ((MT47H128M16RT25E_WR_DQS<<30) |
> - (MT47H128M16RT25E_WR_DQS<<20) |
> - (MT47H128M16RT25E_WR_DQS<<10) |
> - (MT47H128M16RT25E_WR_DQS<<0)),
> - .datawiratio0 = ((MT47H128M16RT25E_PHY_WRLVL<<30) |
> - (MT47H128M16RT25E_PHY_WRLVL<<20) |
> - (MT47H128M16RT25E_PHY_WRLVL<<10) |
> - (MT47H128M16RT25E_PHY_WRLVL<<0)),
> - .datagiratio0 = ((MT47H128M16RT25E_PHY_GATELVL<<30) |
> - (MT47H128M16RT25E_PHY_GATELVL<<20) |
> - (MT47H128M16RT25E_PHY_GATELVL<<10) |
> - (MT47H128M16RT25E_PHY_GATELVL<<0)),
> - .datafwsratio0 = ((MT47H128M16RT25E_PHY_FIFO_WE<<30) |
> - (MT47H128M16RT25E_PHY_FIFO_WE<<20) |
> - (MT47H128M16RT25E_PHY_FIFO_WE<<10) |
> - (MT47H128M16RT25E_PHY_FIFO_WE<<0)),
> - .datawrsratio0 = ((MT47H128M16RT25E_PHY_WR_DATA<<30) |
> - (MT47H128M16RT25E_PHY_WR_DATA<<20) |
> - (MT47H128M16RT25E_PHY_WR_DATA<<10) |
> - (MT47H128M16RT25E_PHY_WR_DATA<<0)),
> + .datardsratio0 = MT47H128M16RT25E_RD_DQS,
> + .datafwsratio0 = MT47H128M16RT25E_PHY_FIFO_WE,
> + .datawrsratio0 = MT47H128M16RT25E_PHY_WR_DATA,
> };
>
> static const struct cmd_control ddr2_cmd_ctrl_data = {
> .cmd0csratio = MT47H128M16RT25E_RATIO,
> - .cmd0iclkout = MT47H128M16RT25E_INVERT_CLKOUT,
>
> .cmd1csratio = MT47H128M16RT25E_RATIO,
> - .cmd1iclkout = MT47H128M16RT25E_INVERT_CLKOUT,
>
> .cmd2csratio = MT47H128M16RT25E_RATIO,
> - .cmd2iclkout = MT47H128M16RT25E_INVERT_CLKOUT,
> };
>
> static const struct emif_regs ddr2_emif_reg_data = {
> --
> 1.7.9.5
More information about the U-Boot
mailing list