Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753312AbbGACCf (ORCPT ); Tue, 30 Jun 2015 22:02:35 -0400 Received: from us01smtprelay-2.synopsys.com ([198.182.60.111]:58104 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751364AbbGACC1 (ORCPT ); Tue, 30 Jun 2015 22:02:27 -0400 Message-ID: <55934A12.9030107@synopsys.com> Date: Wed, 1 Jul 2015 07:31:54 +0530 From: Vineet Gupta User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Linus Torvalds CC: "arc-linux-dev@synopsys.com" , "Claudiu Zissulescu" , Max Filippov , Ruud Derwig , Tobias Klauser , lkml , Peter Zijlstra Subject: [GIT PULL] ARC updates for 4.2-rc1 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.12.197.226] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 16246 Lines: 307 Hi Linus, I'm pleased to send this pull request which among others contains Linux port to HS38x cores based on new ARCv2 ISA from Synopsys. We've been working on this for more than a year now and it feels good to hand it over now. Some of the patches have been reviewed by experts: Peter and Will commented on the barriers stuff and were reworked to same effect. P.S. There's trivial merge conflict in include/asm-generic/barrier.h (patch has been Acked by Peter already) Please Pull ! Thx, -Vineet -------------------> The following changes since commit e26081808edadfd257c6c9d81014e3b25e9a6118: Linux 4.1-rc4 (2015-05-18 10:13:47 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git/ tags/arc-4.2-rc1 for you to fetch changes up to 40b8ad8f762cae4c44852ee1736ba766f52d5cc3: ARC: Fix build failures for ARCompact in linux-next after ARCv2 support (2015-06-28 20:30:13 +0530) ---------------------------------------------------------------- - Support for HS38 cores based on ARCv2 ISA ARCv2 is the next generation ISA from Synopsys and basis for the HS3{4,6,8} families of processors which retain the traditional ARC mantra of low power and configurability and are now more performant and feature rich. HS38x is a 10 stage pipeline core which supports MMU (with huge pages) and SMP (upto 4 cores) among other features. + www.synopsys.com/dw/ipdir.php?ds=arc-hs38-processor + http://news.synopsys.com/2014-10-14-New-DesignWare-ARC-HS38-Processor-Doubles-Performance-for-Embedded-Linux-Applications + http://www.embedded.com/electronics-news/4435975/Synopsys-ARC-HS38-core-gives-2X-boost-to-Linux-based-apps - Support for ARC SDP (Software Development platform): Main Board + CPU Cards = AXS101: CPU Card with ARC700 in silicon @ 700 MHz = AXS103: CPU Card with HS38x in FPGA - Refactoring of ARCompact port to accomodate new ARCv2 ISA - Miscll updates/cleanups ---------------------------------------------------------------- Alexey Brodkin (3): ARC: [axs101] Add support for AXS101 SDP (software development platform) ARC: [axs101] STAR 9000799830: Fix SD cards support ARC: [axs101] Prepare for AXS103 Claudiu Zissulescu (1): ARCv2: optimised string/mem lib routines Max Filippov (1): arc: fix use of uninitialized arc_pmu Ruud Derwig (1): ARCv2: [vdk] dts files and defconfig for HS38 VDK Tobias Klauser (1): ARC: perf: Remove unnecessary local variable Vineet Gupta (65): ARC: fix warning in sched due to thread_saved_pc() ARC: fold ___flush_dcache_page into __flush_dcache_page ARC: switch to simpler CROSS_COMPILE prefix ARC: remove the unused platform helpers from dma mapping API ARC: [kbuild] Retire CONFIG_ARC_CPU_REL_4_10 ARC: RIP broken 64bit RTSC ARC: clocksource cleanups ARC: compress cpuinfo_arc_mmu (mainly save page size in KB) ARC: [arcfpga] RIP legacy ISS based SMP extension ARC: [plat_arcfpga]->[plat_sim] ARC: explicit'ify uboot support ARC: fix section mismatch with allyesconfig ARC: stack unwinder to bail if PC is not kernel mode ARC: mm: document system mem map clearly ARC: [axs101] support early 8250 uart ARC: [axs101] Tweak DDR port aperture mappings for performance ARC: [axs101] Add missing __init annotations ARC: mm/cache_arc700.c -> mm/cache.c ARC: cacheflush: move some code around, delete old comments ARC: cacheflush: No need to retain DC_CTRL from __before_dc_op() ARC: untangle cache flush loop ARC: entry.S: common'ize scrtach reg freeup in intr + exceptions ARC: entry.S: Introduce INTERRUPT_{PROLOGUE,EPILOGUE} ARC: entry.S: canonical'ize EXCEPTION_{PROLOGUE,EPILOGUE} ARC: entry.S: confine EXCEPTION_* macros to one file ARC: entry.S: FAKE_RET_FROM_EXCPN can always use r9 ARC: entry.S: Trap handler to use r10 for syscall vs. brkpt decision ARC: entry.S: comments cleanup ARC: entry.S: Ensure that restore_regs is local to compilation unit ARC: entry.S: split into ARCompact ISA specific, common bits ARC: entry.S: move some code around for cache locality in return path ARC: entry.S: micro-optimize Trap handler ARC: entry.S: use single EXCEPTION_PROLOGUE ARC: entry.S: [arcompact] simplify SWITCH_TO_KERNEL_STK ARC: Make way for pt_regs != user_regs_struct ARC: intc: split into ARCompact ISA specific, common bits ARC: uncached base is hard constant for ARC, don't save it ARCv2: [intc] HS38 core interrupt controller ARCv2: Support for ARCv2 ISA and HS38x cores ARCv2: STAR 9000793984: Handle return from intr to Delay Slot ARCv2: STAR 9000808988: signals involving Delay Slot ARCv2: STAR 9000814690: Really Re-enable interrupts to avoid deadlocks ARCv2: MMUv4: TLB programming Model changes ARCv2: MMUv4: cache programming model changes ARCv2: MMUv4: support aliasing icache config ARCv2: Adhere to Zero Delay loop restriction ARCv2: extable: Enable sorting at build time ARCv2: clocksource: Introduce 64bit local RTC counter ARC: make plat_smp_ops weak to allow over-rides ARCv2: SMP: Support ARConnect (MCIP) for Inter-Core-Interrupts et al ARCv2: SMP: ARConnect debug/robustness ARCv2: SMP: clocksource: Enable Global Real Time counter ARCv2: SMP: intc: IDU 2nd level intc for dynamic IRQ distribution ARC: add compiler barrier to LLSC based cmpxchg ARC: add smp barriers around atomics per Documentation/atomic_ops.txt arch: conditionally define smp_{mb,rmb,wmb} ARCv2: barriers ARC: Reduce bitops lines of code using macros ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock ARCv2: SLC: Handle explcit flush for DMA ops (w/o IO-coherency) ARCv2: All bits in place, allow ARCv2 builds ARCv2: [nsim*hs*] Support simulation platforms for HS38x cores ARCv2: [axs103] Support ARC SDP FPGA platform for HS38x cores ARCv2: Allow older gcc to cope with new regime of ARCv2/ARCompact support ARC: Fix build failures for ARCompact in linux-next after ARCv2 support .../devicetree/bindings/arc/archs-idu-intc.txt | 46 ++ .../devicetree/bindings/arc/archs-intc.txt | 22 + Documentation/devicetree/bindings/arc/axs101.txt | 7 + Documentation/devicetree/bindings/arc/axs103.txt | 8 + MAINTAINERS | 7 + arch/arc/Kconfig | 159 ++++-- arch/arc/Makefile | 17 +- arch/arc/boot/dts/Makefile | 2 +- arch/arc/boot/dts/axc001.dtsi | 100 ++++ arch/arc/boot/dts/axc003.dtsi | 102 ++++ arch/arc/boot/dts/axc003_idu.dtsi | 126 +++++ arch/arc/boot/dts/axs101.dts | 21 + arch/arc/boot/dts/axs103.dts | 24 + arch/arc/boot/dts/axs103_idu.dts | 24 + arch/arc/boot/dts/axs10x_mb.dtsi | 224 +++++++++ arch/arc/boot/dts/{angel4.dts => nsim_700.dts} | 2 +- arch/arc/boot/dts/nsim_hs.dts | 53 ++ arch/arc/boot/dts/nsim_hs_idu.dts | 72 +++ arch/arc/boot/dts/nsimosci_hs.dts | 80 +++ arch/arc/boot/dts/nsimosci_hs_idu.dts | 101 ++++ arch/arc/boot/dts/vdk_axc003.dtsi | 61 +++ arch/arc/boot/dts/vdk_axc003_idu.dtsi | 76 +++ arch/arc/boot/dts/vdk_axs10x_mb.dtsi | 93 ++++ arch/arc/boot/dts/vdk_hs38.dts | 21 + arch/arc/boot/dts/vdk_hs38_smp.dts | 21 + arch/arc/configs/axs101_defconfig | 111 +++++ arch/arc/configs/axs103_defconfig | 117 +++++ arch/arc/configs/axs103_smp_defconfig | 118 +++++ arch/arc/configs/nsim_700_defconfig | 7 +- arch/arc/configs/nsim_hs_defconfig | 64 +++ arch/arc/configs/nsim_hs_smp_defconfig | 63 +++ arch/arc/configs/nsimosci_defconfig | 5 +- arch/arc/configs/nsimosci_hs_defconfig | 73 +++ arch/arc/configs/nsimosci_hs_smp_defconfig | 93 ++++ arch/arc/configs/tb10x_defconfig | 3 +- arch/arc/configs/vdk_hs38_defconfig | 102 ++++ arch/arc/configs/vdk_hs38_smp_defconfig | 104 ++++ arch/arc/include/asm/Kbuild | 1 - arch/arc/include/asm/arcregs.h | 66 ++- arch/arc/include/asm/atomic.h | 35 +- arch/arc/include/asm/barrier.h | 48 ++ arch/arc/include/asm/bitops.h | 529 ++++++++------------ arch/arc/include/asm/cache.h | 18 +- arch/arc/include/asm/cacheflush.h | 4 +- arch/arc/include/asm/cmpxchg.h | 26 +- arch/arc/include/asm/delay.h | 9 +- arch/arc/include/asm/dma-mapping.h | 31 +- arch/arc/include/asm/elf.h | 5 + arch/arc/include/asm/entry-arcv2.h | 190 +++++++ arch/arc/include/asm/entry-compact.h | 307 ++++++++++++ arch/arc/include/asm/entry.h | 378 +------------- arch/arc/include/asm/io.h | 42 +- arch/arc/include/asm/irq.h | 6 + arch/arc/include/asm/irqflags-arcv2.h | 124 +++++ arch/arc/include/asm/irqflags-compact.h | 183 +++++++ arch/arc/include/asm/irqflags.h | 168 +------ arch/arc/include/asm/mcip.h | 94 ++++ arch/arc/include/asm/mmu.h | 24 +- arch/arc/include/asm/pgtable.h | 10 + arch/arc/include/asm/processor.h | 37 +- arch/arc/include/asm/ptrace.h | 43 ++ arch/arc/include/asm/spinlock.h | 32 ++ arch/arc/include/asm/thread_info.h | 1 + arch/arc/include/asm/uaccess.h | 17 +- arch/arc/include/uapi/asm/page.h | 2 +- arch/arc/kernel/Makefile | 6 +- arch/arc/kernel/asm-offsets.c | 5 + arch/arc/kernel/devtree.c | 2 + arch/arc/kernel/entry-arcv2.S | 239 +++++++++ arch/arc/kernel/entry-compact.S | 393 +++++++++++++++ arch/arc/kernel/entry.S | 527 +++----------------- arch/arc/kernel/head.S | 4 +- arch/arc/kernel/intc-arcv2.c | 143 ++++++ arch/arc/kernel/intc-compact.c | 226 +++++++++ arch/arc/kernel/irq.c | 210 -------- arch/arc/kernel/mcip.c | 341 +++++++++++++ arch/arc/kernel/perf_event.c | 7 +- arch/arc/kernel/process.c | 14 +- arch/arc/kernel/ptrace.c | 92 +++- arch/arc/kernel/setup.c | 63 ++- arch/arc/kernel/signal.c | 62 ++- arch/arc/kernel/smp.c | 24 +- arch/arc/kernel/stacktrace.c | 18 +- arch/arc/kernel/time.c | 88 +++- arch/arc/kernel/troubleshoot.c | 33 +- arch/arc/lib/Makefile | 6 +- arch/arc/lib/memcmp.S | 30 +- arch/arc/lib/memcpy-archs.S | 236 +++++++++ arch/arc/lib/memset-archs.S | 93 ++++ arch/arc/lib/strcmp-archs.S | 78 +++ arch/arc/mm/Makefile | 2 +- arch/arc/mm/{cache_arc700.c => cache.c} | 552 +++++++++++++-------- arch/arc/mm/dma.c | 24 +- arch/arc/mm/tlb.c | 60 ++- arch/arc/mm/tlbex.S | 44 +- arch/arc/plat-arcfpga/Kconfig | 33 -- arch/arc/plat-arcfpga/include/plat/smp.h | 118 ----- arch/arc/plat-arcfpga/smp.c | 186 ------- arch/arc/plat-axs10x/Kconfig | 46 ++ arch/arc/plat-axs10x/Makefile | 9 + arch/arc/plat-axs10x/axs10x.c | 484 ++++++++++++++++++ arch/arc/plat-sim/Kconfig | 14 + arch/arc/{plat-arcfpga => plat-sim}/Makefile | 3 - arch/arc/{plat-arcfpga => plat-sim}/platform.c | 24 +- include/asm-generic/barrier.h | 25 + scripts/sortextable.c | 5 + 106 files changed, 6996 insertions(+), 2332 deletions(-) create mode 100644 Documentation/devicetree/bindings/arc/archs-idu-intc.txt create mode 100644 Documentation/devicetree/bindings/arc/archs-intc.txt create mode 100644 Documentation/devicetree/bindings/arc/axs101.txt create mode 100644 Documentation/devicetree/bindings/arc/axs103.txt create mode 100644 arch/arc/boot/dts/axc001.dtsi create mode 100644 arch/arc/boot/dts/axc003.dtsi create mode 100644 arch/arc/boot/dts/axc003_idu.dtsi create mode 100644 arch/arc/boot/dts/axs101.dts create mode 100644 arch/arc/boot/dts/axs103.dts create mode 100644 arch/arc/boot/dts/axs103_idu.dts create mode 100644 arch/arc/boot/dts/axs10x_mb.dtsi rename arch/arc/boot/dts/{angel4.dts => nsim_700.dts} (97%) create mode 100644 arch/arc/boot/dts/nsim_hs.dts create mode 100644 arch/arc/boot/dts/nsim_hs_idu.dts create mode 100644 arch/arc/boot/dts/nsimosci_hs.dts create mode 100644 arch/arc/boot/dts/nsimosci_hs_idu.dts create mode 100644 arch/arc/boot/dts/vdk_axc003.dtsi create mode 100644 arch/arc/boot/dts/vdk_axc003_idu.dtsi create mode 100644 arch/arc/boot/dts/vdk_axs10x_mb.dtsi create mode 100644 arch/arc/boot/dts/vdk_hs38.dts create mode 100644 arch/arc/boot/dts/vdk_hs38_smp.dts create mode 100644 arch/arc/configs/axs101_defconfig create mode 100644 arch/arc/configs/axs103_defconfig create mode 100644 arch/arc/configs/axs103_smp_defconfig create mode 100644 arch/arc/configs/nsim_hs_defconfig create mode 100644 arch/arc/configs/nsim_hs_smp_defconfig create mode 100644 arch/arc/configs/nsimosci_hs_defconfig create mode 100644 arch/arc/configs/nsimosci_hs_smp_defconfig create mode 100644 arch/arc/configs/vdk_hs38_defconfig create mode 100644 arch/arc/configs/vdk_hs38_smp_defconfig create mode 100644 arch/arc/include/asm/barrier.h create mode 100644 arch/arc/include/asm/entry-arcv2.h create mode 100644 arch/arc/include/asm/entry-compact.h create mode 100644 arch/arc/include/asm/irqflags-arcv2.h create mode 100644 arch/arc/include/asm/irqflags-compact.h create mode 100644 arch/arc/include/asm/mcip.h create mode 100644 arch/arc/kernel/entry-arcv2.S create mode 100644 arch/arc/kernel/entry-compact.S create mode 100644 arch/arc/kernel/intc-arcv2.c create mode 100644 arch/arc/kernel/intc-compact.c create mode 100644 arch/arc/kernel/mcip.c create mode 100644 arch/arc/lib/memcpy-archs.S create mode 100644 arch/arc/lib/memset-archs.S create mode 100644 arch/arc/lib/strcmp-archs.S rename arch/arc/mm/{cache_arc700.c => cache.c} (67%) delete mode 100644 arch/arc/plat-arcfpga/Kconfig delete mode 100644 arch/arc/plat-arcfpga/include/plat/smp.h delete mode 100644 arch/arc/plat-arcfpga/smp.c create mode 100644 arch/arc/plat-axs10x/Kconfig create mode 100644 arch/arc/plat-axs10x/Makefile create mode 100644 arch/arc/plat-axs10x/axs10x.c create mode 100644 arch/arc/plat-sim/Kconfig rename arch/arc/{plat-arcfpga => plat-sim}/Makefile (75%) rename arch/arc/{plat-arcfpga => plat-sim}/platform.c (71%) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/