From d02595e538b410237d97108d73376e803aac0eb3 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 31 Jul 2017 19:07:25 +0200 Subject: orange-pi-zero: make mini.config bootable, ethernet will only work for 4.13.x --- target/arm/kernel/orange-pi0 | 24 +++++++++++++-- target/config/Config.in.kernelversion | 9 ++++++ target/linux/config/Config.in.block | 4 ++- target/linux/config/Config.in.cpu | 11 +++++++ target/linux/config/Config.in.dma | 6 ++++ target/linux/config/Config.in.ethernet | 4 ++- target/linux/config/Config.in.i2c | 4 ++- target/linux/config/Config.in.serial | 4 +++ target/linux/config/Config.in.spi | 11 +++++++ target/linux/kernel.config | 1 + .../linux/patches/4.12.3/regmap-default-on.patch | 17 +++++++++++ target/linux/patches/4.12.3/startup.patch | 34 ++++++++++++++++++++++ 12 files changed, 123 insertions(+), 6 deletions(-) create mode 100644 target/linux/patches/4.12.3/regmap-default-on.patch create mode 100644 target/linux/patches/4.12.3/startup.patch (limited to 'target') diff --git a/target/arm/kernel/orange-pi0 b/target/arm/kernel/orange-pi0 index 6fc00e228..17a77cf2f 100644 --- a/target/arm/kernel/orange-pi0 +++ b/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 + diff --git a/target/config/Config.in.kernelversion b/target/config/Config.in.kernelversion index 452a34a6a..d55658ae5 100644 --- a/target/config/Config.in.kernelversion +++ b/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 diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block index 179b59a0a..487cfd206 100644 --- a/target/linux/config/Config.in.block +++ b/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 diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu index 43b5d107c..4c77970a7 100644 --- a/target/linux/config/Config.in.cpu +++ b/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 diff --git a/target/linux/config/Config.in.dma b/target/linux/config/Config.in.dma index d92326c36..c3bb8d67b 100644 --- a/target/linux/config/Config.in.dma +++ b/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 diff --git a/target/linux/config/Config.in.ethernet b/target/linux/config/Config.in.ethernet index 6a5991111..97c2aee0b 100644 --- a/target/linux/config/Config.in.ethernet +++ b/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 diff --git a/target/linux/config/Config.in.i2c b/target/linux/config/Config.in.i2c index f83d5e34c..9fe68f575 100644 --- a/target/linux/config/Config.in.i2c +++ b/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. diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial index 5b7174a80..f82bf3c6e 100644 --- a/target/linux/config/Config.in.serial +++ b/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 \ diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi index fe77cc921..de7871d0b 100644 --- a/target/linux/config/Config.in.spi +++ b/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 diff --git a/target/linux/kernel.config b/target/linux/kernel.config index 188bc89d1..7be2f40ed 100644 --- a/target/linux/kernel.config +++ b/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 diff --git a/target/linux/patches/4.12.3/regmap-default-on.patch b/target/linux/patches/4.12.3/regmap-default-on.patch new file mode 100644 index 000000000..f27eb1d94 --- /dev/null +++ b/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 diff --git a/target/linux/patches/4.12.3/startup.patch b/target/linux/patches/4.12.3/startup.patch new file mode 100644 index 000000000..e54ac19a6 --- /dev/null +++ b/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; -- cgit v1.2.3