2017-11-14 23:43:20

by Jim Quinlan

[permalink] [raw]
Subject: [PATCH v3 0/8] PCI: brcmstb: Add Broadcom Settopbox PCIe support (V3)

This patch series adds support for the Broadcom Settopbox PCIe host
controller. It is targeted to Broadcom Settopbox chips running on
ARM, ARM64, and MIPS platforms.

V3 Changes:
- Fold pcie-brcmstb-msi.c into pcie-brcmstb.c
- Use PCI_XXX constants for PCIe capability registers
- Removal of any unused constants
- Change s/pci/pcie/ for filenames, comment text
- Config space access now uses 8/16/32 read/writes
- Use proper multi-line comment style
- Use function names, structure that are common in other host drivers
- DT binding 'brcm,ssc' is now 'brcm,enable-ssc'
- Dropped DT binding 'xyz-supply'
- Not setting CRS support as Linux does it if it is advertised.
- Removed code that was considered "debug code".
- Use of_get_pcie_domain_nr()
- Variable 'bridge_setup_done' removed.

V2 Changes:
* Patch brcmstb-add-memory-API:
- fix DT_PROP_DATA_TO_U32 macro.
- dropped one EXPORT_SYMBOL, changed the other to GPL.
* Patch DT-docs-for-Brcmstb-PCIe:
- change 'brcm,gen' prop to standard 'max-link-speed'.
- rewrite bindings commit to omit standard prop defs.
- change props "supplies", "supply-names" to "xyz-supply"
* Patch removed: export-symbol-arch_setup_dma_ops [4/9]
* Patch brcmstb-add-dma-ranges:
- use get_dma_ops(); also use a const dma_map_ops structure.
- rewrite map_sg(), unmap_sg(), other calls like syng_sg_*()
- omit brcm_mapping_error(), but added code in brcm_dma_supported()
- put all of the notifier code in one compilation unit.


Florian Fainelli (1):
SOC: brcmstb: add memory API

Jim Quinlan (7):
dt-bindings: pci: Add DT docs for Brcmstb PCIe device
PCI: brcmstb: Add Broadcom STB PCIe host controller driver
PCI: brcmstb: Add dma-range mapping for inbound traffic
PCI/MSI: Enable PCI_MSI_IRQ_DOMAIN support for MIPS
PCI: brcmstb: Add MSI capability
MIPS: BMIPS: Add PCI bindings for 7425, 7435
MIPS: BMIPS: Enable PCI

.../devicetree/bindings/pci/brcmstb-pcie.txt | 59 +
arch/mips/Kconfig | 3 +
arch/mips/boot/dts/brcm/bcm7425.dtsi | 26 +
arch/mips/boot/dts/brcm/bcm7435.dtsi | 27 +
arch/mips/boot/dts/brcm/bcm97425svmb.dts | 4 +
arch/mips/boot/dts/brcm/bcm97435svmb.dts | 4 +
arch/mips/include/asm/Kbuild | 1 +
drivers/pci/Kconfig | 2 +-
drivers/pci/host/Kconfig | 9 +
drivers/pci/host/Makefile | 3 +
drivers/pci/host/pcie-brcmstb-dma.c | 319 ++++
drivers/pci/host/pcie-brcmstb.c | 1591 ++++++++++++++++++++
drivers/pci/host/pcie-brcmstb.h | 22 +
drivers/soc/bcm/brcmstb/Makefile | 2 +-
drivers/soc/bcm/brcmstb/memory.c | 172 +++
include/soc/brcmstb/memory_api.h | 25 +
16 files changed, 2267 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pci/brcmstb-pcie.txt
create mode 100644 drivers/pci/host/pcie-brcmstb-dma.c
create mode 100644 drivers/pci/host/pcie-brcmstb.c
create mode 100644 drivers/pci/host/pcie-brcmstb.h
create mode 100644 drivers/soc/bcm/brcmstb/memory.c
create mode 100644 include/soc/brcmstb/memory_api.h

--
1.9.0.138.g2de3478


From 1584081768398774718@xxx Tue Nov 14 22:21:37 +0000 2017
X-GM-THRID: 1583955914450238490
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread


2017-11-14 22:16:14

by Jim Quinlan

[permalink] [raw]
Subject: [PATCH v3 7/8] MIPS: BMIPS: Add PCI bindings for 7425, 7435

Adds the PCIe nodes for the Broadcom STB PCIe root complex.

Signed-off-by: Jim Quinlan <[email protected]>
---
arch/mips/boot/dts/brcm/bcm7425.dtsi | 26 ++++++++++++++++++++++++++
arch/mips/boot/dts/brcm/bcm7435.dtsi | 27 +++++++++++++++++++++++++++
arch/mips/boot/dts/brcm/bcm97425svmb.dts | 4 ++++
arch/mips/boot/dts/brcm/bcm97435svmb.dts | 4 ++++
4 files changed, 61 insertions(+)

diff --git a/arch/mips/boot/dts/brcm/bcm7425.dtsi b/arch/mips/boot/dts/brcm/bcm7425.dtsi
index f56fb25..c7bd88b 100644
--- a/arch/mips/boot/dts/brcm/bcm7425.dtsi
+++ b/arch/mips/boot/dts/brcm/bcm7425.dtsi
@@ -494,4 +494,30 @@
status = "disabled";
};
};
+
+ pcie: pcie@10410000 {
+ reg = <0x10410000 0x830c>;
+ compatible = "brcm,bcm7425-pcie";
+ interrupts = <37>, <37>;
+ interrupt-names = "pcie", "msi";
+ interrupt-parent = <&periph_intc>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ linux,pci-domain = <0>;
+ brcm,enable-ssc;
+ bus-range = <0x00 0xff>;
+ msi-controller;
+ #interrupt-cells = <1>;
+ /* 4x128mb windows */
+ ranges = <0x2000000 0x0 0xd0000000 0xd0000000 0 0x08000000>,
+ <0x2000000 0x0 0xd8000000 0xd8000000 0 0x08000000>,
+ <0x2000000 0x0 0xe0000000 0xe0000000 0 0x08000000>,
+ <0x2000000 0x0 0xe8000000 0xe8000000 0 0x08000000>;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &periph_intc 33
+ 0 0 0 2 &periph_intc 34
+ 0 0 0 3 &periph_intc 35
+ 0 0 0 4 &periph_intc 36>;
+ };
+
};
diff --git a/arch/mips/boot/dts/brcm/bcm7435.dtsi b/arch/mips/boot/dts/brcm/bcm7435.dtsi
index f2cead2..d321042 100644
--- a/arch/mips/boot/dts/brcm/bcm7435.dtsi
+++ b/arch/mips/boot/dts/brcm/bcm7435.dtsi
@@ -509,4 +509,31 @@
status = "disabled";
};
};
+
+ pcie: pcie@10410000 {
+ reg = <0x10410000 0x930c>;
+ interrupts = <0x27>, <0x27>;
+ interrupt-names = "pcie", "msi";
+ interrupt-parent = <&periph_intc>;
+ compatible = "brcm,bcm7435-pcie";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ linux,pci-domain = <0>;
+ brcm,enable-ssc;
+ bus-range = <0x00 0xff>;
+ msi-controller;
+ #interrupt-cells = <1>;
+ /* 4x128mb windows */
+ ranges = <0x2000000 0x0 0xd0000000 0xd0000000 0 0x08000000>,
+ <0x2000000 0x0 0xd8000000 0xd8000000 0 0x08000000>,
+ <0x2000000 0x0 0xe0000000 0xe0000000 0 0x08000000>,
+ <0x2000000 0x0 0xe8000000 0xe8000000 0 0x08000000>;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &periph_intc 35
+ 0 0 0 2 &periph_intc 36
+ 0 0 0 3 &periph_intc 37
+ 0 0 0 4 &periph_intc 38>;
+ status = "disabled";
+ };
+
};
diff --git a/arch/mips/boot/dts/brcm/bcm97425svmb.dts b/arch/mips/boot/dts/brcm/bcm97425svmb.dts
index 73aa006..3a87ac5 100644
--- a/arch/mips/boot/dts/brcm/bcm97425svmb.dts
+++ b/arch/mips/boot/dts/brcm/bcm97425svmb.dts
@@ -143,3 +143,7 @@
&mspi {
status = "okay";
};
+
+&pcie {
+ status = "okay";
+};
diff --git a/arch/mips/boot/dts/brcm/bcm97435svmb.dts b/arch/mips/boot/dts/brcm/bcm97435svmb.dts
index 0a915f3..456d024 100644
--- a/arch/mips/boot/dts/brcm/bcm97435svmb.dts
+++ b/arch/mips/boot/dts/brcm/bcm97435svmb.dts
@@ -119,3 +119,7 @@
&mspi {
status = "okay";
};
+
+&pcie {
+ status = "okay";
+};
--
1.9.0.138.g2de3478


From 1584046819401646784@xxx Tue Nov 14 13:06:07 +0000 2017
X-GM-THRID: 1584028494691358052
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread

2017-11-14 22:17:15

by Jim Quinlan

[permalink] [raw]
Subject: [PATCH v3 8/8] MIPS: BMIPS: Enable PCI

Adds the Kconfig hooks to enable the Broadcom STB PCIe root complex
driver for Broadcom MIPS systems.

Signed-off-by: Jim Quinlan <[email protected]>
---
arch/mips/Kconfig | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index cb7fcc4..83ba54d 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -209,6 +209,9 @@ config BMIPS_GENERIC
select BOOT_RAW
select NO_EXCEPT_FILL
select USE_OF
+ select HW_HAS_PCI
+ select PCI_DRIVERS_GENERIC
+ select PCI
select CEVT_R4K
select CSRC_R4K
select SYNC_R4K
--
1.9.0.138.g2de3478


From 1584058481354733255@xxx Tue Nov 14 16:11:29 +0000 2017
X-GM-THRID: 1581165442340565906
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread

2017-11-14 22:17:43

by Jim Quinlan

[permalink] [raw]
Subject: [PATCH v3 5/8] PCI/MSI: Enable PCI_MSI_IRQ_DOMAIN support for MIPS

Add MIPS as an arch that supports PCI_MSI_IRQ_DOMAIN and add
generation of msi.h in the MIPS arch.

Signed-off-by: Jim Quinlan <[email protected]>
---
arch/mips/include/asm/Kbuild | 1 +
drivers/pci/Kconfig | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/mips/include/asm/Kbuild b/arch/mips/include/asm/Kbuild
index 7c8aab2..8c78ba7 100644
--- a/arch/mips/include/asm/Kbuild
+++ b/arch/mips/include/asm/Kbuild
@@ -9,6 +9,7 @@ generic-y += irq_work.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += mm-arch-hooks.h
+generic-y += msi.h
generic-y += parport.h
generic-y += percpu.h
generic-y += preempt.h
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
index c32a77f..927c335 100644
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
@@ -25,7 +25,7 @@ config PCI_MSI
If you don't know what to do here, say Y.

config PCI_MSI_IRQ_DOMAIN
- def_bool ARC || ARM || ARM64 || X86
+ def_bool ARC || ARM || ARM64 || MIPS || X86
depends on PCI_MSI
select GENERIC_MSI_IRQ_DOMAIN

--
1.9.0.138.g2de3478


From 1584000223650027471@xxx Tue Nov 14 00:45:30 +0000 2017
X-GM-THRID: 1584000223650027471
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread