Merge tag 'tpm-030822' of https://source.denx.de/u-boot/custodians/u-boot-tpm
[platform/kernel/u-boot.git] / drivers / ddr / fsl / Kconfig
index 1b73df8..22400a9 100644 (file)
@@ -2,14 +2,22 @@ config SYS_FSL_DDR
        bool
        help
          Select Freescale General DDR driver, shared between most Freescale
-         PowerPC- based SoCs (such as mpc83xx, mpc85xx, mpc86xx) and ARM-
-         based Layerscape SoCs (such as ls2080a).
+         PowerPC- based SoCs (such as mpc83xx, mpc85xx and ARM- based
+         Layerscape SoCs (such as ls2080a).
 
 config SYS_FSL_MMDC
        bool
        help
          Select Freescale Multi Mode DDR controller (MMDC).
 
+config SYS_FSL_DDR_EMU
+       bool
+       help
+         Specify emulator support for DDR. Some DDR features such as deskew
+         training are not available.
+
+if SYS_FSL_DDR || SYS_FSL_MMDC
+
 config SYS_FSL_DDR_BE
        bool
        help
@@ -41,13 +49,18 @@ config SYS_NUM_DDR_CTLRS
                        ARCH_T4240
        default 2 if    ARCH_B4860      || \
                        ARCH_BSC9132    || \
-                       ARCH_MPC8572    || \
-                       ARCH_MPC8641    || \
                        ARCH_P4080      || \
-                       ARCH_P5020      || \
                        ARCH_P5040      || \
                        ARCH_LX2160A    || \
-                       ARCH_T4160
+                       ARCH_LX2162A
+       default 1
+
+config CHIP_SELECTS_PER_CTRL
+       int "Number of chip selects per controller"
+       default 4
+
+config DIMM_SLOTS_PER_CTLR
+       int "Number of DIMM slots per controller"
        default 1
 
 config SYS_FSL_DDR_VER
@@ -80,12 +93,6 @@ config SYS_FSL_DDRC_GEN2
        help
          Enable Freescale DDR2 controller.
 
-config SYS_FSL_DDRC_86XX_GEN2
-       bool
-       depends on MPC86xx
-       help
-         Enable Freescale DDR2 controller for MPC86xx SoCs.
-
 config SYS_FSL_DDRC_GEN3
        bool
        depends on PPC
@@ -125,32 +132,177 @@ choice
 config SYS_FSL_DDR4
        bool "Freescale DDR4 controller"
        depends on SYS_FSL_HAS_DDR4
+       imply DDR_SPD
        select SYS_FSL_DDRC_GEN4
 
 config SYS_FSL_DDR3
        bool "Freescale DDR3 controller"
        depends on SYS_FSL_HAS_DDR3
+       imply DDR_SPD
        select SYS_FSL_DDRC_GEN3 if PPC
        select SYS_FSL_DDRC_ARM_GEN3 if ARM
 
 config SYS_FSL_DDR2
        bool "Freescale DDR2 controller"
        depends on SYS_FSL_HAS_DDR2
+       imply DDR_SPD
        select SYS_FSL_DDRC_GEN2 if (!MPC86xx && !SYS_FSL_DDRC_GEN3)
-       select SYS_FSL_DDRC_86XX_GEN2 if MPC86xx
 
 config SYS_FSL_DDR1
        bool "Freescale DDR1 controller"
        depends on SYS_FSL_HAS_DDR1
+       imply DDR_SPD
        select SYS_FSL_DDRC_GEN1
 
 endchoice
 
 endmenu
 
+config FSL_DMA
+       def_bool y if DDR_ECC && MPC85xx && !ECC_INIT_VIA_DDRCONTROLLER
+
+config DDR_ECC
+       bool "ECC DDR memory support"
+
+config DDR_ECC_CMD
+       bool "Access the ECC features of the memory controller"
+       depends on DDR_ECC && MPC83xx
+       default y
+
+config ECC_INIT_VIA_DDRCONTROLLER
+       bool "DDR Memory controller initializes memory."
+       help
+         Use the DDR controller to auto initialize memory.  If not enabled,
+         the DMA controller is responsible for doing this.
+
+config SYS_DDR_RAW_TIMING
+       bool "Get DDR timing information from something other than SPD"
+       help
+         This is common with soldered DDR chips onboard without SPD. DDR raw
+         timing parameters are extracted from datasheet and hard-coded into
+         header files or board specific files.
+
+config SYS_FSL_DDR_INTLV_256B
+       bool "Enforce 256-byte interleave"
+       help
+         DDR controller interleaving on 256-byte. This is a special
+         interleaving mode, handled by Dickens for Freescale layerscape SoCs
+         with ARM core.
+
+endif
+
+menu "PowerPC / M68K initial memory controller definitions (FLASH, SDRAM, etc)"
+       depends on MCF52x2 || MPC8xx || MPC83xx || MPC85xx
+
+config SYS_BR0_PRELIM_BOOL
+       bool "Define Bank 0"
+
+config SYS_BR0_PRELIM
+       hex "Preliminary value for BR0"
+       depends on SYS_BR0_PRELIM_BOOL
+
+config SYS_OR0_PRELIM
+       hex "Preliminary value for OR0"
+       depends on SYS_BR0_PRELIM_BOOL
+
+config SYS_BR1_PRELIM_BOOL
+       bool "Define Bank 1"
+
+config SYS_BR1_PRELIM
+       hex "Preliminary value for BR1"
+       depends on SYS_BR1_PRELIM_BOOL
+
+config SYS_OR1_PRELIM
+       hex "Preliminary value for OR1"
+       depends on SYS_BR1_PRELIM_BOOL
+
+config SYS_BR2_PRELIM_BOOL
+       bool "Define Bank 2"
+
+config SYS_BR2_PRELIM
+       hex "Preliminary value for BR2"
+       depends on SYS_BR2_PRELIM_BOOL
+
+config SYS_OR2_PRELIM
+       hex "Preliminary value for OR2"
+       depends on SYS_BR2_PRELIM_BOOL
+
+config SYS_BR3_PRELIM_BOOL
+       bool "Define Bank 3"
+
+config SYS_BR3_PRELIM
+       hex "Preliminary value for BR3"
+       depends on SYS_BR3_PRELIM_BOOL
+
+config SYS_OR3_PRELIM
+       hex "Preliminary value for OR3"
+       depends on SYS_BR3_PRELIM_BOOL
+
+config SYS_BR4_PRELIM_BOOL
+       bool "Define Bank 4"
+
+config SYS_BR4_PRELIM
+       hex "Preliminary value for BR4"
+       depends on SYS_BR4_PRELIM_BOOL
+
+config SYS_OR4_PRELIM
+       hex "Preliminary value for OR4"
+       depends on SYS_BR4_PRELIM_BOOL
+
+config SYS_BR5_PRELIM_BOOL
+       bool "Define Bank 5"
+
+config SYS_BR5_PRELIM
+       hex "Preliminary value for BR5"
+       depends on SYS_BR5_PRELIM_BOOL
+
+config SYS_OR5_PRELIM
+       hex "Preliminary value for OR5"
+       depends on SYS_BR5_PRELIM_BOOL
+
+config SYS_BR6_PRELIM_BOOL
+       bool "Define Bank 6"
+
+config SYS_BR6_PRELIM
+       hex "Preliminary value for BR6"
+       depends on SYS_BR6_PRELIM_BOOL
+
+config SYS_OR6_PRELIM
+       hex "Preliminary value for OR6"
+       depends on SYS_BR6_PRELIM_BOOL
+
+config SYS_BR7_PRELIM_BOOL
+       bool "Define Bank 7"
+
+config SYS_BR7_PRELIM
+       hex "Preliminary value for BR7"
+       depends on SYS_BR7_PRELIM_BOOL
+
+config SYS_OR7_PRELIM
+       hex "Preliminary value for OR7"
+       depends on SYS_BR7_PRELIM_BOOL
+endmenu
+
+if TARGET_P1010RDB_PA || TARGET_P1010RDB_PB || TARGET_P1020RDB_PC || \
+       TARGET_P1020RDB_PD || TARGET_P2020RDB
+
+config COMMON_INIT_DDR
+       bool "Do not have a TLB entry to cover common DDR init with serial presence detect (SPD)"
+
+config SPL_COMMON_INIT_DDR
+       bool "Do not have a TLB entry to cover common DDR init with SPD in SPL"
+
+config TPL_COMMON_INIT_DDR
+       bool "Do not have a TLB entry to cover common DDR init with SPD in TPL"
+
+endif
+
 config SYS_FSL_ERRATUM_A008378
        bool
 
+config SYS_FSL_ERRATUM_A008109
+       bool
+
 config SYS_FSL_ERRATUM_A008511
        bool