From: Hal Martin <hal.martin@gmail.com>
Date: Sat, 7 Sep 2019 16:28:18 +0000 (+0000)
Subject: sunxi: Add support for Banana Pi M2 Ultra
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=3819c1638a9d300840d0f869628891f9696be112;p=openwrt%2Fstaging%2Fjogo.git

sunxi: Add support for Banana Pi M2 Ultra

CPU: Allwinner R40 Quad-Core Cortex-A7 @ 1.2GHz
GPU: Mali 400 MP2
Memory: 2GB DDR3 onboard (shared with GPU)
Onboard: Storage microSD card slot
Onboard: Storage 8GB eMMC
Onboard: Network 10/100/1000M Ethernet RJ45
Onboard: Network WiFi 802.11b/g/n 1x1 (AMPAK AP6212; brcmfmac)
Onboard header: SPI, I2C, GPIO, UART
USB: Two USB 2.0 Host, One USB 2.0 OTG

Known issues:
- WiFi doesn't work
- eMMC not supported

Signed-off-by: Hal Martin <hal.martin@gmail.com>
---

diff --git a/package/boot/uboot-sunxi/Makefile b/package/boot/uboot-sunxi/Makefile
index 6b83bd27c6..2c414f8c9e 100644
--- a/package/boot/uboot-sunxi/Makefile
+++ b/package/boot/uboot-sunxi/Makefile
@@ -247,6 +247,12 @@ define U-Boot/orangepi_pc2
   UENV:=a64
 endef
 
+define U-Boot/Sinovoip_BPI_M2_Ultra
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Bananapi M2 Ultra
+  BUILD_DEVICES:=sun8i-r40-bananapi-m2-ultra
+endef
+
 UBOOT_TARGETS := \
 	A10-OLinuXino-Lime \
 	A13-OLinuXino \
@@ -281,6 +287,7 @@ UBOOT_TARGETS := \
 	pangolin \
 	pine64_plus \
 	Sinovoip_BPI_M2_Plus \
+	Sinovoip_BPI_M2_Ultra \
 	sopine_baseboard \
 	orangepi_zero_plus
 
diff --git a/package/boot/uboot-sunxi/patches/250-Sinovoip-BPI-M2-Ultra-defconfig.patch b/package/boot/uboot-sunxi/patches/250-Sinovoip-BPI-M2-Ultra-defconfig.patch
new file mode 100644
index 0000000000..94606aa846
--- /dev/null
+++ b/package/boot/uboot-sunxi/patches/250-Sinovoip-BPI-M2-Ultra-defconfig.patch
@@ -0,0 +1,25 @@
+--- /dev/null
++++ b/configs/Sinovoip_BPI_M2_Ultra_defconfig
+@@ -0,0 +1,22 @@
++CONFIG_ARM=y
++CONFIG_ARCH_SUNXI=y
++CONFIG_SPL=y
++CONFIG_MACH_SUN8I_R40=y
++CONFIG_DRAM_CLK=576
++CONFIG_DRAM_ZQ=3881979
++CONFIG_MACPWR="PA17"
++CONFIG_MMC0_CD_PIN="PH13"
++CONFIG_MMC_SUNXI_SLOT_EXTRA=2
++CONFIG_AHCI=y
++CONFIG_NR_DRAM_BANKS=1
++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
++CONFIG_SPL_I2C_SUPPORT=y
++# CONFIG_CMD_FLASH is not set
++CONFIG_DEFAULT_DEVICE_TREE="sun8i-r40-bananapi-m2-ultra"
++CONFIG_SCSI_AHCI=y
++CONFIG_RGMII=y
++CONFIG_SUN8I_EMAC=y
++CONFIG_AXP_DLDO4_VOLT=2500
++CONFIG_AXP_ELDO3_VOLT=1200
++CONFIG_SCSI=y
++CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/target/linux/sunxi/Makefile b/target/linux/sunxi/Makefile
index cd1bf30e84..e1630fb441 100644
--- a/target/linux/sunxi/Makefile
+++ b/target/linux/sunxi/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 ARCH:=arm
 BOARD:=sunxi
-BOARDNAME:=Allwinner A1x/A20/A3x
+BOARDNAME:=Allwinner A1x/A20/A3x/R40
 FEATURES:=fpu usb ext4 display rtc squashfs
 SUBTARGETS:=cortexa8 cortexa7 cortexa53
 MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
@@ -23,6 +23,7 @@ KERNELNAME:=zImage dtbs
 # A31: quad Cortex-A7
 # A80: octa Cortex-A15/A7
 # H3: quad Cortex-A7
+# R40: quad Cortex-A7
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/sunxi/cortexa7/target.mk b/target/linux/sunxi/cortexa7/target.mk
index 16aa9f7d0a..b6bdd483bb 100644
--- a/target/linux/sunxi/cortexa7/target.mk
+++ b/target/linux/sunxi/cortexa7/target.mk
@@ -7,6 +7,6 @@
 
 include $(TOPDIR)/rules.mk
 
-BOARDNAME:=Allwinner A20/A3x
+BOARDNAME:=Allwinner A20/A3x/R40
 CPU_TYPE:=cortex-a7
 CPU_SUBTYPE:=neon-vfpv4
diff --git a/target/linux/sunxi/image/cortex-a7.mk b/target/linux/sunxi/image/cortex-a7.mk
index 05c4328d8e..3375a4542c 100644
--- a/target/linux/sunxi/image/cortex-a7.mk
+++ b/target/linux/sunxi/image/cortex-a7.mk
@@ -239,4 +239,14 @@ endef
 
 TARGET_DEVICES += sun7i-a20-pcduino3
 
+define Device/sun8i-r40-bananapi-m2-ultra
+  DEVICE_VENDOR := LeMaker
+  DEVICE_MODEL := Banana Pi M2 Ultra
+  DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi
+  SUPPORTED_DEVICES:=lemaker,bananapi-m2-ultra
+  SUNXI_DTS:=sun8i-r40-bananapi-m2-ultra
+endef
+
+TARGET_DEVICES += sun8i-r40-bananapi-m2-ultra
+
 endif