sunxi: Stop differentiating between 512M and 1G variants of the same board
authorHans de Goede <hdegoede@redhat.com>
Sat, 17 Jan 2015 13:24:55 +0000 (14:24 +0100)
committerHans de Goede <hdegoede@redhat.com>
Thu, 22 Jan 2015 11:34:56 +0000 (12:34 +0100)
While working on adding more boards I noticed that we lack a config for
the 512M cubieboard, and that some of the new boards which I want to add also
have 512M and 1G variants, rather then adding 2 defconfig's for all of these,
lets switch the exising boards which have both a 512M and 1024M variant over
to the sun4i dram autoconfig code.

This also drops the foo_RAMSIZE_defconfig variants of boards where we currently
have 2 separate configs already.

Note:
1) The newly introduced CONFIG_DRAM_EMR1 kconfig value is not used with
a value other then its default for now, but we need this to be configurable
to support some new boards with auto dram config.

2) We always set all CONFIG_DRAM_foo values in defconfigs, even if they match
the defaults, this is done to make it more clear what values are used for a
certain board.

This has been tested on a Mele A1000, Mini-X and a Cubieboard, all 1G
variants, the dram autoconfig code has also been tested on a 512M mk802
(a defconfig for the mk802 is added in a later patch).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
14 files changed:
arch/arm/include/asm/arch-sunxi/dram_sun4i.h
board/sunxi/Kconfig
board/sunxi/MAINTAINERS
board/sunxi/Makefile
board/sunxi/dram_cubieboard.c [deleted file]
board/sunxi/dram_sun4i_360_1024_iow16.c [deleted file]
board/sunxi/dram_sun4i_360_1024_iow8.c [deleted file]
board/sunxi/dram_sun4i_360_512.c [deleted file]
board/sunxi/dram_sun4i_auto.c [new file with mode: 0644]
configs/Cubieboard_defconfig
configs/Mele_A1000G_defconfig [deleted file]
configs/Mele_A1000_defconfig
configs/Mini-X-1Gb_defconfig [deleted file]
configs/Mini-X_defconfig

index 6c1ec5be8620e71f0343da7fa978cef5bb3922f6..40c385a5bc8025e5dc1ca48ffc441bf5440e5ffc 100644 (file)
@@ -76,7 +76,7 @@ struct dram_para {
        u32 cas;
        u32 zq;
        u32 odt_en;
-       u32 size;
+       u32 size; /* For compat with dram.c files from u-boot-sunxi, unused */
        u32 tpr0;
        u32 tpr1;
        u32 tpr2;
index d4d1fa24e7f287d584e80b6e3a5d3190d661b7d4..514e02236a23ed0e15833a69c2f1ae12617bd6a2 100644 (file)
@@ -33,21 +33,31 @@ config MACH_SUN8I
 
 endchoice
 
-if MACH_SUN6I || MACH_SUN8I
-
 config DRAM_CLK
-       int "sun6i dram clock speed"
-       default 312
+       int "sunxi dram clock speed"
+       default 312 if MACH_SUN6I || MACH_SUN8I
+       default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
        ---help---
        Set the dram clock speed, valid range 240 - 480, must be a multiple
-       of 24.
+       of 24. Note on sun4i / sun5i / sun7i this is only used by boards
+       which use dram autoconfig.
 
 config DRAM_ZQ
-       int "sun6i dram zq value"
-       default 123
+       int "sunxi dram zq value"
+       default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
+       default 127 if MACH_SUN7I
        ---help---
-       Set the dram zq value.
-
+       Set the dram zq value. Note on sun4i / sun5i / sun7i this is only
+       used by boards which use dram autoconfig.
+
+if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+config DRAM_EMR1
+       int "sunxi dram emr1 value"
+       default 0 if MACH_SUN4I
+       default 4 if MACH_SUN5I || MACH_SUN7I
+       ---help---
+       Set the dram controller emr1 value. Note this is only used by boards
+       which use dram autoconfig.
 endif
 
 config SYS_CONFIG_NAME
@@ -132,10 +142,6 @@ config TARGET_PCDUINO3
        bool "PCDUINO3"
        depends on MACH_SUN7I
 
-config TARGET_MELE_A1000G
-       bool "MELE_A1000G"
-       depends on MACH_SUN4I
-
 config TARGET_MELE_A1000
        bool "MELE_A1000"
        depends on MACH_SUN4I
@@ -148,10 +154,6 @@ config TARGET_MELE_M9
        bool "MELE_M9"
        depends on MACH_SUN6I
 
-config TARGET_MINI_X_1GB
-       bool "MINI_X_1GB"
-       depends on MACH_SUN4I
-
 config TARGET_MINI_X
        bool "MINI_X"
        depends on MACH_SUN4I
index 3a09be92de553482adc9b44c86b7a600e3911995..6ed8c3a2a8731ba37d9a2a116faf6fed2515b39e 100644 (file)
@@ -7,10 +7,8 @@ F:     configs/A10-OLinuXino-Lime_defconfig
 F:     configs/ba10_tv_box_defconfig
 F:     configs/Cubieboard_defconfig
 F:     configs/Mele_A1000_defconfig
-F:     configs/Mele_A1000G_defconfig
 F:     configs/Mele_M3_defconfig
 F:     configs/Mini-X_defconfig
-F:     configs/Mini-X-1Gb_defconfig
 F:     include/configs/sun5i.h
 F:     configs/A10s-OLinuXino-M_defconfig
 F:     configs/A13-OLinuXino_defconfig
index fab0877a54df5aa0a73aa578205874e08eb0e464..54628e3ec4d079905824f9464b37d7962259981b 100644 (file)
@@ -23,15 +23,13 @@ obj-$(CONFIG_TARGET_AUXTEK_T004)    += dram_a10s_olinuxino_m.o
 obj-$(CONFIG_TARGET_BA10_TV_BOX)       += dram_sun4i_384_1024_iow8.o
 obj-$(CONFIG_TARGET_BANANAPI)          += dram_bananapi.o
 obj-$(CONFIG_TARGET_BANANAPRO)         += dram_bananapi.o
-obj-$(CONFIG_TARGET_CUBIEBOARD)                += dram_cubieboard.o
+obj-$(CONFIG_TARGET_CUBIEBOARD)                += dram_sun4i_auto.o
 obj-$(CONFIG_TARGET_CUBIEBOARD2)       += dram_cubieboard2.o
 obj-$(CONFIG_TARGET_CUBIETRUCK)                += dram_cubietruck.o
 obj-$(CONFIG_TARGET_I12_TVBOX)         += dram_sun7i_384_1024_iow16.o
-obj-$(CONFIG_TARGET_MELE_A1000)                += dram_sun4i_360_512.o
-obj-$(CONFIG_TARGET_MELE_A1000G)       += dram_sun4i_360_1024_iow8.o
+obj-$(CONFIG_TARGET_MELE_A1000)                += dram_sun4i_auto.o
 obj-$(CONFIG_TARGET_MELE_M3)           += dram_sun7i_384_1024_iow16.o
-obj-$(CONFIG_TARGET_MINI_X)            += dram_sun4i_360_512.o
-obj-$(CONFIG_TARGET_MINI_X_1GB)                += dram_sun4i_360_1024_iow16.o
+obj-$(CONFIG_TARGET_MINI_X)            += dram_sun4i_auto.o
 obj-$(CONFIG_TARGET_MSI_PRIMO73)       += dram_sun7i_384_1024_iow16.o
 obj-$(CONFIG_TARGET_PCDUINO)           += dram_sun4i_408_1024_iow8.o
 obj-$(CONFIG_TARGET_PCDUINO3)          += dram_linksprite_pcduino3.o
diff --git a/board/sunxi/dram_cubieboard.c b/board/sunxi/dram_cubieboard.c
deleted file mode 100644 (file)
index 399028c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* 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 = 6,
-       .zq = 123,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x30926692,
-       .tpr1 = 0x1090,
-       .tpr2 = 0x1a0c8,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0,
-       .emr2 = 0,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
diff --git a/board/sunxi/dram_sun4i_360_1024_iow16.c b/board/sunxi/dram_sun4i_360_1024_iow16.c
deleted file mode 100644 (file)
index 3763713..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 360,
-       .type = 3,
-       .rank_num = 1,
-       .density = 4096,
-       .io_width = 16,
-       .bus_width = 32,
-       .cas = 6,
-       .zq = 123,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x30926692,
-       .tpr1 = 0x1090,
-       .tpr2 = 0x1a0c8,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0,
-       .emr2 = 0,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
diff --git a/board/sunxi/dram_sun4i_360_1024_iow8.c b/board/sunxi/dram_sun4i_360_1024_iow8.c
deleted file mode 100644 (file)
index 2a5c9ed..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 360,
-       .type = 3,
-       .rank_num = 1,
-       .density = 2048,
-       .io_width = 8,
-       .bus_width = 32,
-       .cas = 6,
-       .zq = 123,
-       .odt_en = 0,
-       .size = 1024,
-       .tpr0 = 0x30926692,
-       .tpr1 = 0x1090,
-       .tpr2 = 0x1a0c8,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0,
-       .emr2 = 0,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
diff --git a/board/sunxi/dram_sun4i_360_512.c b/board/sunxi/dram_sun4i_360_512.c
deleted file mode 100644 (file)
index 48aa6e2..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* this file is generated, don't edit it yourself */
-
-#include <common.h>
-#include <asm/arch/dram.h>
-
-static struct dram_para dram_para = {
-       .clock = 360,
-       .type = 3,
-       .rank_num = 1,
-       .density = 2048,
-       .io_width = 16,
-       .bus_width = 32,
-       .cas = 6,
-       .zq = 123,
-       .odt_en = 0,
-       .size = 512,
-       .tpr0 = 0x30926692,
-       .tpr1 = 0x1090,
-       .tpr2 = 0x1a0c8,
-       .tpr3 = 0,
-       .tpr4 = 0,
-       .tpr5 = 0,
-       .emr1 = 0,
-       .emr2 = 0,
-       .emr3 = 0,
-};
-
-unsigned long sunxi_dram_init(void)
-{
-       return dramc_init(&dram_para);
-}
diff --git a/board/sunxi/dram_sun4i_auto.c b/board/sunxi/dram_sun4i_auto.c
new file mode 100644 (file)
index 0000000..826bacf
--- /dev/null
@@ -0,0 +1,29 @@
+#include <common.h>
+#include <asm/arch/dram.h>
+
+static struct dram_para dram_para = {
+       .clock = CONFIG_DRAM_CLK,
+       .type = 3,
+       .rank_num = 1,
+       .density = 0,
+       .io_width = 0,
+       .bus_width = 0,
+       .cas = 6,
+       .zq = CONFIG_DRAM_ZQ,
+       .odt_en = 0,
+       .size = 0,
+       .tpr0 = 0x30926692,
+       .tpr1 = 0x1090,
+       .tpr2 = 0x1a0c8,
+       .tpr3 = 0,
+       .tpr4 = 0,
+       .tpr5 = 0,
+       .emr1 = CONFIG_DRAM_EMR1,
+       .emr2 = 0,
+       .emr3 = 0,
+};
+
+unsigned long sunxi_dram_init(void)
+{
+       return dramc_init(&dram_para);
+}
index 0bc45fd2cb28af8c559d68371e1e3b82b821be9d..b256b95c8331a387759d1828274cb6b5f96e8b25 100644 (file)
@@ -5,3 +5,6 @@ CONFIG_FDTFILE="sun4i-a10-cubieboard.dtb"
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN4I=y
 +S:CONFIG_TARGET_CUBIEBOARD=y
++S:CONFIG_DRAM_CLK=480
++S:CONFIG_DRAM_ZQ=123
++S:CONFIG_DRAM_EMR1=0
diff --git a/configs/Mele_A1000G_defconfig b/configs/Mele_A1000G_defconfig
deleted file mode 100644 (file)
index 9cb3285..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG_SPL=y
-CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,MACPWR=SUNXI_GPH(15),AHCI,USB_EHCI"
-CONFIG_FDTFILE="sun4i-a10-a1000.dtb"
-CONFIG_VIDEO_VGA=y
-+S:CONFIG_ARM=y
-+S:CONFIG_ARCH_SUNXI=y
-+S:CONFIG_MACH_SUN4I=y
-+S:CONFIG_TARGET_MELE_A1000G=y
index 97d94542d348efa2138116e309e0339909cf326b..3b4a19ec4ed60848a5cbe8d5578129497ec41fd6 100644 (file)
@@ -6,3 +6,6 @@ CONFIG_VIDEO_VGA=y
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN4I=y
 +S:CONFIG_TARGET_MELE_A1000=y
++S:CONFIG_DRAM_CLK=360
++S:CONFIG_DRAM_ZQ=123
++S:CONFIG_DRAM_EMR1=0
diff --git a/configs/Mini-X-1Gb_defconfig b/configs/Mini-X-1Gb_defconfig
deleted file mode 100644 (file)
index b8fea01..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_SPL=y
-CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,USB_EHCI"
-CONFIG_FDTFILE="sun4i-a10-mini-xplus.dtb"
-+S:CONFIG_ARM=y
-+S:CONFIG_ARCH_SUNXI=y
-+S:CONFIG_MACH_SUN4I=y
-+S:CONFIG_TARGET_MINI_X_1GB=y
index 0f6bbe06b2c5d09585a334403b3dd97e91594dd3..bb394641cef9ab8b8ee9b390b6c3e4b032faec6e 100644 (file)
@@ -5,3 +5,6 @@ CONFIG_FDTFILE="sun4i-a10-mini-xplus.dtb"
 +S:CONFIG_ARCH_SUNXI=y
 +S:CONFIG_MACH_SUN4I=y
 +S:CONFIG_TARGET_MINI_X=y
++S:CONFIG_DRAM_CLK=360
++S:CONFIG_DRAM_ZQ=123
++S:CONFIG_DRAM_EMR1=0