From: Felix Fietkau Date: Fri, 15 Jan 2016 10:49:01 +0000 (+0000) Subject: arc770: bump linux kernel from 4.3 to 4.4 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=4514589182d1cdb1f2dd6859599c97747b5ca52a;p=openwrt%2Fstaging%2Frobimarko.git arc770: bump linux kernel from 4.3 to 4.4 This switch involved: [1] Regeneration of config (few options went away) [2] Regeneration of patches so they apply cleanly (different offsets) [3] Update of .dts files because we now explicitly specify memory regions in use as opposed to previously used offset from 0x8000_0000 Signed-off-by: Alexey Brodkin Cc: Felix Fietkau Cc: Jo-Philipp Wich Cc: Jonas Gorski SVN-Revision: 48240 --- diff --git a/target/linux/arc770/Makefile b/target/linux/arc770/Makefile index f62bf0efd1..52c5e0008d 100644 --- a/target/linux/arc770/Makefile +++ b/target/linux/arc770/Makefile @@ -13,7 +13,7 @@ CFLAGS:=-Os -pipe -fno-caller-saves -matomic MAINTAINER:=Alexey Brodkin SUBTARGETS:=generic -KERNEL_PATCHVER:=4.3 +KERNEL_PATCHVER:=4.4 DEVICE_TYPE:=developerboard diff --git a/target/linux/arc770/config-4.3 b/target/linux/arc770/config-4.3 deleted file mode 100644 index 7a1348082f..0000000000 --- a/target/linux/arc770/config-4.3 +++ /dev/null @@ -1,179 +0,0 @@ -# CONFIG_16KSTACKS is not set -CONFIG_ARC=y -CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y -# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set -# CONFIG_ARCH_HAS_SG_CHAIN is not set -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_ARC_BUILTIN_DTB_NAME="" -CONFIG_ARC_CACHE=y -CONFIG_ARC_CACHE_LINE_SHIFT=5 -CONFIG_ARC_CACHE_PAGES=y -# CONFIG_ARC_CACHE_VIPT_ALIASING is not set -# CONFIG_ARC_CANT_LLSC is not set -# CONFIG_ARC_COMPACT_IRQ_LEVELS is not set -# CONFIG_ARC_CPU_750D is not set -CONFIG_ARC_CPU_770=y -CONFIG_ARC_CURR_IN_REG=y -CONFIG_ARC_DBG=y -# CONFIG_ARC_DBG_TLB_MISS_COUNT is not set -# CONFIG_ARC_DBG_TLB_PARANOIA is not set -CONFIG_ARC_DW2_UNWIND=y -# CONFIG_ARC_EMUL_UNALIGNED is not set -# CONFIG_ARC_FPU_SAVE_RESTORE is not set -CONFIG_ARC_HAS_DCACHE=y -# CONFIG_ARC_HAS_DCCM is not set -CONFIG_ARC_HAS_HW_MPY=y -CONFIG_ARC_HAS_ICACHE=y -# CONFIG_ARC_HAS_ICCM is not set -CONFIG_ARC_HAS_LLSC=y -CONFIG_ARC_HAS_SWAPE=y -# CONFIG_ARC_METAWARE_HLINK is not set -# CONFIG_ARC_MMU_V1 is not set -# CONFIG_ARC_MMU_V2 is not set -CONFIG_ARC_MMU_V3=y -# CONFIG_ARC_PAGE_SIZE_16K is not set -# CONFIG_ARC_PAGE_SIZE_4K is not set -CONFIG_ARC_PAGE_SIZE_8K=y -CONFIG_ARC_PLAT_AXS10X=y -CONFIG_ARC_PLAT_SIM=y -# CONFIG_ARC_PLAT_TB10X is not set -# CONFIG_ARC_UBOOT_SUPPORT is not set -CONFIG_AXS101=y -CONFIG_CLKDEV_LOOKUP=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMMON_CLK=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_DTC=y -CONFIG_DWMAC_GENERIC=y -# CONFIG_DWMAC_IPQ806X is not set -# CONFIG_DWMAC_LPC18XX is not set -# CONFIG_DWMAC_MESON is not set -# CONFIG_DWMAC_ROCKCHIP is not set -# CONFIG_DWMAC_SOCFPGA is not set -# CONFIG_DWMAC_STI is not set -# CONFIG_DWMAC_SUNXI is not set -CONFIG_DW_APB_ICTL=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_IO=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -# CONFIG_GEN_RTC is not set -CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVRES=y -CONFIG_GPIO_DWAPB=y -CONFIG_GPIO_GENERIC=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -# CONFIG_HAVE_ARCH_BITREVERSE is not set -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_HAVE_DEBUG_STACKOVERFLOW=y -CONFIG_HAVE_FUTEX_CMPXCHG=y -# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HZ_PERIODIC=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_WORK=y -CONFIG_ISA_ARCOMPACT=y -# CONFIG_ISA_ARCV2 is not set -CONFIG_KALLSYMS=y -CONFIG_LIBFDT=y -CONFIG_LINUX_LINK_BASE=0x80000000 -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -CONFIG_MDIO_BOARDINFO=y -CONFIG_MFD_SYSCON=y -CONFIG_MMC=y -CONFIG_MMC_DW=y -# CONFIG_MMC_DW_EXYNOS is not set -CONFIG_MMC_DW_IDMAC=y -# CONFIG_MMC_DW_K3 is not set -CONFIG_MMC_DW_PLTFM=y -CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_OF_AT91 is not set -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_NATIONAL_PHY=y -CONFIG_NEED_PER_CPU_KM=y -# CONFIG_NET_CADENCE is not set -CONFIG_NET_PTP_CLASSIFY=y -# CONFIG_NET_VENDOR_ARC is not set -# CONFIG_NET_VENDOR_BROADCOM is not set -# CONFIG_NET_VENDOR_INTEL is not set -# CONFIG_NET_VENDOR_MARVELL is not set -# CONFIG_NET_VENDOR_MICREL is not set -# CONFIG_NET_VENDOR_NATSEMI is not set -# CONFIG_NET_VENDOR_QUALCOMM is not set -# CONFIG_NET_VENDOR_ROCKER is not set -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -# CONFIG_NET_VENDOR_VIA is not set -# CONFIG_NET_VENDOR_WIZNET is not set -CONFIG_NO_BOOTMEM=y -CONFIG_NO_IOPORT_MAP=y -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_MDIO=y -CONFIG_OF_MTD=y -CONFIG_OF_NET=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_PHYLIB=y -CONFIG_PPS=y -CONFIG_PREEMPT=y -CONFIG_PREEMPT_COUNT=y -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_RCU=y -CONFIG_PTP_1588_CLOCK=y -# CONFIG_RCU_BOOST is not set -CONFIG_RCU_STALL_COMMON=y -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_RESET_CONTROLLER=y -# CONFIG_RTC is not set -# CONFIG_SCHED_INFO is not set -# CONFIG_SCSI_DMA is not set -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_ARC=y -CONFIG_SERIAL_ARC_CONSOLE=y -CONFIG_SERIAL_ARC_NR_PORTS=1 -CONFIG_SERIAL_OF_PLATFORM=y -# CONFIG_SG_SPLIT is not set -CONFIG_SRCU=y -CONFIG_STACKTRACE=y -CONFIG_STMMAC_ETH=y -CONFIG_STMMAC_PLATFORM=y -# CONFIG_SUNXI_SRAM is not set -# CONFIG_SYSTEM_DATA_VERIFICATION is not set -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_USB_SUPPORT=y -CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/arc770/config-4.4 b/target/linux/arc770/config-4.4 new file mode 100644 index 0000000000..c8f021dce2 --- /dev/null +++ b/target/linux/arc770/config-4.4 @@ -0,0 +1,169 @@ +# CONFIG_16KSTACKS is not set +CONFIG_ARC=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set +# CONFIG_ARCH_HAS_SG_CHAIN is not set +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARC_BUILTIN_DTB_NAME="" +CONFIG_ARC_CACHE=y +CONFIG_ARC_CACHE_LINE_SHIFT=5 +CONFIG_ARC_CACHE_PAGES=y +# CONFIG_ARC_CACHE_VIPT_ALIASING is not set +# CONFIG_ARC_CANT_LLSC is not set +# CONFIG_ARC_COMPACT_IRQ_LEVELS is not set +# CONFIG_ARC_CPU_750D is not set +CONFIG_ARC_CPU_770=y +CONFIG_ARC_CURR_IN_REG=y +CONFIG_ARC_DBG=y +# CONFIG_ARC_DBG_TLB_MISS_COUNT is not set +# CONFIG_ARC_DBG_TLB_PARANOIA is not set +CONFIG_ARC_DW2_UNWIND=y +# CONFIG_ARC_EMUL_UNALIGNED is not set +# CONFIG_ARC_FPU_SAVE_RESTORE is not set +CONFIG_ARC_HAS_DCACHE=y +# CONFIG_ARC_HAS_DCCM is not set +CONFIG_ARC_HAS_HW_MPY=y +CONFIG_ARC_HAS_ICACHE=y +# CONFIG_ARC_HAS_ICCM is not set +CONFIG_ARC_HAS_LLSC=y +CONFIG_ARC_HAS_SWAPE=y +# CONFIG_ARC_METAWARE_HLINK is not set +# CONFIG_ARC_MMU_V1 is not set +# CONFIG_ARC_MMU_V2 is not set +CONFIG_ARC_MMU_V3=y +# CONFIG_ARC_PAGE_SIZE_16K is not set +# CONFIG_ARC_PAGE_SIZE_4K is not set +CONFIG_ARC_PAGE_SIZE_8K=y +CONFIG_ARC_PLAT_AXS10X=y +CONFIG_ARC_PLAT_SIM=y +# CONFIG_ARC_PLAT_TB10X is not set +# CONFIG_ARC_UBOOT_SUPPORT is not set +CONFIG_AXS101=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMMON_CLK=y +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_DTC=y +CONFIG_DWMAC_GENERIC=y +# CONFIG_DWMAC_SUNXI is not set +CONFIG_DW_APB_ICTL=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +# CONFIG_GEN_RTC is not set +CONFIG_GPIOLIB=y +CONFIG_GPIO_DEVRES=y +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_GENERIC=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +# CONFIG_HAVE_ARCH_BITREVERSE is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y +CONFIG_HAVE_FUTEX_CMPXCHG=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HZ_PERIODIC=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_WORK=y +CONFIG_ISA_ARCOMPACT=y +# CONFIG_ISA_ARCV2 is not set +CONFIG_KALLSYMS=y +CONFIG_LIBFDT=y +CONFIG_LINUX_LINK_BASE=0x80000000 +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_MDIO_BOARDINFO=y +CONFIG_MFD_SYSCON=y +CONFIG_MMC=y +CONFIG_MMC_DW=y +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_K3 is not set +CONFIG_MMC_DW_PLTFM=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_NATIONAL_PHY=y +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_NET_CADENCE is not set +CONFIG_NET_PTP_CLASSIFY=y +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_NO_BOOTMEM=y +CONFIG_NO_IOPORT_MAP=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y +CONFIG_OF_NET=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PHYLIB=y +CONFIG_PPS=y +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_RCU=y +CONFIG_PTP_1588_CLOCK=y +CONFIG_RATIONAL=y +# CONFIG_RCU_BOOST is not set +CONFIG_RCU_STALL_COMMON=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_RESET_CONTROLLER=y +# CONFIG_RTC is not set +# CONFIG_SCHED_INFO is not set +# CONFIG_SCSI_DMA is not set +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_FSL is not set +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_ARC=y +CONFIG_SERIAL_ARC_CONSOLE=y +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SRCU=y +CONFIG_STACKTRACE=y +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_PLATFORM=y +# CONFIG_SUNXI_SRAM is not set +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_USB_SUPPORT=y +CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/arc770/dts/axc001.dtsi b/target/linux/arc770/dts/axc001.dtsi index a5e2726a06..420dcfde28 100644 --- a/target/linux/arc770/dts/axc001.dtsi +++ b/target/linux/arc770/dts/axc001.dtsi @@ -95,6 +95,6 @@ #size-cells = <1>; ranges = <0x00000000 0x80000000 0x40000000>; device_type = "memory"; - reg = <0x00000000 0x20000000>; /* 512MiB */ + reg = <0x80000000 0x20000000>; /* 512MiB */ }; }; diff --git a/target/linux/arc770/dts/axs101.dts b/target/linux/arc770/dts/axs101.dts index 8718eb46cc..769e81a433 100644 --- a/target/linux/arc770/dts/axs101.dts +++ b/target/linux/arc770/dts/axs101.dts @@ -17,6 +17,6 @@ compatible = "snps,axs101", "snps,arc-sdp"; chosen { - bootargs = "earlycon=uart8250,mmio32,0xe0022000,115200n8 console=ttyS3,115200n8"; + bootargs = "earlycon=uart8250,mmio32,0xe0022000,115200n8 console=tty0 console=ttyS3,115200n8 consoleblank=0"; }; }; diff --git a/target/linux/arc770/dts/axs10x_mb.dtsi b/target/linux/arc770/dts/axs10x_mb.dtsi index f3db321549..44a578c107 100644 --- a/target/linux/arc770/dts/axs10x_mb.dtsi +++ b/target/linux/arc770/dts/axs10x_mb.dtsi @@ -46,6 +46,7 @@ snps,pbl = < 32 >; clocks = <&apbclk>; clock-names = "stmmaceth"; + max-speed = <100>; }; ehci@0x40000 { diff --git a/target/linux/arc770/dts/skeleton.dtsi b/target/linux/arc770/dts/skeleton.dtsi index a870bdd5e4..296d371a33 100644 --- a/target/linux/arc770/dts/skeleton.dtsi +++ b/target/linux/arc770/dts/skeleton.dtsi @@ -32,6 +32,6 @@ memory { device_type = "memory"; - reg = <0x00000000 0x10000000>; /* 256M */ + reg = <0x80000000 0x10000000>; /* 256M */ }; }; diff --git a/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch b/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch deleted file mode 100644 index 135bfb6e2a..0000000000 --- a/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 271777096a31e76b2ffd750bc44efde9656de857 Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin -Date: Thu, 13 Aug 2015 01:56:02 +0300 -Subject: [PATCH] openwrt: arc - remove dependency on DEVTMPFS - -OpenWRT builds initramfs so that it doesn't require DEVTMPFS so dropping -this dependency. That helps to escape 2 separate kernel rebuilds with -and without initramfs. - -2 builds happen because OpenWRT first builds kernel and later modules. -When building entire kernel with simple "make" INITRAMFS sets to a real -value and so was triggering DEVTMPFS selection. Then when building only -modules with "make modules" command INITRAMFS is zeroed and so kernel -config was changing that lead to full kernel rebuild. - -Signed-off-by: Alexey Brodkin ---- - arch/arc/Kconfig | 2 -- - 1 file changed, 2 deletions(-) - ---- a/arch/arc/Kconfig -+++ b/arch/arc/Kconfig -@@ -12,8 +12,6 @@ config ARC - select BUILDTIME_EXTABLE_SORT - select COMMON_CLK - select CLONE_BACKWARDS -- # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev -- select DEVTMPFS if !INITRAMFS_SOURCE="" - select GENERIC_ATOMIC64 - select GENERIC_CLOCKEVENTS - select GENERIC_FIND_FIRST_BIT diff --git a/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch b/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch deleted file mode 100644 index a0392cb2f5..0000000000 --- a/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 142abc9f7b8860638e39cf3850cf7ba328c26b42 Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin -Date: Sat, 31 Oct 2015 15:58:20 +0300 -Subject: [PATCH] openwrt: arc - add OWRTDTB section - -This change allows OpenWRT to patch resulting kernel binary with -external .dtb. - -That allows us to re-use exactky the same vmlinux on different boards -given its ARC core configurations match (at least cache line sizes etc). - -""patch-dtb" searches for ASCII "OWRTDTB:" strign and copies external -.dtb right after it, keeping the string in place. - -Signed-off-by: Alexey Brodkin ---- - arch/arc/kernel/head.S | 10 ++++++++++ - arch/arc/kernel/setup.c | 4 +++- - arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++ - 3 files changed, 26 insertions(+), 1 deletion(-) - ---- a/arch/arc/kernel/head.S -+++ b/arch/arc/kernel/head.S -@@ -49,6 +49,16 @@ - 1: - .endm - -+; Here "patch-dtb" will embed external .dtb -+; Note "patch-dtb" searches for ASCII "OWRTDTB:" string -+; and pastes .dtb right after it, hense the string precedes -+; __image_dtb symbol. -+ .section .owrt, "aw",@progbits -+ .ascii "OWRTDTB:" -+ENTRY(__image_dtb) -+ .fill 0x4000 -+END(__image_dtb) -+ - .section .init.text, "ax",@progbits - .type stext, @function - .globl stext ---- a/arch/arc/kernel/setup.c -+++ b/arch/arc/kernel/setup.c -@@ -374,6 +374,8 @@ static inline int is_kernel(unsigned lon - return 0; - } - -+extern struct boot_param_header __image_dtb; -+ - void __init setup_arch(char **cmdline_p) - { - #ifdef CONFIG_ARC_UBOOT_SUPPORT -@@ -387,7 +389,7 @@ void __init setup_arch(char **cmdline_p) - #endif - { - /* No, so try the embedded one */ -- machine_desc = setup_machine_fdt(__dtb_start); -+ machine_desc = setup_machine_fdt(&__image_dtb); - if (!machine_desc) - panic("Embedded DT invalid\n"); - ---- a/arch/arc/kernel/vmlinux.lds.S -+++ b/arch/arc/kernel/vmlinux.lds.S -@@ -30,6 +30,19 @@ SECTIONS - - . = CONFIG_LINUX_LINK_BASE; - -+ /* -+ * In OpenWRT we want to patch built binary embedding .dtb of choice. -+ * This is implemented with "patch-dtb" utility which searches for -+ * "OWRTDTB:" string in first 16k of image and if it is found -+ * copies .dtb right after mentioned string. -+ * -+ * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it. -+ */ -+ .owrt : { -+ *(.owrt) -+ . = ALIGN(PAGE_SIZE); -+ } -+ - _int_vec_base_lds = .; - .vector : { - *(.vector) diff --git a/target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch b/target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch new file mode 100644 index 0000000000..29d9bff8a4 --- /dev/null +++ b/target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch @@ -0,0 +1,36 @@ +From adfbf9e6cad93281cffceab078e7f6f2a8e094f9 Mon Sep 17 00:00:00 2001 +From: Alexey Brodkin +Date: Thu, 13 Aug 2015 01:56:02 +0300 +Subject: [PATCH 1/2] openwrt: arc - remove dependency on DEVTMPFS + +OpenWRT builds initramfs so that it doesn't require DEVTMPFS so dropping +this dependency. That helps to escape 2 separate kernel rebuilds with +and without initramfs. + +2 builds happen because OpenWRT first builds kernel and later modules. +When building entire kernel with simple "make" INITRAMFS sets to a real +value and so was triggering DEVTMPFS selection. Then when building only +modules with "make modules" command INITRAMFS is zeroed and so kernel +config was changing that lead to full kernel rebuild. + +Signed-off-by: Alexey Brodkin +--- + arch/arc/Kconfig | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig +index 6312f60..a95bab3 100644 +--- a/arch/arc/Kconfig ++++ b/arch/arc/Kconfig +@@ -12,8 +12,6 @@ config ARC + select BUILDTIME_EXTABLE_SORT + select COMMON_CLK + select CLONE_BACKWARDS +- # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev +- select DEVTMPFS if !INITRAMFS_SOURCE="" + select GENERIC_ATOMIC64 + select GENERIC_CLOCKEVENTS + select GENERIC_FIND_FIRST_BIT +-- +2.4.3 + diff --git a/target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch b/target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch new file mode 100644 index 0000000000..02e919858d --- /dev/null +++ b/target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch @@ -0,0 +1,91 @@ +From 690e7f2cad271595ff68cace1c45fb10779bde41 Mon Sep 17 00:00:00 2001 +From: Alexey Brodkin +Date: Fri, 15 Jan 2016 00:34:01 +0300 +Subject: [PATCH 2/2] openwrt: arc - add OWRTDTB section + +This change allows OpenWRT to patch resulting kernel binary with +external .dtb. + +That allows us to re-use exactky the same vmlinux on different boards +given its ARC core configurations match (at least cache line sizes etc). + +""patch-dtb" searches for ASCII "OWRTDTB:" strign and copies external +.dtb right after it, keeping the string in place. + +Signed-off-by: Alexey Brodkin +--- + arch/arc/kernel/head.S | 10 ++++++++++ + arch/arc/kernel/setup.c | 4 +++- + arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++ + 3 files changed, 26 insertions(+), 1 deletion(-) + +diff --git a/arch/arc/kernel/head.S b/arch/arc/kernel/head.S +index 689dd86..51154ae 100644 +--- a/arch/arc/kernel/head.S ++++ b/arch/arc/kernel/head.S +@@ -49,6 +49,16 @@ + 1: + .endm + ++; Here "patch-dtb" will embed external .dtb ++; Note "patch-dtb" searches for ASCII "OWRTDTB:" string ++; and pastes .dtb right after it, hense the string precedes ++; __image_dtb symbol. ++ .section .owrt, "aw",@progbits ++ .ascii "OWRTDTB:" ++ENTRY(__image_dtb) ++ .fill 0x4000 ++END(__image_dtb) ++ + .section .init.text, "ax",@progbits + + ;---------------------------------------------------------------- +diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c +index e1b8744..9481c9d 100644 +--- a/arch/arc/kernel/setup.c ++++ b/arch/arc/kernel/setup.c +@@ -370,6 +370,8 @@ static inline int is_kernel(unsigned long addr) + return 0; + } + ++extern struct boot_param_header __image_dtb; ++ + void __init setup_arch(char **cmdline_p) + { + #ifdef CONFIG_ARC_UBOOT_SUPPORT +@@ -383,7 +385,7 @@ void __init setup_arch(char **cmdline_p) + #endif + { + /* No, so try the embedded one */ +- machine_desc = setup_machine_fdt(__dtb_start); ++ machine_desc = setup_machine_fdt(&__image_dtb); + if (!machine_desc) + panic("Embedded DT invalid\n"); + +diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S +index 894e696..ecfc284 100644 +--- a/arch/arc/kernel/vmlinux.lds.S ++++ b/arch/arc/kernel/vmlinux.lds.S +@@ -30,6 +30,19 @@ SECTIONS + + . = CONFIG_LINUX_LINK_BASE; + ++ /* ++ * In OpenWRT we want to patch built binary embedding .dtb of choice. ++ * This is implemented with "patch-dtb" utility which searches for ++ * "OWRTDTB:" string in first 16k of image and if it is found ++ * copies .dtb right after mentioned string. ++ * ++ * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it. ++ */ ++ .owrt : { ++ *(.owrt) ++ . = ALIGN(PAGE_SIZE); ++ } ++ + _int_vec_base_lds = .; + .vector : { + *(.vector) +-- +2.4.3 +