From 38936426f7d4d569f918cb2ca646263b4c38e25b Mon Sep 17 00:00:00 2001 From: Luka Perkov Date: Thu, 3 Oct 2013 02:50:00 +0000 Subject: [PATCH] kirkwood: update patches and configuration (3.10) Signed-off-by: Luka Perkov SVN-Revision: 38295 --- target/linux/kirkwood/config-3.10 | 22 +- ...upport-for-parsing-PCI-DT-ranges-pro.patch | 18 +- ...-Add-of_pci_parse_bus_range-function.patch | 14 +- ...-parent-child-relation-for-PCIe-cloc.patch | 12 +- ...u-add-more-PCIe-clocks-for-Armada-XP.patch | 14 +- ...er-for-Marvell-Armada-370-XP-systems.patch | 45 +- ...Ie-support-is-now-available-on-mvebu.patch | 10 +- ...e-defconfig-with-PCI-and-USB-support.patch | 41 - ...turn-value-check-in-mvebu_pcie_probe.patch | 28 + ...vebu-enable-driver-usage-on-Kirkwood.patch | 16 +- ...ve-PCIe-window-init-to-legacy-driver.patch | 14 +- ...-SoC-level-Device-Tree-data-for-PCIe.patch | 14 +- ...vert-Iomega-Iconnect-to-use-DT-for-t.patch | 12 +- ...vert-MPL-CEC4-to-use-DT-for-the-PCIe.patch | 12 +- ...vert-ZyXEL-NSA310-to-use-DT-for-the-.patch | 19 +- ...vert-QNAP-TS219-to-use-DT-for-the-PC.patch | 14 +- ...vert-db-88f6281-db-88f6282-to-the-De.patch | 41 +- ...ate-defconfig-with-PCIe-driver-and-b.patch | 37 - ...ger-fake-the-slot-location-of-downst.patch | 97 ++ ...the-enumeration-of-devices-beyond-ph.patch | 97 ++ ...the-emulation-of-the-status-register.patch | 87 ++ ...se-phy_disconnect-instead-of-phy_de.patch} | 14 +- ...se-managed-devm_ioremap-for-port-re.patch} | 16 +- ...dd-phy_node-to-platform_data-struct.patch} | 14 +- ...se-of_phy_connect-if-phy_node-prese.patch} | 14 +- ...roper-initialization-for-Kirkwood-S.patch} | 16 +- ...wood-remove-redundant-DT-board-files.patch | 439 ------- ...-mv643xx_eth-add-DT-parsing-support.patch} | 27 +- ...gigabit-ethernet-and-mvmdio-device-.patch} | 62 +- ...wood-remove-redundant-DT-board-files.patch | 1116 +++++++++++++++++ ...ve-legacy-clk-alias-for-mv643xx_eth.patch} | 12 +- ...o-not-use-port-number-as-platform-d.patch} | 20 +- ...t-for-parsing-mac-addresses-from-mtd.patch | 9 +- .../kirkwood/patches-3.10/110-ib62x0.patch | 84 ++ 34 files changed, 1638 insertions(+), 869 deletions(-) delete mode 100644 target/linux/kirkwood/patches-3.10/0008-arm-mvebu-update-defconfig-with-PCI-and-USB-support.patch create mode 100644 target/linux/kirkwood/patches-3.10/0008-pci-mvebu-fix-return-value-check-in-mvebu_pcie_probe.patch delete mode 100644 target/linux/kirkwood/patches-3.10/0017-arm-kirkwood-update-defconfig-with-PCIe-driver-and-b.patch create mode 100644 target/linux/kirkwood/patches-3.10/0017-pci-mvebu-no-longer-fake-the-slot-location-of-downst.patch create mode 100644 target/linux/kirkwood/patches-3.10/0018-pci-mvebu-allow-the-enumeration-of-devices-beyond-ph.patch create mode 100644 target/linux/kirkwood/patches-3.10/0019-pci-mvebu-fix-the-emulation-of-the-status-register.patch rename target/linux/kirkwood/patches-3.10/{0018-net-mv643xx_eth-use-phy_disconnect-instead-of-phy_de.patch => 0020-net-mv643xx_eth-use-phy_disconnect-instead-of-phy_de.patch} (68%) rename target/linux/kirkwood/patches-3.10/{0019-net-mv643xx_eth-use-managed-devm_ioremap-for-port-re.patch => 0021-net-mv643xx_eth-use-managed-devm_ioremap-for-port-re.patch} (62%) rename target/linux/kirkwood/patches-3.10/{0020-net-mv643xx_eth-add-phy_node-to-platform_data-struct.patch => 0022-net-mv643xx_eth-add-phy_node-to-platform_data-struct.patch} (70%) rename target/linux/kirkwood/patches-3.10/{0021-net-mv643xx_eth-use-of_phy_connect-if-phy_node-prese.patch => 0023-net-mv643xx_eth-use-of_phy_connect-if-phy_node-prese.patch} (82%) rename target/linux/kirkwood/patches-3.10/{0022-net-mv643xx_eth-proper-initialization-for-Kirkwood-S.patch => 0024-net-mv643xx_eth-proper-initialization-for-Kirkwood-S.patch} (79%) delete mode 100644 target/linux/kirkwood/patches-3.10/0025-ARM-kirkwood-remove-redundant-DT-board-files.patch rename target/linux/kirkwood/patches-3.10/{0023-net-mv643xx_eth-add-DT-parsing-support.patch => 0025-net-mv643xx_eth-add-DT-parsing-support.patch} (91%) rename target/linux/kirkwood/patches-3.10/{0024-ARM-kirkwood-add-gigabit-ethernet-and-mvmdio-device-.patch => 0026-ARM-kirkwood-add-gigabit-ethernet-and-mvmdio-device-.patch} (77%) create mode 100644 target/linux/kirkwood/patches-3.10/0027-ARM-kirkwood-remove-redundant-DT-board-files.patch rename target/linux/kirkwood/patches-3.10/{0026-ARM-kirkwood-remove-legacy-clk-alias-for-mv643xx_eth.patch => 0028-ARM-kirkwood-remove-legacy-clk-alias-for-mv643xx_eth.patch} (70%) rename target/linux/kirkwood/patches-3.10/{0027-net-mv643xx_eth-do-not-use-port-number-as-platform-d.patch => 0029-net-mv643xx_eth-do-not-use-port-number-as-platform-d.patch} (66%) create mode 100644 target/linux/kirkwood/patches-3.10/110-ib62x0.patch diff --git a/target/linux/kirkwood/config-3.10 b/target/linux/kirkwood/config-3.10 index b66b7a32684..06051994c81 100644 --- a/target/linux/kirkwood/config-3.10 +++ b/target/linux/kirkwood/config-3.10 @@ -11,10 +11,7 @@ CONFIG_ARCH_REQUIRE_GPIOLIB=y # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_ARM=y -CONFIG_ARM_APPENDED_DTB=y -CONFIG_ARM_ATAG_DTB_COMPAT=y -# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set -CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_ARM_APPENDED_DTB is not set # CONFIG_ARM_CPU_SUSPEND is not set CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_NR_BANKS=8 @@ -79,7 +76,6 @@ CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -CONFIG_HAVE_AOUT=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_KGDB=y CONFIG_HAVE_ARCH_PFN_VALID=y @@ -135,9 +131,9 @@ CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 CONFIG_M25PXX_USE_FAST_READ=y # CONFIG_MACH_D2NET_V2 is not set -# CONFIG_MACH_DLINK_KIRKWOOD_DT is not set +CONFIG_MACH_DLINK_KIRKWOOD_DT=y # CONFIG_MACH_DOCKSTAR is not set -CONFIG_MACH_ESATA_SHEEVAPLUG=y +# CONFIG_MACH_ESATA_SHEEVAPLUG is not set # CONFIG_MACH_GURUPLUG is not set # CONFIG_MACH_INETSPACE_V2 is not set # CONFIG_MACH_MV88F6281GTW_GE is not set @@ -145,16 +141,14 @@ CONFIG_MACH_ESATA_SHEEVAPLUG=y # CONFIG_MACH_NET5BIG_V2 is not set # CONFIG_MACH_NETSPACE_MAX_V2 is not set # CONFIG_MACH_NETSPACE_V2 is not set -CONFIG_MACH_OPENRD=y -CONFIG_MACH_OPENRD_BASE=y -CONFIG_MACH_OPENRD_CLIENT=y +# CONFIG_MACH_OPENRD_BASE is not set +# CONFIG_MACH_OPENRD_CLIENT is not set # CONFIG_MACH_OPENRD_ULTIMATE is not set # CONFIG_MACH_RD88F6192_NAS is not set # CONFIG_MACH_RD88F6281 is not set -CONFIG_MACH_SHEEVAPLUG=y +# CONFIG_MACH_SHEEVAPLUG is not set # CONFIG_MACH_T5325 is not set # CONFIG_MACH_TS219 is not set -# CONFIG_MACH_TS219_DT is not set # CONFIG_MACH_TS41X is not set CONFIG_MDIO_BOARDINFO=y CONFIG_MMC=y @@ -170,13 +164,13 @@ CONFIG_MTD_NAND_ECC=y CONFIG_MTD_NAND_ORION=y CONFIG_MTD_OF_PARTS=y # CONFIG_MTD_SM_COMMON is not set -CONFIG_MTD_UIMAGE_SPLIT=y CONFIG_MV643XX_ETH=y CONFIG_MVEBU_CLK_CORE=y CONFIG_MVEBU_CLK_GATING=y CONFIG_MVEBU_MBUS=y CONFIG_MVMDIO=y CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_KUSER_HELPERS=y CONFIG_NEED_PER_CPU_KM=y CONFIG_NET_DSA=y CONFIG_NET_DSA_MV88E6123_61_65=y @@ -185,7 +179,6 @@ CONFIG_NET_DSA_MV88E6XXX=y CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y -# CONFIG_NET_IP_TUNNEL is not set CONFIG_NLS=y CONFIG_OF=y CONFIG_OF_ADDRESS=y @@ -207,7 +200,6 @@ CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_PCI=y CONFIG_PCI_MVEBU=y -# CONFIG_PDA_POWER is not set CONFIG_PERF_USE_VMALLOC=y CONFIG_PHYLIB=y CONFIG_PINCONF=y diff --git a/target/linux/kirkwood/patches-3.10/0001-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch b/target/linux/kirkwood/patches-3.10/0001-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch index 8f6f547c7a0..a3a5aca3fba 100644 --- a/target/linux/kirkwood/patches-3.10/0001-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch +++ b/target/linux/kirkwood/patches-3.10/0001-of-pci-Provide-support-for-parsing-PCI-DT-ranges-pro.patch @@ -1,6 +1,6 @@ -From 6b5917890ada1dc078ee64af2500cd6289fcf9bc Mon Sep 17 00:00:00 2001 +From 3c72277cf2c10e3b7065541b3588f21138efeba2 Mon Sep 17 00:00:00 2001 From: Andrew Murray -Date: Tue, 7 May 2013 16:31:12 +0100 +Date: Thu, 16 May 2013 17:55:17 +0200 Subject: [PATCH 01/29] of/pci: Provide support for parsing PCI DT ranges property @@ -42,16 +42,15 @@ Tested-by: Thomas Petazzoni Tested-by: Linus Walleij Tested-by: Jingoo Han Acked-by: Grant Likely +Signed-off-by: Jason Cooper --- drivers/of/address.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/of_address.h | 48 +++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) -diff --git a/drivers/of/address.c b/drivers/of/address.c -index 7c8221d..b55c218 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c -@@ -231,6 +231,73 @@ int of_pci_address_to_resource(struct device_node *dev, int bar, +@@ -231,6 +231,73 @@ int of_pci_address_to_resource(struct de return __of_address_to_resource(dev, addrp, size, flags, NULL, r); } EXPORT_SYMBOL_GPL(of_pci_address_to_resource); @@ -125,8 +124,6 @@ index 7c8221d..b55c218 100644 #endif /* CONFIG_PCI */ /* -diff --git a/include/linux/of_address.h b/include/linux/of_address.h -index 0506eb5..4c2e6f2 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h @@ -4,6 +4,36 @@ @@ -166,7 +163,7 @@ index 0506eb5..4c2e6f2 100644 #ifdef CONFIG_OF_ADDRESS extern u64 of_translate_address(struct device_node *np, const __be32 *addr); extern bool of_can_translate_address(struct device_node *dev); -@@ -27,6 +57,11 @@ static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; } +@@ -27,6 +57,11 @@ static inline unsigned long pci_address_ #define pci_address_to_pio pci_address_to_pio #endif @@ -178,7 +175,7 @@ index 0506eb5..4c2e6f2 100644 #else /* CONFIG_OF_ADDRESS */ #ifndef of_address_to_resource static inline int of_address_to_resource(struct device_node *dev, int index, -@@ -53,6 +88,19 @@ static inline const __be32 *of_get_address(struct device_node *dev, int index, +@@ -53,6 +88,19 @@ static inline const __be32 *of_get_addre { return NULL; } @@ -198,6 +195,3 @@ index 0506eb5..4c2e6f2 100644 #endif /* CONFIG_OF_ADDRESS */ --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0003-of-pci-Add-of_pci_parse_bus_range-function.patch b/target/linux/kirkwood/patches-3.10/0003-of-pci-Add-of_pci_parse_bus_range-function.patch index 74a839701cd..653bc7df036 100644 --- a/target/linux/kirkwood/patches-3.10/0003-of-pci-Add-of_pci_parse_bus_range-function.patch +++ b/target/linux/kirkwood/patches-3.10/0003-of-pci-Add-of_pci_parse_bus_range-function.patch @@ -1,22 +1,21 @@ -From 6275a8e0bacac9702350b6a003470a9ce67c9139 Mon Sep 17 00:00:00 2001 +From 389637f9e7f523934acf26c247e4722d761ad966 Mon Sep 17 00:00:00 2001 From: Thierry Reding -Date: Mon, 11 Feb 2013 09:22:20 +0100 +Date: Thu, 16 May 2013 17:55:19 +0200 Subject: [PATCH 03/29] of/pci: Add of_pci_parse_bus_range() function This function can be used to parse a bus-range property as specified by device nodes representing PCI bridges. Signed-off-by: Thierry Reding +Signed-off-by: Jason Cooper --- drivers/of/of_pci.c | 25 +++++++++++++++++++++++++ include/linux/of_pci.h | 1 + 2 files changed, 26 insertions(+) -diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c -index 4dd7b9b..42c687a 100644 --- a/drivers/of/of_pci.c +++ b/drivers/of/of_pci.c -@@ -64,3 +64,28 @@ int of_pci_get_devfn(struct device_node *np) +@@ -64,3 +64,28 @@ int of_pci_get_devfn(struct device_node return (be32_to_cpup(reg) >> 8) & 0xff; } EXPORT_SYMBOL_GPL(of_pci_get_devfn); @@ -45,8 +44,6 @@ index 4dd7b9b..42c687a 100644 + return 0; +} +EXPORT_SYMBOL_GPL(of_pci_parse_bus_range); -diff --git a/include/linux/of_pci.h b/include/linux/of_pci.h -index 91ec484..7a04826 100644 --- a/include/linux/of_pci.h +++ b/include/linux/of_pci.h @@ -11,5 +11,6 @@ struct device_node; @@ -56,6 +53,3 @@ index 91ec484..7a04826 100644 +int of_pci_parse_bus_range(struct device_node *node, struct resource *res); #endif --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0004-clk-mvebu-create-parent-child-relation-for-PCIe-cloc.patch b/target/linux/kirkwood/patches-3.10/0004-clk-mvebu-create-parent-child-relation-for-PCIe-cloc.patch index faf9de6738d..54e89c3e85a 100644 --- a/target/linux/kirkwood/patches-3.10/0004-clk-mvebu-create-parent-child-relation-for-PCIe-cloc.patch +++ b/target/linux/kirkwood/patches-3.10/0004-clk-mvebu-create-parent-child-relation-for-PCIe-cloc.patch @@ -1,6 +1,6 @@ -From adebeab033de18cabf880f98d2167095520243f2 Mon Sep 17 00:00:00 2001 +From 72fb19fc4ff89878273799eb38e8d95b0add3c05 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Fri, 7 Dec 2012 20:35:20 +0100 +Date: Thu, 16 May 2013 17:55:20 +0200 Subject: [PATCH 04/29] clk: mvebu: create parent-child relation for PCIe clocks on Armada 370 @@ -11,15 +11,14 @@ clocks on Armada XP. Signed-off-by: Thomas Petazzoni Cc: Mike Turquette +Signed-off-by: Jason Cooper --- drivers/clk/mvebu/clk-gating-ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/clk/mvebu/clk-gating-ctrl.c b/drivers/clk/mvebu/clk-gating-ctrl.c -index ebf141d..b35785a 100644 --- a/drivers/clk/mvebu/clk-gating-ctrl.c +++ b/drivers/clk/mvebu/clk-gating-ctrl.c -@@ -119,8 +119,8 @@ static const struct mvebu_soc_descr __initconst armada_370_gating_descr[] = { +@@ -119,8 +119,8 @@ static const struct mvebu_soc_descr __in { "pex1_en", NULL, 2 }, { "ge1", NULL, 3 }, { "ge0", NULL, 4 }, @@ -30,6 +29,3 @@ index ebf141d..b35785a 100644 { "sata0", NULL, 15 }, { "sdio", NULL, 17 }, { "tdm", NULL, 25 }, --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0005-clk-mvebu-add-more-PCIe-clocks-for-Armada-XP.patch b/target/linux/kirkwood/patches-3.10/0005-clk-mvebu-add-more-PCIe-clocks-for-Armada-XP.patch index b41c8f7f7b7..987f78d4b1e 100644 --- a/target/linux/kirkwood/patches-3.10/0005-clk-mvebu-add-more-PCIe-clocks-for-Armada-XP.patch +++ b/target/linux/kirkwood/patches-3.10/0005-clk-mvebu-add-more-PCIe-clocks-for-Armada-XP.patch @@ -1,6 +1,6 @@ -From 7bda5e7704872a2f01a6c980bb7616d689520ea5 Mon Sep 17 00:00:00 2001 +From 52a1c4e3aa9027040c1adc69303aaffc3c2cbaab Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Fri, 18 Jan 2013 16:42:01 +0100 +Date: Thu, 16 May 2013 17:55:21 +0200 Subject: [PATCH 05/29] clk: mvebu: add more PCIe clocks for Armada XP The current revision of the datasheet only mentions the gatable clocks @@ -14,15 +14,14 @@ clocks, in order to match the naming using the datasheets. Signed-off-by: Thomas Petazzoni Cc: Mike Turquette +Signed-off-by: Jason Cooper --- drivers/clk/mvebu/clk-gating-ctrl.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) -diff --git a/drivers/clk/mvebu/clk-gating-ctrl.c b/drivers/clk/mvebu/clk-gating-ctrl.c -index b35785a..2f03723 100644 --- a/drivers/clk/mvebu/clk-gating-ctrl.c +++ b/drivers/clk/mvebu/clk-gating-ctrl.c -@@ -137,10 +137,14 @@ static const struct mvebu_soc_descr __initconst armada_xp_gating_descr[] = { +@@ -137,10 +137,14 @@ static const struct mvebu_soc_descr __in { "ge2", NULL, 2 }, { "ge1", NULL, 3 }, { "ge0", NULL, 4 }, @@ -41,7 +40,7 @@ index b35785a..2f03723 100644 { "bp", NULL, 13 }, { "sata0lnk", NULL, 14 }, { "sata0", "sata0lnk", 15 }, -@@ -152,6 +156,8 @@ static const struct mvebu_soc_descr __initconst armada_xp_gating_descr[] = { +@@ -152,6 +156,8 @@ static const struct mvebu_soc_descr __in { "xor0", NULL, 22 }, { "crypto", NULL, 23 }, { "tdm", NULL, 25 }, @@ -50,6 +49,3 @@ index b35785a..2f03723 100644 { "xor1", NULL, 28 }, { "sata1lnk", NULL, 29 }, { "sata1", "sata1lnk", 30 }, --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0006-pci-PCIe-driver-for-Marvell-Armada-370-XP-systems.patch b/target/linux/kirkwood/patches-3.10/0006-pci-PCIe-driver-for-Marvell-Armada-370-XP-systems.patch index 50396e0d699..f9a568f7edd 100644 --- a/target/linux/kirkwood/patches-3.10/0006-pci-PCIe-driver-for-Marvell-Armada-370-XP-systems.patch +++ b/target/linux/kirkwood/patches-3.10/0006-pci-PCIe-driver-for-Marvell-Armada-370-XP-systems.patch @@ -1,6 +1,6 @@ -From b18ed8465d6c2e3b7057d5bb2fc3da5cb15e3fb1 Mon Sep 17 00:00:00 2001 +From 8a0a335ed5d4f6c8455090f77ac57c0c25800070 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Fri, 18 Jan 2013 17:42:58 +0100 +Date: Thu, 16 May 2013 17:55:22 +0200 Subject: [PATCH 06/29] pci: PCIe driver for Marvell Armada 370/XP systems This driver implements the support for the PCIe interfaces on the @@ -24,22 +24,20 @@ decoding windows, using the mvebu-mbus driver. Signed-off-by: Thomas Petazzoni Acked-by: Bjorn Helgaas +Signed-off-by: Jason Cooper --- .../devicetree/bindings/pci/mvebu-pci.txt | 220 ++++++ drivers/pci/Kconfig | 2 + drivers/pci/Makefile | 3 + drivers/pci/host/Kconfig | 8 + drivers/pci/host/Makefile | 1 + - drivers/pci/host/pci-mvebu.c | 879 +++++++++++++++++++++ - 6 files changed, 1113 insertions(+) + drivers/pci/host/pci-mvebu.c | 880 +++++++++++++++++++++ + 6 files changed, 1114 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/mvebu-pci.txt create mode 100644 drivers/pci/host/Kconfig create mode 100644 drivers/pci/host/Makefile create mode 100644 drivers/pci/host/pci-mvebu.c -diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt -new file mode 100644 -index 0000000..eb69d92 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt @@ -0,0 +1,220 @@ @@ -263,30 +261,23 @@ index 0000000..eb69d92 + status = "disabled"; + }; +}; -diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig -index 6d51aa6..ac45398 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig -@@ -119,3 +119,5 @@ config PCI_IOAPIC +@@ -125,3 +125,5 @@ config PCI_IOAPIC config PCI_LABEL def_bool y if (DMI || ACPI) select NLS + +source "drivers/pci/host/Kconfig" -diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile -index 0c3efcf..6ebf5bf 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile -@@ -67,3 +67,6 @@ obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o +@@ -67,3 +67,6 @@ obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen obj-$(CONFIG_OF) += of.o ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG + +# PCI host controller drivers +obj-y += host/ -diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig -new file mode 100644 -index 0000000..6918fbc --- /dev/null +++ b/drivers/pci/host/Kconfig @@ -0,0 +1,8 @@ @@ -298,19 +289,13 @@ index 0000000..6918fbc + depends on ARCH_MVEBU + +endmenu -diff --git a/drivers/pci/host/Makefile b/drivers/pci/host/Makefile -new file mode 100644 -index 0000000..5ea2d8b --- /dev/null +++ b/drivers/pci/host/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_PCI_MVEBU) += pci-mvebu.o -diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c -new file mode 100644 -index 0000000..b0ee63b --- /dev/null +++ b/drivers/pci/host/pci-mvebu.c -@@ -0,0 +1,879 @@ +@@ -0,0 +1,880 @@ +/* + * PCIe driver for Marvell Armada 370 and Armada XP SoCs + * @@ -1000,7 +985,7 @@ index 0000000..b0ee63b + return start; +} + -+static void mvebu_pcie_enable(struct mvebu_pcie *pcie) ++static void __init mvebu_pcie_enable(struct mvebu_pcie *pcie) +{ + struct hw_pci hw; + @@ -1022,9 +1007,10 @@ index 0000000..b0ee63b + * <...> property for one that matches the given port/lane. Once + * found, maps it. + */ -+static void __iomem *mvebu_pcie_map_registers(struct platform_device *pdev, -+ struct device_node *np, -+ struct mvebu_pcie_port *port) ++static void __iomem * __init ++mvebu_pcie_map_registers(struct platform_device *pdev, ++ struct device_node *np, ++ struct mvebu_pcie_port *port) +{ + struct resource regs; + int ret = 0; @@ -1179,7 +1165,7 @@ index 0000000..b0ee63b + }, +}; + -+static int mvebu_pcie_init(void) ++static int __init mvebu_pcie_init(void) +{ + return platform_driver_probe(&mvebu_pcie_driver, + mvebu_pcie_probe); @@ -1190,6 +1176,3 @@ index 0000000..b0ee63b +MODULE_AUTHOR("Thomas Petazzoni "); +MODULE_DESCRIPTION("Marvell EBU PCIe driver"); +MODULE_LICENSE("GPLv2"); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0007-arm-mvebu-PCIe-support-is-now-available-on-mvebu.patch b/target/linux/kirkwood/patches-3.10/0007-arm-mvebu-PCIe-support-is-now-available-on-mvebu.patch index 9467b2fefab..780644211ea 100644 --- a/target/linux/kirkwood/patches-3.10/0007-arm-mvebu-PCIe-support-is-now-available-on-mvebu.patch +++ b/target/linux/kirkwood/patches-3.10/0007-arm-mvebu-PCIe-support-is-now-available-on-mvebu.patch @@ -1,6 +1,6 @@ -From d8bb1510b06f29bb6b63ebafe23656faae60d87f Mon Sep 17 00:00:00 2001 +From 3b475bd86ce4c647a65d218a3014396d4b139fb3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Fri, 7 Dec 2012 20:56:52 +0100 +Date: Thu, 16 May 2013 17:55:23 +0200 Subject: [PATCH 07/29] arm: mvebu: PCIe support is now available on mvebu Now that the PCIe driver for mvebu has been integrated and all its @@ -8,12 +8,11 @@ relevant dependencies, we can mark the ARCH_MVEBU platform has MIGHT_HAVE_PCI, which allows to select the PCI bus support if needed. Signed-off-by: Thomas Petazzoni +Signed-off-by: Jason Cooper --- arch/arm/mach-mvebu/Kconfig | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig -index 80a8bca..fb827ac 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -16,6 +16,8 @@ config ARCH_MVEBU @@ -25,6 +24,3 @@ index 80a8bca..fb827ac 100644 if ARCH_MVEBU --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0008-arm-mvebu-update-defconfig-with-PCI-and-USB-support.patch b/target/linux/kirkwood/patches-3.10/0008-arm-mvebu-update-defconfig-with-PCI-and-USB-support.patch deleted file mode 100644 index e4a3e9da8ac..00000000000 --- a/target/linux/kirkwood/patches-3.10/0008-arm-mvebu-update-defconfig-with-PCI-and-USB-support.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 3339170f8adf10c32ad8ba4069f94f1bcd40f46d Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Fri, 7 Dec 2012 22:49:57 +0100 -Subject: [PATCH 08/29] arm: mvebu: update defconfig with PCI and USB support - -Now that we have the necessary drivers and Device Tree informations to -support PCIe on Armada 370 and Armada XP, enable the CONFIG_PCI -option. - -Also, since the Armada 370 Mirabox has a built-in USB XHCI controller -connected on the PCIe bus, enable the corresponding options as well. - -Signed-off-by: Thomas Petazzoni ---- - arch/arm/configs/mvebu_defconfig | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig -index f3e8ae0..966281e 100644 ---- a/arch/arm/configs/mvebu_defconfig -+++ b/arch/arm/configs/mvebu_defconfig -@@ -13,6 +13,8 @@ CONFIG_MACH_ARMADA_370=y - CONFIG_MACH_ARMADA_XP=y - # CONFIG_CACHE_L2X0 is not set - # CONFIG_SWP_EMULATE is not set -+CONFIG_PCI=y -+CONFIG_PCI_MVEBU=y - CONFIG_SMP=y - CONFIG_AEABI=y - CONFIG_HIGHMEM=y -@@ -60,6 +62,7 @@ CONFIG_USB_SUPPORT=y - CONFIG_USB=y - CONFIG_USB_EHCI_HCD=y - CONFIG_USB_EHCI_ROOT_HUB_TT=y -+CONFIG_USB_XHCI_HCD=y - CONFIG_MMC=y - CONFIG_MMC_MVSDIO=y - CONFIG_NEW_LEDS=y --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0008-pci-mvebu-fix-return-value-check-in-mvebu_pcie_probe.patch b/target/linux/kirkwood/patches-3.10/0008-pci-mvebu-fix-return-value-check-in-mvebu_pcie_probe.patch new file mode 100644 index 00000000000..32035ede051 --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/0008-pci-mvebu-fix-return-value-check-in-mvebu_pcie_probe.patch @@ -0,0 +1,28 @@ +From 3ad3d38d36c51b45668708a42f67b07fc87a53e3 Mon Sep 17 00:00:00 2001 +From: Wei Yongjun +Date: Mon, 27 May 2013 11:38:41 +0800 +Subject: [PATCH 08/29] pci: mvebu: fix return value check in + mvebu_pcie_probe() + +In case of error, function of_clk_get_by_name() returns +ERR_PTR() never returns NULL. The NULL test in the return +value check should be replaced with IS_ERR(). + +Signed-off-by: Wei Yongjun +Acked-by: Thomas Petazzoni +Signed-off-by: Jason Cooper +--- + drivers/pci/host/pci-mvebu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/pci/host/pci-mvebu.c ++++ b/drivers/pci/host/pci-mvebu.c +@@ -828,7 +828,7 @@ static int __init mvebu_pcie_probe(struc + } + + port->clk = of_clk_get_by_name(child, NULL); +- if (!port->clk) { ++ if (IS_ERR(port->clk)) { + dev_err(&pdev->dev, "PCIe%d.%d: cannot get clock\n", + port->port, port->lane); + iounmap(port->base); diff --git a/target/linux/kirkwood/patches-3.10/0009-pci-mvebu-enable-driver-usage-on-Kirkwood.patch b/target/linux/kirkwood/patches-3.10/0009-pci-mvebu-enable-driver-usage-on-Kirkwood.patch index c1f4b1ccbd4..45395193937 100644 --- a/target/linux/kirkwood/patches-3.10/0009-pci-mvebu-enable-driver-usage-on-Kirkwood.patch +++ b/target/linux/kirkwood/patches-3.10/0009-pci-mvebu-enable-driver-usage-on-Kirkwood.patch @@ -1,6 +1,6 @@ -From 3b93e75d1b66353b8f8ad7d965e17aad68982c55 Mon Sep 17 00:00:00 2001 +From 79ae3cf2d6c01b4394ea462f1c49a2e9fbcf0521 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Wed, 27 Mar 2013 18:48:13 +0100 +Date: Wed, 15 May 2013 15:36:54 +0200 Subject: [PATCH 09/29] pci: mvebu: enable driver usage on Kirkwood We allow the pci-mvebu driver to be compiled on the Kirkwood platform, @@ -9,14 +9,13 @@ by the driver. Signed-off-by: Thomas Petazzoni Tested-by: Andrew Lunn +Signed-off-by: Jason Cooper --- Documentation/devicetree/bindings/pci/mvebu-pci.txt | 1 + drivers/pci/host/Kconfig | 2 +- drivers/pci/host/pci-mvebu.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) -diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt -index eb69d92..f8d4058 100644 --- a/Documentation/devicetree/bindings/pci/mvebu-pci.txt +++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt @@ -4,6 +4,7 @@ Mandatory properties: @@ -27,8 +26,6 @@ index eb69d92..f8d4058 100644 - #address-cells, set to <3> - #size-cells, set to <2> - #interrupt-cells, set to <1> -diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig -index 6918fbc..1f1d67f 100644 --- a/drivers/pci/host/Kconfig +++ b/drivers/pci/host/Kconfig @@ -3,6 +3,6 @@ menu "PCI host controller drivers" @@ -39,11 +36,9 @@ index 6918fbc..1f1d67f 100644 + depends on ARCH_MVEBU || ARCH_KIRKWOOD endmenu -diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c -index b0ee63b..6fe8b90 100644 --- a/drivers/pci/host/pci-mvebu.c +++ b/drivers/pci/host/pci-mvebu.c -@@ -853,6 +853,7 @@ static int __init mvebu_pcie_probe(struct platform_device *pdev) +@@ -854,6 +854,7 @@ static int __init mvebu_pcie_probe(struc static const struct of_device_id mvebu_pcie_of_match_table[] = { { .compatible = "marvell,armada-xp-pcie", }, { .compatible = "marvell,armada-370-pcie", }, @@ -51,6 +46,3 @@ index b0ee63b..6fe8b90 100644 {}, }; MODULE_DEVICE_TABLE(of, mvebu_pcie_of_match_table); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch b/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch index 096ee6f8479..68d855fa852 100644 --- a/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch +++ b/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch @@ -1,6 +1,6 @@ -From 080dc44291ff143d84b63e5ff9fda963d46a7dce Mon Sep 17 00:00:00 2001 +From 722ffe56a78344821877496f5bb28ca95b4cb67c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Wed, 27 Mar 2013 18:51:25 +0100 +Date: Wed, 15 May 2013 15:36:55 +0200 Subject: [PATCH 10/29] arm: kirkwood: move PCIe window init to legacy driver Since we are going to enable the usage of the mvebu PCIe driver on @@ -17,13 +17,12 @@ dynamically allocated directly by the driver. Signed-off-by: Thomas Petazzoni Tested-by: Andrew Lunn +Signed-off-by: Jason Cooper --- arch/arm/mach-kirkwood/common.c | 24 ------------------------ arch/arm/mach-kirkwood/pcie.c | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 24 deletions(-) -diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c -index f389228..41ea98d 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c @@ -648,30 +648,6 @@ char * __init kirkwood_id(void) @@ -57,8 +56,6 @@ index f389228..41ea98d 100644 mvebu_mbus_add_window("nand", KIRKWOOD_NAND_MEM_PHYS_BASE, KIRKWOOD_NAND_MEM_SIZE); mvebu_mbus_add_window("sram", KIRKWOOD_SRAM_PHYS_BASE, -diff --git a/arch/arm/mach-kirkwood/pcie.c b/arch/arm/mach-kirkwood/pcie.c -index 7f43e6c..ddcb09f 100644 --- a/arch/arm/mach-kirkwood/pcie.c +++ b/arch/arm/mach-kirkwood/pcie.c @@ -12,6 +12,7 @@ @@ -69,7 +66,7 @@ index 7f43e6c..ddcb09f 100644 #include