Received: by 10.223.164.202 with SMTP id h10csp1192760wrb; Tue, 7 Nov 2017 23:50:38 -0800 (PST) X-Google-Smtp-Source: ABhQp+QJzHf/qQOrdjNajAwmO5uhHxUmJMsNPyk7H5c0PwochwuY6OpIOPH7kLNtpfwAt4eW7l9x X-Received: by 10.84.234.198 with SMTP id i6mr1463483plt.260.1510127438232; Tue, 07 Nov 2017 23:50:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510127438; cv=none; d=google.com; s=arc-20160816; b=M67wA9ns5eZ52uJKA08dzz7MRMnRquA4XCTnhplvyxqWPGfjl0xN8q5/YHn6JkNymt j++rIHqT8N6433XG6+fYNAgf5ZGpbJb6NVROfjZd3mM+0wLQg21mmRgWdV1CMG0dc7O1 SEEg011WYa5DGqN4bl+JvjShWrDGpehzahaLRS4C3RpRziKX5fjkncbowVfwXWqQH1WA dCUMGGmS8LDjY/igapov2y6Vko8JiuH14XxJNBphwct2thEEDU92VNM/6QNLVWewhHm8 8H2fBZXIoK4abTL24Z5+9VeoxyPGsfer2WKfLqPT/GyLHweQHqdDjhpsY2I3BdkIVSTG CG7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=vzAvkwAJWImSb31qJHc3QHxTaxF2Yz8Ptqo/SzsIEEc=; b=j+6H7fAO7WiVAZgGomrLY1QH/ODMrO4hMUxcCGYWGbNuqxH5kfxYToSyw1WM4XJGGg YmuC48suaTnDJQm/fraz68DLgodunV9oiKqAlOyfJJ4/KdRVPtzgSH0BSrDHKPADkVUG aYKRJca3vkkVJmvRII5Y0VI+UF4XDLOb4MFn9NK0mUj6qcq6naRObRLim8TSs0zW+mte rXNOyK7voJHNBmBzcNLcQGCTRXzvGJE7womXHteSKvh0zrTXnTmtV34ovpq+hI1Z51Im 6rDZgJFr+rWJMCNRB0NX80mQP0R0XY1JDWeemTaw+H4CvPYB1dGxT+0S8eKO3oiyTzuQ NTKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=k5CwL949; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d90si3427764pfl.151.2017.11.07.23.50.25; Tue, 07 Nov 2017 23:50:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=k5CwL949; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753976AbdKHGT6 (ORCPT + 91 others); Wed, 8 Nov 2017 01:19:58 -0500 Received: from mail-pl0-f65.google.com ([209.85.160.65]:48724 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751261AbdKHGTz (ORCPT ); Wed, 8 Nov 2017 01:19:55 -0500 Received: by mail-pl0-f65.google.com with SMTP id m2so665565plk.5; Tue, 07 Nov 2017 22:19:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=vzAvkwAJWImSb31qJHc3QHxTaxF2Yz8Ptqo/SzsIEEc=; b=k5CwL949JfajtxaLz9MSAKXI1934lKR84nxHCkL/LZYtP7VErwEMn4XozniE252tfG DtEZT3xSu/pbad36UC/6DEasoYJj0Vlx7Mrsc5dQG0uEBgSfqNZMJ4czkW/Iw8tDqcTT wRkga2E3BwoQvC47mG57LC+a6KuMyD4vHYJ+drZeKnOWo9U7VT4IbJHJIA+Pc9n+tNHG qLMYRhXkqUv3nX+psUxZdYJsZcZ2U6IQWFztufAQVBipmMOdM7mpJ5/++MNEIHYMOuqM awNOyX6hul1yFLIgGIhemGay9rsYYvSLFGXGgXdQwl4k+wRSLcMxXbFHzHt0PdnIvCvh ZEVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=vzAvkwAJWImSb31qJHc3QHxTaxF2Yz8Ptqo/SzsIEEc=; b=Ab9ElL8U6K9CBlgZkvwdoDyu/oHT0lU9hQFIxP03IaretL8S6qK7PYIvIsgVUcPXdS z4FPbKvApztoPxebLVcFWJLb/fZF9DYbgGPiYLSiT08H1azUk33zfLPxxOw0e6e634yD lI6L/h5JajHBl0I3lBPNxy2bLDN7ln7XYmmIqFKYXqAfmZmFnn60N7uuQBhEQ9LpkBwj pzEhrTnDNUZMM2ELtSXzOY9zlRMYwXyy4RRGxhwfh0tjZalpzCozU3+qYN6KlmpUfaCf Vg4BMEcvq4HaQLpH0oukNRFnYwBedvNYV0VxyzAwL6QU8Vm3plqqxistwE5jdnocNB/Y /MHw== X-Gm-Message-State: AJaThX5YS2V3HZtpGBePVpQOr7pK/xTMDDe5nPFayyCwJSjFUSlvPSBN mBvaHlZNq/AjHy6B6udL4tU= X-Received: by 10.159.252.198 with SMTP id o6mr1219589pls.390.1510121995097; Tue, 07 Nov 2017 22:19:55 -0800 (PST) Received: from app09.andestech.com ([118.163.51.199]) by smtp.gmail.com with ESMTPSA id a4sm6581339pfj.72.2017.11.07.22.19.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Nov 2017 22:19:54 -0800 (PST) From: Greentime Hu To: greentime@andestech.com, linux-kernel@vger.kernel.org, arnd@arndb.de, linux-arch@vger.kernel.org, tglx@linutronix.de, jason@lakedaemon.net, marc.zyngier@arm.com, robh+dt@kernel.org, netdev@vger.kernel.org Cc: Greentime Hu Subject: [PATCH 00/31] Andes(nds32) Linux Kernel Port Date: Wed, 8 Nov 2017 13:54:48 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset adds core architecture support to Linux for Andestech's N13, N15, D15, N10, D10 processor cores. Based on the 16/32-bit AndeStar RISC-like architecture, we designed the configurable AndesCore series of embedded processor families. AndesCores range from highly performance-efficient small-footprint cores for microcontrollers and deeply-embedded applications to 1GHz+ cores running Linux, covering general-purpose N-series cores for a wide range of computing need, DSP-capable D-series cores for digital signal control, instruction-extensible E-series cores for application-specific acceleration, and secure S-series cores for best protection of the most valuable. The patches are based on v4.14-rc8, and can also be found in the following git tree: https://github.com/andestech/linux.git nds32-4.14-rc8 The build script and toolchain repositories are able to be found here: https://github.com/andestech/build_script.git Freely available instruction set and architecture overview documents can be found on the following page: http://www.andestech.com/product.php?cls=9 Vincent Ren-Wei Chen and I will maintain this port. Thanks to everyone who helped us and contributed to it. :) Any feedback is welcome. Greentime Hu (31): nds32: Assembly macros and definitions nds32: Kernel booting and initialization nds32: Support early_printk nds32: Exception handling nds32: MMU definitions nds32: MMU initialization nds32: MMU fault handling and page table management nds32: Cache and TLB routines nds32: Process management nds32: IRQ handling nds32: Atomic operations nds32: Device specific operations nds32: DMA mapping API nds32: ELF definitions nds32: System calls handling nds32: VDSO support nds32: Signal handling support nds32: Library functions nds32: Debugging support nds32: L2 cache support nds32: Loadable modules nds32: Generic timers support nds32: Device tree support nds32: Miscellaneous header files nds32: defconfig nds32: Build infrastructure dt-bindings: interrupt-controller: Andestech Internal Vector Interrupt Controller irqchip: Andestech Internal Vector Interrupt Controller driver MAINTAINERS: Add nds32 dt-bindings: nds32 CPU Bindings net: faraday add nds32 support. .../interrupt-controller/andestech,ativic32.txt | 27 + Documentation/devicetree/bindings/nds32/cpus.txt | 33 + MAINTAINERS | 9 + arch/nds32/Kconfig | 107 +++ arch/nds32/Kconfig.cpu | 100 ++ arch/nds32/Kconfig.debug | 14 + arch/nds32/Makefile | 60 ++ arch/nds32/boot/Makefile | 15 + arch/nds32/boot/dts/Makefile | 8 + arch/nds32/boot/dts/ae3xx.dts | 55 ++ arch/nds32/boot/dts/ag101p.dts | 60 ++ arch/nds32/configs/ae3xx_defconfig | 110 +++ arch/nds32/configs/ag101p_defconfig | 109 +++ arch/nds32/include/asm/Kbuild | 54 ++ arch/nds32/include/asm/assembler.h | 52 ++ arch/nds32/include/asm/bitfield.h | 982 ++++++++++++++++++++ arch/nds32/include/asm/cache.h | 25 + arch/nds32/include/asm/cache_info.h | 26 + arch/nds32/include/asm/cacheflush.h | 57 ++ arch/nds32/include/asm/current.h | 25 + arch/nds32/include/asm/delay.h | 51 + arch/nds32/include/asm/dma-mapping.h | 27 + arch/nds32/include/asm/elf.h | 192 ++++ arch/nds32/include/asm/fixmap.h | 41 + arch/nds32/include/asm/futex.h | 116 +++ arch/nds32/include/asm/highmem.h | 78 ++ arch/nds32/include/asm/io.h | 33 + arch/nds32/include/asm/irqflags.h | 49 + arch/nds32/include/asm/l2_cache.h | 158 ++++ arch/nds32/include/asm/linkage.h | 24 + arch/nds32/include/asm/memory.h | 147 +++ arch/nds32/include/asm/mmu.h | 25 + arch/nds32/include/asm/mmu_context.h | 81 ++ arch/nds32/include/asm/module.h | 24 + arch/nds32/include/asm/nds32.h | 92 ++ arch/nds32/include/asm/page.h | 78 ++ arch/nds32/include/asm/pgalloc.h | 109 +++ arch/nds32/include/asm/pgtable.h | 426 +++++++++ arch/nds32/include/asm/proc-fns.h | 94 ++ arch/nds32/include/asm/processor.h | 116 +++ arch/nds32/include/asm/ptrace.h | 79 ++ arch/nds32/include/asm/shmparam.h | 33 + arch/nds32/include/asm/spinlock.h | 178 ++++ arch/nds32/include/asm/string.h | 30 + arch/nds32/include/asm/swab.h | 48 + arch/nds32/include/asm/syscall.h | 203 ++++ arch/nds32/include/asm/syscalls.h | 27 + arch/nds32/include/asm/thread_info.h | 91 ++ arch/nds32/include/asm/tlb.h | 41 + arch/nds32/include/asm/tlbflush.h | 60 ++ arch/nds32/include/asm/uaccess.h | 385 ++++++++ arch/nds32/include/asm/unistd.h | 21 + arch/nds32/include/asm/vdso.h | 35 + arch/nds32/include/asm/vdso_datapage.h | 51 + arch/nds32/include/uapi/asm/Kbuild | 26 + arch/nds32/include/uapi/asm/auxvec.h | 25 + arch/nds32/include/uapi/asm/byteorder.h | 26 + arch/nds32/include/uapi/asm/cachectl.h | 19 + arch/nds32/include/uapi/asm/param.h | 24 + arch/nds32/include/uapi/asm/posix_types.h | 41 + arch/nds32/include/uapi/asm/ptrace.h | 42 + arch/nds32/include/uapi/asm/sigcontext.h | 73 ++ arch/nds32/include/uapi/asm/signal.h | 23 + arch/nds32/include/uapi/asm/unistd.h | 36 + arch/nds32/kernel/Makefile | 24 + arch/nds32/kernel/asm-offsets.c | 40 + arch/nds32/kernel/atl2c.c | 77 ++ arch/nds32/kernel/cacheinfo.c | 62 ++ arch/nds32/kernel/devtree.c | 45 + arch/nds32/kernel/dma.c | 478 ++++++++++ arch/nds32/kernel/early_printk.c | 124 +++ arch/nds32/kernel/ex-entry.S | 169 ++++ arch/nds32/kernel/ex-exit.S | 207 +++++ arch/nds32/kernel/ex-scall.S | 146 +++ arch/nds32/kernel/head.S | 211 +++++ arch/nds32/kernel/irq.c | 34 + arch/nds32/kernel/module.c | 299 ++++++ arch/nds32/kernel/nds32_ksyms.c | 54 ++ arch/nds32/kernel/process.c | 219 +++++ arch/nds32/kernel/ptrace.c | 325 +++++++ arch/nds32/kernel/setup.c | 406 ++++++++ arch/nds32/kernel/signal.c | 370 ++++++++ arch/nds32/kernel/stacktrace.c | 60 ++ arch/nds32/kernel/sys_nds32.c | 63 ++ arch/nds32/kernel/syscall_table.c | 28 + arch/nds32/kernel/time.c | 22 + arch/nds32/kernel/traps.c | 442 +++++++++ arch/nds32/kernel/vdso.c | 243 +++++ arch/nds32/kernel/vdso/Makefile | 82 ++ arch/nds32/kernel/vdso/datapage.S | 34 + arch/nds32/kernel/vdso/gen_vdso_offsets.sh | 15 + arch/nds32/kernel/vdso/gettimeofday.c | 260 ++++++ arch/nds32/kernel/vdso/note.S | 29 + arch/nds32/kernel/vdso/sigreturn.S | 32 + arch/nds32/kernel/vdso/vdso.S | 33 + arch/nds32/kernel/vdso/vdso.lds.S | 87 ++ arch/nds32/kernel/vmlinux.lds.S | 70 ++ arch/nds32/lib/Makefile | 4 + arch/nds32/lib/copy_page.S | 50 + arch/nds32/lib/getuser.S | 57 ++ arch/nds32/lib/memcpy.S | 93 ++ arch/nds32/lib/memmove.S | 83 ++ arch/nds32/lib/memset.S | 46 + arch/nds32/lib/memzero.S | 31 + arch/nds32/lib/putuser.S | 53 ++ arch/nds32/lib/uaccess.S | 160 ++++ arch/nds32/mm/Makefile | 7 + arch/nds32/mm/alignment.c | 564 +++++++++++ arch/nds32/mm/cacheflush.c | 331 +++++++ arch/nds32/mm/extable.c | 29 + arch/nds32/mm/fault.c | 420 +++++++++ arch/nds32/mm/highmem.c | 92 ++ arch/nds32/mm/init.c | 328 +++++++ arch/nds32/mm/ioremap.c | 67 ++ arch/nds32/mm/mm-nds32.c | 103 ++ arch/nds32/mm/mmap.c | 88 ++ arch/nds32/mm/proc-n13.c | 608 ++++++++++++ arch/nds32/mm/tlb.c | 63 ++ drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-ativic32.c | 149 +++ drivers/net/ethernet/faraday/Kconfig | 6 +- 121 files changed, 13726 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt create mode 100644 Documentation/devicetree/bindings/nds32/cpus.txt create mode 100644 arch/nds32/Kconfig create mode 100644 arch/nds32/Kconfig.cpu create mode 100644 arch/nds32/Kconfig.debug create mode 100644 arch/nds32/Makefile create mode 100644 arch/nds32/boot/Makefile create mode 100644 arch/nds32/boot/dts/Makefile create mode 100644 arch/nds32/boot/dts/ae3xx.dts create mode 100644 arch/nds32/boot/dts/ag101p.dts create mode 100644 arch/nds32/configs/ae3xx_defconfig create mode 100644 arch/nds32/configs/ag101p_defconfig create mode 100644 arch/nds32/include/asm/Kbuild create mode 100644 arch/nds32/include/asm/assembler.h create mode 100644 arch/nds32/include/asm/bitfield.h create mode 100644 arch/nds32/include/asm/cache.h create mode 100644 arch/nds32/include/asm/cache_info.h create mode 100644 arch/nds32/include/asm/cacheflush.h create mode 100644 arch/nds32/include/asm/current.h create mode 100644 arch/nds32/include/asm/delay.h create mode 100644 arch/nds32/include/asm/dma-mapping.h create mode 100644 arch/nds32/include/asm/elf.h create mode 100644 arch/nds32/include/asm/fixmap.h create mode 100644 arch/nds32/include/asm/futex.h create mode 100644 arch/nds32/include/asm/highmem.h create mode 100644 arch/nds32/include/asm/io.h create mode 100644 arch/nds32/include/asm/irqflags.h create mode 100644 arch/nds32/include/asm/l2_cache.h create mode 100644 arch/nds32/include/asm/linkage.h create mode 100644 arch/nds32/include/asm/memory.h create mode 100644 arch/nds32/include/asm/mmu.h create mode 100644 arch/nds32/include/asm/mmu_context.h create mode 100644 arch/nds32/include/asm/module.h create mode 100644 arch/nds32/include/asm/nds32.h create mode 100644 arch/nds32/include/asm/page.h create mode 100644 arch/nds32/include/asm/pgalloc.h create mode 100644 arch/nds32/include/asm/pgtable.h create mode 100644 arch/nds32/include/asm/proc-fns.h create mode 100644 arch/nds32/include/asm/processor.h create mode 100644 arch/nds32/include/asm/ptrace.h create mode 100644 arch/nds32/include/asm/shmparam.h create mode 100644 arch/nds32/include/asm/spinlock.h create mode 100644 arch/nds32/include/asm/string.h create mode 100644 arch/nds32/include/asm/swab.h create mode 100644 arch/nds32/include/asm/syscall.h create mode 100644 arch/nds32/include/asm/syscalls.h create mode 100644 arch/nds32/include/asm/thread_info.h create mode 100644 arch/nds32/include/asm/tlb.h create mode 100644 arch/nds32/include/asm/tlbflush.h create mode 100644 arch/nds32/include/asm/uaccess.h create mode 100644 arch/nds32/include/asm/unistd.h create mode 100644 arch/nds32/include/asm/vdso.h create mode 100644 arch/nds32/include/asm/vdso_datapage.h create mode 100644 arch/nds32/include/uapi/asm/Kbuild create mode 100644 arch/nds32/include/uapi/asm/auxvec.h create mode 100644 arch/nds32/include/uapi/asm/byteorder.h create mode 100644 arch/nds32/include/uapi/asm/cachectl.h create mode 100644 arch/nds32/include/uapi/asm/param.h create mode 100644 arch/nds32/include/uapi/asm/posix_types.h create mode 100644 arch/nds32/include/uapi/asm/ptrace.h create mode 100644 arch/nds32/include/uapi/asm/sigcontext.h create mode 100644 arch/nds32/include/uapi/asm/signal.h create mode 100644 arch/nds32/include/uapi/asm/unistd.h create mode 100644 arch/nds32/kernel/Makefile create mode 100644 arch/nds32/kernel/asm-offsets.c create mode 100644 arch/nds32/kernel/atl2c.c create mode 100644 arch/nds32/kernel/cacheinfo.c create mode 100644 arch/nds32/kernel/devtree.c create mode 100644 arch/nds32/kernel/dma.c create mode 100644 arch/nds32/kernel/early_printk.c create mode 100644 arch/nds32/kernel/ex-entry.S create mode 100644 arch/nds32/kernel/ex-exit.S create mode 100644 arch/nds32/kernel/ex-scall.S create mode 100644 arch/nds32/kernel/head.S create mode 100644 arch/nds32/kernel/irq.c create mode 100644 arch/nds32/kernel/module.c create mode 100644 arch/nds32/kernel/nds32_ksyms.c create mode 100644 arch/nds32/kernel/process.c create mode 100644 arch/nds32/kernel/ptrace.c create mode 100644 arch/nds32/kernel/setup.c create mode 100644 arch/nds32/kernel/signal.c create mode 100644 arch/nds32/kernel/stacktrace.c create mode 100644 arch/nds32/kernel/sys_nds32.c create mode 100644 arch/nds32/kernel/syscall_table.c create mode 100644 arch/nds32/kernel/time.c create mode 100644 arch/nds32/kernel/traps.c create mode 100644 arch/nds32/kernel/vdso.c create mode 100644 arch/nds32/kernel/vdso/Makefile create mode 100644 arch/nds32/kernel/vdso/datapage.S create mode 100755 arch/nds32/kernel/vdso/gen_vdso_offsets.sh create mode 100644 arch/nds32/kernel/vdso/gettimeofday.c create mode 100644 arch/nds32/kernel/vdso/note.S create mode 100644 arch/nds32/kernel/vdso/sigreturn.S create mode 100644 arch/nds32/kernel/vdso/vdso.S create mode 100644 arch/nds32/kernel/vdso/vdso.lds.S create mode 100644 arch/nds32/kernel/vmlinux.lds.S create mode 100644 arch/nds32/lib/Makefile create mode 100644 arch/nds32/lib/copy_page.S create mode 100644 arch/nds32/lib/getuser.S create mode 100644 arch/nds32/lib/memcpy.S create mode 100644 arch/nds32/lib/memmove.S create mode 100644 arch/nds32/lib/memset.S create mode 100644 arch/nds32/lib/memzero.S create mode 100644 arch/nds32/lib/putuser.S create mode 100644 arch/nds32/lib/uaccess.S create mode 100644 arch/nds32/mm/Makefile create mode 100644 arch/nds32/mm/alignment.c create mode 100644 arch/nds32/mm/cacheflush.c create mode 100644 arch/nds32/mm/extable.c create mode 100644 arch/nds32/mm/fault.c create mode 100644 arch/nds32/mm/highmem.c create mode 100644 arch/nds32/mm/init.c create mode 100644 arch/nds32/mm/ioremap.c create mode 100644 arch/nds32/mm/mm-nds32.c create mode 100644 arch/nds32/mm/mmap.c create mode 100644 arch/nds32/mm/proc-n13.c create mode 100644 arch/nds32/mm/tlb.c create mode 100644 drivers/irqchip/irq-ativic32.c -- 1.7.9.5 From 1583515381882179897@xxx Wed Nov 08 16:19:09 +0000 2017 X-GM-THRID: 1583483662700251868 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread