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/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 ++++++++++++++++++++++ 10 files changed, 93 insertions(+), 3 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/linux') 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