From patchwork Mon Feb 17 16:20:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 11386875 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DAC0D1580 for ; Mon, 17 Feb 2020 16:20:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AAB242465A for ; Mon, 17 Feb 2020 16:20:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581956456; bh=Pi0o4AIn8gmJMcH48gXgDETUbHI8Cq1MSzZBZEG9LXQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=hMefSoq5/4LQUp8RiMq9uL3gpEnE6VM1dZ41NyFNg1ee8YBGh3pdq+j2uG5k0dNGz FRFG4URygP9m/fQQu/N+nqlWKyCeI5RrFv92vh60wUprGqYNPlNMG/C8Z7MLQXxZpo TVXJwikWUodlcmOU3p5L/fk0dZ0UuCt9nhVcjG7g= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728339AbgBQQUz (ORCPT ); Mon, 17 Feb 2020 11:20:55 -0500 Received: from bombadil.infradead.org ([198.137.202.133]:55480 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729141AbgBQQUw (ORCPT ); Mon, 17 Feb 2020 11:20:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=pA1Ytc4V6l+zv01/JwSvNvIG9QUyjZkI8aPimfUATz4=; b=Odl+TPknK3HUJhxjvOeLRzSBt5 0MyamttI8PfGaWxdEFqVVn4SwqeVTN00LmvLIUldzZE8qGsOGWojQf5tVP66J0zykrJkRzhUDgUOM 4PKQbKXVdpBMv4pKdbfIAoMOTVDI7RZoKXZYD9b3Th3YN3qJvKXWmZWJvkT8Wpf8a30deDO99qe30 wCv4B3K2+t45JR1bCgRdcG2zOnc52i4oV28vsWJ8DjjEkaXWCNA+mnIAiNxNxLhlgTxqk5ZjHJTve 2k/jshFTaCkL/7YoXgClFRjjHv8YDDfFCxB2YitOkoz+IVgjcYXxJ0RkGwTK1PWdzV686SHMAinAl h0RPxbIw==; Received: from tmo-109-126.customers.d1-online.com ([80.187.109.126] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1j3j8Y-00042L-Ep; Mon, 17 Feb 2020 16:20:51 +0000 Received: from mchehab by bombadil.infradead.org with local (Exim 4.92.3) (envelope-from ) id 1j3j8W-000fqK-HE; Mon, 17 Feb 2020 17:20:44 +0100 From: Mauro Carvalho Chehab To: Linux Doc Mailing List Cc: Mauro Carvalho Chehab , Jonathan Corbet , Yoshinori Sato , Rich Felker , linux-sh@vger.kernel.org Subject: [PATCH v2 22/24] docs: sh: convert new-machine.txt to ReST Date: Mon, 17 Feb 2020 17:20:40 +0100 Message-Id: <3623fa8b3045ca7ad3373763578ba8690a469dbd.1581956285.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: References: MIME-Version: 1.0 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org - Add a SPDX header; - Adjust document title to follow ReST style; - Mark literal blocks as such; - Mark a table as such; - Add it to sh/index.rst. Signed-off-by: Mauro Carvalho Chehab --- Documentation/sh/index.rst | 5 + .../sh/{new-machine.txt => new-machine.rst} | 193 +++++++++--------- 2 files changed, 105 insertions(+), 93 deletions(-) rename Documentation/sh/{new-machine.txt => new-machine.rst} (73%) diff --git a/Documentation/sh/index.rst b/Documentation/sh/index.rst index bc8db7ba894a..56c08790265d 100644 --- a/Documentation/sh/index.rst +++ b/Documentation/sh/index.rst @@ -4,6 +4,11 @@ SuperH Interfaces Guide :Author: Paul Mundt +.. toctree:: + :maxdepth: 1 + + new-machine + Memory Management ================= diff --git a/Documentation/sh/new-machine.txt b/Documentation/sh/new-machine.rst similarity index 73% rename from Documentation/sh/new-machine.txt rename to Documentation/sh/new-machine.rst index e0961a66130b..07d69049c220 100644 --- a/Documentation/sh/new-machine.txt +++ b/Documentation/sh/new-machine.rst @@ -1,6 +1,8 @@ +.. SPDX-License-Identifier: GPL-2.0 - Adding a new board to LinuxSH - ================================ +============================= +Adding a new board to LinuxSH +============================= Paul Mundt @@ -19,65 +21,67 @@ include/asm-sh/. For the new kernel, things are broken out by board type, companion chip type, and CPU type. Looking at a tree view of this directory hierarchy looks like the following: -Board-specific code: +Board-specific code:: -. -|-- arch -| `-- sh -| `-- boards -| |-- adx -| | `-- board-specific files -| |-- bigsur -| | `-- board-specific files -| | -| ... more boards here ... -| -`-- include - `-- asm-sh - |-- adx - | `-- board-specific headers - |-- bigsur - | `-- board-specific headers - | - .. more boards here ... + . + |-- arch + | `-- sh + | `-- boards + | |-- adx + | | `-- board-specific files + | |-- bigsur + | | `-- board-specific files + | | + | ... more boards here ... + | + `-- include + `-- asm-sh + |-- adx + | `-- board-specific headers + |-- bigsur + | `-- board-specific headers + | + .. more boards here ... -Next, for companion chips: -. -`-- arch - `-- sh - `-- cchips - `-- hd6446x - `-- hd64461 - `-- cchip-specific files +Next, for companion chips:: + + . + `-- arch + `-- sh + `-- cchips + `-- hd6446x + `-- hd64461 + `-- cchip-specific files ... and so on. Headers for the companion chips are treated the same way as board-specific headers. Thus, include/asm-sh/hd64461 is home to all of the hd64461-specific headers. -Finally, CPU family support is also abstracted: -. -|-- arch -| `-- sh -| |-- kernel -| | `-- cpu -| | |-- sh2 -| | | `-- SH-2 generic files -| | |-- sh3 -| | | `-- SH-3 generic files -| | `-- sh4 -| | `-- SH-4 generic files -| `-- mm -| `-- This is also broken out per CPU family, so each family can -| have their own set of cache/tlb functions. -| -`-- include - `-- asm-sh - |-- cpu-sh2 - | `-- SH-2 specific headers - |-- cpu-sh3 - | `-- SH-3 specific headers - `-- cpu-sh4 - `-- SH-4 specific headers +Finally, CPU family support is also abstracted:: + + . + |-- arch + | `-- sh + | |-- kernel + | | `-- cpu + | | |-- sh2 + | | | `-- SH-2 generic files + | | |-- sh3 + | | | `-- SH-3 generic files + | | `-- sh4 + | | `-- SH-4 generic files + | `-- mm + | `-- This is also broken out per CPU family, so each family can + | have their own set of cache/tlb functions. + | + `-- include + `-- asm-sh + |-- cpu-sh2 + | `-- SH-2 specific headers + |-- cpu-sh3 + | `-- SH-3 specific headers + `-- cpu-sh4 + `-- SH-4 specific headers It should be noted that CPU subtypes are _not_ abstracted. Thus, these still need to be dealt with by the CPU family specific code. @@ -110,33 +114,33 @@ arch/sh/boards and the include/asm-sh/ hierarchy. In order to better explain this, we use some examples for adding an imaginary board. For setup code, we're required at the very least to provide definitions for get_system_type() and platform_setup(). For our imaginary board, this -might look something like: +might look something like:: -/* - * arch/sh/boards/vapor/setup.c - Setup code for imaginary board - */ -#include + /* + * arch/sh/boards/vapor/setup.c - Setup code for imaginary board + */ + #include -const char *get_system_type(void) -{ - return "FooTech Vaporboard"; -} + const char *get_system_type(void) + { + return "FooTech Vaporboard"; + } -int __init platform_setup(void) -{ - /* - * If our hardware actually existed, we would do real - * setup here. Though it's also sane to leave this empty - * if there's no real init work that has to be done for - * this board. - */ + int __init platform_setup(void) + { + /* + * If our hardware actually existed, we would do real + * setup here. Though it's also sane to leave this empty + * if there's no real init work that has to be done for + * this board. + */ - /* Start-up imaginary PCI ... */ + /* Start-up imaginary PCI ... */ - /* And whatever else ... */ + /* And whatever else ... */ - return 0; -} + return 0; + } Our new imaginary board will also have to tie into the machvec in order for it to be of any use. @@ -172,7 +176,7 @@ sufficient. vector. Note that these prototypes are generated automatically by setting - __IO_PREFIX to something sensible. A typical example would be: + __IO_PREFIX to something sensible. A typical example would be:: #define __IO_PREFIX vapor #include @@ -181,7 +185,7 @@ sufficient. have a legacy io.h should remove it entirely and switch to the new model. - Add machine vector definitions to the board's setup.c. At a bare minimum, - this must be defined as something like: + this must be defined as something like:: struct sh_machine_vector mv_vapor __initmv = { .mv_name = "vapor", @@ -202,20 +206,20 @@ Large portions of the build system are now entirely dynamic, and merely require the proper entry here and there in order to get things done. The first thing to do is to add an entry to arch/sh/Kconfig, under the -"System type" menu: +"System type" menu:: -config SH_VAPOR - bool "Vapor" - help - select Vapor if configuring for a FooTech Vaporboard. + config SH_VAPOR + bool "Vapor" + help + select Vapor if configuring for a FooTech Vaporboard. next, this has to be added into arch/sh/Makefile. All boards require a machdir-y entry in order to be built. This entry needs to be the name of the board directory as it appears in arch/sh/boards, even if it is in a sub-directory (in which case, all parent directories below arch/sh/boards/ -need to be listed). For our new board, this entry can look like: +need to be listed). For our new board, this entry can look like:: -machdir-$(CONFIG_SH_VAPOR) += vapor + machdir-$(CONFIG_SH_VAPOR) += vapor provided that we've placed everything in the arch/sh/boards/vapor/ directory. @@ -230,7 +234,7 @@ This is done by adding an entry to the end of the arch/sh/tools/mach-types list. The method for doing this is self explanatory, and so we won't waste space restating it here. After this is done, you will be able to use implicit checks for your board if you need this somewhere throughout the -common code, such as: +common code, such as:: /* Make sure we're on the FooTech Vaporboard */ if (!mach_is_vapor()) @@ -253,16 +257,19 @@ build target, and it will be implicitly listed as such in the help text. Looking at the 'make help' output, you should now see something like: Architecture specific targets (sh): - zImage - Compressed kernel image (arch/sh/boot/zImage) - adx_defconfig - Build for adx - cqreek_defconfig - Build for cqreek - dreamcast_defconfig - Build for dreamcast -... - vapor_defconfig - Build for vapor -which then allows you to do: + ======================= ============================================= + zImage Compressed kernel image (arch/sh/boot/zImage) + adx_defconfig Build for adx + cqreek_defconfig Build for cqreek + dreamcast_defconfig Build for dreamcast + ... + vapor_defconfig Build for vapor + ======================= ============================================= -$ make ARCH=sh CROSS_COMPILE=sh4-linux- vapor_defconfig vmlinux +which then allows you to do:: + + $ make ARCH=sh CROSS_COMPILE=sh4-linux- vapor_defconfig vmlinux which will in turn copy the defconfig for this board, run it through oldconfig (prompting you for any new options since the time of creation), From patchwork Mon Feb 17 16:20:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 11386877 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3EE72159A for ; Mon, 17 Feb 2020 16:20:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2041B20801 for ; Mon, 17 Feb 2020 16:20:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581956457; bh=/I25WOVdn9QBAZVv4kcwdkBFA3ZtAnY9fjccsCvBeDk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=cgI1F0zP5PcVs2oRtrAbljxxPukeHTTatcwlMokz7VPvvSHsxbw6V41lgJ43ZtC0P debZsUGpdshQg2uXGcayStpbR262mzpNQZs5NPM4TXFTDkm2ajgOZSojZUur9L0AeP 12q0Z3gbYQ3KkDt/BIQatQCaZmn7uSiOozq94tcA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729021AbgBQQU4 (ORCPT ); Mon, 17 Feb 2020 11:20:56 -0500 Received: from bombadil.infradead.org ([198.137.202.133]:55478 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729126AbgBQQUw (ORCPT ); Mon, 17 Feb 2020 11:20:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=crZFOo/t9VKSc5KMMcfdd5wNRKtdT4ryDJR27QN4v/s=; b=djrzgQy1c0H3V7nhrCoUm+PSLz 0cWofXfZ1xtiDJDLONECcqPpasbe1+FMUdFnf2FvrrMFG5XoO5lOBaYiSfeXThkF7+lEhKw3t0At/ suTIYXDO34kLocB95U93UtXtm1p2XPh7ENjWagiesRh3CvIwsB+KNJ+VddNi3ErzExOAj/Cq/e4wc Cbr7BE3vckcRvckA5kCp4VmdnhozWC+n7dD8ez7erFIZGt9oyVWKigmJtIwZU7ijEHG0slNVgX+C3 hgFZx2BeiJDKIyW7flJu9EuRkQoJzwCvTzerqSP+OfxOJ2sd8jIDcG4I95CpRPl1yicMPkx+32CP0 wP8GXRWg==; Received: from tmo-109-126.customers.d1-online.com ([80.187.109.126] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1j3j8Y-00042M-G6; Mon, 17 Feb 2020 16:20:51 +0000 Received: from mchehab by bombadil.infradead.org with local (Exim 4.92.3) (envelope-from ) id 1j3j8W-000fqP-IC; Mon, 17 Feb 2020 17:20:44 +0100 From: Mauro Carvalho Chehab To: Linux Doc Mailing List Cc: Mauro Carvalho Chehab , Jonathan Corbet , Yoshinori Sato , Rich Felker , linux-sh@vger.kernel.org Subject: [PATCH v2 23/24] docs: sh: convert register-banks.txt to ReST Date: Mon, 17 Feb 2020 17:20:41 +0100 Message-Id: <210c9d5b461d48663a15efb940bef52c6e3f69fc.1581956285.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: References: MIME-Version: 1.0 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org - Add a SPDX header; - Adjust document title to follow ReST style; - Add blank lines to make ReST markup happy - Add it to sh/index.rst. Signed-off-by: Mauro Carvalho Chehab --- Documentation/sh/index.rst | 1 + .../sh/{register-banks.txt => register-banks.rst} | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) rename Documentation/sh/{register-banks.txt => register-banks.rst} (88%) diff --git a/Documentation/sh/index.rst b/Documentation/sh/index.rst index 56c08790265d..580f3b17e841 100644 --- a/Documentation/sh/index.rst +++ b/Documentation/sh/index.rst @@ -8,6 +8,7 @@ SuperH Interfaces Guide :maxdepth: 1 new-machine + register-banks Memory Management ================= diff --git a/Documentation/sh/register-banks.txt b/Documentation/sh/register-banks.rst similarity index 88% rename from Documentation/sh/register-banks.txt rename to Documentation/sh/register-banks.rst index a6719f2f6594..2f51212043f4 100644 --- a/Documentation/sh/register-banks.txt +++ b/Documentation/sh/register-banks.rst @@ -1,5 +1,8 @@ - Notes on register bank usage in the kernel - ========================================== +.. SPDX-License-Identifier: GPL-2.0 + +========================================== +Notes on register bank usage in the kernel +========================================== Introduction ------------ @@ -23,11 +26,16 @@ Presently the kernel uses several of these registers. - r0_bank, r1_bank (referenced as k0 and k1, used for scratch registers when doing exception handling). + - r2_bank (used to track the EXPEVT/INTEVT code) + - Used by do_IRQ() and friends for doing irq mapping based off of the interrupt exception vector jump table offset + - r6_bank (global interrupt mask) + - The SR.IMASK interrupt handler makes use of this to set the interrupt priority level (used by local_irq_enable()) + - r7_bank (current)