From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from GVAP278CU002.outbound.protection.outlook.com (mail-switzerlandwestazon11020080.outbound.protection.outlook.com [52.101.188.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90D4D32D0EE for ; Mon, 2 Mar 2026 13:47:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.188.80 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772459260; cv=fail; b=NOabvVYSgoDDzQttO/XjqzrCBKCkTuBw/JIotIg/vTA+lwAVNz3Nz57fBWDdeoqtl4MiwAZ3BWj+PEW3UZWEwNv4JFom+5c55TQPdvshw20BlLx9AonT3nbBVY5LZ+o2hHo5tu0o6yXWOM1y+FiFgyqeYtL5d4SoncAYBJvGDxU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772459260; c=relaxed/simple; bh=Cv5suxz6rGU4fOb/JwfaAd3mv1WxxWYmAfGfHfJ+cy0=; h=From:To:Cc:Subject:Date:Message-Id:Content-Type:MIME-Version; b=GEsFlPRDL7X4/EU0iPS9Kqow5LF4LPWk7qbZnv+pvQgRZG1rQqfIOyHib+/Ms7Mfb0EFIuKInO49v4iGhID38+vpzBIBDMNshOcaliqBQpHxChSOgHDyrtv4BdIlzsJUbo0j5TeCpGFu3uVvAm1t5qhs9VBriTZUMViO7GqqbVw= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=duagon.com; spf=pass smtp.mailfrom=duagon.com; dkim=pass (1024-bit key) header.d=duagon.com header.i=@duagon.com header.b=jAjqEhcM; arc=fail smtp.client-ip=52.101.188.80 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=duagon.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=duagon.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=duagon.com header.i=@duagon.com header.b="jAjqEhcM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QzZR+yui81uOZfvw58Cdcwdme5JvvIhK1BIUH8WDpD4kv7ne6kcV2dYn1/t+wIwhfLeIj4WpKKRgKX4MngVyNyQylyXxeiEDqsgJ/HVSn6qeGXQjOdpWKAY587wZo8FFa9XMNv3n49ZzRad+CVhIe7AueqMqUcPbVEspWMU8c3+PXwTBoIUaAXsnDtKtEYKirTXANG01lqWguW74aEGoxMr2kBsJpCBtbiWcGlDcc83MYj1yA3ZN7kAImA8fHwqgZhtVFtWdYlfmDBl7rMt6LsTya3IbnDy019yvK4FFTgAndm9sourGc+y3/bnVCxYUd1rwmpl2+AdtsGKgRyGfhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NQq2g6IkKlqdf/HcXgo9vR4VeIHIzLVhmrS9jHnTHFw=; b=EJE66HeD12lLKLmgvtpVagfrpnZqDy/tSozh4ru2UmgtkUM3Fb35Ps5KS5Mp37l8G3g9Cg19AQqQHJmB+Y8I2KvobYSn8gC0IbFoXvTuLLcVjOui6BQ0rwdoD0ThbKRklfwS1wTT/j7od0Q1BNVAhn9c+Do17xSjUjLuI0b3B69rh4c4/0UCVhUChjkG9+eEndoOkLc3h2oVKpY3quTyyexSeomE2A7ojsH6d8VCaogYiQYUm93yUN3tMTIGeqX1K97J7otyjpCBaeEsOYx4r2P73u8xpnPHSlaFjgnvAXZEl/cHBrHw8jDrs/VopXOaIl99H8PtJ5Y781UJBqqU9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.93.85.31) smtp.rcpttodomain=gmail.com smtp.mailfrom=duagon.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=duagon.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=duagon.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NQq2g6IkKlqdf/HcXgo9vR4VeIHIzLVhmrS9jHnTHFw=; b=jAjqEhcMWvZuMJT08xmVDRj4IynKclQyLvaXW/1nHYej9Qg7wVosL6wxLhwI4owow2X+zm73ZXKZ1738jzA9JVGCgaOuuOm3RzHwRttkhtGBtgVsc+uF9OHI222wFbULu7kpSRqlaIZrkvPOTvJv1vPzBaVlAbAfrNZ1dvufw6k= Received: from CWLP265CA0545.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:18d::10) by ZR0P278MB0058.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:19::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.21; Mon, 2 Mar 2026 13:47:35 +0000 Received: from AM2PEPF0001C711.eurprd05.prod.outlook.com (2603:10a6:400:18d:cafe::cc) by CWLP265CA0545.outlook.office365.com (2603:10a6:400:18d::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.20 via Frontend Transport; Mon, 2 Mar 2026 13:47:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.93.85.31) smtp.mailfrom=duagon.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=duagon.com; Received-SPF: Pass (protection.outlook.com: domain of duagon.com designates 40.93.85.31 as permitted sender) receiver=protection.outlook.com; client-ip=40.93.85.31; helo=ZRZP278CU001.outbound.protection.outlook.com; pr=C Received: from hz-deliver01.de.seppmail.cloud (2a01:4f8:a0:13df::219) by AM2PEPF0001C711.mail.protection.outlook.com (2603:10a6:20f:fff4:0:11:0:5) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16 via Frontend Transport; Mon, 2 Mar 2026 13:47:34 +0000 Received: from hz-glue01.de.seppmail.cloud (unknown [10.11.0.26]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hz-deliver01.de.seppmail.cloud (Postfix) with ESMTPS id 4fPgGt3jnGz4wwq; Mon, 2 Mar 2026 14:47:34 +0100 (CET) Received: from hz-glue01.de.seppmail.cloud (unknown [172.18.0.4]) by hz-glue01.de.seppmail.cloud (Postfix) with ESMTP id 4fPgGt3R5Lz20Zb; Mon, 2 Mar 2026 14:47:34 +0100 (CET) X-SEPP-Suspect: 5234c0769ec549a7a22b554a433a0df6 Received: from hz-scan03.de.seppmail.cloud (unknown [10.11.0.33]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by hz-glue01.de.seppmail.cloud (Postfix) with ESMTPS id 4fPgGt2m0yz20ZZ; Mon, 2 Mar 2026 14:47:34 +0100 (CET) Received: from hz-scan03 (localhost [127.0.0.1]) by hz-scan03.de.seppmail.cloud (Postfix) with SMTP id 4fPgGt29H2z2XMH; Mon, 02 Mar 2026 14:47:34 +0100 (CET) Received: from hz-m365gate01.de.seppmail.cloud (unknown [10.11.0.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hz-scan03.de.seppmail.cloud (Postfix) with ESMTPS; Mon, 02 Mar 2026 14:47:33 +0100 (CET) Received: from ZRZP278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazlp17011031.outbound.protection.outlook.com [40.93.85.31]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (not verified)) by hz-m365gate01.de.seppmail.cloud (Postfix) with ESMTPS id 4fPgGr3ZX3z2xH3; Mon, 2 Mar 2026 14:47:32 +0100 (CET) Received: from ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:80::5) by ZRAP278MB0015.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:14::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.21; Mon, 2 Mar 2026 13:47:30 +0000 Received: from ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM ([fe80::311:4b5c:48da:9514]) by ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM ([fe80::311:4b5c:48da:9514%5]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026 13:47:30 +0000 From: Filip Jensen To: morbidrsa@gmail.com Cc: linux-kernel@vger.kernel.org, Filip Jensen , Jose Javier Rodriguez Barbarin Subject: [PATCH v2 0/2] mcb: enable register PCI devices using any BAR Date: Mon, 2 Mar 2026 14:47:01 +0100 Message-Id: <20260302134703.29913-1-dev-Felipe.Jensen@duagon.com> X-Mailer: git-send-email 2.34.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: MA2P292CA0029.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::19) To ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:80::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: ZR0P278MB1218:EE_|ZRAP278MB0015:EE_|AM2PEPF0001C711:EE_|ZR0P278MB0058:EE_ X-MS-Office365-Filtering-Correlation-Id: a8332fde-f744-485e-2f7b-08de78624255 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info-Original: Oe/148+GE47CTpIzaejCiRbDQmx/pr0FBtZZiGJ4m5Mqi+m65gekHtflEHTpk3CC/G4cMCiO7Y3P9mT1ZkfFwhjoeLb148zpT5r+rBJ8RAV91YqXWY8x+KYf7P9iDh+0MHuLp2M99qV1n+WIzGzk3Tt63MBdeTSmQq7dVlsOJYmlk0DEBBvXukQd8fK3ViFUifPVE8mTZvfdU6+XTPNR6NzpNtxxEcChOPzhw8Kv6fOO/m28KmDuqryom35xZSZJ1ASqrq3Osz9dtuZJd7Zef4fCQT3v7ccgHaWgMB9E771rHasUA6bj/VVmcN5L42LOI3hrJ/63EIAmZhJzZBuinMWcv0XhqE6uMs4qQ6LzxWk9VviXZbF4QB1B1/WWYqxkS/KuEpSYk6x+jJSCdeK/tZJR3zW88SOTQ4O0PmcjaqwQdgqmKrypWTC1cpbQcIzEUs+JzIii1lsJpQGI2F4NllKibketw4GENoWUFc2TBwQurn19qp/TDznAgi4xmKpdGnqVH3eYD8gGazlpYikwYjppxyRaCDOtTMJf4ec82okAsCOKHi50KNhpTmbybXcmliOU9wgbEvKO46UWve0PfAedR72zJQ4tusIWhXh8JIvGoD7kBjpNrrxN2cU39tX5Z/1xucR0XiLS60pdUBp3smpAd15b30kWhl+0bm/Lp9TzwV3YRn8hXDRA8RM2LpGhH2j4dji0MyhPdOLOOm0XDR3T3ulDjOa/cSFRMhkDks5RWzt+wamAlrvFDB1Aff7p1AwHg0q+kJlobFyuMIKSP+SjLgBmQhWwFcRdNHc7eMI= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZRAP278MB0015 X-SEPP-CCCVersion: 2025-12-11T08:12:51+01:00 9ed91da2 X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[40.93.85.31];domain=ZRZP278CU001.outbound.protection.outlook.com X-MS-Exchange-ExternalOriginalInternetSender: ip=[40.93.85.31];domain=ZRZP278CU001.outbound.protection.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C711.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 704c9d8c-3fea-4e3f-a1e4-08de78623f7a X-SM-ruleversion: 2.1.0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|35042699022|82310400026|36860700013|1800799024|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SW0xNzNUNVZodjh3WDhLS0lkT3ZJK3g5YjN0OHhZbE1ncGNBRkcvVmNtSUo2?= =?utf-8?B?b0pMSjJHeU9pTjh1SmQyWERzTElRaUFYTnZuWkV6R3NGanlWbzR1RzVPd21T?= =?utf-8?B?Zk91WlYzVWpJN0ZVQ0tVQlZUd09yZGwwWG52dkhrZjFoZktYS0djdVorcmVx?= =?utf-8?B?SmQyakt0NEoyWFpkZ2VxbVZLWDBzZ0JXQlN1SkdYTU9HekRmL2dkTDZuRjRv?= =?utf-8?B?QXNROWNCczEzbUhuNjNMUVgzYjA2cTZvcnZlclZkaGR4M2huU1Vlb2o1UGoz?= =?utf-8?B?ME5USmNjR2toTjYvVFlhN2x4WE1tZjE0aGlSTllXYnlhSWpWZUdsV3gycW82?= =?utf-8?B?VDNoaW1hQ3lTY2NjZ2dQT0FBdGtSSkx2NXRpMEpyMWpDYlhkakxSN0RNbXZt?= =?utf-8?B?V0xsQldadFdSQm1hbXN0bVh1MGppeVZudU5kK2ZGWUc0VTl5SmxJQU90ZmZj?= =?utf-8?B?c0lqZlZRRWpKQ0VQOUZUdFV2NEJnV1VHc2RuLzA4QlRETFd4YWFGdjRhSWh2?= =?utf-8?B?SFNXbFNjQVRlZWptZllRTWtKK0ZBNkhqYW1Uc004Ui92ZWdxUEVieHFqSjBK?= =?utf-8?B?Z1lQOVNHSE5PT2NGUW9UbTVwdXVpZk5SODZvK0hTdTVuVTRQWDY4OTlUNXBJ?= =?utf-8?B?bkZwYU9Kc0FHSUZZL0V5VVp2WWRoUmZ3cE95SDB2REcyd2gwejFOSzJMRlBU?= =?utf-8?B?ZERkTDM1STVEK20zaEpGODNISEJDZld1b29LbXNpZU5CYjF6TnBpVGY4YUlJ?= =?utf-8?B?TTByNllWNTMyU3dnWlRkcG5VTFNUZjVEYXgxeWNzS280RkNXN3RtU3FSaG9O?= =?utf-8?B?emZhZmFSWSsrRnBzeWhKNjJmeC9jRER1LzRGL3ZaZ3hnajFISmxlVkQxdjNk?= =?utf-8?B?dlloYTVlSzZqZzdGak1HODFXdHRXR2RDUEU1T2N4WWd0Z2dWN3F4ZVVKVXlO?= =?utf-8?B?TlBVREZuNzZabGJlMjNSTUxRdVB1OVZqbUNqbVFzS0IwN0VBS1J1dTNaUWZp?= =?utf-8?B?Ly9WRjJId1JvU2VWeUxNTzIxMEFtN0taaWtWT1V0ZnY4WmExbGUwazFnUTFG?= =?utf-8?B?NmNNOG9JT1ZzZThVVWljSFBHejlBOXQ3dXE2UThVNlE2Z2tHdTkyb21NOTdj?= =?utf-8?B?dWVIR0k0eC9DY0RZNUhYbHE2RjIrM042d0crYU9STUI2cHQ4R0Z3MU1Dek93?= =?utf-8?B?QWtaQmtHYU5JeXcvLzVva2ExNVphT1ZqSXBzOVZqRUpuOXd0ZFpOWlp4UWVj?= =?utf-8?B?YUNlYVZLdnBLYlZINVRhVFBPS1FqV21vdkRnTUpVZDViRy90SCthazRCQ1lp?= =?utf-8?B?ck40dW9OTzJPL1hHVXN2dmZwWEFQUFNiWFE1aEk0b25makJyWEtzWWJ3RDBY?= =?utf-8?B?MnFET3Z6dndvQTdHMFgxRWcxaE9zZitKT1hHeE9mOEJ6am9EL0JoVEN1Nk1V?= =?utf-8?B?UEdpN3liOXA2b3Y2MENySHRCOXJ0bytSS2thWXYzTENWcUd1OHpmYjl1TDRt?= =?utf-8?Q?6r15k9sl19fEfGX9zq6oQeU+Prv?= X-Forefront-Antispam-Report: CIP:2a01:4f8:a0:13df::219;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZRZP278CU001.outbound.protection.outlook.com;PTR:mail-switzerlandnorthazlp17011031.outbound.protection.outlook.com;CAT:NONE;SFS:(13230040)(376014)(10070799003)(35042699022)(82310400026)(36860700013)(1800799024)(14060799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nmdokdfbcm64aUHHGCiFSXIFGLAXFUxxiCGcOgRSBOLtBlqoB9X7comnzLyGJ2AHPgHAtJSoqWbQLCp8zSYlre7xrc7cxdueYoci0Z6e/ZRJ2KeF2QuI4z7+I92tEUmzr/USoQKk8fx/gd/4cOQ5B4ofcCZbONoMs0qsmhAQ9uj3CashBJ8S2MyjHaE7W0BOTCahhivVLqusFkstinRI/IB4O4NyO23LOvp9Fc02ZI3j2v7QW0yJw+KnKsQwGTc5860OLXY2BX1xwQjbc9fQZNjoum9Y+OdtKDz10w0m0qu8RYmC04X7OJPBAZLpxEcOig/382fxpRkk63z4XZvMnwdScn47+Vnjfav8wsBR1xrFKhJk2u+0E1cnu4volwApW8mArG0Hj5RweWDjQJmSTvoYWx9CErCJFZfuSo+Ql0aKSCHX20JdzUAR0ywnE2dV X-OriginatorOrg: duagon.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 13:47:34.7402 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a8332fde-f744-485e-2f7b-08de78624255 X-MS-Exchange-CrossTenant-Id: e5e7e96e-8a28-45d6-9093-a40dd5b51a57 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5e7e96e-8a28-45d6-9093-a40dd5b51a57;Ip=[2a01:4f8:a0:13df::219];Helo=[hz-deliver01.de.seppmail.cloud] X-MS-Exchange-CrossTenant-AuthSource: AM2PEPF0001C711.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR0P278MB0058 V1 -> V2: Thanks to the review from Johannes Thumshirn, the patch 2/3 of the first version has been removed and the cleaner solution from patch 3/3 is then kept. The PCI mcb driver is currently only able to register devices that use the first PCI BAR. That is hardcoded in mcb-parse.c in lines 156-161: c = kzalloc_obj(struct chameleon_bar); if (!c) return -ENOMEM; bar_count = 1; c->addr = mapbase; However, mcb devices can use other indexes of the 6 PCI BARs. This serie of patches allows to use these devices by adding the relevant PCI BAR info to the chameleon table. As this code must also work for lpc devices, it has been done a refactoring in order to keep the two buses dependent operations regarding bars (get_bar and is_io_mapped_bar) outside of the common parsing code. These callback operations are stored in a structure and passed over to the parser, thus rendering each module, the mcb-lpc and mcb-pci, only with their own bus relevant logic. This patch depends on the previously accepted patch: Link: https://lore.kernel.org/lkml/20260217075124.10052-1-dev-Felipe.Jensen@duagon.com/ Reviewed-by: Jose Javier Rodriguez Barbarin Filip Jensen (2): mcb: Use more than the first bar in pci devices mcb: refactor the bus operations out of the common code drivers/mcb/mcb-internal.h | 10 ++++- drivers/mcb/mcb-lpc.c | 56 ++++++++++++++++++++++++++- drivers/mcb/mcb-parse.c | 77 +++++--------------------------------- drivers/mcb/mcb-pci.c | 40 +++++++++++++++++++- 4 files changed, 111 insertions(+), 72 deletions(-) -- 2.34.1