return;
        }
 
+       out_be32(&ddr->eor, regs->ddr_eor);
+
        for (i = 0; i < CONFIG_CHIP_SELECTS_PER_CTRL; i++) {
                if (i == 0) {
                        out_be32(&ddr->cs0_bnds, regs->cs[i].bnds);
 
                                );
 }
 
+static void set_ddr_eor(fsl_ddr_cfg_regs_t *ddr, const memctl_options_t *popts)
+{
+       if (popts->addr_hash) {
+               ddr->ddr_eor = 0x40000000;      /* address hash enable */
+               puts("Addess hashing enabled.\n");
+       }
+}
+
 unsigned int
 check_fsl_memctl_config_regs(const fsl_ddr_cfg_regs_t *ddr)
 {
                set_csn_config_2(i, ddr);
        }
 
+       set_ddr_eor(ddr, popts);
+
 #if !defined(CONFIG_FSL_DDR1)
        set_timing_cfg_0(ddr);
 #endif
 
                }
        }
 
+       if (hwconfig_sub("fsl_ddr", "addr_hash")) {
+               if (hwconfig_subarg_cmp("fsl_ddr", "addr_hash", "null"))
+                       popts->addr_hash = 0;
+               else if (hwconfig_subarg_cmp("fsl_ddr", "addr_hash", "true"))
+                       popts->addr_hash = 1;
+       }
+
        if (pdimm[0].n_ranks == 4)
                popts->quad_rank_present = 1;
 
 
        unsigned int ddr_sr_cntr;
        unsigned int ddr_sdram_rcw_1;
        unsigned int ddr_sdram_rcw_2;
+       unsigned int ddr_eor;
 } fsl_ddr_cfg_regs_t;
 
 typedef struct memctl_options_partial_s {
        unsigned int memctl_interleaving;
        unsigned int memctl_interleaving_mode;
        unsigned int ba_intlv_ctl;
+       unsigned int addr_hash;
 
        /* Operational mode parameters */
        unsigned int ECC_mode;   /* Use ECC? */
 
   # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1)
   setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3"
 
-  The above memory controller interleaving and bank interleaving can be mixed. The syntax is
-  setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline,bank_intlv=cs0_cs1"
+Memory controller address hashing
+==================================
+If the DDR controller supports address hashing, it can be enabled by hwconfig.
+
+Syntax is:
+hwconfig=fsl_ddr:addr_hash=true
+
+Combination of hwconfig
+=======================
+Hwconfig can be combined with multiple parameters, for example, on a supported
+platform
+
+hwconfig=fsl_ddr:addr_hash=true,ctlr_intlv=cacheline,bank_intlv=cs0_cs1_cs2_cs3