Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp4818194imj; Wed, 13 Feb 2019 01:25:22 -0800 (PST) X-Google-Smtp-Source: AHgI3IZ8tlMXpPFtkY1fOw+ZR4Fh3iM61AwuZw0tUEf3Wk6D3cZ0llaz4TFfiy3n0EcdJEZQDLQf X-Received: by 2002:a63:125a:: with SMTP id 26mr8079982pgs.314.1550049922289; Wed, 13 Feb 2019 01:25:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550049922; cv=none; d=google.com; s=arc-20160816; b=YobWo206RL8b3UTS9KqH7HY9rQj1YSmlKf0ViOcorEhLsFEAg6sxI/76NGW+E4lyBX O707czG/YVwMD1SsQVhNnw3UYU9GdUQhmNJPEY2qx0atpDvj4OqFoJYSNBL5HKktLge8 P5ZyRuI9VuTrS78fddXVlvLrudPaVvtOCxHIrbwB8e8umtHe/6HBQ/+fE0Q/LaNlm5jH pS+AgJZAclbpHscIHdWBrCgF0pZLBPabrbRsdASkkc+Sl0B4A3lXwYw3a5oo0L/qTFYT T8suQUTZflJEKKMnwlndOVoTnM8hNxq+ZC51Gk8veR5pxyTdreSvGB3tjwWcQ3ApX06I tOTA== 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; bh=w3g572h+/a9Ug8FKJQmOpurnxf+kco42ybZ0QjAXzQk=; b=rmFTvwFmKOvMHfJFpARFloaBVZSkql2kJQPxnDiG7SajJ0/1G/IweqZ239JwSAxFuc p4LL9zU4AlaASw90AkcLsjxwct/2Vme0tKrULRFY4QBA/tIUAREuYKxtnqFJblfJ1GDZ ctfxbQ7m6qidMQemj3Vk6F+D2GrIKPl1ilak/YOV2Pt0UXFA3wUiRabd/RqpYH/bWlKE oSmWp7WoQCI1yy3Pfn6Xmvb97hfY3nBLFx0Mi5cV1b5wglfyFILp6hhKM5NvQFe4NafM 6A6ocOzp/hjBqV590QlBlQrbAZ7vX6h3DmvRUackf8aqvUnHAIpqzRx2cCBewEz6Ffci NSuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=Q9JOUjU+; 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=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c16si10432326pgh.545.2019.02.13.01.25.06; Wed, 13 Feb 2019 01:25:22 -0800 (PST) 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=@ti.com header.s=ti-com-17Q1 header.b=Q9JOUjU+; 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=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730355AbfBMEXf (ORCPT + 99 others); Tue, 12 Feb 2019 23:23:35 -0500 Received: from lelv0142.ext.ti.com ([198.47.23.249]:57972 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728364AbfBMEXf (ORCPT ); Tue, 12 Feb 2019 23:23:35 -0500 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id x1D4NDX4126177; Tue, 12 Feb 2019 22:23:13 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1550031793; bh=w3g572h+/a9Ug8FKJQmOpurnxf+kco42ybZ0QjAXzQk=; h=Subject:To:CC:References:From:Date:In-Reply-To; b=Q9JOUjU+OcwXHdHVVODzTZo3UmTlZ57v2se0Y7ioWPqQRm+AUZBj/6A23kVWbUg16 XCIrxAsbv0spjuJ4MLvmCrwd16bNqYxucgFu5R8bTnZCgMJqTb+C3HijiZSZteenFZ /oZupLYNznHQJw6+nVZymOrRmR6//NQkWoI0A3hw= Received: from DLEE107.ent.ti.com (dlee107.ent.ti.com [157.170.170.37]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x1D4NDRH010593 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 12 Feb 2019 22:23:13 -0600 Received: from DLEE114.ent.ti.com (157.170.170.25) by DLEE107.ent.ti.com (157.170.170.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10; Tue, 12 Feb 2019 22:23:13 -0600 Received: from dlep33.itg.ti.com (157.170.170.75) by DLEE114.ent.ti.com (157.170.170.25) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1591.10 via Frontend Transport; Tue, 12 Feb 2019 22:23:13 -0600 Received: from [172.24.190.117] (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep33.itg.ti.com (8.14.3/8.13.8) with ESMTP id x1D4N8kb014510; Tue, 12 Feb 2019 22:23:09 -0600 Subject: Re: [PATCH v5 05/10] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings To: Tony Lindgren CC: , Nishanth Menon , Santosh Shilimkar , Rob Herring , , , Linux ARM Mailing List , , Device Tree Mailing List , Sekhar Nori , Tero Kristo , Peter Ujfalusi References: <20190212074237.2875-1-lokeshvutla@ti.com> <20190212074237.2875-6-lokeshvutla@ti.com> <20190212163018.GL5720@atomide.com> From: Lokesh Vutla Message-ID: <5b5d86b9-2aa7-718c-c1da-70bbf9bf589e@ti.com> Date: Wed, 13 Feb 2019 09:52:51 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <20190212163018.GL5720@atomide.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Tony, On 12/02/19 10:00 PM, Tony Lindgren wrote: > Hi, > > * Lokesh Vutla [190212 07:43]: >> +The Interrupt Router (INTR) module provides a mechanism to route M >> +interrupt inputs to N interrupt outputs, where all M inputs are selectable >> +to be driven per N output. There is one register per output (MUXCNTL_N) that >> +controls the selection. >> + >> + >> + Interrupt Router >> + +----------------------+ >> + | Inputs Outputs | >> + +-------+ | +------+ | >> + | GPIO |----------->| | irq0 | | Host IRQ >> + +-------+ | +------+ | controller >> + | . +-----+ | +-------+ >> + +-------+ | . | 0 | |----->| IRQ | >> + | INTA |----------->| . +-----+ | +-------+ >> + +-------+ | . . | >> + | +------+ . | >> + | | irqM | +-----+ | >> + | +------+ | N | | >> + | +-----+ | >> + +----------------------+ > > Is this always one-to-one mapping or can the same interrupt be routed to > multiple targets like to the SoC and some coprocessor? Yes, it is always one-to-one. Output of INTR can only be attached to one of the processor. > >> +Configuration of these MUXCNTL_N registers is done by a system controller >> +(like the Device Memory and Security Controller on K3 AM654 SoC). System >> +controller will keep track of the used and unused registers within the Router. >> +Driver should request the system controller to get the range of GIC IRQs >> +assigned to the requesting hosts. It is the drivers responsibility to keep >> +track of Host IRQs. >> + >> +Communication between the host processor running an OS and the system >> +controller happens through a protocol called TI System Control Interface >> +(TISCI protocol). For more details refer: >> +Documentation/devicetree/bindings/arm/keystone/ti,sci.txt > > Care to describe a bit why the interrupts need to be routed by a system > controller? K3 architecture defines a heterogeneous system where multiple heterogeneous cores are serving its own usecases. Given that there are multiple ways in which a device IRQ can be routed using INTR, like either it can be routed to HLOS core(A53 int this case) or it can be routed to any other coprocessor available in the system(like R5). If every sw running in each co-processor is allowed to program this INTR then there is a high probability that one sw executing on one core can damage other heterogeneous core. Mainly to avoid this damage the configuration of all the INTRs and INTAs are done in a centralized place(sysfw). Any user for programming its IRQ route should send a message to sysfw with the parameters. These parameters are policed by sysfw and does the configuration. Thanks and regards, Lokesh