All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask
@ 2022-02-18 11:25 Pali Rohár
  2022-02-18 11:25 ` [PATCH 2/2] pci: pci_mvebu: Cleanup macro names Pali Rohár
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Pali Rohár @ 2022-02-18 11:25 UTC (permalink / raw)
  To: Stefan Roese, Marek Behún; +Cc: u-boot

Macro SELECT() is unused and struct mvebu_pcie field lane_mask is unused
too. Remove them.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/pci/pci_mvebu.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
index 5a0a59a8b9ec..16fe54fd366f 100644
--- a/drivers/pci/pci_mvebu.c
+++ b/drivers/pci/pci_mvebu.c
@@ -30,8 +30,6 @@
 #include <linux/sizes.h>
 
 /* PCIe unit register offsets */
-#define SELECT(x, n)			((x >> n) & 1UL)
-
 #define PCIE_DEV_ID_OFF			0x0000
 #define PCIE_CMD_OFF			0x0004
 #define PCIE_DEV_REV_OFF		0x0008
@@ -77,7 +75,6 @@ struct mvebu_pcie {
 	u32 lane;
 	bool is_x4;
 	int devfn;
-	u32 lane_mask;
 	int sec_busno;
 	char name[16];
 	unsigned int mem_target;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] pci: pci_mvebu: Cleanup macro names
  2022-02-18 11:25 [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Pali Rohár
@ 2022-02-18 11:25 ` Pali Rohár
  2022-02-18 13:12   ` Marek Behún
  2022-02-18 14:18   ` Stefan Roese
  2022-02-18 13:12 ` [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Marek Behún
  2022-02-18 14:17 ` Stefan Roese
  2 siblings, 2 replies; 8+ messages in thread
From: Pali Rohár @ 2022-02-18 11:25 UTC (permalink / raw)
  To: Stefan Roese, Marek Behún; +Cc: u-boot

Use "MVPCIE_" prefix instead of generic "PCIE_" prefix for pci_mvebu.c
specific macros. Define offset macros for Root Port registers and use
standard register macros from pci.h when accessing Root Port registers.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/pci/pci_mvebu.c | 130 +++++++++++++++++++---------------------
 1 file changed, 60 insertions(+), 70 deletions(-)

diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
index 16fe54fd366f..f07669374d70 100644
--- a/drivers/pci/pci_mvebu.c
+++ b/drivers/pci/pci_mvebu.c
@@ -30,35 +30,25 @@
 #include <linux/sizes.h>
 
 /* PCIe unit register offsets */
-#define PCIE_DEV_ID_OFF			0x0000
-#define PCIE_CMD_OFF			0x0004
-#define PCIE_DEV_REV_OFF		0x0008
-#define  PCIE_BAR_LO_OFF(n)		(0x0010 + ((n) << 3))
-#define  PCIE_BAR_HI_OFF(n)		(0x0014 + ((n) << 3))
-#define PCIE_EXP_ROM_BAR_OFF		0x0030
-#define PCIE_CAPAB_OFF			0x0060
-#define PCIE_CTRL_STAT_OFF		0x0068
-#define PCIE_HEADER_LOG_4_OFF		0x0128
-#define  PCIE_BAR_CTRL_OFF(n)		(0x1804 + (((n) - 1) * 4))
-#define  PCIE_WIN04_CTRL_OFF(n)		(0x1820 + ((n) << 4))
-#define  PCIE_WIN04_BASE_OFF(n)		(0x1824 + ((n) << 4))
-#define  PCIE_WIN04_REMAP_OFF(n)	(0x182c + ((n) << 4))
-#define PCIE_WIN5_CTRL_OFF		0x1880
-#define PCIE_WIN5_BASE_OFF		0x1884
-#define PCIE_WIN5_REMAP_OFF		0x188c
-#define PCIE_CONF_ADDR_OFF		0x18f8
-#define PCIE_CONF_DATA_OFF		0x18fc
-#define PCIE_MASK_OFF			0x1910
-#define  PCIE_MASK_ENABLE_INTS          (0xf << 24)
-#define PCIE_CTRL_OFF			0x1a00
-#define  PCIE_CTRL_X1_MODE		BIT(0)
-#define  PCIE_CTRL_RC_MODE		BIT(1)
-#define PCIE_STAT_OFF			0x1a04
-#define  PCIE_STAT_BUS                  (0xff << 8)
-#define  PCIE_STAT_DEV                  (0x1f << 16)
-#define  PCIE_STAT_LINK_DOWN		BIT(0)
-#define PCIE_DEBUG_CTRL			0x1a60
-#define  PCIE_DEBUG_SOFT_RESET		BIT(20)
+#define MVPCIE_ROOT_PORT_PCI_CFG_OFF	0x0000
+#define MVPCIE_ROOT_PORT_PCI_EXP_OFF	0x0060
+#define MVPCIE_BAR_LO_OFF(n)		(0x0010 + ((n) << 3))
+#define MVPCIE_BAR_HI_OFF(n)		(0x0014 + ((n) << 3))
+#define MVPCIE_BAR_CTRL_OFF(n)		(0x1804 + (((n) - 1) * 4))
+#define MVPCIE_WIN04_CTRL_OFF(n)	(0x1820 + ((n) << 4))
+#define MVPCIE_WIN04_BASE_OFF(n)	(0x1824 + ((n) << 4))
+#define MVPCIE_WIN04_REMAP_OFF(n)	(0x182c + ((n) << 4))
+#define MVPCIE_WIN5_CTRL_OFF		0x1880
+#define MVPCIE_WIN5_BASE_OFF		0x1884
+#define MVPCIE_WIN5_REMAP_OFF		0x188c
+#define MVPCIE_CONF_ADDR_OFF		0x18f8
+#define MVPCIE_CONF_DATA_OFF		0x18fc
+#define MVPCIE_CTRL_OFF			0x1a00
+#define  MVPCIE_CTRL_RC_MODE		BIT(1)
+#define MVPCIE_STAT_OFF			0x1a04
+#define  MVPCIE_STAT_BUS		(0xff << 8)
+#define  MVPCIE_STAT_DEV		(0x1f << 16)
+#define  MVPCIE_STAT_LINK_DOWN		BIT(0)
 
 #define LINK_WAIT_RETRIES	100
 #define LINK_WAIT_TIMEOUT	1000
@@ -87,8 +77,8 @@ struct mvebu_pcie {
 static inline bool mvebu_pcie_link_up(struct mvebu_pcie *pcie)
 {
 	u32 val;
-	val = readl(pcie->base + PCIE_STAT_OFF);
-	return !(val & PCIE_STAT_LINK_DOWN);
+	val = readl(pcie->base + MVPCIE_STAT_OFF);
+	return !(val & MVPCIE_STAT_LINK_DOWN);
 }
 
 static void mvebu_pcie_wait_for_link(struct mvebu_pcie *pcie)
@@ -112,20 +102,20 @@ static void mvebu_pcie_set_local_bus_nr(struct mvebu_pcie *pcie, int busno)
 {
 	u32 stat;
 
-	stat = readl(pcie->base + PCIE_STAT_OFF);
-	stat &= ~PCIE_STAT_BUS;
+	stat = readl(pcie->base + MVPCIE_STAT_OFF);
+	stat &= ~MVPCIE_STAT_BUS;
 	stat |= busno << 8;
-	writel(stat, pcie->base + PCIE_STAT_OFF);
+	writel(stat, pcie->base + MVPCIE_STAT_OFF);
 }
 
 static void mvebu_pcie_set_local_dev_nr(struct mvebu_pcie *pcie, int devno)
 {
 	u32 stat;
 
-	stat = readl(pcie->base + PCIE_STAT_OFF);
-	stat &= ~PCIE_STAT_DEV;
+	stat = readl(pcie->base + MVPCIE_STAT_OFF);
+	stat &= ~MVPCIE_STAT_DEV;
 	stat |= devno << 16;
-	writel(stat, pcie->base + PCIE_STAT_OFF);
+	writel(stat, pcie->base + MVPCIE_STAT_OFF);
 }
 
 static inline struct mvebu_pcie *hose_to_pcie(struct pci_controller *hose)
@@ -195,18 +185,18 @@ static int mvebu_pcie_read_config(const struct udevice *bus, pci_dev_t bdf,
 		addr = PCI_CONF1_EXT_ADDRESS(busno, PCI_DEV(bdf), PCI_FUNC(bdf), offset);
 
 	/* write address */
-	writel(addr, pcie->base + PCIE_CONF_ADDR_OFF);
+	writel(addr, pcie->base + MVPCIE_CONF_ADDR_OFF);
 
 	/* read data */
 	switch (size) {
 	case PCI_SIZE_8:
-		data = readb(pcie->base + PCIE_CONF_DATA_OFF + (offset & 3));
+		data = readb(pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 3));
 		break;
 	case PCI_SIZE_16:
-		data = readw(pcie->base + PCIE_CONF_DATA_OFF + (offset & 2));
+		data = readw(pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 2));
 		break;
 	case PCI_SIZE_32:
-		data = readl(pcie->base + PCIE_CONF_DATA_OFF);
+		data = readl(pcie->base + MVPCIE_CONF_DATA_OFF);
 		break;
 	default:
 		return -EINVAL;
@@ -286,18 +276,18 @@ static int mvebu_pcie_write_config(struct udevice *bus, pci_dev_t bdf,
 		addr = PCI_CONF1_EXT_ADDRESS(busno, PCI_DEV(bdf), PCI_FUNC(bdf), offset);
 
 	/* write address */
-	writel(addr, pcie->base + PCIE_CONF_ADDR_OFF);
+	writel(addr, pcie->base + MVPCIE_CONF_ADDR_OFF);
 
 	/* write data */
 	switch (size) {
 	case PCI_SIZE_8:
-		writeb(value, pcie->base + PCIE_CONF_DATA_OFF + (offset & 3));
+		writeb(value, pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 3));
 		break;
 	case PCI_SIZE_16:
-		writew(value, pcie->base + PCIE_CONF_DATA_OFF + (offset & 2));
+		writew(value, pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 2));
 		break;
 	case PCI_SIZE_32:
-		writel(value, pcie->base + PCIE_CONF_DATA_OFF);
+		writel(value, pcie->base + MVPCIE_CONF_DATA_OFF);
 		break;
 	default:
 		return -EINVAL;
@@ -321,20 +311,20 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie *pcie)
 
 	/* First, disable and clear BARs and windows. */
 	for (i = 1; i < 3; i++) {
-		writel(0, pcie->base + PCIE_BAR_CTRL_OFF(i));
-		writel(0, pcie->base + PCIE_BAR_LO_OFF(i));
-		writel(0, pcie->base + PCIE_BAR_HI_OFF(i));
+		writel(0, pcie->base + MVPCIE_BAR_CTRL_OFF(i));
+		writel(0, pcie->base + MVPCIE_BAR_LO_OFF(i));
+		writel(0, pcie->base + MVPCIE_BAR_HI_OFF(i));
 	}
 
 	for (i = 0; i < 5; i++) {
-		writel(0, pcie->base + PCIE_WIN04_CTRL_OFF(i));
-		writel(0, pcie->base + PCIE_WIN04_BASE_OFF(i));
-		writel(0, pcie->base + PCIE_WIN04_REMAP_OFF(i));
+		writel(0, pcie->base + MVPCIE_WIN04_CTRL_OFF(i));
+		writel(0, pcie->base + MVPCIE_WIN04_BASE_OFF(i));
+		writel(0, pcie->base + MVPCIE_WIN04_REMAP_OFF(i));
 	}
 
-	writel(0, pcie->base + PCIE_WIN5_CTRL_OFF);
-	writel(0, pcie->base + PCIE_WIN5_BASE_OFF);
-	writel(0, pcie->base + PCIE_WIN5_REMAP_OFF);
+	writel(0, pcie->base + MVPCIE_WIN5_CTRL_OFF);
+	writel(0, pcie->base + MVPCIE_WIN5_BASE_OFF);
+	writel(0, pcie->base + MVPCIE_WIN5_REMAP_OFF);
 
 	/* Setup windows for DDR banks. Count total DDR size on the fly. */
 	size = 0;
@@ -342,12 +332,12 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie *pcie)
 		const struct mbus_dram_window *cs = dram->cs + i;
 
 		writel(cs->base & 0xffff0000,
-		       pcie->base + PCIE_WIN04_BASE_OFF(i));
-		writel(0, pcie->base + PCIE_WIN04_REMAP_OFF(i));
+		       pcie->base + MVPCIE_WIN04_BASE_OFF(i));
+		writel(0, pcie->base + MVPCIE_WIN04_REMAP_OFF(i));
 		writel(((cs->size - 1) & 0xffff0000) |
 		       (cs->mbus_attr << 8) |
 		       (dram->mbus_dram_target_id << 4) | 1,
-		       pcie->base + PCIE_WIN04_CTRL_OFF(i));
+		       pcie->base + MVPCIE_WIN04_CTRL_OFF(i));
 
 		size += cs->size;
 	}
@@ -357,14 +347,14 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie *pcie)
 		size = 1 << fls(size);
 
 	/* Setup BAR[1] to all DRAM banks. */
-	writel(dram->cs[0].base | 0xc, pcie->base + PCIE_BAR_LO_OFF(1));
-	writel(0, pcie->base + PCIE_BAR_HI_OFF(1));
+	writel(dram->cs[0].base | 0xc, pcie->base + MVPCIE_BAR_LO_OFF(1));
+	writel(0, pcie->base + MVPCIE_BAR_HI_OFF(1));
 	writel(((size - 1) & 0xffff0000) | 0x1,
-	       pcie->base + PCIE_BAR_CTRL_OFF(1));
+	       pcie->base + MVPCIE_BAR_CTRL_OFF(1));
 
 	/* Setup BAR[0] to internal registers. */
-	writel(pcie->intregs, pcie->base + PCIE_BAR_LO_OFF(0));
-	writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
+	writel(pcie->intregs, pcie->base + MVPCIE_BAR_LO_OFF(0));
+	writel(0, pcie->base + MVPCIE_BAR_HI_OFF(0));
 }
 
 /* Only enable PCIe link, do not setup it */
@@ -403,9 +393,9 @@ static void mvebu_pcie_setup_link(struct mvebu_pcie *pcie)
 	u32 reg;
 
 	/* Setup PCIe controller to Root Complex mode */
-	reg = readl(pcie->base + PCIE_CTRL_OFF);
-	reg |= PCIE_CTRL_RC_MODE;
-	writel(reg, pcie->base + PCIE_CTRL_OFF);
+	reg = readl(pcie->base + MVPCIE_CTRL_OFF);
+	reg |= MVPCIE_CTRL_RC_MODE;
+	writel(reg, pcie->base + MVPCIE_CTRL_OFF);
 
 	/*
 	 * Set Maximum Link Width to X1 or X4 in Root Port's PCIe Link
@@ -414,10 +404,10 @@ static void mvebu_pcie_setup_link(struct mvebu_pcie *pcie)
 	 * be set to number of SerDes PCIe lanes (1 or 4). If this register is
 	 * not set correctly then link with endpoint card is not established.
 	 */
-	reg = readl(pcie->base + PCIE_CAPAB_OFF + PCI_EXP_LNKCAP);
+	reg = readl(pcie->base + MVPCIE_ROOT_PORT_PCI_EXP_OFF + PCI_EXP_LNKCAP);
 	reg &= ~PCI_EXP_LNKCAP_MLW;
 	reg |= (pcie->is_x4 ? 4 : 1) << 4;
-	writel(reg, pcie->base + PCIE_CAPAB_OFF + PCI_EXP_LNKCAP);
+	writel(reg, pcie->base + MVPCIE_ROOT_PORT_PCI_EXP_OFF + PCI_EXP_LNKCAP);
 }
 
 static int mvebu_pcie_probe(struct udevice *dev)
@@ -440,7 +430,7 @@ static int mvebu_pcie_probe(struct udevice *dev)
 	 * have the same format in Marvell's specification as in PCIe
 	 * specification, but their meaning is totally different and they do
 	 * different things: they are aliased into internal mvebu registers
-	 * (e.g. PCIE_BAR_LO_OFF) and these should not be changed or
+	 * (e.g. MVPCIE_BAR_LO_OFF) and these should not be changed or
 	 * reconfigured by pci device drivers.
 	 *
 	 * So our driver converts Type 0 config space to Type 1 and reports
@@ -448,10 +438,10 @@ static int mvebu_pcie_probe(struct udevice *dev)
 	 * Type 1 registers is redirected to the virtual cfgcache[] buffer,
 	 * which avoids changing unrelated registers.
 	 */
-	reg = readl(pcie->base + PCIE_DEV_REV_OFF);
+	reg = readl(pcie->base + MVPCIE_ROOT_PORT_PCI_CFG_OFF + PCI_CLASS_REVISION);
 	reg &= ~0xffffff00;
 	reg |= (PCI_CLASS_BRIDGE_PCI << 8) << 8;
-	writel(reg, pcie->base + PCIE_DEV_REV_OFF);
+	writel(reg, pcie->base + MVPCIE_ROOT_PORT_PCI_CFG_OFF + PCI_CLASS_REVISION);
 
 	/*
 	 * mvebu uses local bus number and local device number to determinate
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask
  2022-02-18 11:25 [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Pali Rohár
  2022-02-18 11:25 ` [PATCH 2/2] pci: pci_mvebu: Cleanup macro names Pali Rohár
@ 2022-02-18 13:12 ` Marek Behún
  2022-02-18 14:17 ` Stefan Roese
  2 siblings, 0 replies; 8+ messages in thread
From: Marek Behún @ 2022-02-18 13:12 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Stefan Roese, u-boot

On Fri, 18 Feb 2022 12:25:22 +0100
Pali Rohár <pali@kernel.org> wrote:

> Macro SELECT() is unused and struct mvebu_pcie field lane_mask is unused
> too. Remove them.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Marek Behún <marek.behun@nic.cz>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] pci: pci_mvebu: Cleanup macro names
  2022-02-18 11:25 ` [PATCH 2/2] pci: pci_mvebu: Cleanup macro names Pali Rohár
@ 2022-02-18 13:12   ` Marek Behún
  2022-02-18 14:18   ` Stefan Roese
  1 sibling, 0 replies; 8+ messages in thread
From: Marek Behún @ 2022-02-18 13:12 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Stefan Roese, u-boot

On Fri, 18 Feb 2022 12:25:23 +0100
Pali Rohár <pali@kernel.org> wrote:

> Use "MVPCIE_" prefix instead of generic "PCIE_" prefix for pci_mvebu.c
> specific macros. Define offset macros for Root Port registers and use
> standard register macros from pci.h when accessing Root Port registers.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Marek Behún <marek.behun@nic.cz>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask
  2022-02-18 11:25 [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Pali Rohár
  2022-02-18 11:25 ` [PATCH 2/2] pci: pci_mvebu: Cleanup macro names Pali Rohár
  2022-02-18 13:12 ` [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Marek Behún
@ 2022-02-18 14:17 ` Stefan Roese
  2022-03-04 12:21   ` Stefan Roese
  2 siblings, 1 reply; 8+ messages in thread
From: Stefan Roese @ 2022-02-18 14:17 UTC (permalink / raw)
  To: Pali Rohár, Marek Behún; +Cc: u-boot

On 2/18/22 12:25, Pali Rohár wrote:
> Macro SELECT() is unused and struct mvebu_pcie field lane_mask is unused
> too. Remove them.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
>   drivers/pci/pci_mvebu.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
> index 5a0a59a8b9ec..16fe54fd366f 100644
> --- a/drivers/pci/pci_mvebu.c
> +++ b/drivers/pci/pci_mvebu.c
> @@ -30,8 +30,6 @@
>   #include <linux/sizes.h>
>   
>   /* PCIe unit register offsets */
> -#define SELECT(x, n)			((x >> n) & 1UL)
> -
>   #define PCIE_DEV_ID_OFF			0x0000
>   #define PCIE_CMD_OFF			0x0004
>   #define PCIE_DEV_REV_OFF		0x0008
> @@ -77,7 +75,6 @@ struct mvebu_pcie {
>   	u32 lane;
>   	bool is_x4;
>   	int devfn;
> -	u32 lane_mask;
>   	int sec_busno;
>   	char name[16];
>   	unsigned int mem_target;

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] pci: pci_mvebu: Cleanup macro names
  2022-02-18 11:25 ` [PATCH 2/2] pci: pci_mvebu: Cleanup macro names Pali Rohár
  2022-02-18 13:12   ` Marek Behún
@ 2022-02-18 14:18   ` Stefan Roese
  2022-03-04 12:21     ` Stefan Roese
  1 sibling, 1 reply; 8+ messages in thread
From: Stefan Roese @ 2022-02-18 14:18 UTC (permalink / raw)
  To: Pali Rohár, Marek Behún; +Cc: u-boot

On 2/18/22 12:25, Pali Rohár wrote:
> Use "MVPCIE_" prefix instead of generic "PCIE_" prefix for pci_mvebu.c
> specific macros. Define offset macros for Root Port registers and use
> standard register macros from pci.h when accessing Root Port registers.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
>   drivers/pci/pci_mvebu.c | 130 +++++++++++++++++++---------------------
>   1 file changed, 60 insertions(+), 70 deletions(-)
> 
> diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
> index 16fe54fd366f..f07669374d70 100644
> --- a/drivers/pci/pci_mvebu.c
> +++ b/drivers/pci/pci_mvebu.c
> @@ -30,35 +30,25 @@
>   #include <linux/sizes.h>
>   
>   /* PCIe unit register offsets */
> -#define PCIE_DEV_ID_OFF			0x0000
> -#define PCIE_CMD_OFF			0x0004
> -#define PCIE_DEV_REV_OFF		0x0008
> -#define  PCIE_BAR_LO_OFF(n)		(0x0010 + ((n) << 3))
> -#define  PCIE_BAR_HI_OFF(n)		(0x0014 + ((n) << 3))
> -#define PCIE_EXP_ROM_BAR_OFF		0x0030
> -#define PCIE_CAPAB_OFF			0x0060
> -#define PCIE_CTRL_STAT_OFF		0x0068
> -#define PCIE_HEADER_LOG_4_OFF		0x0128
> -#define  PCIE_BAR_CTRL_OFF(n)		(0x1804 + (((n) - 1) * 4))
> -#define  PCIE_WIN04_CTRL_OFF(n)		(0x1820 + ((n) << 4))
> -#define  PCIE_WIN04_BASE_OFF(n)		(0x1824 + ((n) << 4))
> -#define  PCIE_WIN04_REMAP_OFF(n)	(0x182c + ((n) << 4))
> -#define PCIE_WIN5_CTRL_OFF		0x1880
> -#define PCIE_WIN5_BASE_OFF		0x1884
> -#define PCIE_WIN5_REMAP_OFF		0x188c
> -#define PCIE_CONF_ADDR_OFF		0x18f8
> -#define PCIE_CONF_DATA_OFF		0x18fc
> -#define PCIE_MASK_OFF			0x1910
> -#define  PCIE_MASK_ENABLE_INTS          (0xf << 24)
> -#define PCIE_CTRL_OFF			0x1a00
> -#define  PCIE_CTRL_X1_MODE		BIT(0)
> -#define  PCIE_CTRL_RC_MODE		BIT(1)
> -#define PCIE_STAT_OFF			0x1a04
> -#define  PCIE_STAT_BUS                  (0xff << 8)
> -#define  PCIE_STAT_DEV                  (0x1f << 16)
> -#define  PCIE_STAT_LINK_DOWN		BIT(0)
> -#define PCIE_DEBUG_CTRL			0x1a60
> -#define  PCIE_DEBUG_SOFT_RESET		BIT(20)
> +#define MVPCIE_ROOT_PORT_PCI_CFG_OFF	0x0000
> +#define MVPCIE_ROOT_PORT_PCI_EXP_OFF	0x0060
> +#define MVPCIE_BAR_LO_OFF(n)		(0x0010 + ((n) << 3))
> +#define MVPCIE_BAR_HI_OFF(n)		(0x0014 + ((n) << 3))
> +#define MVPCIE_BAR_CTRL_OFF(n)		(0x1804 + (((n) - 1) * 4))
> +#define MVPCIE_WIN04_CTRL_OFF(n)	(0x1820 + ((n) << 4))
> +#define MVPCIE_WIN04_BASE_OFF(n)	(0x1824 + ((n) << 4))
> +#define MVPCIE_WIN04_REMAP_OFF(n)	(0x182c + ((n) << 4))
> +#define MVPCIE_WIN5_CTRL_OFF		0x1880
> +#define MVPCIE_WIN5_BASE_OFF		0x1884
> +#define MVPCIE_WIN5_REMAP_OFF		0x188c
> +#define MVPCIE_CONF_ADDR_OFF		0x18f8
> +#define MVPCIE_CONF_DATA_OFF		0x18fc
> +#define MVPCIE_CTRL_OFF			0x1a00
> +#define  MVPCIE_CTRL_RC_MODE		BIT(1)
> +#define MVPCIE_STAT_OFF			0x1a04
> +#define  MVPCIE_STAT_BUS		(0xff << 8)
> +#define  MVPCIE_STAT_DEV		(0x1f << 16)
> +#define  MVPCIE_STAT_LINK_DOWN		BIT(0)
>   
>   #define LINK_WAIT_RETRIES	100
>   #define LINK_WAIT_TIMEOUT	1000
> @@ -87,8 +77,8 @@ struct mvebu_pcie {
>   static inline bool mvebu_pcie_link_up(struct mvebu_pcie *pcie)
>   {
>   	u32 val;
> -	val = readl(pcie->base + PCIE_STAT_OFF);
> -	return !(val & PCIE_STAT_LINK_DOWN);
> +	val = readl(pcie->base + MVPCIE_STAT_OFF);
> +	return !(val & MVPCIE_STAT_LINK_DOWN);
>   }
>   
>   static void mvebu_pcie_wait_for_link(struct mvebu_pcie *pcie)
> @@ -112,20 +102,20 @@ static void mvebu_pcie_set_local_bus_nr(struct mvebu_pcie *pcie, int busno)
>   {
>   	u32 stat;
>   
> -	stat = readl(pcie->base + PCIE_STAT_OFF);
> -	stat &= ~PCIE_STAT_BUS;
> +	stat = readl(pcie->base + MVPCIE_STAT_OFF);
> +	stat &= ~MVPCIE_STAT_BUS;
>   	stat |= busno << 8;
> -	writel(stat, pcie->base + PCIE_STAT_OFF);
> +	writel(stat, pcie->base + MVPCIE_STAT_OFF);
>   }
>   
>   static void mvebu_pcie_set_local_dev_nr(struct mvebu_pcie *pcie, int devno)
>   {
>   	u32 stat;
>   
> -	stat = readl(pcie->base + PCIE_STAT_OFF);
> -	stat &= ~PCIE_STAT_DEV;
> +	stat = readl(pcie->base + MVPCIE_STAT_OFF);
> +	stat &= ~MVPCIE_STAT_DEV;
>   	stat |= devno << 16;
> -	writel(stat, pcie->base + PCIE_STAT_OFF);
> +	writel(stat, pcie->base + MVPCIE_STAT_OFF);
>   }
>   
>   static inline struct mvebu_pcie *hose_to_pcie(struct pci_controller *hose)
> @@ -195,18 +185,18 @@ static int mvebu_pcie_read_config(const struct udevice *bus, pci_dev_t bdf,
>   		addr = PCI_CONF1_EXT_ADDRESS(busno, PCI_DEV(bdf), PCI_FUNC(bdf), offset);
>   
>   	/* write address */
> -	writel(addr, pcie->base + PCIE_CONF_ADDR_OFF);
> +	writel(addr, pcie->base + MVPCIE_CONF_ADDR_OFF);
>   
>   	/* read data */
>   	switch (size) {
>   	case PCI_SIZE_8:
> -		data = readb(pcie->base + PCIE_CONF_DATA_OFF + (offset & 3));
> +		data = readb(pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 3));
>   		break;
>   	case PCI_SIZE_16:
> -		data = readw(pcie->base + PCIE_CONF_DATA_OFF + (offset & 2));
> +		data = readw(pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 2));
>   		break;
>   	case PCI_SIZE_32:
> -		data = readl(pcie->base + PCIE_CONF_DATA_OFF);
> +		data = readl(pcie->base + MVPCIE_CONF_DATA_OFF);
>   		break;
>   	default:
>   		return -EINVAL;
> @@ -286,18 +276,18 @@ static int mvebu_pcie_write_config(struct udevice *bus, pci_dev_t bdf,
>   		addr = PCI_CONF1_EXT_ADDRESS(busno, PCI_DEV(bdf), PCI_FUNC(bdf), offset);
>   
>   	/* write address */
> -	writel(addr, pcie->base + PCIE_CONF_ADDR_OFF);
> +	writel(addr, pcie->base + MVPCIE_CONF_ADDR_OFF);
>   
>   	/* write data */
>   	switch (size) {
>   	case PCI_SIZE_8:
> -		writeb(value, pcie->base + PCIE_CONF_DATA_OFF + (offset & 3));
> +		writeb(value, pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 3));
>   		break;
>   	case PCI_SIZE_16:
> -		writew(value, pcie->base + PCIE_CONF_DATA_OFF + (offset & 2));
> +		writew(value, pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 2));
>   		break;
>   	case PCI_SIZE_32:
> -		writel(value, pcie->base + PCIE_CONF_DATA_OFF);
> +		writel(value, pcie->base + MVPCIE_CONF_DATA_OFF);
>   		break;
>   	default:
>   		return -EINVAL;
> @@ -321,20 +311,20 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie *pcie)
>   
>   	/* First, disable and clear BARs and windows. */
>   	for (i = 1; i < 3; i++) {
> -		writel(0, pcie->base + PCIE_BAR_CTRL_OFF(i));
> -		writel(0, pcie->base + PCIE_BAR_LO_OFF(i));
> -		writel(0, pcie->base + PCIE_BAR_HI_OFF(i));
> +		writel(0, pcie->base + MVPCIE_BAR_CTRL_OFF(i));
> +		writel(0, pcie->base + MVPCIE_BAR_LO_OFF(i));
> +		writel(0, pcie->base + MVPCIE_BAR_HI_OFF(i));
>   	}
>   
>   	for (i = 0; i < 5; i++) {
> -		writel(0, pcie->base + PCIE_WIN04_CTRL_OFF(i));
> -		writel(0, pcie->base + PCIE_WIN04_BASE_OFF(i));
> -		writel(0, pcie->base + PCIE_WIN04_REMAP_OFF(i));
> +		writel(0, pcie->base + MVPCIE_WIN04_CTRL_OFF(i));
> +		writel(0, pcie->base + MVPCIE_WIN04_BASE_OFF(i));
> +		writel(0, pcie->base + MVPCIE_WIN04_REMAP_OFF(i));
>   	}
>   
> -	writel(0, pcie->base + PCIE_WIN5_CTRL_OFF);
> -	writel(0, pcie->base + PCIE_WIN5_BASE_OFF);
> -	writel(0, pcie->base + PCIE_WIN5_REMAP_OFF);
> +	writel(0, pcie->base + MVPCIE_WIN5_CTRL_OFF);
> +	writel(0, pcie->base + MVPCIE_WIN5_BASE_OFF);
> +	writel(0, pcie->base + MVPCIE_WIN5_REMAP_OFF);
>   
>   	/* Setup windows for DDR banks. Count total DDR size on the fly. */
>   	size = 0;
> @@ -342,12 +332,12 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie *pcie)
>   		const struct mbus_dram_window *cs = dram->cs + i;
>   
>   		writel(cs->base & 0xffff0000,
> -		       pcie->base + PCIE_WIN04_BASE_OFF(i));
> -		writel(0, pcie->base + PCIE_WIN04_REMAP_OFF(i));
> +		       pcie->base + MVPCIE_WIN04_BASE_OFF(i));
> +		writel(0, pcie->base + MVPCIE_WIN04_REMAP_OFF(i));
>   		writel(((cs->size - 1) & 0xffff0000) |
>   		       (cs->mbus_attr << 8) |
>   		       (dram->mbus_dram_target_id << 4) | 1,
> -		       pcie->base + PCIE_WIN04_CTRL_OFF(i));
> +		       pcie->base + MVPCIE_WIN04_CTRL_OFF(i));
>   
>   		size += cs->size;
>   	}
> @@ -357,14 +347,14 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie *pcie)
>   		size = 1 << fls(size);
>   
>   	/* Setup BAR[1] to all DRAM banks. */
> -	writel(dram->cs[0].base | 0xc, pcie->base + PCIE_BAR_LO_OFF(1));
> -	writel(0, pcie->base + PCIE_BAR_HI_OFF(1));
> +	writel(dram->cs[0].base | 0xc, pcie->base + MVPCIE_BAR_LO_OFF(1));
> +	writel(0, pcie->base + MVPCIE_BAR_HI_OFF(1));
>   	writel(((size - 1) & 0xffff0000) | 0x1,
> -	       pcie->base + PCIE_BAR_CTRL_OFF(1));
> +	       pcie->base + MVPCIE_BAR_CTRL_OFF(1));
>   
>   	/* Setup BAR[0] to internal registers. */
> -	writel(pcie->intregs, pcie->base + PCIE_BAR_LO_OFF(0));
> -	writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
> +	writel(pcie->intregs, pcie->base + MVPCIE_BAR_LO_OFF(0));
> +	writel(0, pcie->base + MVPCIE_BAR_HI_OFF(0));
>   }
>   
>   /* Only enable PCIe link, do not setup it */
> @@ -403,9 +393,9 @@ static void mvebu_pcie_setup_link(struct mvebu_pcie *pcie)
>   	u32 reg;
>   
>   	/* Setup PCIe controller to Root Complex mode */
> -	reg = readl(pcie->base + PCIE_CTRL_OFF);
> -	reg |= PCIE_CTRL_RC_MODE;
> -	writel(reg, pcie->base + PCIE_CTRL_OFF);
> +	reg = readl(pcie->base + MVPCIE_CTRL_OFF);
> +	reg |= MVPCIE_CTRL_RC_MODE;
> +	writel(reg, pcie->base + MVPCIE_CTRL_OFF);
>   
>   	/*
>   	 * Set Maximum Link Width to X1 or X4 in Root Port's PCIe Link
> @@ -414,10 +404,10 @@ static void mvebu_pcie_setup_link(struct mvebu_pcie *pcie)
>   	 * be set to number of SerDes PCIe lanes (1 or 4). If this register is
>   	 * not set correctly then link with endpoint card is not established.
>   	 */
> -	reg = readl(pcie->base + PCIE_CAPAB_OFF + PCI_EXP_LNKCAP);
> +	reg = readl(pcie->base + MVPCIE_ROOT_PORT_PCI_EXP_OFF + PCI_EXP_LNKCAP);
>   	reg &= ~PCI_EXP_LNKCAP_MLW;
>   	reg |= (pcie->is_x4 ? 4 : 1) << 4;
> -	writel(reg, pcie->base + PCIE_CAPAB_OFF + PCI_EXP_LNKCAP);
> +	writel(reg, pcie->base + MVPCIE_ROOT_PORT_PCI_EXP_OFF + PCI_EXP_LNKCAP);
>   }
>   
>   static int mvebu_pcie_probe(struct udevice *dev)
> @@ -440,7 +430,7 @@ static int mvebu_pcie_probe(struct udevice *dev)
>   	 * have the same format in Marvell's specification as in PCIe
>   	 * specification, but their meaning is totally different and they do
>   	 * different things: they are aliased into internal mvebu registers
> -	 * (e.g. PCIE_BAR_LO_OFF) and these should not be changed or
> +	 * (e.g. MVPCIE_BAR_LO_OFF) and these should not be changed or
>   	 * reconfigured by pci device drivers.
>   	 *
>   	 * So our driver converts Type 0 config space to Type 1 and reports
> @@ -448,10 +438,10 @@ static int mvebu_pcie_probe(struct udevice *dev)
>   	 * Type 1 registers is redirected to the virtual cfgcache[] buffer,
>   	 * which avoids changing unrelated registers.
>   	 */
> -	reg = readl(pcie->base + PCIE_DEV_REV_OFF);
> +	reg = readl(pcie->base + MVPCIE_ROOT_PORT_PCI_CFG_OFF + PCI_CLASS_REVISION);
>   	reg &= ~0xffffff00;
>   	reg |= (PCI_CLASS_BRIDGE_PCI << 8) << 8;
> -	writel(reg, pcie->base + PCIE_DEV_REV_OFF);
> +	writel(reg, pcie->base + MVPCIE_ROOT_PORT_PCI_CFG_OFF + PCI_CLASS_REVISION);
>   
>   	/*
>   	 * mvebu uses local bus number and local device number to determinate

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask
  2022-02-18 14:17 ` Stefan Roese
@ 2022-03-04 12:21   ` Stefan Roese
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Roese @ 2022-03-04 12:21 UTC (permalink / raw)
  To: Pali Rohár, Marek Behún; +Cc: u-boot

On 2/18/22 15:17, Stefan Roese wrote:
> On 2/18/22 12:25, Pali Rohár wrote:
>> Macro SELECT() is unused and struct mvebu_pcie field lane_mask is unused
>> too. Remove them.
>>
>> Signed-off-by: Pali Rohár <pali@kernel.org>
> 
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot-marvell/master

Thanks,
Stefan

> Thanks,
> Stefan
> 
>> ---
>>   drivers/pci/pci_mvebu.c | 3 ---
>>   1 file changed, 3 deletions(-)
>>
>> diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
>> index 5a0a59a8b9ec..16fe54fd366f 100644
>> --- a/drivers/pci/pci_mvebu.c
>> +++ b/drivers/pci/pci_mvebu.c
>> @@ -30,8 +30,6 @@
>>   #include <linux/sizes.h>
>>   /* PCIe unit register offsets */
>> -#define SELECT(x, n)            ((x >> n) & 1UL)
>> -
>>   #define PCIE_DEV_ID_OFF            0x0000
>>   #define PCIE_CMD_OFF            0x0004
>>   #define PCIE_DEV_REV_OFF        0x0008
>> @@ -77,7 +75,6 @@ struct mvebu_pcie {
>>       u32 lane;
>>       bool is_x4;
>>       int devfn;
>> -    u32 lane_mask;
>>       int sec_busno;
>>       char name[16];
>>       unsigned int mem_target;
> 
> Viele Grüße,
> Stefan Roese
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] pci: pci_mvebu: Cleanup macro names
  2022-02-18 14:18   ` Stefan Roese
@ 2022-03-04 12:21     ` Stefan Roese
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Roese @ 2022-03-04 12:21 UTC (permalink / raw)
  To: Pali Rohár, Marek Behún; +Cc: u-boot

On 2/18/22 15:18, Stefan Roese wrote:
> On 2/18/22 12:25, Pali Rohár wrote:
>> Use "MVPCIE_" prefix instead of generic "PCIE_" prefix for pci_mvebu.c
>> specific macros. Define offset macros for Root Port registers and use
>> standard register macros from pci.h when accessing Root Port registers.
>>
>> Signed-off-by: Pali Rohár <pali@kernel.org>
> 
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot-marvell/master

Thanks,
Stefan


> Thanks,
> Stefan
> 
>> ---
>>   drivers/pci/pci_mvebu.c | 130 +++++++++++++++++++---------------------
>>   1 file changed, 60 insertions(+), 70 deletions(-)
>>
>> diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
>> index 16fe54fd366f..f07669374d70 100644
>> --- a/drivers/pci/pci_mvebu.c
>> +++ b/drivers/pci/pci_mvebu.c
>> @@ -30,35 +30,25 @@
>>   #include <linux/sizes.h>
>>   /* PCIe unit register offsets */
>> -#define PCIE_DEV_ID_OFF            0x0000
>> -#define PCIE_CMD_OFF            0x0004
>> -#define PCIE_DEV_REV_OFF        0x0008
>> -#define  PCIE_BAR_LO_OFF(n)        (0x0010 + ((n) << 3))
>> -#define  PCIE_BAR_HI_OFF(n)        (0x0014 + ((n) << 3))
>> -#define PCIE_EXP_ROM_BAR_OFF        0x0030
>> -#define PCIE_CAPAB_OFF            0x0060
>> -#define PCIE_CTRL_STAT_OFF        0x0068
>> -#define PCIE_HEADER_LOG_4_OFF        0x0128
>> -#define  PCIE_BAR_CTRL_OFF(n)        (0x1804 + (((n) - 1) * 4))
>> -#define  PCIE_WIN04_CTRL_OFF(n)        (0x1820 + ((n) << 4))
>> -#define  PCIE_WIN04_BASE_OFF(n)        (0x1824 + ((n) << 4))
>> -#define  PCIE_WIN04_REMAP_OFF(n)    (0x182c + ((n) << 4))
>> -#define PCIE_WIN5_CTRL_OFF        0x1880
>> -#define PCIE_WIN5_BASE_OFF        0x1884
>> -#define PCIE_WIN5_REMAP_OFF        0x188c
>> -#define PCIE_CONF_ADDR_OFF        0x18f8
>> -#define PCIE_CONF_DATA_OFF        0x18fc
>> -#define PCIE_MASK_OFF            0x1910
>> -#define  PCIE_MASK_ENABLE_INTS          (0xf << 24)
>> -#define PCIE_CTRL_OFF            0x1a00
>> -#define  PCIE_CTRL_X1_MODE        BIT(0)
>> -#define  PCIE_CTRL_RC_MODE        BIT(1)
>> -#define PCIE_STAT_OFF            0x1a04
>> -#define  PCIE_STAT_BUS                  (0xff << 8)
>> -#define  PCIE_STAT_DEV                  (0x1f << 16)
>> -#define  PCIE_STAT_LINK_DOWN        BIT(0)
>> -#define PCIE_DEBUG_CTRL            0x1a60
>> -#define  PCIE_DEBUG_SOFT_RESET        BIT(20)
>> +#define MVPCIE_ROOT_PORT_PCI_CFG_OFF    0x0000
>> +#define MVPCIE_ROOT_PORT_PCI_EXP_OFF    0x0060
>> +#define MVPCIE_BAR_LO_OFF(n)        (0x0010 + ((n) << 3))
>> +#define MVPCIE_BAR_HI_OFF(n)        (0x0014 + ((n) << 3))
>> +#define MVPCIE_BAR_CTRL_OFF(n)        (0x1804 + (((n) - 1) * 4))
>> +#define MVPCIE_WIN04_CTRL_OFF(n)    (0x1820 + ((n) << 4))
>> +#define MVPCIE_WIN04_BASE_OFF(n)    (0x1824 + ((n) << 4))
>> +#define MVPCIE_WIN04_REMAP_OFF(n)    (0x182c + ((n) << 4))
>> +#define MVPCIE_WIN5_CTRL_OFF        0x1880
>> +#define MVPCIE_WIN5_BASE_OFF        0x1884
>> +#define MVPCIE_WIN5_REMAP_OFF        0x188c
>> +#define MVPCIE_CONF_ADDR_OFF        0x18f8
>> +#define MVPCIE_CONF_DATA_OFF        0x18fc
>> +#define MVPCIE_CTRL_OFF            0x1a00
>> +#define  MVPCIE_CTRL_RC_MODE        BIT(1)
>> +#define MVPCIE_STAT_OFF            0x1a04
>> +#define  MVPCIE_STAT_BUS        (0xff << 8)
>> +#define  MVPCIE_STAT_DEV        (0x1f << 16)
>> +#define  MVPCIE_STAT_LINK_DOWN        BIT(0)
>>   #define LINK_WAIT_RETRIES    100
>>   #define LINK_WAIT_TIMEOUT    1000
>> @@ -87,8 +77,8 @@ struct mvebu_pcie {
>>   static inline bool mvebu_pcie_link_up(struct mvebu_pcie *pcie)
>>   {
>>       u32 val;
>> -    val = readl(pcie->base + PCIE_STAT_OFF);
>> -    return !(val & PCIE_STAT_LINK_DOWN);
>> +    val = readl(pcie->base + MVPCIE_STAT_OFF);
>> +    return !(val & MVPCIE_STAT_LINK_DOWN);
>>   }
>>   static void mvebu_pcie_wait_for_link(struct mvebu_pcie *pcie)
>> @@ -112,20 +102,20 @@ static void mvebu_pcie_set_local_bus_nr(struct 
>> mvebu_pcie *pcie, int busno)
>>   {
>>       u32 stat;
>> -    stat = readl(pcie->base + PCIE_STAT_OFF);
>> -    stat &= ~PCIE_STAT_BUS;
>> +    stat = readl(pcie->base + MVPCIE_STAT_OFF);
>> +    stat &= ~MVPCIE_STAT_BUS;
>>       stat |= busno << 8;
>> -    writel(stat, pcie->base + PCIE_STAT_OFF);
>> +    writel(stat, pcie->base + MVPCIE_STAT_OFF);
>>   }
>>   static void mvebu_pcie_set_local_dev_nr(struct mvebu_pcie *pcie, int 
>> devno)
>>   {
>>       u32 stat;
>> -    stat = readl(pcie->base + PCIE_STAT_OFF);
>> -    stat &= ~PCIE_STAT_DEV;
>> +    stat = readl(pcie->base + MVPCIE_STAT_OFF);
>> +    stat &= ~MVPCIE_STAT_DEV;
>>       stat |= devno << 16;
>> -    writel(stat, pcie->base + PCIE_STAT_OFF);
>> +    writel(stat, pcie->base + MVPCIE_STAT_OFF);
>>   }
>>   static inline struct mvebu_pcie *hose_to_pcie(struct pci_controller 
>> *hose)
>> @@ -195,18 +185,18 @@ static int mvebu_pcie_read_config(const struct 
>> udevice *bus, pci_dev_t bdf,
>>           addr = PCI_CONF1_EXT_ADDRESS(busno, PCI_DEV(bdf), 
>> PCI_FUNC(bdf), offset);
>>       /* write address */
>> -    writel(addr, pcie->base + PCIE_CONF_ADDR_OFF);
>> +    writel(addr, pcie->base + MVPCIE_CONF_ADDR_OFF);
>>       /* read data */
>>       switch (size) {
>>       case PCI_SIZE_8:
>> -        data = readb(pcie->base + PCIE_CONF_DATA_OFF + (offset & 3));
>> +        data = readb(pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 3));
>>           break;
>>       case PCI_SIZE_16:
>> -        data = readw(pcie->base + PCIE_CONF_DATA_OFF + (offset & 2));
>> +        data = readw(pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 2));
>>           break;
>>       case PCI_SIZE_32:
>> -        data = readl(pcie->base + PCIE_CONF_DATA_OFF);
>> +        data = readl(pcie->base + MVPCIE_CONF_DATA_OFF);
>>           break;
>>       default:
>>           return -EINVAL;
>> @@ -286,18 +276,18 @@ static int mvebu_pcie_write_config(struct 
>> udevice *bus, pci_dev_t bdf,
>>           addr = PCI_CONF1_EXT_ADDRESS(busno, PCI_DEV(bdf), 
>> PCI_FUNC(bdf), offset);
>>       /* write address */
>> -    writel(addr, pcie->base + PCIE_CONF_ADDR_OFF);
>> +    writel(addr, pcie->base + MVPCIE_CONF_ADDR_OFF);
>>       /* write data */
>>       switch (size) {
>>       case PCI_SIZE_8:
>> -        writeb(value, pcie->base + PCIE_CONF_DATA_OFF + (offset & 3));
>> +        writeb(value, pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 3));
>>           break;
>>       case PCI_SIZE_16:
>> -        writew(value, pcie->base + PCIE_CONF_DATA_OFF + (offset & 2));
>> +        writew(value, pcie->base + MVPCIE_CONF_DATA_OFF + (offset & 2));
>>           break;
>>       case PCI_SIZE_32:
>> -        writel(value, pcie->base + PCIE_CONF_DATA_OFF);
>> +        writel(value, pcie->base + MVPCIE_CONF_DATA_OFF);
>>           break;
>>       default:
>>           return -EINVAL;
>> @@ -321,20 +311,20 @@ static void mvebu_pcie_setup_wins(struct 
>> mvebu_pcie *pcie)
>>       /* First, disable and clear BARs and windows. */
>>       for (i = 1; i < 3; i++) {
>> -        writel(0, pcie->base + PCIE_BAR_CTRL_OFF(i));
>> -        writel(0, pcie->base + PCIE_BAR_LO_OFF(i));
>> -        writel(0, pcie->base + PCIE_BAR_HI_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_BAR_CTRL_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_BAR_LO_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_BAR_HI_OFF(i));
>>       }
>>       for (i = 0; i < 5; i++) {
>> -        writel(0, pcie->base + PCIE_WIN04_CTRL_OFF(i));
>> -        writel(0, pcie->base + PCIE_WIN04_BASE_OFF(i));
>> -        writel(0, pcie->base + PCIE_WIN04_REMAP_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_WIN04_CTRL_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_WIN04_BASE_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_WIN04_REMAP_OFF(i));
>>       }
>> -    writel(0, pcie->base + PCIE_WIN5_CTRL_OFF);
>> -    writel(0, pcie->base + PCIE_WIN5_BASE_OFF);
>> -    writel(0, pcie->base + PCIE_WIN5_REMAP_OFF);
>> +    writel(0, pcie->base + MVPCIE_WIN5_CTRL_OFF);
>> +    writel(0, pcie->base + MVPCIE_WIN5_BASE_OFF);
>> +    writel(0, pcie->base + MVPCIE_WIN5_REMAP_OFF);
>>       /* Setup windows for DDR banks. Count total DDR size on the fly. */
>>       size = 0;
>> @@ -342,12 +332,12 @@ static void mvebu_pcie_setup_wins(struct 
>> mvebu_pcie *pcie)
>>           const struct mbus_dram_window *cs = dram->cs + i;
>>           writel(cs->base & 0xffff0000,
>> -               pcie->base + PCIE_WIN04_BASE_OFF(i));
>> -        writel(0, pcie->base + PCIE_WIN04_REMAP_OFF(i));
>> +               pcie->base + MVPCIE_WIN04_BASE_OFF(i));
>> +        writel(0, pcie->base + MVPCIE_WIN04_REMAP_OFF(i));
>>           writel(((cs->size - 1) & 0xffff0000) |
>>                  (cs->mbus_attr << 8) |
>>                  (dram->mbus_dram_target_id << 4) | 1,
>> -               pcie->base + PCIE_WIN04_CTRL_OFF(i));
>> +               pcie->base + MVPCIE_WIN04_CTRL_OFF(i));
>>           size += cs->size;
>>       }
>> @@ -357,14 +347,14 @@ static void mvebu_pcie_setup_wins(struct 
>> mvebu_pcie *pcie)
>>           size = 1 << fls(size);
>>       /* Setup BAR[1] to all DRAM banks. */
>> -    writel(dram->cs[0].base | 0xc, pcie->base + PCIE_BAR_LO_OFF(1));
>> -    writel(0, pcie->base + PCIE_BAR_HI_OFF(1));
>> +    writel(dram->cs[0].base | 0xc, pcie->base + MVPCIE_BAR_LO_OFF(1));
>> +    writel(0, pcie->base + MVPCIE_BAR_HI_OFF(1));
>>       writel(((size - 1) & 0xffff0000) | 0x1,
>> -           pcie->base + PCIE_BAR_CTRL_OFF(1));
>> +           pcie->base + MVPCIE_BAR_CTRL_OFF(1));
>>       /* Setup BAR[0] to internal registers. */
>> -    writel(pcie->intregs, pcie->base + PCIE_BAR_LO_OFF(0));
>> -    writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
>> +    writel(pcie->intregs, pcie->base + MVPCIE_BAR_LO_OFF(0));
>> +    writel(0, pcie->base + MVPCIE_BAR_HI_OFF(0));
>>   }
>>   /* Only enable PCIe link, do not setup it */
>> @@ -403,9 +393,9 @@ static void mvebu_pcie_setup_link(struct 
>> mvebu_pcie *pcie)
>>       u32 reg;
>>       /* Setup PCIe controller to Root Complex mode */
>> -    reg = readl(pcie->base + PCIE_CTRL_OFF);
>> -    reg |= PCIE_CTRL_RC_MODE;
>> -    writel(reg, pcie->base + PCIE_CTRL_OFF);
>> +    reg = readl(pcie->base + MVPCIE_CTRL_OFF);
>> +    reg |= MVPCIE_CTRL_RC_MODE;
>> +    writel(reg, pcie->base + MVPCIE_CTRL_OFF);
>>       /*
>>        * Set Maximum Link Width to X1 or X4 in Root Port's PCIe Link
>> @@ -414,10 +404,10 @@ static void mvebu_pcie_setup_link(struct 
>> mvebu_pcie *pcie)
>>        * be set to number of SerDes PCIe lanes (1 or 4). If this 
>> register is
>>        * not set correctly then link with endpoint card is not 
>> established.
>>        */
>> -    reg = readl(pcie->base + PCIE_CAPAB_OFF + PCI_EXP_LNKCAP);
>> +    reg = readl(pcie->base + MVPCIE_ROOT_PORT_PCI_EXP_OFF + 
>> PCI_EXP_LNKCAP);
>>       reg &= ~PCI_EXP_LNKCAP_MLW;
>>       reg |= (pcie->is_x4 ? 4 : 1) << 4;
>> -    writel(reg, pcie->base + PCIE_CAPAB_OFF + PCI_EXP_LNKCAP);
>> +    writel(reg, pcie->base + MVPCIE_ROOT_PORT_PCI_EXP_OFF + 
>> PCI_EXP_LNKCAP);
>>   }
>>   static int mvebu_pcie_probe(struct udevice *dev)
>> @@ -440,7 +430,7 @@ static int mvebu_pcie_probe(struct udevice *dev)
>>        * have the same format in Marvell's specification as in PCIe
>>        * specification, but their meaning is totally different and 
>> they do
>>        * different things: they are aliased into internal mvebu registers
>> -     * (e.g. PCIE_BAR_LO_OFF) and these should not be changed or
>> +     * (e.g. MVPCIE_BAR_LO_OFF) and these should not be changed or
>>        * reconfigured by pci device drivers.
>>        *
>>        * So our driver converts Type 0 config space to Type 1 and reports
>> @@ -448,10 +438,10 @@ static int mvebu_pcie_probe(struct udevice *dev)
>>        * Type 1 registers is redirected to the virtual cfgcache[] buffer,
>>        * which avoids changing unrelated registers.
>>        */
>> -    reg = readl(pcie->base + PCIE_DEV_REV_OFF);
>> +    reg = readl(pcie->base + MVPCIE_ROOT_PORT_PCI_CFG_OFF + 
>> PCI_CLASS_REVISION);
>>       reg &= ~0xffffff00;
>>       reg |= (PCI_CLASS_BRIDGE_PCI << 8) << 8;
>> -    writel(reg, pcie->base + PCIE_DEV_REV_OFF);
>> +    writel(reg, pcie->base + MVPCIE_ROOT_PORT_PCI_CFG_OFF + 
>> PCI_CLASS_REVISION);
>>       /*
>>        * mvebu uses local bus number and local device number to 
>> determinate
> 
> Viele Grüße,
> Stefan Roese
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-03-04 12:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-18 11:25 [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Pali Rohár
2022-02-18 11:25 ` [PATCH 2/2] pci: pci_mvebu: Cleanup macro names Pali Rohár
2022-02-18 13:12   ` Marek Behún
2022-02-18 14:18   ` Stefan Roese
2022-03-04 12:21     ` Stefan Roese
2022-02-18 13:12 ` [PATCH 1/2] pci: pci_mvebu: Remove unused SELECT and lane_mask Marek Behún
2022-02-18 14:17 ` Stefan Roese
2022-03-04 12:21   ` Stefan Roese

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.