From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1365C433EF for ; Tue, 21 Dec 2021 14:56:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238692AbhLUO4t (ORCPT ); Tue, 21 Dec 2021 09:56:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238683AbhLUO4t (ORCPT ); Tue, 21 Dec 2021 09:56:49 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 147CCC061574; Tue, 21 Dec 2021 06:56:49 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A50D46163B; Tue, 21 Dec 2021 14:56:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCBD8C36AEC; Tue, 21 Dec 2021 14:56:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640098608; bh=zB+LhZA/mMW0h3avW6Wp5dGr4zLsowcd1TtLd2uAcf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qe+GY47Bi2ExCyR8FnxN8h/z5Qne05/DB2EqjLqhav+pZYXofgYtxbVawiyZVBkUJ XLtkour7BtiJCZn8yRjgJhKwIT7t1XBUtb+JZuLmGqq0l1R43+zE46RpLtrpFgPQ+9 N4FmYDfTJG7hBHEfYEmQGTFMJyQ67U3SvcJKU9cV4mFat6ZH9XixU8HB2e7G97i99L N84P2NufEzDV8cRoeb3xYwat6oRypLmBADusIENzwIFlPiaLSk4SzJwudmWPQPfhAI sOI2/NOE9Wt+uzX/WgWjarVYN5+CQpiH3gFyksd18Y+o9DVTOPwzW9qbDt9QazkmcV zDSjdorzUBZnA== Received: by pali.im (Postfix) id AA7A62862; Tue, 21 Dec 2021 15:18:13 +0100 (CET) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: "Thomas Petazzoni" , "Lorenzo Pieralisi" , "Rob Herring" , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , "Bjorn Helgaas" , =?UTF-8?q?Marek=20Beh=C3=BAn?= Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/11] PCI: pci-bridge-emul: Add support for new flag PCI_BRIDGE_EMUL_NO_IO_FORWARD Date: Tue, 21 Dec 2021 15:14:48 +0100 Message-Id: <20211221141455.30011-5-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20211221141455.30011-1-pali@kernel.org> References: <20211221141455.30011-1-pali@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Like PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD, this new flag specifies that emulated PCI bridge does not support forwarding of IO requests in given range between primary and secondary buses. This flag should be used as argument for pci_bridge_emul_init() for hardware setup without IO support. Setting this flag cause that IO base and limit registers are read-only. Signed-off-by: Pali Rohár --- drivers/pci/pci-bridge-emul.c | 9 +++++++++ drivers/pci/pci-bridge-emul.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c index 432b1bec2e22..033bbeb99176 100644 --- a/drivers/pci/pci-bridge-emul.c +++ b/drivers/pci/pci-bridge-emul.c @@ -378,6 +378,15 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge, bridge->pci_regs_behavior[PCI_PREF_MEMORY_BASE / 4].rw = 0; } + if (flags & PCI_BRIDGE_EMUL_NO_IO_FORWARD) { + bridge->pci_regs_behavior[PCI_COMMAND / 4].ro |= PCI_COMMAND_IO; + bridge->pci_regs_behavior[PCI_COMMAND / 4].rw &= ~PCI_COMMAND_IO; + bridge->pci_regs_behavior[PCI_IO_BASE / 4].ro |= GENMASK(15, 0); + bridge->pci_regs_behavior[PCI_IO_BASE / 4].rw &= ~GENMASK(15, 0); + bridge->pci_regs_behavior[PCI_IO_BASE_UPPER16 / 4].ro = ~0; + bridge->pci_regs_behavior[PCI_IO_BASE_UPPER16 / 4].rw = 0; + } + return 0; } EXPORT_SYMBOL_GPL(pci_bridge_emul_init); diff --git a/drivers/pci/pci-bridge-emul.h b/drivers/pci/pci-bridge-emul.h index 88877ebefbac..ab33609c598b 100644 --- a/drivers/pci/pci-bridge-emul.h +++ b/drivers/pci/pci-bridge-emul.h @@ -121,6 +121,7 @@ struct pci_bridge_emul { enum { PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD = BIT(0), + PCI_BRIDGE_EMUL_NO_IO_FORWARD = BIT(1), }; int pci_bridge_emul_init(struct pci_bridge_emul *bridge, -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3ADD0C433EF for ; Tue, 21 Dec 2021 15:00:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QGQj/STCd/sy9m7JnDfjU1mIC5LWxErhJ2u+IL1pNS8=; b=QvGWXVSfY+k/nm aDkgXhS0e8HMsvXG8PtJ0bHpmnFVgixg/r+vlzuhajL8msVAE3wsq/8/G/v/w5nPfVBU1KiTitYow UDDXQpURJt/Q6zWhpnlpXOBzTvb1n1lJC/m+MdqBR2p1ogvXAWtX5upnDfo8ZofJ+KBWaMnjWu6Od 0Ca3Ce95bec4pqprnQ9ZYeiS4zoNaWxnyO7XQG6KjaMorIJVbXL+jGniJ5eWnhxxZGZIpDFr2Wn5P 11HXfzHdqyMAsDnLWDnXXioBJxXrcLA6zOW1fnlvPtqkNNpt1CpEUfABbQqFxC87PvGuI5BFMAE7u PD/3MhgLusgw5EYLUNuA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mzgbn-007F0n-95; Tue, 21 Dec 2021 14:59:19 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mzgZP-007DuI-4O for linux-arm-kernel@lists.infradead.org; Tue, 21 Dec 2021 14:56:54 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B3B6DB8172F; Tue, 21 Dec 2021 14:56:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCBD8C36AEC; Tue, 21 Dec 2021 14:56:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640098608; bh=zB+LhZA/mMW0h3avW6Wp5dGr4zLsowcd1TtLd2uAcf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qe+GY47Bi2ExCyR8FnxN8h/z5Qne05/DB2EqjLqhav+pZYXofgYtxbVawiyZVBkUJ XLtkour7BtiJCZn8yRjgJhKwIT7t1XBUtb+JZuLmGqq0l1R43+zE46RpLtrpFgPQ+9 N4FmYDfTJG7hBHEfYEmQGTFMJyQ67U3SvcJKU9cV4mFat6ZH9XixU8HB2e7G97i99L N84P2NufEzDV8cRoeb3xYwat6oRypLmBADusIENzwIFlPiaLSk4SzJwudmWPQPfhAI sOI2/NOE9Wt+uzX/WgWjarVYN5+CQpiH3gFyksd18Y+o9DVTOPwzW9qbDt9QazkmcV zDSjdorzUBZnA== Received: by pali.im (Postfix) id AA7A62862; Tue, 21 Dec 2021 15:18:13 +0100 (CET) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: "Thomas Petazzoni" , "Lorenzo Pieralisi" , "Rob Herring" , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , "Bjorn Helgaas" , =?UTF-8?q?Marek=20Beh=C3=BAn?= Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/11] PCI: pci-bridge-emul: Add support for new flag PCI_BRIDGE_EMUL_NO_IO_FORWARD Date: Tue, 21 Dec 2021 15:14:48 +0100 Message-Id: <20211221141455.30011-5-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20211221141455.30011-1-pali@kernel.org> References: <20211221141455.30011-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211221_065651_389088_369B8244 X-CRM114-Status: GOOD ( 13.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org TGlrZSBQQ0lfQlJJREdFX0VNVUxfTk9fUFJFRk1FTV9GT1JXQVJELCB0aGlzIG5ldyBmbGFnIHNw ZWNpZmllcyB0aGF0CmVtdWxhdGVkIFBDSSBicmlkZ2UgZG9lcyBub3Qgc3VwcG9ydCBmb3J3YXJk aW5nIG9mIElPIHJlcXVlc3RzIGluIGdpdmVuCnJhbmdlIGJldHdlZW4gcHJpbWFyeSBhbmQgc2Vj b25kYXJ5IGJ1c2VzLiBUaGlzIGZsYWcgc2hvdWxkIGJlIHVzZWQgYXMKYXJndW1lbnQgZm9yIHBj aV9icmlkZ2VfZW11bF9pbml0KCkgZm9yIGhhcmR3YXJlIHNldHVwIHdpdGhvdXQgSU8gc3VwcG9y dC4KClNldHRpbmcgdGhpcyBmbGFnIGNhdXNlIHRoYXQgSU8gYmFzZSBhbmQgbGltaXQgcmVnaXN0 ZXJzIGFyZSByZWFkLW9ubHkuCgpTaWduZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJu ZWwub3JnPgotLS0KIGRyaXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11bC5jIHwgOSArKysrKysrKysK IGRyaXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11bC5oIHwgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDEw IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwu YyBiL2RyaXZlcnMvcGNpL3BjaS1icmlkZ2UtZW11bC5jCmluZGV4IDQzMmIxYmVjMmUyMi4uMDMz YmJlYjk5MTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYworKysg Yi9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuYwpAQCAtMzc4LDYgKzM3OCwxNSBAQCBpbnQg cGNpX2JyaWRnZV9lbXVsX2luaXQoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAogCQli cmlkZ2UtPnBjaV9yZWdzX2JlaGF2aW9yW1BDSV9QUkVGX01FTU9SWV9CQVNFIC8gNF0ucncgPSAw OwogCX0KIAorCWlmIChmbGFncyAmIFBDSV9CUklER0VfRU1VTF9OT19JT19GT1JXQVJEKSB7CisJ CWJyaWRnZS0+cGNpX3JlZ3NfYmVoYXZpb3JbUENJX0NPTU1BTkQgLyA0XS5ybyB8PSBQQ0lfQ09N TUFORF9JTzsKKwkJYnJpZGdlLT5wY2lfcmVnc19iZWhhdmlvcltQQ0lfQ09NTUFORCAvIDRdLnJ3 ICY9IH5QQ0lfQ09NTUFORF9JTzsKKwkJYnJpZGdlLT5wY2lfcmVnc19iZWhhdmlvcltQQ0lfSU9f QkFTRSAvIDRdLnJvIHw9IEdFTk1BU0soMTUsIDApOworCQlicmlkZ2UtPnBjaV9yZWdzX2JlaGF2 aW9yW1BDSV9JT19CQVNFIC8gNF0ucncgJj0gfkdFTk1BU0soMTUsIDApOworCQlicmlkZ2UtPnBj aV9yZWdzX2JlaGF2aW9yW1BDSV9JT19CQVNFX1VQUEVSMTYgLyA0XS5ybyA9IH4wOworCQlicmlk Z2UtPnBjaV9yZWdzX2JlaGF2aW9yW1BDSV9JT19CQVNFX1VQUEVSMTYgLyA0XS5ydyA9IDA7CisJ fQorCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfYnJpZGdlX2VtdWxfaW5p dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuaCBiL2RyaXZlcnMv cGNpL3BjaS1icmlkZ2UtZW11bC5oCmluZGV4IDg4ODc3ZWJlZmJhYy4uYWIzMzYwOWM1OThiIDEw MDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2ktYnJpZGdlLWVtdWwuaAorKysgYi9kcml2ZXJzL3Bj aS9wY2ktYnJpZGdlLWVtdWwuaApAQCAtMTIxLDYgKzEyMSw3IEBAIHN0cnVjdCBwY2lfYnJpZGdl X2VtdWwgewogCiBlbnVtIHsKIAlQQ0lfQlJJREdFX0VNVUxfTk9fUFJFRk1FTV9GT1JXQVJEID0g QklUKDApLAorCVBDSV9CUklER0VfRU1VTF9OT19JT19GT1JXQVJEID0gQklUKDEpLAogfTsKIAog aW50IHBjaV9icmlkZ2VfZW11bF9pbml0KHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwK LS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK