summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/arc/arc.rst81
-rw-r--r--Documentation/arc/features.rst3
-rw-r--r--Documentation/arc/index.rst17
-rw-r--r--Documentation/arch.rst1
-rw-r--r--MAINTAINERS1
5 files changed, 103 insertions, 0 deletions
diff --git a/Documentation/arc/arc.rst b/Documentation/arc/arc.rst
new file mode 100644
index 000000000000..249d03c6be8e
--- /dev/null
+++ b/Documentation/arc/arc.rst
@@ -0,0 +1,81 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+Linux kernel for ARC processors
+*******************************
+
+Other sources of information
+############################
+
+Below are some resources where more information can be found on
+ARC processors and relevant open source projects.
+
+1. `<https://embarc.org/>`_ - Community portal for open source on ARC.
+Good place to start to find relevant FOSS projects, toolchain releases,
+news items and more.
+
+2. `<https://github.com/foss-for-synopsys-dwc-arc-processors>`_ -
+Home for all development activities regarding open source projects for
+ARC processors. Some of the projects are forks of various upstream projects,
+where "work in progress" is hosted prior to submission to upstream projects.
+Other projects are developed by Synopsys and made available to community
+as open source for use on ARC Processors.
+
+3. `<https://www.synopsys.com/designware-ip/processor-solutions.html>`_ -
+Official Synopsys ARC Processors website location, with access to some IP
+documentation (Programmer's Reference Manuals, AKA "PRM's", see
+`<https://www.synopsys.com/dw/doc.php/ds/cc/programmers-reference-manual-ARC-HS.pdf>`_)
+and commercial tools (Free nSIM,
+`<https://www.synopsys.com/cgi-bin/dwarcnsim/req1.cgi>`_ and
+MetaWare Light Edition, `<https://www.synopsys.com/cgi-bin/arcmwtk_lite/reg1.cgi>`_)
+
+Important note on ARC processors configurability
+################################################
+
+ARC processors are highly configurable and several configurable options
+are supported in Linux. Some options are transparent to software
+(i.e cache geometries, some can be detected at runtime and configured
+and used accordingly, while some need to be explicitly selected or configured
+in the kernel's configuration utility (AKA "make menuconfig").
+
+However not all configurable options are supported when an ARC processor
+is to run Linux. SoC design teams should refer to "Appendix E:
+Configuration for ARC Linux" in the ARC HS Databook for configurability
+guidelines.
+
+Following these guidelines and selecting valid configuration options
+up front is critical to help prevent any unwanted issues during
+SoC bringup and software development in general.
+
+Building the Linux kernel for ARC processors
+############################################
+
+The process of kernel building for ARC processors is the same as for any other
+architecture and could be done in 2 ways:
+
+1. cross-compilation: process of compiling for ARC targets on a development
+host with a different processor architecture (generally x86_64/amd64).
+
+2. native compilation: process of compiling for ARC on a ARC platform
+(hardware board or a simulator like QEMU) with complete development environment
+(GNU toolchain, dtc, make etc) installed on the platform.
+
+In both cases, up-to-date GNU toolchain for ARC for the host is needed.
+Synopsys offers prebuilt toolchain releases which can be used for this purpose,
+available from:
+
+1. Synopsys GNU toolchain releases:
+`<https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases>`_
+2. Linux kernel compilers collection:
+`<https://mirrors.edge.kernel.org/pub/tools/crosstool/>`_
+3. Bootlin's toolchain collection: `<https://toolchains.bootlin.com/>`_
+
+Once the toolchain is installed in the system, make sure its "bin" folder
+is added in your ``PATH`` environment variable. Then set ``ARCH=arc`` &
+``CROSS_COMPILE=arc-linux`` (or whatever matches installed ARC toolchain prefix)
+and then as usual ``make defconfig && make``.
+
+This will produce "vmlinux" file in the root of the kernel source tree
+usable for loading on the target system via JTAG.
+If you need to get an image usable with U-Boot bootloader,
+type ``make uImage`` and ``uImage`` will be produced in ``arch/arc/boot``
+folder.
diff --git a/Documentation/arc/features.rst b/Documentation/arc/features.rst
new file mode 100644
index 000000000000..b793583d688a
--- /dev/null
+++ b/Documentation/arc/features.rst
@@ -0,0 +1,3 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. kernel-feat:: $srctree/Documentation/features arc
diff --git a/Documentation/arc/index.rst b/Documentation/arc/index.rst
new file mode 100644
index 000000000000..7b098d4a5e3e
--- /dev/null
+++ b/Documentation/arc/index.rst
@@ -0,0 +1,17 @@
+===================
+ARC architecture
+===================
+
+.. toctree::
+ :maxdepth: 1
+
+ arc
+
+ features
+
+.. only:: subproject and html
+
+ Indices
+ =======
+
+ * :ref:`genindex`
diff --git a/Documentation/arch.rst b/Documentation/arch.rst
index f10bd32a5972..14bcd8294b93 100644
--- a/Documentation/arch.rst
+++ b/Documentation/arch.rst
@@ -9,6 +9,7 @@ implementation.
.. toctree::
:maxdepth: 2
+ arc/index
arm/index
arm64/index
ia64/index
diff --git a/MAINTAINERS b/MAINTAINERS
index 7a2345ce8521..811505d9b830 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18291,6 +18291,7 @@ M: Vineet Gupta <vgupta@kernel.org>
L: linux-snps-arc@lists.infradead.org
S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git
+F: Documentation/arc/
F: Documentation/devicetree/bindings/arc/*
F: Documentation/devicetree/bindings/interrupt-controller/snps,arc*
F: arch/arc/