Commit 7539b417 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet
Browse files

docs: sh: convert new-machine.txt to ReST



- 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: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/4437d379ccf201cc3a369232f9159a02754ca530.1592203650.git.mchehab+huawei@kernel.org


Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 599448d8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4,6 +4,11 @@ SuperH Interfaces Guide

:Author: Paul Mundt

.. toctree::
    :maxdepth: 1

    new-machine

Memory Management
=================

+103 −96
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

=============================
Adding a new board to LinuxSH
               ================================
=============================

               Paul Mundt <lethal@linux-sh.org>

@@ -19,7 +21,7 @@ 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
@@ -41,7 +43,8 @@ Board-specific code:
	    |
	    .. more boards here ...

Next, for companion chips:
Next, for companion chips::

    .
    `-- arch
	`-- sh
@@ -54,7 +57,8 @@ Next, for companion chips:
board-specific headers. Thus, include/asm-sh/hd64461 is home to all of the
hd64461-specific headers.

Finally, CPU family support is also abstracted:
Finally, CPU family support is also abstracted::

    .
    |-- arch
    |   `-- sh
@@ -110,7 +114,7 @@ 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
@@ -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 <asm/io_generic.h>
@@ -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,7 +206,7 @@ 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"
@@ -213,7 +217,7 @@ 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

@@ -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,14 +257,17 @@ 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

  =======================   =============================================
  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
  vapor_defconfig           Build for vapor
  =======================   =============================================

which then allows you to do:
which then allows you to do::

    $ make ARCH=sh CROSS_COMPILE=sh4-linux- vapor_defconfig vmlinux