Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5802826yba; Thu, 11 Apr 2019 06:12:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqwsnrNrpn59ZymURR/Qeg7NGlu6eUcAqFSxXG7N8bOjPKFaquwe8HRtqYKayew61Zh99yTH X-Received: by 2002:a17:902:b407:: with SMTP id x7mr51320737plr.288.1554988350642; Thu, 11 Apr 2019 06:12:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554988350; cv=none; d=google.com; s=arc-20160816; b=bFLUkKBbCnmNtby60iJAXn9QLuPMsGu7clwGvZ98ZBLIPqGfOMTKQUbjhy7i9+Fydd yw2gI4SiqorTYZVLWyAAfexm4R0kfJOL+331NH5vzvB53TX4bBjP4ucncvBP5k1+hNY7 S/C3sUxvfMhqDGK+sW+nv47Z16Y81IG/mXImS7F5xTRl85gN5yKJahFLCE4k++x3Uu2L /E4CQO247gs96BCzJzL2fmkz7ObuFiaXBEVVodeWpBnAHhYuwU9pC8XH1zU7nOAveyrs kDrSXClr+hnIsuWDZMkC7XKmPf7+AntVTOfUyq4DPT0qg7ZMHKoGhFESe+2da4KAZz+2 K6tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Ai+AbUwXVqbYn1/4uY254TFn07dlC/j0Xnvr0ZVDVHg=; b=a4KiFyaHWZiW8t40sUCgWs8dNqA0joJwK9sysaB4maXUi9E5zmnUGyhMCzMZJKSvEI 3f0hUdVEqhteiqHjpbyZpzIMkeK/VrX0/IDEO6nqbrOl74SC7+7eN8e5Wb01rYJTeiCm Kdjbyul0LgGk2uTyNWMPBmXYfTnmupckywL7AMSogKhHhqEt5uWiRypV71edQ5ITjGJe m3atZ9TLsTXDzeYZ7gyLlsIDR9ItoHrjq8SgDjDBFrFKrYJs48Hv2KW5zuit7Tn/EuvC 8YCGSlf2m6cqXnlKPtzPfHmhJk7iNLIjeKFeS/51dvxZSudSNfuSg/wjefPrH1vBKT2B bNdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dlXQ4DZU; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h128si34113827pgc.488.2019.04.11.06.12.14; Thu, 11 Apr 2019 06:12:30 -0700 (PDT) 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=@kernel.org header.s=default header.b=dlXQ4DZU; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726690AbfDKNKT (ORCPT + 99 others); Thu, 11 Apr 2019 09:10:19 -0400 Received: from mail.kernel.org ([198.145.29.99]:57332 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726106AbfDKNKT (ORCPT ); Thu, 11 Apr 2019 09:10:19 -0400 Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CC29E2133D; Thu, 11 Apr 2019 13:10:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554988218; bh=Xy35SrYQLMKibKjChobT5LUTLz9B5on71DQVV0dz1hk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=dlXQ4DZUSMtZUNITLbqjP1ruGN8wVt2YDzISshha+pfUE6WyFOrPBc03gWa27GZbQ wAxS8L14AsfZxwNSS0srGTIf386y8g9Xcztgsey5ch2VSX7KIXe3StPUea6TAFt/l5 To6SWUf3laONUW7r2wwgPWn5UH0kBXuWfUMk/1/8= Received: by mail-qk1-f175.google.com with SMTP id k130so3388538qke.3; Thu, 11 Apr 2019 06:10:17 -0700 (PDT) X-Gm-Message-State: APjAAAXrqGgyjhvnZjVNAK628oqLNy2W0UAlwuYVWLvqkc1mWyafFxdc jIa8qbbjHq8SsIpZiMj922QmUSWpBnSXNk+YMw== X-Received: by 2002:a37:6441:: with SMTP id y62mr38007553qkb.158.1554988217026; Thu, 11 Apr 2019 06:10:17 -0700 (PDT) MIME-Version: 1.0 References: <20190411084304.5072-2-paul.walmsley@sifive.com> <20190411084304.5072-5-paul.walmsley@sifive.com> In-Reply-To: <20190411084304.5072-5-paul.walmsley@sifive.com> From: Rob Herring Date: Thu, 11 Apr 2019 08:10:05 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 4/6] riscv: dts: add initial support for the SiFive FU540-C000 SoC To: Paul Walmsley Cc: "linux-kernel@vger.kernel.org" , linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, Paul Walmsley , Rob Herring , Mark Rutland , Palmer Dabbelt , Albert Ou Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 11, 2019 at 3:43 AM Paul Walmsley wrote: > > Add initial support for the SiFive FU540-C000 SoC. This is a 28nm SoC > based around the SiFive U54-MC core complex and a TileLink > interconnect. > > This file is expected to grow as more device drivers are added to the > kernel. > > Signed-off-by: Paul Walmsley > Signed-off-by: Paul Walmsley > Cc: Rob Herring > Cc: Mark Rutland > Cc: Palmer Dabbelt > Cc: Albert Ou > Cc: devicetree@vger.kernel.org > Cc: linux-riscv@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 207 +++++++++++++++++++++ > 1 file changed, 207 insertions(+) > create mode 100644 arch/riscv/boot/dts/sifive/fu540-c000.dtsi > > diff --git a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi > new file mode 100644 > index 000000000000..dd3b9395cedf > --- /dev/null > +++ b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi > @@ -0,0 +1,207 @@ > +// SPDX-License-Identifier: (Apache-2.0 OR GPL-2.0+) You're okay with GPLv9 license? You're free to license however you want, but most dts files use MIT for permissive license. > +/* Copyright (c) 2018-2019 SiFive, Inc */ > + > +/dts-v1/; > + > +#include > + > +/ { > + #address-cells = <2>; > + #size-cells = <2>; > + compatible = "sifive,fu540-c000", "sifive,fu540"; No point in this as the board file overrides. > + > + aliases { > + serial0 = &uart0; > + serial1 = &uart1; > + }; > + > + chosen { > + }; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + timebase-frequency = <1000000>; > + cpu0: cpu@0 { > + compatible = "sifive,e51", "sifive,rocket0", "riscv"; > + device_type = "cpu"; > + i-cache-block-size = <64>; > + i-cache-sets = <128>; > + i-cache-size = <16384>; > + reg = <0>; > + riscv,isa = "rv64imac"; > + status = "okay"; okay is the default. It is strange cpu@0 is missing many of the cache properties... > + cpu0_intc: interrupt-controller { > + #interrupt-cells = <1>; > + compatible = "riscv,cpu-intc"; > + interrupt-controller; > + }; > + }; > + cpu1: cpu@1 { > + compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; > + d-cache-block-size = <64>; > + d-cache-sets = <64>; > + d-cache-size = <32768>; > + d-tlb-sets = <1>; > + d-tlb-size = <32>; > + device_type = "cpu"; > + i-cache-block-size = <64>; > + i-cache-sets = <64>; > + i-cache-size = <32768>; > + i-tlb-sets = <1>; > + i-tlb-size = <32>; > + mmu-type = "riscv,sv39"; > + reg = <1>; > + riscv,isa = "rv64imafdc"; > + status = "okay"; > + tlb-split; > + cpu1_intc: interrupt-controller { > + #interrupt-cells = <1>; > + compatible = "riscv,cpu-intc"; > + interrupt-controller; > + }; > + }; > + cpu2: cpu@2 { > + clock-frequency = <0>; > + compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; > + d-cache-block-size = <64>; > + d-cache-sets = <64>; > + d-cache-size = <32768>; > + d-tlb-sets = <1>; > + d-tlb-size = <32>; > + device_type = "cpu"; > + i-cache-block-size = <64>; > + i-cache-sets = <64>; > + i-cache-size = <32768>; > + i-tlb-sets = <1>; > + i-tlb-size = <32>; > + mmu-type = "riscv,sv39"; > + reg = <2>; > + riscv,isa = "rv64imafdc"; > + status = "okay"; > + tlb-split; > + cpu2_intc: interrupt-controller { > + #interrupt-cells = <1>; > + compatible = "riscv,cpu-intc"; > + interrupt-controller; > + }; > + }; > + cpu3: cpu@3 { > + clock-frequency = <0>; > + compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; > + d-cache-block-size = <64>; > + d-cache-sets = <64>; > + d-cache-size = <32768>; > + d-tlb-sets = <1>; > + d-tlb-size = <32>; > + device_type = "cpu"; > + i-cache-block-size = <64>; > + i-cache-sets = <64>; > + i-cache-size = <32768>; > + i-tlb-sets = <1>; > + i-tlb-size = <32>; > + mmu-type = "riscv,sv39"; > + reg = <3>; > + riscv,isa = "rv64imafdc"; > + status = "okay"; > + tlb-split; > + cpu3_intc: interrupt-controller { > + #interrupt-cells = <1>; > + compatible = "riscv,cpu-intc"; > + interrupt-controller; > + }; > + }; > + cpu4: cpu@4 { > + clock-frequency = <0>; > + compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; > + d-cache-block-size = <64>; > + d-cache-sets = <64>; > + d-cache-size = <32768>; > + d-tlb-sets = <1>; > + d-tlb-size = <32>; > + device_type = "cpu"; > + i-cache-block-size = <64>; > + i-cache-sets = <64>; > + i-cache-size = <32768>; > + i-tlb-sets = <1>; > + i-tlb-size = <32>; > + mmu-type = "riscv,sv39"; > + reg = <4>; > + riscv,isa = "rv64imafdc"; > + status = "okay"; > + tlb-split; > + cpu4_intc: interrupt-controller { > + #interrupt-cells = <1>; > + compatible = "riscv,cpu-intc"; > + interrupt-controller; > + }; > + }; > + }; > + soc { > + #address-cells = <2>; > + #size-cells = <2>; Really need 64-bits of address and size for peripherals? > + compatible = "sifive,fu540-c000", "sifive,fu540", "simple-bus"; Just simple-bus here. You can't reuse compatible strings. > + ranges; > + plic0: interrupt-controller@c000000 { > + #interrupt-cells = <1>; > + compatible = "sifive,plic-1.0.0"; > + reg = <0x0 0xc000000 0x0 0x4000000>; > + interrupt-controller; > + interrupts-extended = < > + &cpu0_intc 11 > + &cpu1_intc 11 &cpu1_intc 9 > + &cpu2_intc 11 &cpu2_intc 9 > + &cpu3_intc 11 &cpu3_intc 9 > + &cpu4_intc 11 &cpu4_intc 9>; > + }; > + prci: clock-controller@10000000 { > + compatible = "sifive,fu540-c000-prci"; > + reg = <0x0 0x10000000 0x0 0x1000>; > + clocks = <&hfclk>, <&rtcclk>; > + #clock-cells = <1>; > + }; > + uart0: serial@10010000 { > + compatible = "sifive,fu540-c000-uart", "sifive,uart0"; > + reg = <0x0 0x10010000 0x0 0x1000>; > + interrupt-parent = <&plic0>; Move all these up to the parent. > + interrupts = <4>; > + clocks = <&prci PRCI_CLK_TLCLK>; > + }; > + uart1: serial@10011000 { > + compatible = "sifive,fu540-c000-uart", "sifive,uart0"; > + reg = <0x0 0x10011000 0x0 0x1000>; > + interrupt-parent = <&plic0>; > + interrupts = <5>; > + clocks = <&prci PRCI_CLK_TLCLK>; > + }; > + qspi0: spi@10040000 { > + compatible = "sifive,fu540-c000-spi", "sifive,spi0"; > + reg = <0x0 0x10040000 0x0 0x1000 > + 0x0 0x20000000 0x0 0x10000000>; > + interrupt-parent = <&plic0>; > + interrupts = <51>; > + clocks = <&prci PRCI_CLK_TLCLK>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + qspi2: spi@10050000 { > + compatible = "sifive,fu540-c000-spi", "sifive,spi0"; > + reg = <0x0 0x10050000 0x0 0x1000>; > + interrupt-parent = <&plic0>; > + interrupts = <6>; > + clocks = <&prci PRCI_CLK_TLCLK>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + qspi1: spi@10140000 { > + compatible = "sifive,fu540-c000-spi", "sifive,spi0"; > + reg = <0x0 0x10140000 0x0 0x1000 > + 0x0 0x30000000 0x0 0x10000000>; > + interrupt-parent = <&plic0>; > + interrupts = <52>; > + clocks = <&prci PRCI_CLK_TLCLK>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > +}; > -- > 2.20.1 >