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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to