-----Original Message-----
From: Kumar Gala [mailto:ga...@kernel.crashing.org] 
Sent: Thursday, October 08, 2009 7:33 PM
To: Dudhat Dipen-B09055
Cc: u-boot@lists.denx.de
Subject: Re: [U-Boot] [PATCH v2 3/3] ppc/p1_p1_RDB: DDR Relocation
support for NAND/SD/eSPI Boot

[snip]

> --- a/nand_spl/board/freescale/p1_p2_rdb/nand_boot.c
> +++ b/nand_spl/board/freescale/p1_p2_rdb/nand_boot.c
> @@ -39,6 +39,60 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> +#if !defined(CONFIG_L2_RELOC)
> +#define CONFIG_SYS_DDR_CS0_BNDS              0x0000003F
> +#define CONFIG_SYS_DDR_CS0_CONFIG    0x80014202
> +#define CONFIG_SYS_DDR_CS0_CONFIG_2  0x00000000
> +#define CONFIG_SYS_DDR_CONTROL          0x43000000      /* Type =  
> DDR2*/
> +#define CONFIG_SYS_DDR_CONTROL_2        0x24401000
> +
> +#define CONFIG_SYS_DDR_TIMING_3_667  0x00030000
> +#define CONFIG_SYS_DDR_TIMING_0_667  0x55770802
> +#define CONFIG_SYS_DDR_TIMING_1_667  0x5f599543
> +#define CONFIG_SYS_DDR_TIMING_2_667  0x0fa074d1
> +#define CONFIG_SYS_DDR_CLK_CTRL_667  0x02800000
> +#define CONFIG_SYS_DDR_MODE_1_667    0x00040852
> +#define CONFIG_SYS_DDR_MODE_2_667    0x00000000
> +#define CONFIG_SYS_DDR_INTERVAL_667  0x0a280100
> +
> +#define udelay(x) {int i, j; for (i = 0; i < x; i++) for (j = 0; j  
> < 10000; j++); }
> +
> +void initsdram(void)
> +{
> +
> +     volatile ccsr_ddr_t *ddr= (ccsr_ddr_t
*)CONFIG_SYS_MPC85xx_DDR_ADDR;
> +     int d_init, dbw;
> +     volatile ccsr_gpio_t *pgpio = (void *) 
> (CONFIG_SYS_MPC85xx_GPIO_ADDR);
> +     unsigned int ddr_size;
> +     sys_info_t sysinfo;
> +     phys_size_t dram_size = 0;
> +
> +     set_next_law(0,LAW_SIZE_1G , LAW_TRGT_IF_DDR_1);

Can we not use fsl_ddr_set_memctl_regs()?  If not these should be  
using out_be32()

Why can't we use set_next_law / set_law function here??? 
I mean at the end they are using out_be32() for setting up LAW
registers.. 

- Dipen


> +
> +     ddr->cs0_bnds = CONFIG_SYS_DDR_CS0_BNDS;
> +     ddr->cs0_config = CONFIG_SYS_DDR_CS0_CONFIG;
> +     ddr->cs0_config_2 = CONFIG_SYS_DDR_CS0_CONFIG_2;
> +
> +     ddr->timing_cfg_3 = CONFIG_SYS_DDR_TIMING_3_667;
> +     ddr->timing_cfg_0 = CONFIG_SYS_DDR_TIMING_0_667;
> +     ddr->timing_cfg_1 = CONFIG_SYS_DDR_TIMING_1_667;
> +     ddr->timing_cfg_2 = CONFIG_SYS_DDR_TIMING_2_667;
> +     ddr->sdram_mode = CONFIG_SYS_DDR_MODE_1_667;
> +     ddr->sdram_mode_2 = CONFIG_SYS_DDR_MODE_2_667;
> +     ddr->sdram_interval = CONFIG_SYS_DDR_INTERVAL_667;
> +     ddr->sdram_clk_cntl = CONFIG_SYS_DDR_CLK_CTRL_667;
> +     ddr->sdram_cfg = CONFIG_SYS_DDR_CONTROL;
> +     ddr->sdram_cfg_2 = CONFIG_SYS_DDR_CONTROL_2;
> +
> +     asm("sync;isync");
> +
> +     udelay(500);
> +
> +     ddr->sdram_cfg |= 0x80000000;
> +
> +}
> +#endif
> +
> void board_init_f(ulong bootflag)
> {
>       uint plat_ratio, bus_clk, sys_clk;
> @@ -69,6 +123,11 @@ void board_init_f(ulong bootflag)
>
>       puts("\nNAND boot... ");
>
> +#ifndef CONFIG_L2_RELOC
> +     /* board specific DDR initialization */
> +     initsdram();
> +#endif
> +
>       /* copy code to DDR and jump to it - this should not return */
>       /* NOTE - code has to be copied out of NAND buffer before
>        * other blocks can be read.
> -- 
> 1.5.6.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to