Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3647498imu; Mon, 14 Jan 2019 06:45:21 -0800 (PST) X-Google-Smtp-Source: ALg8bN7HDLTOc42AE8SYBXpXJ2a30pLW7+5VORv7FCxODSnKdQjM0Q/80GpcDpWPsXkjqpmSQXCD X-Received: by 2002:a17:902:e28e:: with SMTP id cf14mr26201201plb.311.1547477121622; Mon, 14 Jan 2019 06:45:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547477121; cv=none; d=google.com; s=arc-20160816; b=H9peoTNfUGRPy2pechLOXmyNUB00CgXAAdqT8uOiVPdpuGE5iWgo3xRMKWalskeMhJ pDXJL1eOpKrWPDP3Ma7eR4MbiG7JXY5oHUiXuumI5qH7D/riKwQppYU7acZM+JnUDfLH /lz0QAAFjfLA0uDyWshU+RV5Mq3PPK4Cs814a7PkjvZzTsCVPJlZ/ssqemjEkIykMI5W MlytqJZMvLT90zM4MbzKpjrLkCe1XTk/k1qxQJ5R64/9Ozuu2zRL5PYcF8IiuTWG+vth Q2i0/FXDFzwykBCKBiwIbZ8gSLPgJEd2bejSbkrSBrCdjkKIWWOI5HyjeiyTTPUTVHH3 1wkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=pfNg8uy/0aNyxDYobiE4202tk8QPbytqXtVhfpvQkuA=; b=PxHTll7gEDVj+gLD6pPeIdxR9jOKPT034by6/UdvihZzQ0e1jnHydmkCH7dBpgSMbY JKdxK+Gs2tfKJXB6SDIPb+NHGFibzwE6TUTHg7S25shFYMUIsUddayU6domph1I5kgBt KhhZC834BLVcVc69Fwn4lgBFzwa6I6MSpflr3xW8OAgrQ116+e0WMZDjMnuBju5lwEMG uAXFVVNZVlAo2sukaa0I0WBHxZieomA+7+Oeb8aDziOGHDyOYGp2svB+5tOhyhYfcjec 20pr/x7dveuizrT8IfBPZPjDLT8ksOI7EP8SPnXGzutIITS1rj/HUu/H8iBqXr+CaS1L L0eQ== ARC-Authentication-Results: i=1; mx.google.com; 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 v20si470585pgk.103.2019.01.14.06.45.06; Mon, 14 Jan 2019 06:45:21 -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; 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 S1726653AbfANOmo (ORCPT + 99 others); Mon, 14 Jan 2019 09:42:44 -0500 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:7999 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726542AbfANOmo (ORCPT ); Mon, 14 Jan 2019 09:42:44 -0500 Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx08-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0EEaOnt031477; Mon, 14 Jan 2019 15:42:38 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2pybxy0gq2-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 14 Jan 2019 15:42:38 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 849363A; Mon, 14 Jan 2019 14:42:37 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 625B052AB; Mon, 14 Jan 2019 14:42:37 +0000 (GMT) Received: from SAFEX1HUBCAS24.st.com (10.75.90.95) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.361.1; Mon, 14 Jan 2019 15:42:37 +0100 Received: from localhost (10.201.20.122) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.361.1; Mon, 14 Jan 2019 15:42:36 +0100 From: Benjamin Gaignard To: , , CC: , , , Benjamin Gaignard Subject: [RFC 0/7] Introduce bus domains controller framework Date: Mon, 14 Jan 2019 15:41:55 +0100 Message-ID: <20190114144202.27315-1-benjamin.gaignard@st.com> X-Mailer: git-send-email 2.15.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.201.20.122] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-01-14_07:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The goal of this framework is to offer an interface for the hardware blocks controlling bus accesses rights. Bus domains controllers are typically used to control if a hardware block can perform read or write operations on bus. Smarter domains controllers could be able to define accesses rights per hardware blocks to control where they can read or write. Domains controller configurations are provided in device node, parsed by the framework and send to the driver to apply them. Each controller may need different number and type of inputs to configure a domain so device-tree properties size have to be define by using "#domainctrl-cells". Domains configurations properties have to be named "domainsctrl-X" on device node. "domainsctrl-names" keyword can also be used to give a name to a specific configuration. An example of bus domains controller is STM32 ETZPC hardware block which got 3 domains: - secure: hardware blocks are only accessible by software running on trust zone. - non-secure: hardware blocks are accessible by non-secure software (i.e. linux kernel). - coprocessor: hardware blocks are only accessible by the corpocessor. Up to 94 hardware blocks of the soc could be managed by ETZPC and assigned to one of the three domains. It is an RFC, comments are welcome to help to create this framework, thanks. Benjamin Benjamin Gaignard (7): devicetree: bindings: Document domains controller bindings domainsctrl: Introduce domains controller framework base: Add calls to domains controller devicetree: bindings: domainsctrl: Add STM32 ETZPC bindings bus: domainsctrl: Add driver for STM32 ETZPC controller ARM: dts: stm32: Add domainsctrl node for stm32mp157 SoC ARM: dts: stm32: enable domains controller node on stm32mp157c-ed1 .../bindings/bus/domains/domainsctrl.txt | 35 +++ .../bindings/bus/domains/st,stm32-etzpc.txt | 14 ++ arch/arm/boot/dts/stm32mp157c-ev1.dts | 2 + arch/arm/boot/dts/stm32mp157c.dtsi | 7 + drivers/base/dd.c | 9 + drivers/bus/Kconfig | 2 + drivers/bus/Makefile | 2 + drivers/bus/domains/Kconfig | 14 ++ drivers/bus/domains/Makefile | 2 + drivers/bus/domains/domainsctrl.c | 234 +++++++++++++++++++++ drivers/bus/domains/stm32-etzpc.c | 140 ++++++++++++ include/dt-bindings/bus/domains/stm32-etzpc.h | 25 +++ include/linux/domainsctrl.h | 70 ++++++ 13 files changed, 556 insertions(+) create mode 100644 Documentation/devicetree/bindings/bus/domains/domainsctrl.txt create mode 100644 Documentation/devicetree/bindings/bus/domains/st,stm32-etzpc.txt create mode 100644 drivers/bus/domains/Kconfig create mode 100644 drivers/bus/domains/Makefile create mode 100644 drivers/bus/domains/domainsctrl.c create mode 100644 drivers/bus/domains/stm32-etzpc.c create mode 100644 include/dt-bindings/bus/domains/stm32-etzpc.h create mode 100644 include/linux/domainsctrl.h -- 2.15.0