obj-$(CONFIG_SUNXI_GMAC)       += gmac.o
 obj-$(CONFIG_SUNXI_AHCI)       += ahci.o
 obj-$(CONFIG_MACH_SUN4I)       += dram_sun4i_auto.o
+obj-$(CONFIG_MACH_SUN7I)       += dram_sun5i_auto.o
 obj-$(CONFIG_TARGET_A10S_OLINUXINO_M)  += dram_a10s_olinuxino_m.o
 obj-$(CONFIG_TARGET_A13_OLINUXINO)     += dram_a13_olinuxino.o
 obj-$(CONFIG_TARGET_A13_OLINUXINOM)    += dram_a13_oli_micro.o
-obj-$(CONFIG_TARGET_A20_OLINUXINO_L)   += dram_a20_olinuxino_l.o
-obj-$(CONFIG_TARGET_A20_OLINUXINO_L2)  += dram_a20_olinuxino_l2.o
-obj-$(CONFIG_TARGET_A20_OLINUXINO_M)   += dram_sun7i_384_1024_iow16.o
 # This is not a typo, uses the same mem settings as the a10s-olinuxino-m
 obj-$(CONFIG_TARGET_AUXTEK_T004)       += dram_a10s_olinuxino_m.o
-obj-$(CONFIG_TARGET_BANANAPI)          += dram_bananapi.o
-obj-$(CONFIG_TARGET_BANANAPRO)         += dram_bananapi.o
-obj-$(CONFIG_TARGET_CUBIEBOARD2)       += dram_cubieboard2.o
-obj-$(CONFIG_TARGET_CUBIETRUCK)                += dram_cubietruck.o
-obj-$(CONFIG_TARGET_I12_TVBOX)         += dram_sun5i_auto.o
-obj-$(CONFIG_TARGET_MELE_M3)           += dram_sun7i_384_1024_iow16.o
 obj-$(CONFIG_TARGET_MK802_A10S)                += dram_sun5i_auto.o
-obj-$(CONFIG_TARGET_MSI_PRIMO73)       += dram_sun7i_384_1024_iow16.o
-obj-$(CONFIG_TARGET_PCDUINO3)          += dram_linksprite_pcduino3.o
 obj-$(CONFIG_TARGET_R7DONGLE)          += dram_r7dongle.o
 
+++ /dev/null
-/* this file is generated, don't edit it yourself */
-
-#include "common.h"
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 480,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 16,
-       .bus_width = 16,
-       .cas = 9,
-       .zq = 0x7f,
-       .odt_en = 0,
-       .size = 512,
-       .tpr0 = 0x42d899b7,
-       .tpr1 = 0xa090,
-       .tpr2 = 0x22a00,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0x4,
-       .emr2 = 0x10,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
 
+++ /dev/null
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 480,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 16,
-       .bus_width = 32,
-       .cas = 9,
-       .zq = 0x7f,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x42d899b7,
-       .tpr1 = 0xa090,
-       .tpr2 = 0x22a00,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0x4,
-       .emr2 = 0x10,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
 
+++ /dev/null
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 480,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 16,
-       .bus_width = 32,
-       .cas = 9,
-       .zq = 0x7f,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x42d899b7,
-       .tpr1 = 0xa090,
-       .tpr2 = 0x22a00,
-       .tpr3 = 0x0,
-       .tpr4 = 0x1,
-       .tpr5 = 0x0,
-       .emr1 = 0x4,
-       .emr2 = 0x10,
-       .emr3 = 0x0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
 
+++ /dev/null
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 432,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 8,
-       .bus_width = 32,
-       .cas = 9,
-       .zq = 0x7f,
-       .odt_en = 0,
-       .size = 2048,
-       .tpr0 = 0x42d899b7,
-       .tpr1 = 0xa090,
-       .tpr2 = 0x22a00,
-       .tpr3 = 0x0,
-       .tpr4 = 0x1,
-       .tpr5 = 0x0,
-       .emr1 = 0x4,
-       .emr2 = 0x10,
-       .emr3 = 0x0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
 
+++ /dev/null
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 480,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 16,
-       .bus_width = 32,
-       .cas = 9,
-       .zq = 0x7a,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x42d899b7,
-       .tpr1 = 0xa090,
-       .tpr2 = 0x22a00,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0x4,
-       .emr2 = 0x10,
-       .emr3 = 0x0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
 
+++ /dev/null
-/* this file is generated, don't edit it yourself */
-
-#include "common.h"
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 384,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 16,
-       .bus_width = 32,
-       .cas = 9,
-       .zq = 0x7f,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x42d899b7,
-       .tpr1 = 0xa090,
-       .tpr2 = 0x22a00,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0x4,
-       .emr2 = 0x10,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_A20_OLINUXINO_L2=y
++S:CONFIG_DRAM_CLK=480
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_A20_OLINUXINO_L=y
++S:CONFIG_DRAM_CLK=480
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_A20_OLINUXINO_M=y
++S:CONFIG_DRAM_CLK=384
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_BANANAPI=y
++S:CONFIG_DRAM_CLK=432
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_BANANAPRO=y
++S:CONFIG_DRAM_CLK=432
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_CUBIEBOARD2=y
++S:CONFIG_DRAM_CLK=480
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_CUBIETRUCK=y
++S:CONFIG_DRAM_CLK=432
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_PCDUINO3=y
++S:CONFIG_DRAM_CLK=480
++S:CONFIG_DRAM_ZQ=122
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_PCDUINO3=y
++S:CONFIG_DRAM_CLK=480
++S:CONFIG_DRAM_ZQ=122
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_MSI_PRIMO73=y
++S:CONFIG_DRAM_CLK=384
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4
 
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN7I=y
 +S:CONFIG_TARGET_MELE_M3=y
++S:CONFIG_DRAM_CLK=384
++S:CONFIG_DRAM_ZQ=127
++S:CONFIG_DRAM_EMR1=4