
On Wed, 2013-10-30 at 19:07 -0700, York Sun wrote:
Freescale DDR driver has been used for mpc83xx, mpc85xx, mpc86xx SoCs. The similar DDR controllers will be used for ARM-based SoCs.
Signed-off-by: York Sun yorksun@freescale.com
Makefile | 4 +- README | 39 ++++++++++++++-- arch/powerpc/cpu/mpc83xx/Makefile | 8 +--- arch/powerpc/cpu/mpc85xx/Makefile | 42 ----------------- arch/powerpc/cpu/mpc85xx/cpu.c | 16 +++---- arch/powerpc/cpu/mpc85xx/mp.c | 2 +- arch/powerpc/cpu/mpc86xx/Makefile | 3 -- arch/powerpc/cpu/mpc8xxx/ddr/Makefile | 45 ------------------ arch/powerpc/include/asm/config.h | 6 +++ arch/powerpc/include/asm/config_mpc85xx.h | 13 ++++++ arch/powerpc/include/asm/config_mpc86xx.h | 2 + arch/powerpc/include/asm/immap_83xx.h | 2 +- arch/powerpc/include/asm/immap_85xx.h | 6 +-- arch/powerpc/include/asm/immap_86xx.h | 4 +- board/exmeritus/hww1u1a/ddr.c | 4 +- board/exmeritus/hww1u1a/hww1u1a.c | 4 +- board/freescale/b4860qds/ddr.c | 6 +-- board/freescale/bsc9131rdb/ddr.c | 4 +- board/freescale/bsc9131rdb/spl_minimal.c | 4 +- board/freescale/bsc9132qds/bsc9132qds.c | 4 +- board/freescale/bsc9132qds/ddr.c | 4 +- board/freescale/bsc9132qds/spl_minimal.c | 4 +- board/freescale/c29xpcie/ddr.c | 4 +- board/freescale/corenet_ds/ddr.c | 4 +- board/freescale/corenet_ds/eth_p4080.c | 2 +- board/freescale/corenet_ds/p3041ds_ddr.c | 2 +- board/freescale/corenet_ds/p4080ds_ddr.c | 2 +- board/freescale/corenet_ds/p5020ds_ddr.c | 2 +- board/freescale/corenet_ds/p5040ds_ddr.c | 2 +- board/freescale/mpc8349emds/ddr.c | 4 +- board/freescale/mpc8349emds/mpc8349emds.c | 2 +- board/freescale/mpc8536ds/ddr.c | 4 +- board/freescale/mpc8536ds/mpc8536ds.c | 2 +- board/freescale/mpc8540ads/ddr.c | 4 +- board/freescale/mpc8540ads/mpc8540ads.c | 4 +- board/freescale/mpc8541cds/ddr.c | 4 +- board/freescale/mpc8541cds/mpc8541cds.c | 2 +- board/freescale/mpc8544ds/ddr.c | 4 +- board/freescale/mpc8544ds/mpc8544ds.c | 2 +- board/freescale/mpc8548cds/ddr.c | 4 +- board/freescale/mpc8548cds/mpc8548cds.c | 2 +- board/freescale/mpc8555cds/ddr.c | 4 +- board/freescale/mpc8555cds/mpc8555cds.c | 2 +- board/freescale/mpc8560ads/ddr.c | 4 +- board/freescale/mpc8560ads/mpc8560ads.c | 4 +- board/freescale/mpc8568mds/ddr.c | 4 +- board/freescale/mpc8568mds/mpc8568mds.c | 2 +- board/freescale/mpc8569mds/ddr.c | 4 +- board/freescale/mpc8569mds/mpc8569mds.c | 4 +- board/freescale/mpc8572ds/ddr.c | 4 +- board/freescale/mpc8572ds/mpc8572ds.c | 2 +- board/freescale/mpc8610hpcd/ddr.c | 4 +- board/freescale/mpc8610hpcd/mpc8610hpcd.c | 2 +- board/freescale/mpc8641hpcn/ddr.c | 4 +- board/freescale/mpc8641hpcn/mpc8641hpcn.c | 2 +- board/freescale/p1010rdb/ddr.c | 4 +- board/freescale/p1010rdb/spl_minimal.c | 4 +- board/freescale/p1022ds/ddr.c | 4 +- board/freescale/p1022ds/p1022ds.c | 2 +- board/freescale/p1022ds/spl_minimal.c | 2 +- board/freescale/p1023rdb/ddr.c | 4 +- board/freescale/p1023rdb/p1023rdb.c | 2 +- board/freescale/p1023rds/p1023rds.c | 4 +- board/freescale/p1_p2_rdb/ddr.c | 2 +- board/freescale/p1_p2_rdb_pc/ddr.c | 4 +- board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c | 2 +- board/freescale/p1_p2_rdb_pc/spl_minimal.c | 2 +- board/freescale/p1_twr/ddr.c | 4 +- board/freescale/p1_twr/p1_twr.c | 2 +- board/freescale/p2020come/ddr.c | 4 +- board/freescale/p2020ds/ddr.c | 4 +- board/freescale/p2020ds/p2020ds.c | 4 +- board/freescale/p2041rdb/ddr.c | 4 +- board/freescale/t1040qds/ddr.c | 4 +- board/freescale/t4qds/ddr.c | 4 +- board/freescale/t4qds/eth.c | 2 +- board/gdsys/p1022/controlcenterd.c | 2 +- board/gdsys/p1022/ddr.c | 4 +- board/keymile/kmp204x/ddr.c | 4 +- board/sbc8548/ddr.c | 6 +-- board/sbc8548/sbc8548.c | 2 +- board/sbc8641d/ddr.c | 4 +- board/sbc8641d/sbc8641d.c | 2 +- board/socrates/ddr.c | 4 +- board/socrates/sdram.c | 4 +- board/stx/stxgp3/ddr.c | 4 +- board/stx/stxgp3/stxgp3.c | 2 +- board/stx/stxssa/ddr.c | 4 +- board/stx/stxssa/stxssa.c | 2 +- board/xes/xpedite517x/ddr.c | 4 +- board/xes/xpedite517x/xpedite517x.c | 2 +- board/xes/xpedite520x/ddr.c | 4 +- board/xes/xpedite537x/ddr.c | 4 +- board/xes/xpedite550x/ddr.c | 4 +- drivers/ddr/fsl/Makefile | 49 ++++++++++++++++++++ .../mpc8xxx/ddr => drivers/ddr/fsl}/ctrl_regs.c | 8 ++-- .../ddr => drivers/ddr/fsl}/ddr1_dimm_params.c | 4 +- .../ddr => drivers/ddr/fsl}/ddr2_dimm_params.c | 4 +- .../ddr => drivers/ddr/fsl}/ddr3_dimm_params.c | 4 +- .../mpc8xxx/ddr => drivers/ddr/fsl}/interactive.c | 5 +- .../ddr/fsl}/lc_common_dimm_params.c | 4 +- .../cpu/mpc8xxx/ddr => drivers/ddr/fsl}/main.c | 4 +- .../ddr/fsl/mpc85xx_ddr_gen1.c | 6 +-- .../ddr/fsl/mpc85xx_ddr_gen2.c | 4 +- .../ddr/fsl/mpc85xx_ddr_gen3.c | 16 +++---- .../ddr-8641.c => drivers/ddr/fsl/mpc86xx_ddr.c | 6 +-- .../cpu/mpc8xxx/ddr => drivers/ddr/fsl}/options.c | 4 +- .../cpu/mpc8xxx/ddr => drivers/ddr/fsl}/util.c | 10 ++-- .../mpc8xxx/ddr => include}/common_timing_params.h | 0 .../cpu/mpc8xxx/ddr/ddr.h => include/fsl_ddr.h | 6 +-- .../include/asm => include}/fsl_ddr_dimm_params.h | 0 .../include/asm => include}/fsl_ddr_sdram.h | 0 nand_spl/board/freescale/mpc8569mds/nand_boot.c | 2 +- nand_spl/board/freescale/p1023rds/nand_boot.c | 4 +- nand_spl/board/freescale/p1_p2_rdb/nand_boot.c | 2 +- spl/Makefile | 2 +- 116 files changed, 304 insertions(+), 298 deletions(-) delete mode 100644 arch/powerpc/cpu/mpc8xxx/ddr/Makefile create mode 100644 drivers/ddr/fsl/Makefile rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/ctrl_regs.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/ddr1_dimm_params.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/ddr2_dimm_params.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/ddr3_dimm_params.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/interactive.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/lc_common_dimm_params.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/main.c (99%) rename arch/powerpc/cpu/mpc85xx/ddr-gen1.c => drivers/ddr/fsl/mpc85xx_ddr_gen1.c (93%) rename arch/powerpc/cpu/mpc85xx/ddr-gen2.c => drivers/ddr/fsl/mpc85xx_ddr_gen2.c (96%) rename arch/powerpc/cpu/mpc85xx/ddr-gen3.c => drivers/ddr/fsl/mpc85xx_ddr_gen3.c (97%) rename arch/powerpc/cpu/mpc86xx/ddr-8641.c => drivers/ddr/fsl/mpc86xx_ddr.c (95%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/options.c (99%) rename {arch/powerpc/cpu/mpc8xxx/ddr => drivers/ddr/fsl}/util.c (96%) rename {arch/powerpc/cpu/mpc8xxx/ddr => include}/common_timing_params.h (100%) rename arch/powerpc/cpu/mpc8xxx/ddr/ddr.h => include/fsl_ddr.h (97%) rename {arch/powerpc/include/asm => include}/fsl_ddr_dimm_params.h (100%) rename {arch/powerpc/include/asm => include}/fsl_ddr_sdram.h (100%)
diff --git a/Makefile b/Makefile index 2d18d27..4dd2e2e 100644 --- a/Makefile +++ b/Makefile @@ -291,19 +291,17 @@ LIBS-y += drivers/spi/libspi.o LIBS-y += drivers/dfu/libdfu.o ifeq ($(CPU),mpc83xx) LIBS-y += drivers/qe/libqe.o -LIBS-y += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o LIBS-y += arch/powerpc/cpu/mpc8xxx/lib8xxx.o endif ifeq ($(CPU),mpc85xx) LIBS-y += drivers/qe/libqe.o LIBS-y += drivers/net/fm/libfm.o -LIBS-y += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o LIBS-y += arch/powerpc/cpu/mpc8xxx/lib8xxx.o endif ifeq ($(CPU),mpc86xx) -LIBS-y += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o LIBS-y += arch/powerpc/cpu/mpc8xxx/lib8xxx.o endif +LIBS-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/libddr.o LIBS-y += drivers/rtc/librtc.o LIBS-y += drivers/serial/libserial.o LIBS-y += drivers/sound/libsound.o diff --git a/README b/README index 91c3ac0..fc5107f 100644 --- a/README +++ b/README @@ -423,16 +423,45 @@ The following options need to be configured: CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT This value denotes start offset of DSP CCSR space.
CONFIG_SYS_FSL_DDR_EMU
Specify emulator support for DDR. Some DDR features such as
deskew training are not available.
Generic CPU options: CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
Defines the endianess of the CPU. Implementation of those values is arch specific.
CONFIG_SYS_FSL_DDR
Freescale DDR driver in use. This type of DDR controller is
found in mpc83xx, mpc85xx, mpc86xx as well as some ARM core
SoCs.
CONFIG_SYS_FSL_DDR_ADDR
Freescale DDR memory-mapped register base.
CONFIG_SYS_FSL_DDR_EMU
Specify emulator support for DDR. Some DDR features such as
deskew training are not available.
CONFIG_SYS_FSL_DDR_PPC_GEN1
Freescale DDR1 controller.
CONFIG_SYS_FSL_DDR_PPC_GEN2
Freescale DDR2 controller.
CONFIG_SYS_FSL_DDR_PPC_GEN3
Freescale DDR3 controller.
Why is there "PPC" in the name if this is to be common for PPC and ARM? The description is more generic than the config symbol...
CONFIG_FSL_DDR1
User config to use DDR1. It can be enabled for SoCs with
Freescale DDR1 or DDR2 controllers.
CONFIG_FSL_DDR2
User config to use DDR2. It can be eanbeld for SoCs with
Freescale DDR2 or DDR3 controllers.
CONFIG_FSL_DDR3
User config to use DDR3. It can be enabled for SoCs with
Freescale DDR3 controllers.
How is this user config, rather than a description of the type of DDR that is present?
diff --git a/arch/powerpc/include/asm/config_mpc86xx.h b/arch/powerpc/include/asm/config_mpc86xx.h index 694b110..4f9b225 100644 --- a/arch/powerpc/include/asm/config_mpc86xx.h +++ b/arch/powerpc/include/asm/config_mpc86xx.h @@ -7,6 +7,8 @@ #ifndef _ASM_MPC86xx_CONFIG_H_ #define _ASM_MPC86xx_CONFIG_H_
+#define CONFIG_SYS_FSL_DDR_86XX
This doesn't qualify as one of the "PPC_GEN" controllers?
-Scott