Skip to contentSkip to conversation

sunxi: add Linksprite pcDuino v1/v2 support

PATCH New Zoltan HERPAI 2 participants 4 messages Jan 6, 2015 – Jan 9, 2015 Arm/Allwinner sunXi SoC support

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sunxi: add Linksprite pcDuino v1/v2 support

Add support for a sun4i board built by Linksprite. This addition covers both v1 and v2 versions. As the board has been working with 408MHz memory setting in the u-boot-sunxi branch, and has been proven to be running stable during my tests as well, a respective new DRAM config file is added as well.

---
 board/sunxi/Kconfig                    |    4 ++++
 board/sunxi/Makefile                   |    1 +
 board/sunxi/dram_sun4i_408_1024_iow8.c |   31 +++++++++++++++++++++++++++++++
 configs/Linksprite_pcDuino_defconfig   |    7 +++++++
 4 files changed, 43 insertions(+)
 create mode 100644 board/sunxi/dram_sun4i_408_1024_iow8.c
 create mode 100644 configs/Linksprite_pcDuino_defconfig
board/sunxi/Kconfig +4 -0
index 246cd9a..ccf583f 100644
@@ -99,6 +99,10 @@ config TARGET_IPPO_Q8H_V5
 	bool "IPPO_Q8H_V5"
 	depends on MACH_SUN8I
 
+config TARGET_PCDUINO
+	bool "PCDUINO"
+	depends on MACH_SUN4I
+
 config TARGET_PCDUINO3
 	bool "PCDUINO3"
 	depends on MACH_SUN7I
board/sunxi/Makefile +1 -0
index b84ff9b..c947b09 100644
@@ -31,6 +31,7 @@ obj-$(CONFIG_TARGET_MELE_A1000G)	+= dram_sun4i_360_1024_iow8.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_PCDUINO)		+= dram_sun4i_408_1024_iow8.o
 obj-$(CONFIG_TARGET_PCDUINO3)		+= dram_linksprite_pcduino3.o
 obj-$(CONFIG_TARGET_QT840A)		+= dram_sun7i_384_512_busw16_iow16.o
 obj-$(CONFIG_TARGET_R7DONGLE)		+= dram_r7dongle.o
board/sunxi/dram_sun4i_408_1024_iow8.c new file +31 -0
new file mode 100644
index 0000000..c6d87d2
@@ -0,0 +1,31 @@
+/* this file is generated, don't edit it yourself */
+
+#include <common.h>
+#include <asm/arch/dram.h>
+
+static struct dram_para dram_para = {
+	.clock = 408,
+	.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);
+}
configs/Linksprite_pcDuino_defconfig new file +7 -0
new file mode 100644
index 0000000..f5b0ca9
@@ -0,0 +1,7 @@
+CONFIG_SPL=y
+CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI"
+CONFIG_FDTFILE="sun4i-a10-pcduino.dtb"
++S:CONFIG_ARM=y
++S:CONFIG_ARCH_SUNXI=y
++S:CONFIG_MACH_SUN4I=y
++S:CONFIG_TARGET_PCDUINO=y
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/1 sunxi: add Linksprite pcDuino v1/v2 support

Hi,

Quoted 6 lines · Zoltan HERPAI

Add support for a sun4i board built by Linksprite. This addition covers both v1 and v2 versions. As the board has been working with 408MHz memory setting in the u-boot-sunxi branch, and has been proven to be running stable during my tests as well, a respective new DRAM config file is added as well.

Thanks, before that I apply this, are you sure that v1 and v2 are similar enough that we only need one config for them ? I'm asking because even if they are similar enough from a u-boot pov, they still need a separate defconfig if they need a separate dts.

It seems that v2 just swaps one usb port for a usb-wifi module, which does not require dts changes. So this seems ok, and we can also add a configs/Linksprite_pcDuino_v2_defconfig later I guess.

Also talking about the dts, I notice that the dts for the pcDuino_v3 has support for the gpio buttons found there, but the plain pcDuino dts does not even though the v1 / v2 clearly have the gpio buttons too, can you add support for those to the dts ? And the same question for any leds which they may have (hard to see on pictures). This is also a good check to see if they are really 100% compatible :)

Regards,

Hans

Quoted 87 lines
---
  board/sunxi/Kconfig                    |    4 ++++
  board/sunxi/Makefile                   |    1 +
  board/sunxi/dram_sun4i_408_1024_iow8.c |   31 +++++++++++++++++++++++++++++++
  configs/Linksprite_pcDuino_defconfig   |    7 +++++++
  4 files changed, 43 insertions(+)

create mode 100644 board/sunxi/dram_sun4i_408_1024_iow8.c create mode 100644 configs/Linksprite_pcDuino_defconfig

board/sunxi/Kconfig +4 -0
index 246cd9a..ccf583f 100644
@@ -99,6 +99,10 @@ config TARGET_IPPO_Q8H_V5
  	bool "IPPO_Q8H_V5"
  	depends on MACH_SUN8I
 
+config TARGET_PCDUINO
+	bool "PCDUINO"
+	depends on MACH_SUN4I
+
  config TARGET_PCDUINO3
  	bool "PCDUINO3"
  	depends on MACH_SUN7I
board/sunxi/Makefile +1 -0
index b84ff9b..c947b09 100644
@@ -31,6 +31,7 @@ obj-$(CONFIG_TARGET_MELE_A1000G)	+= dram_sun4i_360_1024_iow8.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_PCDUINO)		+= dram_sun4i_408_1024_iow8.o
  obj-$(CONFIG_TARGET_PCDUINO3)		+= dram_linksprite_pcduino3.o
  obj-$(CONFIG_TARGET_QT840A)		+= dram_sun7i_384_512_busw16_iow16.o
  obj-$(CONFIG_TARGET_R7DONGLE)		+= dram_r7dongle.o
board/sunxi/dram_sun4i_408_1024_iow8.c new file +31 -0
new file mode 100644
index 0000000..c6d87d2
@@ -0,0 +1,31 @@
+/* this file is generated, don't edit it yourself */
+
+#include <common.h>
+#include <asm/arch/dram.h>
+
+static struct dram_para dram_para = {
+	.clock = 408,
+	.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);
+}
configs/Linksprite_pcDuino_defconfig new file +7 -0
new file mode 100644
index 0000000..f5b0ca9
@@ -0,0 +1,7 @@
+CONFIG_SPL=y
+CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI"
+CONFIG_FDTFILE="sun4i-a10-pcduino.dtb"
++S:CONFIG_ARM=y
++S:CONFIG_ARCH_SUNXI=y
++S:CONFIG_MACH_SUN4I=y
++S:CONFIG_TARGET_PCDUINO=y
#2 lore raw

Hi Hans,

Quoted 17 lines · Hans de Goede
Quoted 6 lines · Zoltan HERPAI

Add support for a sun4i board built by Linksprite. This addition covers both v1 and v2 versions. As the board has been working with 408MHz memory setting in the u-boot-sunxi branch, and has been proven to be running stable
during my tests as well, a respective new DRAM config file is added as well.

Thanks, before that I apply this, are you sure that v1 and v2 are similar enough that we only need one config for them ? I'm asking because even if they are similar enough from a u-boot pov, they still need a separate defconfig if they need a separate dts.

It seems that v2 just swaps one usb port for a usb-wifi module, which does not require dts changes. So this seems ok, and we can also add a configs/Linksprite_pcDuino_v2_defconfig later I guess.

Quoted 6 lines

Also talking about the dts, I notice that the dts for the pcDuino_v3 has support for the gpio buttons found there, but the plain pcDuino dts does not even though the v1 / v2 clearly have the gpio buttons too, can you add support for those to the dts ? And the same question for any leds which they may have (hard to see on pictures). This is also a good check to see if they are really 100% compatible :)

To my best knowledge, the v1 and v2 only differ in the wifi module placed instead of one of the USB ports.

I'll check the LEDs and keys to check if they match - as the keys are the same across the v1 and v3 (checked the schematics and the GPIO assignments), it's likely the same on the v2 as well. Note that I couldn't find a separate schematic for the v2. I'll double-check these in the evening, and submit a DTS patch accordingly (with or without a separate DTS file for v2, and for a separate u-boot config if needed).

Thanks,
Zoltan H

Quoted 91 lines
Quoted 83 lines
board/sunxi/Kconfig +4 -0
index 246cd9a..ccf583f 100644
@@ -99,6 +99,10 @@ config TARGET_IPPO_Q8H_V5
  	bool "IPPO_Q8H_V5"
  	depends on MACH_SUN8I
 
+config TARGET_PCDUINO
+	bool "PCDUINO"
+	depends on MACH_SUN4I
+
  config TARGET_PCDUINO3
  	bool "PCDUINO3"
  	depends on MACH_SUN7I
board/sunxi/Makefile +0 -0
index b84ff9b..c947b09 100644
@@ -31,6 +31,7 @@ obj-$(CONFIG_TARGET_MELE_A1000G)	+= 

dram_sun4i_360_1024_iow8.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

board/sunxi/Makefile +1 -0
+obj-$(CONFIG_TARGET_PCDUINO)		+= dram_sun4i_408_1024_iow8.o
  obj-$(CONFIG_TARGET_PCDUINO3)		+= dram_linksprite_pcduino3.o
  obj-$(CONFIG_TARGET_QT840A)		+= dram_sun7i_384_512_busw16_iow16.o
  obj-$(CONFIG_TARGET_R7DONGLE)		+= dram_r7dongle.o
board/sunxi/dram_sun4i_408_1024_iow8.c new file +31 -0
new file mode 100644
index 0000000..c6d87d2
@@ -0,0 +1,31 @@
+/* this file is generated, don't edit it yourself */
+
+#include <common.h>
+#include <asm/arch/dram.h>
+
+static struct dram_para dram_para = {
+	.clock = 408,
+	.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);
+}
configs/Linksprite_pcDuino_defconfig new file +7 -0
new file mode 100644
index 0000000..f5b0ca9
@@ -0,0 +1,7 @@
+CONFIG_SPL=y
+CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI"
+CONFIG_FDTFILE="sun4i-a10-pcduino.dtb"
++S:CONFIG_ARM=y
++S:CONFIG_ARCH_SUNXI=y
++S:CONFIG_MACH_SUN4I=y
++S:CONFIG_TARGET_PCDUINO=y
Signature · 5 lines
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an 
email to linux-sunxi+unsubscribe at googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
#3 lore raw

PATCH 1/1 sunxi: add Linksprite pcDuino v1/v2 support

In reply to Zoltan HERPAI

Hi,

Quoted 6 lines · Zoltan HERPAI

Add support for a sun4i board built by Linksprite. This addition covers both v1 and v2 versions. As the board has been working with 408MHz memory setting in the u-boot-sunxi branch, and has been proven to be running stable during my tests as well, a respective new DRAM config file is added as well.

Thanks, I've queued this up in u-boot-sunxi for when the merge window opens.

Regards,

Hans

Quoted 87 lines
---
  board/sunxi/Kconfig                    |    4 ++++
  board/sunxi/Makefile                   |    1 +
  board/sunxi/dram_sun4i_408_1024_iow8.c |   31 +++++++++++++++++++++++++++++++
  configs/Linksprite_pcDuino_defconfig   |    7 +++++++
  4 files changed, 43 insertions(+)

create mode 100644 board/sunxi/dram_sun4i_408_1024_iow8.c create mode 100644 configs/Linksprite_pcDuino_defconfig

board/sunxi/Kconfig +4 -0
index 246cd9a..ccf583f 100644
@@ -99,6 +99,10 @@ config TARGET_IPPO_Q8H_V5
  	bool "IPPO_Q8H_V5"
  	depends on MACH_SUN8I
 
+config TARGET_PCDUINO
+	bool "PCDUINO"
+	depends on MACH_SUN4I
+
  config TARGET_PCDUINO3
  	bool "PCDUINO3"
  	depends on MACH_SUN7I
board/sunxi/Makefile +1 -0
index b84ff9b..c947b09 100644
@@ -31,6 +31,7 @@ obj-$(CONFIG_TARGET_MELE_A1000G)	+= dram_sun4i_360_1024_iow8.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_PCDUINO)		+= dram_sun4i_408_1024_iow8.o
  obj-$(CONFIG_TARGET_PCDUINO3)		+= dram_linksprite_pcduino3.o
  obj-$(CONFIG_TARGET_QT840A)		+= dram_sun7i_384_512_busw16_iow16.o
  obj-$(CONFIG_TARGET_R7DONGLE)		+= dram_r7dongle.o
board/sunxi/dram_sun4i_408_1024_iow8.c new file +31 -0
new file mode 100644
index 0000000..c6d87d2
@@ -0,0 +1,31 @@
+/* this file is generated, don't edit it yourself */
+
+#include <common.h>
+#include <asm/arch/dram.h>
+
+static struct dram_para dram_para = {
+	.clock = 408,
+	.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);
+}
configs/Linksprite_pcDuino_defconfig new file +7 -0
new file mode 100644
index 0000000..f5b0ca9
@@ -0,0 +1,7 @@
+CONFIG_SPL=y
+CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI"
+CONFIG_FDTFILE="sun4i-a10-pcduino.dtb"
++S:CONFIG_ARM=y
++S:CONFIG_ARCH_SUNXI=y
++S:CONFIG_MACH_SUN4I=y
++S:CONFIG_TARGET_PCDUINO=y