From nobody Wed Oct 8 04:07:53 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31F331DDC07 for ; Wed, 2 Jul 2025 16:48:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751474930; cv=none; b=j+mTlsYxZV7Rm1GOtLjd+JX3V2mFZ5VSVesWSzneXGBUp+xYs/gxNJTCLEkxYqPjv5PiwoJbbShjhYsFRaLlHIvSIkGZnUdai2Wx7m+VNzmbKrEtKZM2XZr3dCi9noRJK5zz4TldJCu7gkX8FWWZuWTMegMEPYL8WW+j1RJip64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751474930; c=relaxed/simple; bh=3NNDUeuHsvo2VX6nwrGAtLPPIQB8S69YI6TjV7kH6Xo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O8KHhv6QDsLtnqF8z0Ji+R0ZzWMFQZ5zxaLN/Xf8xnobwwJmtUq5c9CwicdhsVU7q5t6gLwomvGnLVLa4Lzj5n34hlQSpxqbx/E75XWxkv9u2j3l68jEfMOz+TIzzD3Zd2ReTq32mQPenNdLo1h1Hl5FXLIOBcnrekW1/0GkXKY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=jox5dEQL; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="jox5dEQL" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-450ce3a2dd5so37382355e9.3 for ; Wed, 02 Jul 2025 09:48:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751474925; x=1752079725; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wQYTPO1XpKJCQcWh+sfxZYptd6FBAp1btwUGf5q+fT0=; b=jox5dEQLzQGHzatEkgxyIbRCgQ3U2OtENHotL4Tg4U4PHRgItjRPl+3R4kFbCMcqh7 gTvhB+Ac6K8BiKyy0XyyXEEHZUdYmjvVLbIMJWGKUg8QQPb1aK0xshvJVo0jWDGk5hIj bhS7/w//EVOsXVImBFFVer4zQBF/AhCG+iLwmljnFVYuaFQGa38oxPK+Xzw957ZBiDBK nDAn5kUbK2w6le0ojB8a3gIw/JVb74F19Aw7tZ8REd22myolUN1C4jpQ/OvCxGGdfF+c A+9aTgCOxEyCKrU7OF5kYSWWTFgCuJwZVwCNnaLXbXzT5eAxxq6IxxZSkrxCVZWFiJ/f RaGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751474925; x=1752079725; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wQYTPO1XpKJCQcWh+sfxZYptd6FBAp1btwUGf5q+fT0=; b=epq4fTdWw9LfZaXkNiV0HYgfomiEOaBEZ3dIunwlP1AUPxlV6UmDUgQ7yxIthfZXYS ayUb3Ymlz/IPF7RXCr8NEhd23PaDjoFYUwLDTtOSGhU+uiZ9UCt33/PcsGHXjiJYLKq8 y5nK9u2mvbiGz6I+BfGvvU6bjTUSC2v/7Gxg56RidR4Lso98x5vOlZVrWa50K+1bcPiV BW0lZrI+dd+UqGWM167htSkEshFc+CaRYYnyOtxUpkZwjFkclfpgvvUxn/k3LZqcaIU1 +fo8ndE2BZst5F4AtNj8n3LZ5sU5TDhSLgql3NsLzoMjO2gXi9fZ31rlmuEI+qB1a2DN zh4Q== X-Forwarded-Encrypted: i=1; AJvYcCWTfJNH3B0LlVnSRgfQept6YlJqqwehCJ7LXK2OFV8LuysXHRxi09+CZ/H/wZM2GuwcOKvzdEChDM3Bm4Q=@vger.kernel.org X-Gm-Message-State: AOJu0YzPIbTorOMUbG11prkGhckjH3/AOZzl2FTnjmJDSqtNvSx0MMot eGb174R20j5xYZaMyLNjpU3/vSMasuYIeCta5ZAM8y/NjC2h0DtruJGFXS0KEUgNfYE= X-Gm-Gg: ASbGncsZfmJII1ec6YryyPgqOX3cgexeiQGCg7QUoFJxW5OdlBetiIWSJ1rR0S+0SgB mBKeoipkqzoFX8ZZx3VZCKMcqGUMYTaP5QymPioyFST0PZBUCYR63TfoztT0vIdNNxOxmwGe7+4 LbJvbC1k8AO3xyzCFQPvOqM19dRWwcpg+coSPYTJN8JNDDvjKoxfznH7V7uWYleYoav4Wbizwx6 EbSvZSO6EfgtYX7bmF2kn589nqmYws2RCGdFMiZVu2k/yRqv7fHBR2bB4rF93f1SU38f3n7i6J5 H3IOP8bdyOp50R3I+II5leYfuk1RXZvCaHhIazgr4Pi2FC7epS0mmObS3XzNW8JGbE2nu1NOscz r X-Google-Smtp-Source: AGHT+IEPJ3J0rEglf3oRey19XgMB/CO1+HMV7zcZXiSO8hUTEF7svDZo9kfDS9gTj/hL3PROF/qvPw== X-Received: by 2002:a05:600c:138c:b0:43d:ac5:11e8 with SMTP id 5b1f17b1804b1-454a37030a9mr35785855e9.21.1751474925290; Wed, 02 Jul 2025 09:48:45 -0700 (PDT) Received: from toaster.baylibre.com ([2a01:e0a:3c5:5fb1:5542:4bad:e07b:9489]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-454a9bac51bsm2871155e9.39.2025.07.02.09.48.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 09:48:44 -0700 (PDT) From: Jerome Brunet Date: Wed, 02 Jul 2025 18:48:33 +0200 Subject: [PATCH v3 1/2] NTB: epf: Allow arbitrary BAR mapping Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-ntb-rcar-support-v3-1-4268d9c85eb7@baylibre.com> References: <20250702-ntb-rcar-support-v3-0-4268d9c85eb7@baylibre.com> In-Reply-To: <20250702-ntb-rcar-support-v3-0-4268d9c85eb7@baylibre.com> To: Jon Mason , Dave Jiang , Allen Hubbe Cc: ntb@lists.linux.dev, linux-kernel@vger.kernel.org, Frank Li , Yoshihiro Shimoda , Yuya Hamamachi , Jerome Brunet X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7038; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=3NNDUeuHsvo2VX6nwrGAtLPPIQB8S69YI6TjV7kH6Xo=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBoZWLq4jf9IHzmy8o9jT+bID9kK6LiS7h9DfG9m lk4fM25b5+JAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCaGVi6gAKCRDm/A8cN/La hbJBD/4w0rnGn+LFyUs7FufUN9eRBCGjVuT4+6lnVtibIcv+PiiNCRgUnr6Pu/uFIPQXj1q4pNI rv56iocDz84MXwDZVSxx6ppA/3NzYDN3ZUIznMvLoWAP4lE3vpe9c4L1ywwtdyOcbx98osCsxU9 3Y4zcujnKdqAVcr2NYs7kGw5nBXwGDMn7yAUZMtr0xju4J6rFz6XahqcGDMEyeOXcSanPNwsgga iGCUS1n93xUUTU+O15LI24Ar0LASWtLw9WVs/wdwP1IFGSzAqQUlmk5Mt23/8j1mvELzpFvqj6A sYc2NLy4V1Q2SenLghs43ADk/sRA5NAdqAqdfGOEvFqa2aypfZlXDF05s8FllMdtTseZB6RZSk3 EjPQL7mLN7BsNw2ISfs24HvOxaKXSHf4WPT+sjcd5J32BRt1pyXW0gxRnKMn0PWWhr/ww/mAd20 lLtMjNPk+eG4+Tg+O0A4Tord8oLafjOK/1dcojHVGB9+Zkf5sD5sBkAoL0MjRx6EaBXabzURF9H ZCUQXcOtxMIdG2WCPAd5SRmM5OvXjcNtouB9cbUMOoBuLtbHzuolRLhU6s+kja3dTqLFytbWLq1 E8VFL3ER92LPUIL+7rTAkOit4fE5468zsEKA9Hrcq3qenqGHFKQua9+v5wvOxN7Xt38oFmY5uBd s1SE+X++DTOLiQA== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 The NTB epf host driver assumes the BAR number associated with a memory window is just incremented from the BAR number associated with MW1. This seems to have been enough so far but this is not really how the endpoint side work and the two could easily become mis-aligned. ntb_epf_mw_to_bar() even assumes that the BAR number is the memory window index + 2, which means the function only returns a proper result if BAR_2 is associated with MW1. Instead, fully describe and allow arbitrary NTB BAR mapping. Signed-off-by: Jerome Brunet --- drivers/ntb/hw/epf/ntb_hw_epf.c | 103 +++++++++++++++++++++---------------= ---- 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/drivers/ntb/hw/epf/ntb_hw_epf.c b/drivers/ntb/hw/epf/ntb_hw_ep= f.c index 00f0e78f685bf7917b02dd8a52b5b35f68d5bb64..2b51156e01b0f22ef282d80c08c= 22af92f49307b 100644 --- a/drivers/ntb/hw/epf/ntb_hw_epf.c +++ b/drivers/ntb/hw/epf/ntb_hw_epf.c @@ -49,6 +49,7 @@ #define NTB_EPF_COMMAND_TIMEOUT 1000 /* 1 Sec */ =20 enum pci_barno { + NO_BAR =3D -1, BAR_0, BAR_1, BAR_2, @@ -57,16 +58,26 @@ enum pci_barno { BAR_5, }; =20 +enum epf_ntb_bar { + BAR_CONFIG, + BAR_PEER_SPAD, + BAR_DB, + BAR_MW1, + BAR_MW2, + BAR_MW3, + BAR_MW4, + NTB_BAR_NUM, +}; + +#define NTB_EPF_MAX_MW_COUNT (NTB_BAR_NUM - BAR_MW1) + struct ntb_epf_dev { struct ntb_dev ntb; struct device *dev; /* Mutex to protect providing commands to NTB EPF */ struct mutex cmd_lock; =20 - enum pci_barno ctrl_reg_bar; - enum pci_barno peer_spad_reg_bar; - enum pci_barno db_reg_bar; - enum pci_barno mw_bar; + const enum pci_barno *barno_map; =20 unsigned int mw_count; unsigned int spad_count; @@ -85,17 +96,6 @@ struct ntb_epf_dev { =20 #define ntb_ndev(__ntb) container_of(__ntb, struct ntb_epf_dev, ntb) =20 -struct ntb_epf_data { - /* BAR that contains both control region and self spad region */ - enum pci_barno ctrl_reg_bar; - /* BAR that contains peer spad region */ - enum pci_barno peer_spad_reg_bar; - /* BAR that contains Doorbell region and Memory window '1' */ - enum pci_barno db_reg_bar; - /* BAR that contains memory windows*/ - enum pci_barno mw_bar; -}; - static int ntb_epf_send_command(struct ntb_epf_dev *ndev, u32 command, u32 argument) { @@ -144,7 +144,7 @@ static int ntb_epf_mw_to_bar(struct ntb_epf_dev *ndev, = int idx) return -EINVAL; } =20 - return idx + 2; + return ndev->barno_map[BAR_MW1 + idx]; } =20 static int ntb_epf_mw_count(struct ntb_dev *ntb, int pidx) @@ -413,7 +413,9 @@ static int ntb_epf_mw_set_trans(struct ntb_dev *ntb, in= t pidx, int idx, return -EINVAL; } =20 - bar =3D idx + ndev->mw_bar; + bar =3D ntb_epf_mw_to_bar(ndev, idx); + if (bar < 0) + return bar; =20 mw_size =3D pci_resource_len(ntb->pdev, bar); =20 @@ -455,7 +457,9 @@ static int ntb_epf_peer_mw_get_addr(struct ntb_dev *ntb= , int idx, if (idx =3D=3D 0) offset =3D readl(ndev->ctrl_reg + NTB_EPF_MW1_OFFSET); =20 - bar =3D idx + ndev->mw_bar; + bar =3D ntb_epf_mw_to_bar(ndev, idx); + if (bar < 0) + return bar; =20 if (base) *base =3D pci_resource_start(ndev->ntb.pdev, bar) + offset; @@ -560,6 +564,11 @@ static int ntb_epf_init_dev(struct ntb_epf_dev *ndev) ndev->mw_count =3D readl(ndev->ctrl_reg + NTB_EPF_MW_COUNT); ndev->spad_count =3D readl(ndev->ctrl_reg + NTB_EPF_SPAD_COUNT); =20 + if (ndev->mw_count > NTB_EPF_MAX_MW_COUNT) { + dev_err(dev, "Unsupported MW count: %u\n", ndev->mw_count); + return -EINVAL; + } + return 0; } =20 @@ -596,14 +605,15 @@ static int ntb_epf_init_pci(struct ntb_epf_dev *ndev, dev_warn(&pdev->dev, "Cannot DMA highmem\n"); } =20 - ndev->ctrl_reg =3D pci_iomap(pdev, ndev->ctrl_reg_bar, 0); + ndev->ctrl_reg =3D pci_iomap(pdev, ndev->barno_map[BAR_CONFIG], 0); if (!ndev->ctrl_reg) { ret =3D -EIO; goto err_pci_regions; } =20 - if (ndev->peer_spad_reg_bar) { - ndev->peer_spad_reg =3D pci_iomap(pdev, ndev->peer_spad_reg_bar, 0); + if (ndev->barno_map[BAR_PEER_SPAD] !=3D ndev->barno_map[BAR_CONFIG]) { + ndev->peer_spad_reg =3D pci_iomap(pdev, + ndev->barno_map[BAR_PEER_SPAD], 0); if (!ndev->peer_spad_reg) { ret =3D -EIO; goto err_pci_regions; @@ -614,7 +624,7 @@ static int ntb_epf_init_pci(struct ntb_epf_dev *ndev, ndev->peer_spad_reg =3D ndev->ctrl_reg + spad_off + spad_sz; } =20 - ndev->db_reg =3D pci_iomap(pdev, ndev->db_reg_bar, 0); + ndev->db_reg =3D pci_iomap(pdev, ndev->barno_map[BAR_DB], 0); if (!ndev->db_reg) { ret =3D -EIO; goto err_pci_regions; @@ -659,12 +669,7 @@ static void ntb_epf_cleanup_isr(struct ntb_epf_dev *nd= ev) static int ntb_epf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { - enum pci_barno peer_spad_reg_bar =3D BAR_1; - enum pci_barno ctrl_reg_bar =3D BAR_0; - enum pci_barno db_reg_bar =3D BAR_2; - enum pci_barno mw_bar =3D BAR_2; struct device *dev =3D &pdev->dev; - struct ntb_epf_data *data; struct ntb_epf_dev *ndev; int ret; =20 @@ -675,18 +680,10 @@ static int ntb_epf_pci_probe(struct pci_dev *pdev, if (!ndev) return -ENOMEM; =20 - data =3D (struct ntb_epf_data *)id->driver_data; - if (data) { - peer_spad_reg_bar =3D data->peer_spad_reg_bar; - ctrl_reg_bar =3D data->ctrl_reg_bar; - db_reg_bar =3D data->db_reg_bar; - mw_bar =3D data->mw_bar; - } + ndev->barno_map =3D (const enum pci_barno *)id->driver_data; + if (!ndev->barno_map) + return -EINVAL; =20 - ndev->peer_spad_reg_bar =3D peer_spad_reg_bar; - ndev->ctrl_reg_bar =3D ctrl_reg_bar; - ndev->db_reg_bar =3D db_reg_bar; - ndev->mw_bar =3D mw_bar; ndev->dev =3D dev; =20 ntb_epf_init_struct(ndev, pdev); @@ -730,30 +727,36 @@ static void ntb_epf_pci_remove(struct pci_dev *pdev) ntb_epf_deinit_pci(ndev); } =20 -static const struct ntb_epf_data j721e_data =3D { - .ctrl_reg_bar =3D BAR_0, - .peer_spad_reg_bar =3D BAR_1, - .db_reg_bar =3D BAR_2, - .mw_bar =3D BAR_2, +static const enum pci_barno j721e_map[NTB_BAR_NUM] =3D { + [BAR_CONFIG] =3D BAR_0, + [BAR_PEER_SPAD] =3D BAR_1, + [BAR_DB] =3D BAR_2, + [BAR_MW1] =3D BAR_2, + [BAR_MW2] =3D BAR_3, + [BAR_MW3] =3D BAR_4, + [BAR_MW4] =3D BAR_5 }; =20 -static const struct ntb_epf_data mx8_data =3D { - .ctrl_reg_bar =3D BAR_0, - .peer_spad_reg_bar =3D BAR_0, - .db_reg_bar =3D BAR_2, - .mw_bar =3D BAR_4, +static const enum pci_barno mx8_map[NTB_BAR_NUM] =3D { + [BAR_CONFIG] =3D BAR_0, + [BAR_PEER_SPAD] =3D BAR_0, + [BAR_DB] =3D BAR_2, + [BAR_MW1] =3D BAR_4, + [BAR_MW2] =3D BAR_5, + [BAR_MW3] =3D NO_BAR, + [BAR_MW4] =3D NO_BAR }; =20 static const struct pci_device_id ntb_epf_pci_tbl[] =3D { { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_J721E), .class =3D PCI_CLASS_MEMORY_RAM << 8, .class_mask =3D 0xffff00, - .driver_data =3D (kernel_ulong_t)&j721e_data, + .driver_data =3D (kernel_ulong_t)j721e_map, }, { PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, 0x0809), .class =3D PCI_CLASS_MEMORY_RAM << 8, .class_mask =3D 0xffff00, - .driver_data =3D (kernel_ulong_t)&mx8_data, + .driver_data =3D (kernel_ulong_t)mx8_map, }, { }, }; --=20 2.47.2 From nobody Wed Oct 8 04:07:53 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEC8F275AF9 for ; Wed, 2 Jul 2025 16:48:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751474929; cv=none; b=llrSi2QRumkNCdx7Ywrj9ntOMhusoi4rRtMGib+dDnrO5wMi73WXrTK0qWPRjweO2qMAqTsRfHRHuDVcBOBT6uHmC2wsFKqOWMc3QS64NVotDaDwwEfbFtUBbHRrwDS/ZBq6sNZqTeZrBtFn+1mEfeQdqKIs0/uuPdH3wxErXbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751474929; c=relaxed/simple; bh=UVwuQqNuVkaXad1gSP5IG0Q61XDJHBqnS6AA8i/xzYQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hoamr5WFFyMmMzRUGunBOwgHCuu4MOZZbMb2uXYYvIBtEBdrDRNKL0IcDKxrDUueWby+DpKT+wTV1BVYfpoV7D4huKz2ptvbLB/JbGR9PcVPb3SJCMU2LSGadQ6LKf4Olh2RB4UxFgZELdJ3qzhtkLnjLo+s+SFcR7D6btBiGYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=bHjAd2gL; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="bHjAd2gL" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-453398e90e9so38964825e9.1 for ; Wed, 02 Jul 2025 09:48:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751474926; x=1752079726; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=f41VpQcQDm5IrtOyRO5moqw5pFrZWSUi6EXtMoj+mX0=; b=bHjAd2gLxET9+u9RzOj/7+9NlNNt0oDeA91mJIln/hWuyfGOgQUXLZRX6Zc0vNZFXi wPNLnucOy0iSPsS3e7XVgbKizO7PwdqlNgr+AGlDN1rsCxFtvYB1q5ff0vl2z8sNYNak 0vlPhXyGl2DlmcUlgeO4KVeZftoeKrFEgNFCWcL8UpOgePp8R9677jX7W2sGojAF/YYr oT2mZI5ZqvdrXkffaeG3CfFYpjxm3SxfFUpR7+7kfK6WOxSoHX1DrX0cSivnzk5dNk9J 39sqH4RTZcLT+U2NbJau9qo4PPuEPR7ATU8WR5b9LAmFS0B3P3KfSA+Nz7CcDjkbInpd qovw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751474926; x=1752079726; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f41VpQcQDm5IrtOyRO5moqw5pFrZWSUi6EXtMoj+mX0=; b=XFONDUxAoIvpexRu9LR+oCFS7VXOk4RchhS/mhpeP3dmsLEqPDT4BvgzKQvM1LCaWu Im23BmwyqPZUtTbm/DqrPZvWrRvs7WdWkvAc9msizEfzXrkeq7M3q6yz+yLLwmw0kS/d l9pUzv2NSTb2RZ05grUI5aNle8wv4ArnnKM29FJzywoRK4q3TBF8SOpzcjQMdaIiUE+K ad4ueVtzcDDCFCeVTj7p/HC+jMxJfEypbwmsebrDEDTwYCMtSK8paKvR55wNMIoF2NLi JM+eVlkTb8R5gGFzFGsBQh6g+opFITc2JhjF0z0l03rLFLEoSVrwJcwQgbRwhM1+VfJs a20w== X-Forwarded-Encrypted: i=1; AJvYcCXfuszKfcCGqXb/1SMwTXfkEWnaawuxYotXsgEv88S245FzmdvG6/ZhroCUP/PbbW949STtGaW7JElOqaU=@vger.kernel.org X-Gm-Message-State: AOJu0Yzq5PahJ15SqbJ44LCiEFgc04Pr1jPr+dLVYU0sB43BJe4FL2Kv eNm8ZBB12IEgSRtz1gHnhB4oPUOb9wXICbwI7ESPvB1zdTAWa9MBZ1WquXxXA+NiV32Ql7nlBC9 fqmAe X-Gm-Gg: ASbGncvUz6pQT+wF9s5kyJplIUxoukkvDX8n7s/YrPQtjt+ou1rnihEIqAbgS0QrbTt o0mqq9wlAYCIERXVfVtxBSaRWFAwA4Y72rN27Jn/rajs89eG7XkmQq26nf7Q+3QDX4eVq/azSFp vDahJjywG2GTwKoSYO9hiyVkS3NlszfFTCe5ifnpyIc5ecZITiTw+07ItreKE/ZK6YNl/OKnn+6 pO+hPSwLxwymveDzlcKuJhiCj5soxEzu/Pv5CpZoEHbBLVCtrbIOmiZorQqg+EtKmOgCbZYLiyq N4MiPUNs3izWmcE0ZOuhxjnXGLAjX/e+whPplEqEqdqvxh0/BcNbNBhdM50FPhZPFnei7+Em1P4 aonU9jYIBGqY= X-Google-Smtp-Source: AGHT+IEF430UREJHH7vf0pRs8CX/hqo233o+9B3pP4zeXlWCCJogYacSw896jaCZMSOhbI2fQ/nmhw== X-Received: by 2002:a05:600c:3488:b0:43b:ce36:7574 with SMTP id 5b1f17b1804b1-454a9c70d55mr4198985e9.11.1751474926049; Wed, 02 Jul 2025 09:48:46 -0700 (PDT) Received: from toaster.baylibre.com ([2a01:e0a:3c5:5fb1:5542:4bad:e07b:9489]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-454a9bac51bsm2871155e9.39.2025.07.02.09.48.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 09:48:45 -0700 (PDT) From: Jerome Brunet Date: Wed, 02 Jul 2025 18:48:34 +0200 Subject: [PATCH v3 2/2] NTB: epf: Add Renesas rcar support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-ntb-rcar-support-v3-2-4268d9c85eb7@baylibre.com> References: <20250702-ntb-rcar-support-v3-0-4268d9c85eb7@baylibre.com> In-Reply-To: <20250702-ntb-rcar-support-v3-0-4268d9c85eb7@baylibre.com> To: Jon Mason , Dave Jiang , Allen Hubbe Cc: ntb@lists.linux.dev, linux-kernel@vger.kernel.org, Frank Li , Yoshihiro Shimoda , Yuya Hamamachi , Jerome Brunet , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1368; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=UVwuQqNuVkaXad1gSP5IG0Q61XDJHBqnS6AA8i/xzYQ=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBoZWLqPkQ+LD2rVrcvB3II9FHT3xPQiO7pwu8rj 0U8zFjJPAaJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCaGVi6gAKCRDm/A8cN/La hRe3D/914t0bWXIEhiaKx0rY8Bb1mK9VHQPQrSfCF7xX9dpRlnDBeGng8EKipRl5t6y6twhVFFj 7U+655hs2loVYgumvp6rnAAQlaEnXnHIn7oKxtTKr3F55qe5rdMuv97MjiVCdBJvRtvybjG1SQU +rq2dREWzYN40rR0kHmtEge/aenhIavHWRV0PziaqoR4wIzwKFRDimFEzSgBieqt3HaEqUYfTeU SNfcniEQncvHADCCXGgLZFRZazKfZ8pET3DLzihPxdL4H5SX0h13/U2fkCmcuWM7QSZeNhcNGrv PqYE15tCerYqrZ5fWkxygVT674pya5BsKBP66m1Dfl2mn2z/qmewZNPQ0M9rWm4qGau5gUwfMiL w/TWiPzJ1wDUBucNIS3HL3/VovbCTVxy+EhCE+TNcRHyiLXmVHuyVJwApWgUfNnhSXd/vogJMZn GD977JAkR+MXzSdI8QETyaNCnSzmVPLQnc9hfmuckTnKQWnXYm6qC4mfcWAWPk5NmOx5foNFej5 dK0HH1EU00/LbXHXuuGO4+y3YHQTiCRqe5GLlxnmA6u6QvJJfy6kIssYbmmtFCRY+0ueHUK10J6 dZonA8PPbLPaKjkXodCMQtbBZZ5qwupNjMTDkCtG6fa9PZ18YkggXMyIeMMr+o5gi7LjC7AADyS E5rBvbkvV6l2SRg== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 Add virtual non-transparent bridge support for Renesas rcar platform Reviewed-by: Frank Li Signed-off-by: Jerome Brunet --- drivers/ntb/hw/epf/ntb_hw_epf.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/ntb/hw/epf/ntb_hw_epf.c b/drivers/ntb/hw/epf/ntb_hw_ep= f.c index 2b51156e01b0f22ef282d80c08c22af92f49307b..d3ecf25a516253e4e774e3bd835= 745509ef128ba 100644 --- a/drivers/ntb/hw/epf/ntb_hw_epf.c +++ b/drivers/ntb/hw/epf/ntb_hw_epf.c @@ -747,6 +747,16 @@ static const enum pci_barno mx8_map[NTB_BAR_NUM] =3D { [BAR_MW4] =3D NO_BAR }; =20 +static const enum pci_barno rcar_barno[NTB_BAR_NUM] =3D { + [BAR_CONFIG] =3D BAR_0, + [BAR_PEER_SPAD] =3D BAR_0, + [BAR_DB] =3D BAR_4, + [BAR_MW1] =3D BAR_2, + [BAR_MW2] =3D NO_BAR, + [BAR_MW3] =3D NO_BAR, + [BAR_MW4] =3D NO_BAR, +}; + static const struct pci_device_id ntb_epf_pci_tbl[] =3D { { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_J721E), @@ -758,6 +768,11 @@ static const struct pci_device_id ntb_epf_pci_tbl[] = =3D { .class =3D PCI_CLASS_MEMORY_RAM << 8, .class_mask =3D 0xffff00, .driver_data =3D (kernel_ulong_t)mx8_map, }, + { + PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0030), + .class =3D PCI_CLASS_MEMORY_RAM << 8, .class_mask =3D 0xffff00, + .driver_data =3D (kernel_ulong_t)rcar_barno, + }, { }, }; =20 --=20 2.47.2