Browse Source

orange-pi-zero: make mini.config bootable, ethernet will only work for 4.13.x

Waldemar Brodkorb 6 years ago
parent
commit
d02595e538

+ 21 - 3
target/arm/kernel/orange-pi0

@@ -4,6 +4,24 @@ CONFIG_ARCH_MULTI_V7=y
 CONFIG_ARCH_SUNXI=y
 CONFIG_MACH_SUN8I=y
 CONFIG_ATAGS=y
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE_FORCE=y
+CONFIG_SUNXI_CCU=y
+CONFIG_SUNXI_CCU_DIV=y
+CONFIG_SUNXI_CCU_FRAC=y
+CONFIG_SUNXI_CCU_GATE=y
+CONFIG_SUNXI_CCU_MUX=y
+CONFIG_SUNXI_CCU_MULT=y
+CONFIG_SUNXI_CCU_PHASE=y
+CONFIG_SUNXI_CCU_NK=y
+CONFIG_SUNXI_CCU_NKM=y
+CONFIG_SUNXI_CCU_NKMP=y
+CONFIG_SUNXI_CCU_NM=y
+CONFIG_SUNXI_CCU_MP=y
+CONFIG_SUN5I_CCU=y
+CONFIG_SUN6I_A31_CCU=y
+CONFIG_SUN8I_A23_CCU=y
+CONFIG_SUN8I_A33_CCU=y
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_V3S_CCU=y
+CONFIG_SUN9I_A80_CCU=y
+CONFIG_SUN8I_R_CCU=y
+

+ 9 - 0
target/config/Config.in.kernelversion

@@ -16,6 +16,7 @@ default ADK_TARGET_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_CRIS
 default ADK_TARGET_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_METAG
 default ADK_TARGET_KERNEL_VERSION_4_4 if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB_NOMMU
 default ADK_TARGET_KERNEL_VERSION_4_6 if ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
+default ADK_TARGET_KERNEL_VERSION_4_12 if ADK_TARGET_SYSTEM_ORANGE_PI0
 default ADK_TARGET_KERNEL_VERSION_4_9
 
 config ADK_TARGET_KERNEL_VERSION_GIT
@@ -49,6 +50,7 @@ config ADK_TARGET_KERNEL_VERSION_4_9
 	depends on !ADK_TARGET_ARCH_RISCV32
 	depends on !ADK_TARGET_ARCH_RISCV64
 	depends on !ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB_NOMMU
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_4_6
 	bool "4.6.2"
@@ -65,6 +67,7 @@ config ADK_TARGET_KERNEL_VERSION_4_4
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
 	depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_4_1
 	bool "4.1.42"
@@ -83,6 +86,7 @@ config ADK_TARGET_KERNEL_VERSION_4_1
 	depends on !ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB_NOMMU
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_3_16
 	bool "3.16.43"
@@ -106,6 +110,7 @@ config ADK_TARGET_KERNEL_VERSION_3_16
 	depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_3_10
 	bool "3.10.105"
@@ -130,6 +135,7 @@ config ADK_TARGET_KERNEL_VERSION_3_10
 	depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_3_4
 	bool "3.4.113"
@@ -153,6 +159,7 @@ config ADK_TARGET_KERNEL_VERSION_3_4
 	depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_3_4_NDS32
 	bool "3.4-nds32"
@@ -181,6 +188,7 @@ config ADK_TARGET_KERNEL_VERSION_3_2
 	depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_VERSION_2_6_32
 	bool "2.6.32.70"
@@ -204,6 +212,7 @@ config ADK_TARGET_KERNEL_VERSION_2_6_32
 	depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
 	depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
 	depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
+	depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
 
 endchoice
 

+ 3 - 1
target/linux/config/Config.in.block

@@ -486,8 +486,10 @@ config ADK_KERNEL_MMC_SUNXI
 	select ADK_KERNEL_MMC_SDHCI_PLTFM
 	select ADK_KERNEL_MMC_UNSAFE_RESUME
 	select ADK_KERNEL_LBDAF
-	depends on ADK_TARGET_SYSTEM_BANANA_PRO
+	depends on ADK_TARGET_SYSTEM_BANANA_PRO || \
+		ADK_TARGET_SYSTEM_ORANGE_PI0
 	default y if ADK_TARGET_SYSTEM_BANANA_PRO
+	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
 	default n
 
 config ADK_KERNEL_MMC_ATMELMCI

+ 11 - 0
target/linux/config/Config.in.cpu

@@ -43,6 +43,17 @@ config ADK_KERNEL_CPU_FREQ_GOV_ONDEMAND
 config ADK_KERNEL_CPU_FREQ_GOV_CONSERVATIVE
 	bool
 
+config ADK_KERNEL_CPUFREQ_DT_PLATDEV
+	bool
+
+config ADK_KERNEL_CPUFREQ_DT
+	bool "CPU frequency support DT"
+	select ADK_KERNEL_CPU_FREQ
+	select ADK_KERNEL_CPUFREQ_DT_PLATDEV
+	depends on ADK_TARGET_SYSTEM_ORANGE_PI0
+	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
+	default n
+
 config ADK_KERNEL_ARM_IMX6Q_CPUFREQ
 	bool "CPU frequency support for IMX6 boards"
 	select ADK_KERNEL_CPU_FREQ

+ 6 - 0
target/linux/config/Config.in.dma

@@ -73,3 +73,9 @@ config ADK_KERNEL_IMX_SDMA
 	default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	default n
 
+config ADK_KERNEL_DMA_SUN6I
+	bool
+	select ADK_KERNEL_DMADEVICES
+	depends on ADK_TARGET_SYSTEM_ORANGE_PI0
+	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
+	default n

+ 3 - 1
target/linux/config/Config.in.ethernet

@@ -438,8 +438,10 @@ config ADK_KERNEL_STMMAC_ETH
 	select ADK_KERNEL_NET_VENDOR_STMICRO
 	select ADK_KERNEL_STMMAC_PLATFORM
 	select ADK_KERNEL_DWMAC_SUNXI
-	depends on ADK_TARGET_SYSTEM_BANANA_PRO
+	depends on ADK_TARGET_SYSTEM_BANANA_PRO \
+		|| ADK_TARGET_SYSTEM_ORANGE_PI0
 	default y if ADK_TARGET_SYSTEM_BANANA_PRO
+	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
 	default n
 
 config ADK_KERNEL_ETHOC

+ 3 - 1
target/linux/config/Config.in.i2c

@@ -47,8 +47,10 @@ config ADK_KERNEL_I2C_SUNXI
 	select ADK_KERNEL_REGMAP
 	select ADK_KERNEL_REGMAP_I2C
 	select ADK_KERNEL_I2C_CHARDEV
-	depends on ADK_TARGET_SYSTEM_BANANA_PRO
+	depends on ADK_TARGET_SYSTEM_BANANA_PRO || \
+		   ADK_TARGET_SYSTEM_ORANGE_PI0
 	default y if ADK_TARGET_SYSTEM_BANANA_PRO
+	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
 	default n
 	help
 	  I2C driver for SUNXI boards.

+ 4 - 0
target/linux/config/Config.in.serial

@@ -4,6 +4,9 @@
 menu "Serial devices support"
 depends on ADK_TARGET_WITH_SERIAL || ADK_TARGET_QEMU || ADK_TARGET_VBOX || ADK_TARGET_SIM || ADK_TARGET_GENERIC
 
+config ADK_KERNEL_SERIAL_8250_DMA
+	bool
+
 config ADK_KERNEL_SERIAL_8250_DW
 	bool
 
@@ -94,6 +97,7 @@ config ADK_KERNEL_SERIAL_8250
 	select ADK_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
 	select ADK_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	select ADK_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
+	select ADK_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
 	select ADK_KERNEL_SERIAL_8250_CONSOLE
 	select ADK_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
 	depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \

+ 11 - 0
target/linux/config/Config.in.spi

@@ -59,6 +59,17 @@ config ADK_KERNEL_SPI_RB4XX
 	default y if ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
 	default n
 
+config ADK_KERNEL_SPI_SUN6I
+	tristate "SPI driver for SunXi"
+	select ADK_KERNEL_SPI
+	select ADK_KERNEL_SPI_MASTER
+	select ADK_KERNEL_SPI_BITBANG
+	select ADK_KERNEL_REGMAP
+	select ADK_KERNEL_REGMAP_SPI
+	depends on ADK_TARGET_SYSTEM_ORANGE_PI0
+	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
+	default n
+
 config ADK_KERNEL_SPI_SPIDEV
 	tristate "SPI userland driver"
 	select ADK_KERNEL_SPI

+ 1 - 0
target/linux/kernel.config

@@ -27,3 +27,4 @@ CONFIG_EXPERT=y
 CONFIG_MULTIUSER=y
 CONFIG_VDSO=y
 CONFIG_ADVISE_SYSCALLS=y
+CONFIG_POSIX_TIMERS=y

+ 17 - 0
target/linux/patches/4.12.3/regmap-default-on.patch

@@ -0,0 +1,17 @@
+diff -Nur linux-4.12.3.orig/drivers/base/regmap/Kconfig linux-4.12.3/drivers/base/regmap/Kconfig
+--- linux-4.12.3.orig/drivers/base/regmap/Kconfig	2017-07-21 06:59:24.000000000 +0200
++++ linux-4.12.3/drivers/base/regmap/Kconfig	2017-07-25 23:02:14.060483161 +0200
+@@ -3,7 +3,7 @@
+ # subsystems should select the appropriate symbols.
+ 
+ config REGMAP
+-	default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
++	default y
+ 	select LZO_COMPRESS
+ 	select LZO_DECOMPRESS
+ 	select IRQ_DOMAIN if REGMAP_IRQ
+@@ -29,3 +29,4 @@
+ 
+ config REGMAP_IRQ
+ 	bool
++	default y

+ 34 - 0
target/linux/patches/4.12.3/startup.patch

@@ -0,0 +1,34 @@
+diff -Nur linux-4.4.6.orig/init/initramfs.c linux-4.4.6/init/initramfs.c
+--- linux-4.4.6.orig/init/initramfs.c	2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/initramfs.c	2016-03-27 14:15:43.931044532 +0200
+@@ -653,6 +653,9 @@
+ 		 */
+ 		load_default_modules();
+ 	}
++#ifdef CONFIG_DEVTMPFS_MOUNT
++	devtmpfs_mount("dev");
++#endif
+ 	return 0;
+ }
+ rootfs_initcall(populate_rootfs);
+diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
+--- linux-4.4.6.orig/init/main.c	2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/main.c	2016-03-27 14:15:43.935044783 +0200
+@@ -1011,6 +1011,8 @@
+ 	if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ 		pr_err("Warning: unable to open an initial console.\n");
+ 
++	printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ 	(void) sys_dup(0);
+ 	(void) sys_dup(0);
+ 	/*
+@@ -1019,7 +1021,7 @@
+ 	 */
+ 
+ 	if (!ramdisk_execute_command)
+-		ramdisk_execute_command = "/init";
++		ramdisk_execute_command = "/sbin/init";
+ 
+ 	if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
+ 		ramdisk_execute_command = NULL;