Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp117332imm; Thu, 2 Aug 2018 15:09:19 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdq6j66Sck/dNGvBk6gN9+E48VCDXVkKGpN75loVdKNB0QFl/U/MtAisa0r2tEfzldlaM0j X-Received: by 2002:a63:161a:: with SMTP id w26-v6mr1150023pgl.257.1533247759399; Thu, 02 Aug 2018 15:09:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533247759; cv=none; d=google.com; s=arc-20160816; b=IqmljcO1UtyzX9gykPo2+E4BtqecxrSN1O+/kRjgRSXWwFcYBh11CD86ud1x2u3EtD NCt/E7ioyob7rI978KXlHoifsz3mTtxmXmMpLMS8crksDIPlN8DVNeuUFF9ciw93AW+S Ln247XvQ1wtWnUhqOdh+lbnLWZjSOzmH/jn3eQf+QUR3pKUbFie4nFUJO1onlr2L2na6 6BGcOnEOBzw5HyHa+ssuW0qBvYUJZQYmEmSATqmdTU2fSzWMUO561Jg55o5nHbGWTRtz cqhBgQuvqzw2OYu+LhecR5ZTVYPnP+lrHvfRW6rkk24++pLBvPxX7hLjAPN88rmoFs9N 9KWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=8sPokgZlyL67p09eGVJ6CkcivIyL8WAjH6NObEzG3GI=; b=nDVrMNHHMgJL1a4QroLxyceHA5LwDWRq6baB3NINJt7b7cmvnaH33HTlE1kdBE1+k9 lTgOXJoQQkDSF7TJ6EcE6ye2tu5uf9HwB9/v/0KjhMTnkeDjM3ujqo1OoNHvJpftievz sxDxNdnA3X2tDhlo7EEnKKxbkJnZXtevwyD/AhtKy49ET8usOwcL4i72kpWFwQkXS3mn eL6+Sg62B9Lra9obGqBj3E7adgCNI3PkOdgER+QKQh+kgk4XS9i3EAKHIDlxh3xu2OLr h9Vr07dzc9LWVIcLaqKTRfQB2NSE+RdyLQzvH/dWmL4rgkjIYFRtbsriSRqWxzLfNp9S qtdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b="G/wZC9ep"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 2-v6si3255922pgs.280.2018.08.02.15.09.04; Thu, 02 Aug 2018 15:09:19 -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=fail header.i=@wdc.com header.s=dkim.wdc.com header.b="G/wZC9ep"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727111AbeHCABW (ORCPT + 99 others); Thu, 2 Aug 2018 20:01:22 -0400 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:23290 "EHLO esa5.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726229AbeHCABW (ORCPT ); Thu, 2 Aug 2018 20:01:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1533247697; x=1564783697; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=IkEMS6307cxa1iJwY/yXxGC9EkjJJe4RM3A347gjklY=; b=G/wZC9epLsvRgfjrOnUVgsFVw1tJqOVdQtcsOGTHqz/9DRj3+24DSA2W MsaTE6Mrui6sq8V/fADrnsip4PYf7UedAkDgBH45DlTY22dCa9z4RNerI SHNHH4Za4D/B+ygyQZQhwwEHuHoEhXNTHoOXOZifAKAYaq/CNdO/6qY3I FeOpGcprxdHDHttAJZHsi1FzSHlmJGnROBZKzByNcloNt5YGfkmDlP9Mf kqkdEvv4nBbjh+BlSY0ex3iS85+ENq4eUayOCsgdJpg8TinnJigMiRBS3 Bp19En0SbEhlZ6EYL8VivjFCf4ikZq49pZAfmYcVkomhMmBQXwlCqC0T2 A==; X-IronPort-AV: E=Sophos;i="5.51,437,1526313600"; d="scan'208";a="87014537" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 03 Aug 2018 06:08:16 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP; 02 Aug 2018 14:56:02 -0700 Received: from c02v91rdhtd5.sdcorp.global.sandisk.com (HELO [10.196.159.148]) ([10.196.159.148]) by uls-op-cesaip02.wdc.com with ESMTP; 02 Aug 2018 15:08:16 -0700 Subject: Re: [PATCH 03/11] dt-bindings: interrupt-controller: RISC-V PLIC documentation To: Christoph Hellwig , "tglx@linutronix.de" , "palmer@sifive.com" , "jason@lakedaemon.net" , "marc.zyngier@arm.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , Palmer Dabbelt Cc: "devicetree@vger.kernel.org" , "aou@eecs.berkeley.edu" , "anup@brainfault.org" , "linux-kernel@vger.kernel.org" , "linux-riscv@lists.infradead.org" , "shorne@gmail.com" References: <20180802115008.4031-1-hch@lst.de> <20180802115008.4031-4-hch@lst.de> From: Atish Patra Message-ID: <0093fadc-a150-3745-e73d-e579bfdfabfb@wdc.com> Date: Thu, 2 Aug 2018 15:08:15 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20180802115008.4031-4-hch@lst.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/2/18 4:50 AM, Christoph Hellwig wrote: > From: Palmer Dabbelt > > This patch adds documentation for the platform-level interrupt > controller (PLIC) found in all RISC-V systems. This interrupt > controller routes interrupts from all the devices in the system to each > hart-local interrupt controller. > > Note: the DTS bindings for the PLIC aren't set in stone yet, as we might > want to change how we're specifying holes in the hart list. > > Signed-off-by: Palmer Dabbelt > [hch: various fixes and updates] > Signed-off-by: Christoph Hellwig > --- > .../interrupt-controller/sifive,plic0.txt | 57 +++++++++++++++++++ > 1 file changed, 57 insertions(+) > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/sifive,plic0.txt > > diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic0.txt b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic0.txt > new file mode 100644 > index 000000000000..c756cd208a93 > --- /dev/null > +++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic0.txt > @@ -0,0 +1,57 @@ > +SiFive Platform-Level Interrupt Controller (PLIC) > +------------------------------------------------- > + > +SiFive SOCs include an implementation of the Platform-Level Interrupt Controller > +(PLIC) high-level specification in the RISC-V Privileged Architecture > +specification. The PLIC connects all external interrupts in the system to all > +hart contexts in the system, via the external interrupt source in each hart. > + > +A hart context is a privilege mode in a hardware execution thread. For example, > +in an 4 core system with 2-way SMT, you have 8 harts and probably at least two > +privilege modes per hart; machine mode and supervisor mode. > + > +Each interrupt can be enabled on per-context basis. Any context can claim > +a pending enabled interrupt and then release it once it has been handled. > + > +Each interrupt has a configurable priority. Higher priority interrupts are > +serviced first. Each context can specify a priority threshold. Interrupts > +with priority below this threshold will not cause the PLIC to raise its > +interrupt line leading to the context. > + > +While the PLIC supports both edge-triggered and level-triggered interrupts, > +interrupt handlers are oblivious to this distinction and therefore it is not > +specified in the PLIC device-tree binding. > + > +While the RISC-V ISA doesn't specify a memory layout for the PLIC, the > +"sifive,plic0" device is a concrete implementation of the PLIC that contains a > +specific memory layout, which is documented in chapter 8 of the SiFive U5 > +Coreplex Series Manual . > + > +Required properties: > +- compatible : "sifive,plic0" > +- #address-cells : should be <0> > +- #interrupt-cells : should be <1> > +- interrupt-controller : Identifies the node as an interrupt controller > +- reg : Should contain 1 register range (address and length) The one in the real device tree has two entries. reg = <0x00000000 0x0c000000 0x00000000 0x04000000>; Is it intentional or just incorrect entry left over from earlier days? Regards, Atish > +- interrupts-extended : Specifies which contexts are connected to the PLIC, > + with "-1" specifying that a context is not present. The nodes pointed > + to should be "riscv" HART nodes, or eventually be parented by such nodes. > +- riscv,ndev: Specifies how many external interrupts are supported by > + this controller. > + > +Example: > + > + plic: interrupt-controller@c000000 { > + #address-cells = <0>; > + #interrupt-cells = <1>; > + compatible = "riscv,plic0"; > + 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>; > + reg = <0xc000000 0x4000000>; > + riscv,ndev = <10>; > + }; >