From: Mark Rutland <mark.rutland@arm.com>
To: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
sfr@canb.auug.org.au, Olof Johansson <olof@lixom.net>,
linux-kernel@vger.kernel.org, patches@groups.riscv.org,
robh+dt@kernel.org, albert@sifive.com,
yamada.masahiro@socionext.com, mmarek@suse.com,
will.deacon@arm.com, peterz@infradead.org, boqun.feng@gmail.com,
oleg@redhat.com, mingo@redhat.com, devicetree@vger.kernel.org
Subject: Re: [PATCH v9 03/12] dt-bindings: RISC-V CPU Bindings
Date: Thu, 5 Oct 2017 11:16:33 +0100 [thread overview]
Message-ID: <20171005101633.GA4929@leverpostej> (raw)
In-Reply-To: <20170927015638.19443-4-palmer@dabbelt.com>
Hi Palmer,
Sorry for the delay in getting round to this.
On Tue, Sep 26, 2017 at 06:56:29PM -0700, Palmer Dabbelt wrote:
> This patch adds device tree bindings for RISC-V CPUs, patterned after
> the ARM device tree CPU bindings.
[...]
> +- cpu node
> +
> + Description: Describes a hart context
> +
> + PROPERTIES
> +
> + - device_type
> + Usage: required
> + Value type: <string>
> + Definition: must be "cpu"
> + - reg
> + Usage: required
> + Value type: <u32>
> + Definition: The hart ID of this CPU node
> + - compatible:
> + Usage: required
> + Value type: <stringlist>
> + Definition: must contain "riscv", may contain one of
> + "sifive,rocket0"
It might make sense to have "riscv,cpu" as your genric RISC-V CPU
compatible string, to avoid ambiguity with the vendor-prefix.
> + - mmu-type:
> + Usage: optional
> + Value type: <string>
> + Definition: Specifies the CPU's MMU type. Possible values are
> + "riscv,sv32"
> + "riscv,sv39"
> + "riscv,sv48"
I would *strongly* recommend that from day one, you determine the SMP
bringup mechanism via an enable-method property, and document the
contract with FW/bootloader somewhere in the kernel tree.
For arm64 we started by documenting our spin-table in
Documentation/arm64/booting.txt, and later added PSCI support.
Using an explicit enable-method property from day one makes it easier to
extend thigns without ambiguity. e.g. an old kernel that doesn't know of
some new enable-method can just give up on SMP and continue as UP,
rather than doing something wrong for that system.
Generally, making things explicit in the DT will make support /
extension easier, and help to avoid painful-to-debug bugs.
> + - riscv,isa:
> + Usage: required
> + Value type: <string>
> + Definition: Contains the RISC-V ISA string of this hart. These
> + ISA strings are defined by the RISC-V ISA manual.
> +
IIUC from the example, this describes a number of ISA extenstions in a
single string. It might make mroe sense to have separate flags for each
extension. will be easier for the kernel to parse as new extensions
are added, and minimized ambiguity / typo problems.
[...]
> +Example: Spike ISA Simulator with 1 Hart
> +----------------------------------------
> +
> +This device tree matches the Spike ISA golden model as run with `spike -p1`.
> +
> + cpus {
> + cpu@0 {
> + device_type = "cpu";
> + reg = <0x00000000>;
> + status = "okay";
> + compatible = "riscv";
> + riscv,isa = "rv64imafdc";
> + mmu-type = "riscv,sv48";
> + clock-frequency = <0x3b9aca00>;
> + interrupt-controller {
> + #interrupt-cells = <0x00000001>;
Trivial nit: this would be nicer as:
#interrupt-cells = <1>;
Thanks,
Mark.
next prev parent reply other threads:[~2017-10-05 10:16 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-27 1:56 RISC-V Linux Port v9 Palmer Dabbelt
2017-09-27 1:56 ` Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 02/12] lib: Add shared copies of some GCC library routines Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 04/12] RISC-V: Init and Halt Code Palmer Dabbelt
2017-10-05 11:01 ` Mark Rutland
2018-07-30 23:42 ` Palmer Dabbelt
2018-07-30 23:42 ` Palmer Dabbelt
2018-07-31 13:03 ` Mark Rutland
2018-07-31 13:03 ` Mark Rutland
2017-09-27 1:56 ` [PATCH v9 06/12] RISC-V: Generic library routines and assembly Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 07/12] RISC-V: ELF and module implementation Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 08/12] RISC-V: Task implementation Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 09/12] RISC-V: Device, timer, IRQs, and the SBI Palmer Dabbelt
[not found] ` <20170927015638.19443-1-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2017-09-27 1:56 ` [PATCH v9 01/12] MAINTAINERS: Add RISC-V Palmer Dabbelt
2017-09-27 1:56 ` Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 03/12] dt-bindings: RISC-V CPU Bindings Palmer Dabbelt
2017-09-27 1:56 ` Palmer Dabbelt
2017-10-05 10:16 ` Mark Rutland [this message]
2017-11-20 7:35 ` [patches] " Jonathan Neuschäfer
2017-11-20 7:35 ` Jonathan Neuschäfer
2017-11-20 19:45 ` Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 05/12] RISC-V: Atomic and Locking Code Palmer Dabbelt
2017-09-27 1:56 ` Palmer Dabbelt
[not found] ` <20170927015638.19443-6-palmer-96lFi9zoCfxBDgjK7y7TUQ@public.gmane.org>
2017-10-24 14:10 ` Will Deacon
2017-10-24 14:10 ` Will Deacon
2017-11-14 20:30 ` Palmer Dabbelt
2017-11-15 18:06 ` Will Deacon
2017-11-15 19:48 ` [patches] " Palmer Dabbelt
2017-11-15 23:59 ` Daniel Lustig
2017-11-16 1:19 ` Boqun Feng
2017-11-16 1:31 ` Daniel Lustig
2017-11-16 1:52 ` Boqun Feng
2017-11-16 6:40 ` Daniel Lustig
2017-11-16 10:25 ` Will Deacon
2017-11-16 17:12 ` Daniel Lustig
2017-11-16 2:08 ` Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 10/12] RISC-V: Paging and MMU Palmer Dabbelt
2017-09-27 1:56 ` Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 12/12] RISC-V: Build Infrastructure Palmer Dabbelt
2017-09-27 1:56 ` Palmer Dabbelt
2017-09-27 1:56 ` [PATCH v9 11/12] RISC-V: User-facing API Palmer Dabbelt
2017-09-27 6:08 ` RISC-V Linux Port v9 Arnd Bergmann
[not found] ` <CAK8P3a1ROLHHY9HE0LtPywhTMqBaHjp8kd4ZVBr3iWTyveBh9A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-05 0:21 ` Palmer Dabbelt
2017-10-05 0:21 ` Palmer Dabbelt
2017-10-05 7:34 ` Arnd Bergmann
2017-10-05 7:34 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171005101633.GA4929@leverpostej \
--to=mark.rutland@arm.com \
--cc=albert@sifive.com \
--cc=arnd@arndb.de \
--cc=boqun.feng@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mmarek@suse.com \
--cc=oleg@redhat.com \
--cc=olof@lixom.net \
--cc=palmer@dabbelt.com \
--cc=patches@groups.riscv.org \
--cc=peterz@infradead.org \
--cc=robh+dt@kernel.org \
--cc=sfr@canb.auug.org.au \
--cc=will.deacon@arm.com \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.