* [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro
@ 2021-11-24 17:00 Pali Rohár
2021-11-24 17:00 ` [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET Pali Rohár
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Pali Rohár @ 2021-11-24 17:00 UTC (permalink / raw)
To: Stefan Roese, Simon Glass, Bin Meng, David Feng, Liviu Dudau,
Nicolas Saenz Julienne, Matthias Brugger, Bharat Gooty
Cc: u-boot
This patch series replace usage of custom driver functions and macros by
PCIE_ECAM_OFFSET() macro provided by U-Boot pci.h header file.
Please properly review these patches as I do not have hardware with these
drivers for testing.
Support for PCIE_ECAM_OFFSET() macro is in U-Boot next branch.
Pali Rohár (4):
vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET
pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro
pci: pcie_iproc: Use PCIE_ECAM_OFFSET() macro
pci: pci_octeontx: Use PCIE_ECAM_OFFSET() macro
board/armltd/vexpress64/pcie.c | 4 ---
drivers/pci/pci_octeontx.c | 61 +++++++++++-----------------------
drivers/pci/pcie_brcmstb.c | 7 +---
drivers/pci/pcie_iproc.c | 17 ++--------
4 files changed, 24 insertions(+), 65 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET
2021-11-24 17:00 [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro Pali Rohár
@ 2021-11-24 17:00 ` Pali Rohár
2022-01-13 1:50 ` Tom Rini
2021-11-24 17:00 ` [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro Pali Rohár
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Pali Rohár @ 2021-11-24 17:00 UTC (permalink / raw)
To: Stefan Roese, Simon Glass, Bin Meng, David Feng, Liviu Dudau; +Cc: u-boot
Macro XR3PCI_ECAM_OFFSET is unused and in case it would be needed in future
it can be replaced by standard PCIE_ECAM_OFFSET macro from pci.h file.
Signed-off-by: Pali Rohár <pali@kernel.org>
---
board/armltd/vexpress64/pcie.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/board/armltd/vexpress64/pcie.c b/board/armltd/vexpress64/pcie.c
index 733b190e594d..1e74158630b5 100644
--- a/board/armltd/vexpress64/pcie.c
+++ b/board/armltd/vexpress64/pcie.c
@@ -56,10 +56,6 @@
#define XR3PCI_ATR_TRSLID_PCIE_IO (0x020000)
#define XR3PCI_ATR_TRSLID_PCIE_MEMORY (0x000000)
-#define XR3PCI_ECAM_OFFSET(b, d, o) (((b) << 20) | \
- (PCI_SLOT(d) << 15) | \
- (PCI_FUNC(d) << 12) | o)
-
#define JUNO_RESET_CTRL 0x1004
#define JUNO_RESET_CTRL_PHY BIT(0)
#define JUNO_RESET_CTRL_RC BIT(1)
--
2.20.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro Pali Rohár
2021-11-24 17:00 ` [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET Pali Rohár
@ 2021-11-24 17:00 ` Pali Rohár
2021-11-30 12:09 ` nicolas saenz julienne
2022-01-13 1:50 ` Tom Rini
2021-11-24 17:00 ` [PATCH u-boot-next 3/4] pci: pcie_iproc: " Pali Rohár
` (2 subsequent siblings)
4 siblings, 2 replies; 12+ messages in thread
From: Pali Rohár @ 2021-11-24 17:00 UTC (permalink / raw)
To: Stefan Roese, Simon Glass, Bin Meng, Nicolas Saenz Julienne,
Matthias Brugger
Cc: u-boot
Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
Signed-off-by: Pali Rohár <pali@kernel.org>
---
drivers/pci/pcie_brcmstb.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c
index 90225f677955..1de28021138a 100644
--- a/drivers/pci/pcie_brcmstb.c
+++ b/drivers/pci/pcie_brcmstb.c
@@ -97,9 +97,6 @@
#define PCIE_EXT_CFG_DATA 0x8000
#define PCIE_EXT_CFG_INDEX 0x9000
-#define PCIE_EXT_BUSNUM_SHIFT 20
-#define PCIE_EXT_SLOT_SHIFT 15
-#define PCIE_EXT_FUNC_SHIFT 12
#define PCIE_RGR1_SW_INIT_1 0x9210
#define RGR1_SW_INIT_1_PERST_MASK 0x1
@@ -227,9 +224,7 @@ static int brcm_pcie_config_address(const struct udevice *dev, pci_dev_t bdf,
}
/* For devices, write to the config space index register */
- idx = (pci_bus << PCIE_EXT_BUSNUM_SHIFT)
- | (pci_dev << PCIE_EXT_SLOT_SHIFT)
- | (pci_func << PCIE_EXT_FUNC_SHIFT);
+ idx = PCIE_ECAM_OFFSET(pci_bus, pci_dev, pci_func, 0);
writel(idx, pcie->base + PCIE_EXT_CFG_INDEX);
*paddress = pcie->base + PCIE_EXT_CFG_DATA + offset;
--
2.20.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH u-boot-next 3/4] pci: pcie_iproc: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro Pali Rohár
2021-11-24 17:00 ` [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET Pali Rohár
2021-11-24 17:00 ` [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro Pali Rohár
@ 2021-11-24 17:00 ` Pali Rohár
2022-01-13 1:50 ` Tom Rini
2021-11-24 17:00 ` [PATCH u-boot-next 4/4] pci: pci_octeontx: " Pali Rohár
2021-12-16 11:28 ` [PATCH u-boot-next 0/4] pci: " Pali Rohár
4 siblings, 1 reply; 12+ messages in thread
From: Pali Rohár @ 2021-11-24 17:00 UTC (permalink / raw)
To: Stefan Roese, Simon Glass, Bin Meng, Bharat Gooty; +Cc: u-boot
Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
Signed-off-by: Pali Rohár <pali@kernel.org>
---
drivers/pci/pcie_iproc.c | 17 +++--------------
1 file changed, 3 insertions(+), 14 deletions(-)
diff --git a/drivers/pci/pcie_iproc.c b/drivers/pci/pcie_iproc.c
index be03dcbd97c0..a31e74a0f2e3 100644
--- a/drivers/pci/pcie_iproc.c
+++ b/drivers/pci/pcie_iproc.c
@@ -24,15 +24,7 @@
#define CFG_IND_ADDR_MASK 0x00001ffc
-#define CFG_ADDR_BUS_NUM_SHIFT 20
-#define CFG_ADDR_BUS_NUM_MASK 0x0ff00000
-#define CFG_ADDR_DEV_NUM_SHIFT 15
-#define CFG_ADDR_DEV_NUM_MASK 0x000f8000
-#define CFG_ADDR_FUNC_NUM_SHIFT 12
-#define CFG_ADDR_FUNC_NUM_MASK 0x00007000
-#define CFG_ADDR_REG_NUM_SHIFT 2
-#define CFG_ADDR_REG_NUM_MASK 0x00000ffc
-#define CFG_ADDR_CFG_TYPE_SHIFT 0
+#define CFG_ADDR_CFG_ECAM_MASK 0xfffffffc
#define CFG_ADDR_CFG_TYPE_MASK 0x00000003
#define IPROC_PCI_PM_CAP 0x48
@@ -473,11 +465,8 @@ static int iproc_pcie_map_ep_cfg_reg(const struct udevice *udev, pci_dev_t bdf,
return -ENODEV;
/* EP device access */
- val = (busno << CFG_ADDR_BUS_NUM_SHIFT) |
- (slot << CFG_ADDR_DEV_NUM_SHIFT) |
- (fn << CFG_ADDR_FUNC_NUM_SHIFT) |
- (where & CFG_ADDR_REG_NUM_MASK) |
- (1 & CFG_ADDR_CFG_TYPE_MASK);
+ val = (PCIE_ECAM_OFFSET(busno, slot, fn, where) & CFG_ADDR_CFG_ECAM_MASK)
+ | (1 & CFG_ADDR_CFG_TYPE_MASK);
iproc_pcie_write_reg(pcie, IPROC_PCIE_CFG_ADDR, val);
offset = iproc_pcie_reg_offset(pcie, IPROC_PCIE_CFG_DATA);
--
2.20.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH u-boot-next 4/4] pci: pci_octeontx: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro Pali Rohár
` (2 preceding siblings ...)
2021-11-24 17:00 ` [PATCH u-boot-next 3/4] pci: pcie_iproc: " Pali Rohár
@ 2021-11-24 17:00 ` Pali Rohár
2021-12-16 14:02 ` Stefan Roese
2022-01-13 1:51 ` Tom Rini
2021-12-16 11:28 ` [PATCH u-boot-next 0/4] pci: " Pali Rohár
4 siblings, 2 replies; 12+ messages in thread
From: Pali Rohár @ 2021-11-24 17:00 UTC (permalink / raw)
To: Stefan Roese, Simon Glass, Bin Meng; +Cc: u-boot
Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
Signed-off-by: Pali Rohár <pali@kernel.org>
---
drivers/pci/pci_octeontx.c | 61 +++++++++++++-------------------------
1 file changed, 20 insertions(+), 41 deletions(-)
diff --git a/drivers/pci/pci_octeontx.c b/drivers/pci/pci_octeontx.c
index 46855c5cd3a3..875cf7f7115d 100644
--- a/drivers/pci/pci_octeontx.c
+++ b/drivers/pci/pci_octeontx.c
@@ -49,25 +49,6 @@ struct octeontx_pci {
struct resource bus;
};
-static uintptr_t octeontx_cfg_addr(struct octeontx_pci *pcie,
- int bus_offs, int shift_offs,
- pci_dev_t bdf, uint offset)
-{
- u32 bus, dev, func;
- uintptr_t address;
-
- bus = PCI_BUS(bdf) + bus_offs;
- dev = PCI_DEV(bdf);
- func = PCI_FUNC(bdf);
-
- address = (bus << (20 + shift_offs)) |
- (dev << (15 + shift_offs)) |
- (func << (12 + shift_offs)) | offset;
- address += pcie->cfg.start;
-
- return address;
-}
-
static ulong readl_size(uintptr_t addr, enum pci_size_t size)
{
ulong val;
@@ -123,9 +104,9 @@ static int octeontx_ecam_read_config(const struct udevice *bus, pci_dev_t bdf,
struct pci_controller *hose = dev_get_uclass_priv(bus);
uintptr_t address;
- address = octeontx_cfg_addr(pcie, pcie->bus.start - hose->first_busno,
- 0, bdf, offset);
- *valuep = readl_size(address, size);
+ address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + pcie->bus.start - hose->first_busno,
+ PCI_DEV(bdf), PCI_FUNC(bdf), offset);
+ *valuep = readl_size(pcie->cfg.start + address, size);
debug("%02x.%02x.%02x: u%d %x -> %lx\n",
PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset, *valuep);
@@ -141,9 +122,9 @@ static int octeontx_ecam_write_config(struct udevice *bus, pci_dev_t bdf,
struct pci_controller *hose = dev_get_uclass_priv(bus);
uintptr_t address;
- address = octeontx_cfg_addr(pcie, pcie->bus.start - hose->first_busno,
- 0, bdf, offset);
- writel_size(address, size, value);
+ address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + pcie->bus.start - hose->first_busno,
+ PCI_DEV(bdf), PCI_FUNC(bdf), offset);
+ writel_size(pcie->cfg.start + address, size, value);
debug("%02x.%02x.%02x: u%d %x <- %lx\n",
PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset, value);
@@ -162,17 +143,16 @@ static int octeontx_pem_read_config(const struct udevice *bus, pci_dev_t bdf,
u8 pri_bus = pcie->bus.start + 1 - hose->first_busno;
u32 bus_offs = (pri_bus << 16) | (pri_bus << 8) | (pri_bus << 0);
- address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 4,
- bdf, 0);
-
*valuep = pci_conv_32_to_size(~0UL, offset, size);
if (octeontx_bdf_invalid(bdf))
return -EPERM;
- *valuep = readl_size(address + offset, size);
+ address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
+ PCI_DEV(bdf), PCI_FUNC(bdf), 0) << 4;
+ *valuep = readl_size(pcie->cfg.start + address + offset, size);
- hdrtype = readb(address + PCI_HEADER_TYPE);
+ hdrtype = readb(pcie->cfg.start + address + PCI_HEADER_TYPE);
if (hdrtype == PCI_HEADER_TYPE_BRIDGE &&
offset >= PCI_PRIMARY_BUS &&
offset <= PCI_SUBORDINATE_BUS &&
@@ -193,9 +173,10 @@ static int octeontx_pem_write_config(struct udevice *bus, pci_dev_t bdf,
u8 pri_bus = pcie->bus.start + 1 - hose->first_busno;
u32 bus_offs = (pri_bus << 16) | (pri_bus << 8) | (pri_bus << 0);
- address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 4, bdf, 0);
+ address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
+ PCI_DEV(bdf), PCI_FUNC(bdf), 0) << 4;
- hdrtype = readb(address + PCI_HEADER_TYPE);
+ hdrtype = readb(pcie->cfg.start + address + PCI_HEADER_TYPE);
if (hdrtype == PCI_HEADER_TYPE_BRIDGE &&
offset >= PCI_PRIMARY_BUS &&
offset <= PCI_SUBORDINATE_BUS &&
@@ -205,7 +186,7 @@ static int octeontx_pem_write_config(struct udevice *bus, pci_dev_t bdf,
if (octeontx_bdf_invalid(bdf))
return -EPERM;
- writel_size(address + offset, size, value);
+ writel_size(pcie->cfg.start + address + offset, size, value);
debug("%02x.%02x.%02x: u%d %x (%lx) <- %lx\n",
PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset,
@@ -222,15 +203,14 @@ static int octeontx2_pem_read_config(const struct udevice *bus, pci_dev_t bdf,
struct pci_controller *hose = dev_get_uclass_priv(bus);
uintptr_t address;
- address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 0,
- bdf, 0);
-
*valuep = pci_conv_32_to_size(~0UL, offset, size);
if (octeontx_bdf_invalid(bdf))
return -EPERM;
- *valuep = readl_size(address + offset, size);
+ address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
+ PCI_DEV(bdf), PCI_FUNC(bdf), offset);
+ *valuep = readl_size(pcie->cfg.start + address, size);
debug("%02x.%02x.%02x: u%d %x (%lx) -> %lx\n",
PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset,
@@ -247,13 +227,12 @@ static int octeontx2_pem_write_config(struct udevice *bus, pci_dev_t bdf,
struct pci_controller *hose = dev_get_uclass_priv(bus);
uintptr_t address;
- address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 0,
- bdf, 0);
-
if (octeontx_bdf_invalid(bdf))
return -EPERM;
- writel_size(address + offset, size, value);
+ address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
+ PCI_DEV(bdf), PCI_FUNC(bdf), offset);
+ writel_size(pcie->cfg.start + address, size, value);
debug("%02x.%02x.%02x: u%d %x (%lx) <- %lx\n",
PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset,
--
2.20.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 ` [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro Pali Rohár
@ 2021-11-30 12:09 ` nicolas saenz julienne
2022-01-13 1:50 ` Tom Rini
1 sibling, 0 replies; 12+ messages in thread
From: nicolas saenz julienne @ 2021-11-30 12:09 UTC (permalink / raw)
To: Pali Rohár, Stefan Roese, Simon Glass, Bin Meng, Matthias Brugger
Cc: u-boot
On Wed, 2021-11-24 at 18:00 +0100, Pali Rohár wrote:
> Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
Reviewed-by: Nicolas Saenz Julienne <nsaenz@kernel.org>
Regards,
Nicolas
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro Pali Rohár
` (3 preceding siblings ...)
2021-11-24 17:00 ` [PATCH u-boot-next 4/4] pci: pci_octeontx: " Pali Rohár
@ 2021-12-16 11:28 ` Pali Rohár
4 siblings, 0 replies; 12+ messages in thread
From: Pali Rohár @ 2021-12-16 11:28 UTC (permalink / raw)
To: Stefan Roese, Simon Glass, Bin Meng, David Feng, Liviu Dudau,
Nicolas Saenz Julienne, Matthias Brugger, Bharat Gooty
Cc: u-boot
Hello! Could you please look at this patch series?
On Wednesday 24 November 2021 18:00:29 Pali Rohár wrote:
> This patch series replace usage of custom driver functions and macros by
> PCIE_ECAM_OFFSET() macro provided by U-Boot pci.h header file.
>
> Please properly review these patches as I do not have hardware with these
> drivers for testing.
>
> Support for PCIE_ECAM_OFFSET() macro is in U-Boot next branch.
>
> Pali Rohár (4):
> vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET
> pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro
> pci: pcie_iproc: Use PCIE_ECAM_OFFSET() macro
> pci: pci_octeontx: Use PCIE_ECAM_OFFSET() macro
>
> board/armltd/vexpress64/pcie.c | 4 ---
> drivers/pci/pci_octeontx.c | 61 +++++++++++-----------------------
> drivers/pci/pcie_brcmstb.c | 7 +---
> drivers/pci/pcie_iproc.c | 17 ++--------
> 4 files changed, 24 insertions(+), 65 deletions(-)
>
> --
> 2.20.1
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH u-boot-next 4/4] pci: pci_octeontx: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 ` [PATCH u-boot-next 4/4] pci: pci_octeontx: " Pali Rohár
@ 2021-12-16 14:02 ` Stefan Roese
2022-01-13 1:51 ` Tom Rini
1 sibling, 0 replies; 12+ messages in thread
From: Stefan Roese @ 2021-12-16 14:02 UTC (permalink / raw)
To: Pali Rohár, Simon Glass, Bin Meng; +Cc: u-boot
On 11/24/21 18:00, Pali Rohár wrote:
> Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
> drivers/pci/pci_octeontx.c | 61 +++++++++++++-------------------------
> 1 file changed, 20 insertions(+), 41 deletions(-)
Nice diffstat.
Reviewed-by: Stefan Roese <sr@denx.de>
Thanks,
Stefan
> diff --git a/drivers/pci/pci_octeontx.c b/drivers/pci/pci_octeontx.c
> index 46855c5cd3a3..875cf7f7115d 100644
> --- a/drivers/pci/pci_octeontx.c
> +++ b/drivers/pci/pci_octeontx.c
> @@ -49,25 +49,6 @@ struct octeontx_pci {
> struct resource bus;
> };
>
> -static uintptr_t octeontx_cfg_addr(struct octeontx_pci *pcie,
> - int bus_offs, int shift_offs,
> - pci_dev_t bdf, uint offset)
> -{
> - u32 bus, dev, func;
> - uintptr_t address;
> -
> - bus = PCI_BUS(bdf) + bus_offs;
> - dev = PCI_DEV(bdf);
> - func = PCI_FUNC(bdf);
> -
> - address = (bus << (20 + shift_offs)) |
> - (dev << (15 + shift_offs)) |
> - (func << (12 + shift_offs)) | offset;
> - address += pcie->cfg.start;
> -
> - return address;
> -}
> -
> static ulong readl_size(uintptr_t addr, enum pci_size_t size)
> {
> ulong val;
> @@ -123,9 +104,9 @@ static int octeontx_ecam_read_config(const struct udevice *bus, pci_dev_t bdf,
> struct pci_controller *hose = dev_get_uclass_priv(bus);
> uintptr_t address;
>
> - address = octeontx_cfg_addr(pcie, pcie->bus.start - hose->first_busno,
> - 0, bdf, offset);
> - *valuep = readl_size(address, size);
> + address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + pcie->bus.start - hose->first_busno,
> + PCI_DEV(bdf), PCI_FUNC(bdf), offset);
> + *valuep = readl_size(pcie->cfg.start + address, size);
>
> debug("%02x.%02x.%02x: u%d %x -> %lx\n",
> PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset, *valuep);
> @@ -141,9 +122,9 @@ static int octeontx_ecam_write_config(struct udevice *bus, pci_dev_t bdf,
> struct pci_controller *hose = dev_get_uclass_priv(bus);
> uintptr_t address;
>
> - address = octeontx_cfg_addr(pcie, pcie->bus.start - hose->first_busno,
> - 0, bdf, offset);
> - writel_size(address, size, value);
> + address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + pcie->bus.start - hose->first_busno,
> + PCI_DEV(bdf), PCI_FUNC(bdf), offset);
> + writel_size(pcie->cfg.start + address, size, value);
>
> debug("%02x.%02x.%02x: u%d %x <- %lx\n",
> PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset, value);
> @@ -162,17 +143,16 @@ static int octeontx_pem_read_config(const struct udevice *bus, pci_dev_t bdf,
> u8 pri_bus = pcie->bus.start + 1 - hose->first_busno;
> u32 bus_offs = (pri_bus << 16) | (pri_bus << 8) | (pri_bus << 0);
>
> - address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 4,
> - bdf, 0);
> -
> *valuep = pci_conv_32_to_size(~0UL, offset, size);
>
> if (octeontx_bdf_invalid(bdf))
> return -EPERM;
>
> - *valuep = readl_size(address + offset, size);
> + address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
> + PCI_DEV(bdf), PCI_FUNC(bdf), 0) << 4;
> + *valuep = readl_size(pcie->cfg.start + address + offset, size);
>
> - hdrtype = readb(address + PCI_HEADER_TYPE);
> + hdrtype = readb(pcie->cfg.start + address + PCI_HEADER_TYPE);
> if (hdrtype == PCI_HEADER_TYPE_BRIDGE &&
> offset >= PCI_PRIMARY_BUS &&
> offset <= PCI_SUBORDINATE_BUS &&
> @@ -193,9 +173,10 @@ static int octeontx_pem_write_config(struct udevice *bus, pci_dev_t bdf,
> u8 pri_bus = pcie->bus.start + 1 - hose->first_busno;
> u32 bus_offs = (pri_bus << 16) | (pri_bus << 8) | (pri_bus << 0);
>
> - address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 4, bdf, 0);
> + address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
> + PCI_DEV(bdf), PCI_FUNC(bdf), 0) << 4;
>
> - hdrtype = readb(address + PCI_HEADER_TYPE);
> + hdrtype = readb(pcie->cfg.start + address + PCI_HEADER_TYPE);
> if (hdrtype == PCI_HEADER_TYPE_BRIDGE &&
> offset >= PCI_PRIMARY_BUS &&
> offset <= PCI_SUBORDINATE_BUS &&
> @@ -205,7 +186,7 @@ static int octeontx_pem_write_config(struct udevice *bus, pci_dev_t bdf,
> if (octeontx_bdf_invalid(bdf))
> return -EPERM;
>
> - writel_size(address + offset, size, value);
> + writel_size(pcie->cfg.start + address + offset, size, value);
>
> debug("%02x.%02x.%02x: u%d %x (%lx) <- %lx\n",
> PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset,
> @@ -222,15 +203,14 @@ static int octeontx2_pem_read_config(const struct udevice *bus, pci_dev_t bdf,
> struct pci_controller *hose = dev_get_uclass_priv(bus);
> uintptr_t address;
>
> - address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 0,
> - bdf, 0);
> -
> *valuep = pci_conv_32_to_size(~0UL, offset, size);
>
> if (octeontx_bdf_invalid(bdf))
> return -EPERM;
>
> - *valuep = readl_size(address + offset, size);
> + address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
> + PCI_DEV(bdf), PCI_FUNC(bdf), offset);
> + *valuep = readl_size(pcie->cfg.start + address, size);
>
> debug("%02x.%02x.%02x: u%d %x (%lx) -> %lx\n",
> PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset,
> @@ -247,13 +227,12 @@ static int octeontx2_pem_write_config(struct udevice *bus, pci_dev_t bdf,
> struct pci_controller *hose = dev_get_uclass_priv(bus);
> uintptr_t address;
>
> - address = octeontx_cfg_addr(pcie, 1 - hose->first_busno, 0,
> - bdf, 0);
> -
> if (octeontx_bdf_invalid(bdf))
> return -EPERM;
>
> - writel_size(address + offset, size, value);
> + address = PCIE_ECAM_OFFSET(PCI_BUS(bdf) + 1 - hose->first_busno,
> + PCI_DEV(bdf), PCI_FUNC(bdf), offset);
> + writel_size(pcie->cfg.start + address, size, value);
>
> debug("%02x.%02x.%02x: u%d %x (%lx) <- %lx\n",
> PCI_BUS(bdf), PCI_DEV(bdf), PCI_FUNC(bdf), size, offset,
>
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] 12+ messages in thread
* Re: [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET
2021-11-24 17:00 ` [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET Pali Rohár
@ 2022-01-13 1:50 ` Tom Rini
0 siblings, 0 replies; 12+ messages in thread
From: Tom Rini @ 2022-01-13 1:50 UTC (permalink / raw)
To: Pali Rohár
Cc: Stefan Roese, Simon Glass, Bin Meng, David Feng, Liviu Dudau, u-boot
[-- Attachment #1: Type: text/plain, Size: 316 bytes --]
On Wed, Nov 24, 2021 at 06:00:30PM +0100, Pali Rohár wrote:
> Macro XR3PCI_ECAM_OFFSET is unused and in case it would be needed in future
> it can be replaced by standard PCIE_ECAM_OFFSET macro from pci.h file.
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
Applied to u-boot/master, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 ` [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro Pali Rohár
2021-11-30 12:09 ` nicolas saenz julienne
@ 2022-01-13 1:50 ` Tom Rini
1 sibling, 0 replies; 12+ messages in thread
From: Tom Rini @ 2022-01-13 1:50 UTC (permalink / raw)
To: Pali Rohár
Cc: Stefan Roese, Simon Glass, Bin Meng, Nicolas Saenz Julienne,
Matthias Brugger, u-boot
[-- Attachment #1: Type: text/plain, Size: 293 bytes --]
On Wed, Nov 24, 2021 at 06:00:31PM +0100, Pali Rohár wrote:
> Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> Reviewed-by: Nicolas Saenz Julienne <nsaenz@kernel.org>
Applied to u-boot/master, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH u-boot-next 3/4] pci: pcie_iproc: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 ` [PATCH u-boot-next 3/4] pci: pcie_iproc: " Pali Rohár
@ 2022-01-13 1:50 ` Tom Rini
0 siblings, 0 replies; 12+ messages in thread
From: Tom Rini @ 2022-01-13 1:50 UTC (permalink / raw)
To: Pali Rohár; +Cc: Stefan Roese, Simon Glass, Bin Meng, Bharat Gooty, u-boot
[-- Attachment #1: Type: text/plain, Size: 234 bytes --]
On Wed, Nov 24, 2021 at 06:00:32PM +0100, Pali Rohár wrote:
> Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
Applied to u-boot/master, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH u-boot-next 4/4] pci: pci_octeontx: Use PCIE_ECAM_OFFSET() macro
2021-11-24 17:00 ` [PATCH u-boot-next 4/4] pci: pci_octeontx: " Pali Rohár
2021-12-16 14:02 ` Stefan Roese
@ 2022-01-13 1:51 ` Tom Rini
1 sibling, 0 replies; 12+ messages in thread
From: Tom Rini @ 2022-01-13 1:51 UTC (permalink / raw)
To: Pali Rohár; +Cc: Stefan Roese, Simon Glass, Bin Meng, u-boot
[-- Attachment #1: Type: text/plain, Size: 276 bytes --]
On Wed, Nov 24, 2021 at 06:00:33PM +0100, Pali Rohár wrote:
> Replace custom driver macros by PCIE_ECAM_OFFSET() macro from pci.h
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> Reviewed-by: Stefan Roese <sr@denx.de>
Applied to u-boot/master, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-01-13 1:51 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-24 17:00 [PATCH u-boot-next 0/4] pci: Use PCIE_ECAM_OFFSET() macro Pali Rohár
2021-11-24 17:00 ` [PATCH u-boot-next 1/4] vexpress64: Remove unused macro XR3PCI_ECAM_OFFSET Pali Rohár
2022-01-13 1:50 ` Tom Rini
2021-11-24 17:00 ` [PATCH u-boot-next 2/4] pci: pcie-brcmstb: Use PCIE_ECAM_OFFSET() macro Pali Rohár
2021-11-30 12:09 ` nicolas saenz julienne
2022-01-13 1:50 ` Tom Rini
2021-11-24 17:00 ` [PATCH u-boot-next 3/4] pci: pcie_iproc: " Pali Rohár
2022-01-13 1:50 ` Tom Rini
2021-11-24 17:00 ` [PATCH u-boot-next 4/4] pci: pci_octeontx: " Pali Rohár
2021-12-16 14:02 ` Stefan Roese
2022-01-13 1:51 ` Tom Rini
2021-12-16 11:28 ` [PATCH u-boot-next 0/4] pci: " Pali Rohár
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).