diff options
34 files changed, 1638 insertions, 869 deletions
diff --git a/target/linux/kirkwood/config-3.10 b/target/linux/kirkwood/config-3.10 index b66b7a3268..06051994c8 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 8f6f547c7a..a3a5aca3fb 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 <Andrew.Murray@arm.com> -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 <thomas.petazzoni@free-electrons.com> Tested-by: Linus Walleij <linus.walleij@linaro.org> Tested-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 74a839701c..653bc7df03 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 <thierry.reding@avionic-design.de> -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 <thierry.reding@avionic-design.de> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 faf9de6738..54e89c3e85 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> Cc: Mike Turquette <mturquette@linaro.org> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 b41c8f7f7b..987f78d4b1 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> Cc: Mike Turquette <mturquette@linaro.org> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 50396e0d69..f9a568f7ed 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- .../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 <thomas.petazzoni@free-electrons.com>"); +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 9467b2fefa..780644211e 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 e4a3e9da8a..0000000000 --- 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> ---- - 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 0000000000..32035ede05 --- /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 <yongjun_wei@trendmicro.com.cn> +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 <yongjun_wei@trendmicro.com.cn> +Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> +--- + 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 c1f4b1ccbd..4539519393 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> Tested-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 096ee6f847..68d855fa85 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 <thomas.petazzoni@free-electrons.com> -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 <thomas.petazzoni@free-electrons.com> Tested-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- 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 <video/vga.h> #include <asm/irq.h> #include <asm/mach/pci.h> -@@ -253,6 +254,27 @@ static void __init add_pcie_port(int index, void __iomem *base) +@@ -253,6 +254,27 @@ static void __init add_pcie_port(int ind void __init kirkwood_pcie_init(unsigned int portmask) { @@ -97,6 +94,3 @@ index 7f43e6c..ddcb09f 100644 vga_base = KIRKWOOD_PCIE_MEM_PHYS_BASE; if (portmask & KW_PCIE0) --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0011-arm-kirkwood-add-SoC-level-Device-Tree-data-for-PCIe.patch b/target/linux/kirkwood/patches-3.10/0011-arm-kirkwood-add-SoC-level-Device-Tree-data-for-PCIe.patch index 4b7ad68f97..6f73bbfb47 100644 --- a/target/linux/kirkwood/patches-3.10/0011-arm-kirkwood-add-SoC-level-Device-Tree-data-for-PCIe.patch +++ b/target/linux/kirkwood/patches-3.10/0011-arm-kirkwood-add-SoC-level-Device-Tree-data-for-PCIe.patch @@ -1,6 +1,6 @@ -From 8725a4f93dcb242466990261dc2bd78599b0306a Mon Sep 17 00:00:00 2001 +From b2198f4cd8cffdfd5030a176a9ee4d4367526cac Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Wed, 27 Mar 2013 18:55:20 +0100 +Date: Wed, 15 May 2013 15:36:56 +0200 Subject: [PATCH 11/29] arm: kirkwood: add SoC-level Device Tree data for PCIe interfaces @@ -10,14 +10,13 @@ interfaces. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/kirkwood-6281.dtsi | 31 +++++++++++++++++++++++ arch/arm/boot/dts/kirkwood-6282.dtsi | 48 ++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/kirkwood.dtsi | 1 + 3 files changed, 80 insertions(+) -diff --git a/arch/arm/boot/dts/kirkwood-6281.dtsi b/arch/arm/boot/dts/kirkwood-6281.dtsi -index d6c9d65..5137668 100644 --- a/arch/arm/boot/dts/kirkwood-6281.dtsi +++ b/arch/arm/boot/dts/kirkwood-6281.dtsi @@ -40,5 +40,36 @@ @@ -57,8 +56,6 @@ index d6c9d65..5137668 100644 + }; }; }; -diff --git a/arch/arm/boot/dts/kirkwood-6282.dtsi b/arch/arm/boot/dts/kirkwood-6282.dtsi -index 23991e4..66a751a 100644 --- a/arch/arm/boot/dts/kirkwood-6282.dtsi +++ b/arch/arm/boot/dts/kirkwood-6282.dtsi @@ -65,5 +65,53 @@ @@ -115,8 +112,6 @@ index 23991e4..66a751a 100644 + }; }; }; -diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi -index fada7e6..7eef88f 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi @@ -19,6 +19,7 @@ @@ -127,6 +122,3 @@ index fada7e6..7eef88f 100644 0xf5000000 0xf5000000 0x0000400>; #address-cells = <1>; #size-cells = <1>; --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0012-arm-kirkwood-convert-Iomega-Iconnect-to-use-DT-for-t.patch b/target/linux/kirkwood/patches-3.10/0012-arm-kirkwood-convert-Iomega-Iconnect-to-use-DT-for-t.patch index a22bf63b7a..8405963787 100644 --- a/target/linux/kirkwood/patches-3.10/0012-arm-kirkwood-convert-Iomega-Iconnect-to-use-DT-for-t.patch +++ b/target/linux/kirkwood/patches-3.10/0012-arm-kirkwood-convert-Iomega-Iconnect-to-use-DT-for-t.patch @@ -1,6 +1,6 @@ -From b7031bd802336c77a6b330f79b275ccbb55fdc96 Mon Sep 17 00:00:00 2001 +From cce41fad080eb7e5f3e3e27bbcc5730d624c5d4b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Wed, 10 Apr 2013 21:22:13 +0200 +Date: Wed, 15 May 2013 15:36:57 +0200 Subject: [PATCH 12/29] arm: kirkwood: convert Iomega Iconnect to use DT for the PCIe interface @@ -9,13 +9,12 @@ of the legacy PCIe code, since it allows to describe the PCIe interfaces in the Device Tree. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/kirkwood-iconnect.dts | 8 ++++++++ arch/arm/mach-kirkwood/board-iconnect.c | 8 -------- 2 files changed, 8 insertions(+), 8 deletions(-) -diff --git a/arch/arm/boot/dts/kirkwood-iconnect.dts b/arch/arm/boot/dts/kirkwood-iconnect.dts -index 12ccf74..e591d5d 100644 --- a/arch/arm/boot/dts/kirkwood-iconnect.dts +++ b/arch/arm/boot/dts/kirkwood-iconnect.dts @@ -109,6 +109,14 @@ @@ -33,8 +32,6 @@ index 12ccf74..e591d5d 100644 }; gpio-leds { -diff --git a/arch/arm/mach-kirkwood/board-iconnect.c b/arch/arm/mach-kirkwood/board-iconnect.c -index c8ebde4..98b5ad1 100644 --- a/arch/arm/mach-kirkwood/board-iconnect.c +++ b/arch/arm/mach-kirkwood/board-iconnect.c @@ -22,11 +22,3 @@ void __init iconnect_init(void) @@ -49,6 +46,3 @@ index c8ebde4..98b5ad1 100644 - return 0; -} -subsys_initcall(iconnect_pci_init); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0013-arm-kirkwood-convert-MPL-CEC4-to-use-DT-for-the-PCIe.patch b/target/linux/kirkwood/patches-3.10/0013-arm-kirkwood-convert-MPL-CEC4-to-use-DT-for-the-PCIe.patch index b3c704cf8e..c377cb0633 100644 --- a/target/linux/kirkwood/patches-3.10/0013-arm-kirkwood-convert-MPL-CEC4-to-use-DT-for-the-PCIe.patch +++ b/target/linux/kirkwood/patches-3.10/0013-arm-kirkwood-convert-MPL-CEC4-to-use-DT-for-the-PCIe.patch @@ -1,6 +1,6 @@ -From b3e3851d461779cd94a2efe4484f01175fcb460e Mon Sep 17 00:00:00 2001 +From b12363b0a393e2751395af002bf9ab192c1140c1 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Wed, 10 Apr 2013 23:05:32 +0200 +Date: Wed, 15 May 2013 15:36:58 +0200 Subject: [PATCH 13/29] arm: kirkwood: convert MPL CEC4 to use DT for the PCIe interface @@ -9,13 +9,12 @@ of the legacy PCIe code, since it allows to describe the PCIe interfaces in the Device Tree. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/kirkwood-mplcec4.dts | 8 ++++++++ arch/arm/mach-kirkwood/board-mplcec4.c | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/kirkwood-mplcec4.dts b/arch/arm/boot/dts/kirkwood-mplcec4.dts -index 7588241..90501cf 100644 --- a/arch/arm/boot/dts/kirkwood-mplcec4.dts +++ b/arch/arm/boot/dts/kirkwood-mplcec4.dts @@ -139,6 +139,14 @@ @@ -33,8 +32,6 @@ index 7588241..90501cf 100644 }; gpio-leds { -diff --git a/arch/arm/mach-kirkwood/board-mplcec4.c b/arch/arm/mach-kirkwood/board-mplcec4.c -index 7d6dc66..938712e 100644 --- a/arch/arm/mach-kirkwood/board-mplcec4.c +++ b/arch/arm/mach-kirkwood/board-mplcec4.c @@ -29,7 +29,6 @@ void __init mplcec4_init(void) @@ -45,6 +42,3 @@ index 7d6dc66..938712e 100644 } --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0014-arm-kirkwood-convert-ZyXEL-NSA310-to-use-DT-for-the-.patch b/target/linux/kirkwood/patches-3.10/0014-arm-kirkwood-convert-ZyXEL-NSA310-to-use-DT-for-the-.patch index 9cd8082f14..a1521f2129 100644 --- a/target/linux/kirkwood/patches-3.10/0014-arm-kirkwood-convert-ZyXEL-NSA310-to-use-DT-for-the-.patch +++ b/target/linux/kirkwood/patches-3.10/0014-arm-kirkwood-convert-ZyXEL-NSA310-to-use-DT-for-the-.patch @@ -1,6 +1,6 @@ -From 86310ed36ec224b248b5169371f44250ce8c2275 Mon Sep 17 00:00:00 2001 +From f56884bb322085c735b027b64fff4d7294a464ee Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Wed, 10 Apr 2013 23:07:27 +0200 +Date: Wed, 15 May 2013 15:36:59 +0200 Subject: [PATCH 14/29] arm: kirkwood: convert ZyXEL NSA310 to use DT for the PCIe interface @@ -13,6 +13,7 @@ the Device Tree only, we remove the board-nsa310.c file and the related Kconfig/Makefile bits. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/kirkwood-nsa310.dts | 8 ++++++++ arch/arm/mach-kirkwood/Kconfig | 8 -------- @@ -21,8 +22,6 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 4 files changed, 8 insertions(+), 34 deletions(-) delete mode 100644 arch/arm/mach-kirkwood/board-nsa310.c -diff --git a/arch/arm/boot/dts/kirkwood-nsa310.dts b/arch/arm/boot/dts/kirkwood-nsa310.dts -index a7412b9..9ddf218 100644 --- a/arch/arm/boot/dts/kirkwood-nsa310.dts +++ b/arch/arm/boot/dts/kirkwood-nsa310.dts @@ -176,6 +176,14 @@ @@ -40,8 +39,6 @@ index a7412b9..9ddf218 100644 }; gpio_keys { -diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig -index 7509a89..267ca95 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig @@ -272,14 +272,6 @@ config MACH_NETSPACE_V2_DT @@ -59,11 +56,9 @@ index 7509a89..267ca95 100644 config MACH_OPENBLOCKS_A6_DT bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)" select ARCH_KIRKWOOD_DT -diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile -index e1f3735..794366e 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile -@@ -37,7 +37,6 @@ obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o +@@ -37,7 +37,6 @@ obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) + obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o @@ -71,9 +66,6 @@ index e1f3735..794366e 100644 obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o -diff --git a/arch/arm/mach-kirkwood/board-nsa310.c b/arch/arm/mach-kirkwood/board-nsa310.c -deleted file mode 100644 -index 55ade93..0000000 --- a/arch/arm/mach-kirkwood/board-nsa310.c +++ /dev/null @@ -1,25 +0,0 @@ @@ -102,6 +94,3 @@ index 55ade93..0000000 -} - -subsys_initcall(nsa310_pci_init); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0015-arm-kirkwood-convert-QNAP-TS219-to-use-DT-for-the-PC.patch b/target/linux/kirkwood/patches-3.10/0015-arm-kirkwood-convert-QNAP-TS219-to-use-DT-for-the-PC.patch index 02ca616ace..ed80dd683e 100644 --- a/target/linux/kirkwood/patches-3.10/0015-arm-kirkwood-convert-QNAP-TS219-to-use-DT-for-the-PC.patch +++ b/target/linux/kirkwood/patches-3.10/0015-arm-kirkwood-convert-QNAP-TS219-to-use-DT-for-the-PC.patch @@ -1,6 +1,6 @@ -From 0f75608615894c9707e40c0dd3383193fb6c09f6 Mon Sep 17 00:00:00 2001 +From c184303509ea2ee9d519db5dbfb2063efca098f7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Sat, 13 Apr 2013 13:03:56 +0200 +Date: Wed, 15 May 2013 15:37:00 +0200 Subject: [PATCH 15/29] arm: kirkwood: convert QNAP TS219 to use DT for the PCIe interface @@ -10,14 +10,13 @@ interfaces in the Device Tree. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/kirkwood-ts219-6281.dts | 3 ++- arch/arm/boot/dts/kirkwood-ts219-6282.dts | 3 ++- arch/arm/boot/dts/kirkwood-ts219.dtsi | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) -diff --git a/arch/arm/boot/dts/kirkwood-ts219-6281.dts b/arch/arm/boot/dts/kirkwood-ts219-6281.dts -index 8295c83..42648ab 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6281.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6281.dts @@ -1,7 +1,8 @@ @@ -30,8 +29,6 @@ index 8295c83..42648ab 100644 / { ocp@f1000000 { -diff --git a/arch/arm/boot/dts/kirkwood-ts219-6282.dts b/arch/arm/boot/dts/kirkwood-ts219-6282.dts -index df3f95d..95ceeb9 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6282.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6282.dts @@ -1,7 +1,8 @@ @@ -44,8 +41,6 @@ index df3f95d..95ceeb9 100644 / { ocp@f1000000 { -diff --git a/arch/arm/boot/dts/kirkwood-ts219.dtsi b/arch/arm/boot/dts/kirkwood-ts219.dtsi -index 64ea27c..7c022fd 100644 --- a/arch/arm/boot/dts/kirkwood-ts219.dtsi +++ b/arch/arm/boot/dts/kirkwood-ts219.dtsi @@ -1,5 +1,3 @@ @@ -67,6 +62,3 @@ index 64ea27c..7c022fd 100644 + }; }; }; --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0016-arm-kirkwood-convert-db-88f6281-db-88f6282-to-the-De.patch b/target/linux/kirkwood/patches-3.10/0016-arm-kirkwood-convert-db-88f6281-db-88f6282-to-the-De.patch index a86c071790..8fe93428a7 100644 --- a/target/linux/kirkwood/patches-3.10/0016-arm-kirkwood-convert-db-88f6281-db-88f6282-to-the-De.patch +++ b/target/linux/kirkwood/patches-3.10/0016-arm-kirkwood-convert-db-88f6281-db-88f6282-to-the-De.patch @@ -1,6 +1,6 @@ -From 32f9dd19f7c859205440a8734cb6ab1295c78015 Mon Sep 17 00:00:00 2001 +From 8ad6aa146af6af98bd8e308eb7746a5f4cf267d8 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Wed, 27 Mar 2013 18:56:40 +0100 +Date: Wed, 15 May 2013 15:37:01 +0200 Subject: [PATCH 16/29] arm: kirkwood: convert db-88f6281/db-88f6282 to the Device Tree @@ -19,6 +19,7 @@ done for the QNAP TS219 Kirkwood platform. We have kept one single Kconfig option, just like it was before. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/kirkwood-db-88f6281.dts | 30 ++++++++ @@ -37,11 +38,9 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> create mode 100644 arch/arm/mach-kirkwood/board-db88f628x-bp.c delete mode 100644 arch/arm/mach-kirkwood/db88f6281-bp-setup.c -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index f0895c5..3844ef2 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -64,6 +64,8 @@ dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ +@@ -64,6 +64,8 @@ dtb-$(CONFIG_ARCH_INTEGRATOR) += integra integratorcp.dtb dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \ @@ -50,9 +49,6 @@ index f0895c5..3844ef2 100644 kirkwood-dns320.dtb \ kirkwood-dns325.dtb \ kirkwood-dockstar.dtb \ -diff --git a/arch/arm/boot/dts/kirkwood-db-88f6281.dts b/arch/arm/boot/dts/kirkwood-db-88f6281.dts -new file mode 100644 -index 0000000..9d777ed --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-db-88f6281.dts @@ -0,0 +1,30 @@ @@ -86,9 +82,6 @@ index 0000000..9d777ed + }; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-db-88f6282.dts b/arch/arm/boot/dts/kirkwood-db-88f6282.dts -new file mode 100644 -index 0000000..f4c8528 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-db-88f6282.dts @@ -0,0 +1,34 @@ @@ -126,9 +119,6 @@ index 0000000..f4c8528 + }; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-db.dtsi b/arch/arm/boot/dts/kirkwood-db.dtsi -new file mode 100644 -index 0000000..c87cfb8 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-db.dtsi @@ -0,0 +1,89 @@ @@ -221,8 +211,6 @@ index 0000000..c87cfb8 + }; + }; +}; -diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig -index 267ca95..b56bd3d 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig @@ -8,12 +8,6 @@ config MACH_D2NET_V2 @@ -252,8 +240,6 @@ index 267ca95..b56bd3d 100644 config MACH_DLINK_KIRKWOOD_DT bool "D-Link Kirkwood-based NAS (Flattened Device Tree)" select ARCH_KIRKWOOD_DT -diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile -index 794366e..2fdc3a7 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile @@ -1,7 +1,6 @@ @@ -264,7 +250,7 @@ index 794366e..2fdc3a7 100644 obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o -@@ -21,6 +20,7 @@ obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o +@@ -21,6 +20,7 @@ obj-$(CONFIG_MACH_TS41X) += ts41x-setup obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o @@ -272,9 +258,6 @@ index 794366e..2fdc3a7 100644 obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o -diff --git a/arch/arm/mach-kirkwood/board-db88f628x-bp.c b/arch/arm/mach-kirkwood/board-db88f628x-bp.c -new file mode 100644 -index 0000000..2f574bc --- /dev/null +++ b/arch/arm/mach-kirkwood/board-db88f628x-bp.c @@ -0,0 +1,24 @@ @@ -302,11 +285,9 @@ index 0000000..2f574bc +{ + kirkwood_ge00_init(&db88f628x_ge00_data); +} -diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c -index e9647b8..f5aed1f 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c -@@ -147,6 +147,10 @@ static void __init kirkwood_dt_init(void) +@@ -147,6 +147,10 @@ static void __init kirkwood_dt_init(void of_machine_is_compatible("lacie,netspace_v2")) ns2_init(); @@ -317,7 +298,7 @@ index e9647b8..f5aed1f 100644 if (of_machine_is_compatible("mpl,cec4")) mplcec4_init(); -@@ -181,6 +185,8 @@ static const char * const kirkwood_dt_board_compat[] = { +@@ -181,6 +185,8 @@ static const char * const kirkwood_dt_bo "lacie,netspace_max_v2", "lacie,netspace_mini_v2", "lacie,netspace_v2", @@ -326,8 +307,6 @@ index e9647b8..f5aed1f 100644 "mpl,cec4", "netgear,readynas-duo-v2", "plathome,openblocks-a6", -diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h -index 21da3b1..cbbc0b8 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h @@ -119,6 +119,12 @@ void km_kirkwood_init(void); @@ -343,9 +322,6 @@ index 21da3b1..cbbc0b8 100644 #ifdef CONFIG_MACH_MPLCEC4_DT void mplcec4_init(void); #else -diff --git a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c -deleted file mode 100644 -index 5a369fe..0000000 --- a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c +++ /dev/null @@ -1,108 +0,0 @@ @@ -457,6 +433,3 @@ index 5a369fe..0000000 - .init_time = kirkwood_timer_init, - .restart = kirkwood_restart, -MACHINE_END --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0017-arm-kirkwood-update-defconfig-with-PCIe-driver-and-b.patch b/target/linux/kirkwood/patches-3.10/0017-arm-kirkwood-update-defconfig-with-PCIe-driver-and-b.patch deleted file mode 100644 index 944be32690..0000000000 --- a/target/linux/kirkwood/patches-3.10/0017-arm-kirkwood-update-defconfig-with-PCIe-driver-and-b.patch +++ /dev/null @@ -1,37 +0,0 @@ -From f53bb70209838ffea1824ba7c4c7935cf200233f Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Thu, 11 Apr 2013 00:18:29 +0200 -Subject: [PATCH 17/29] arm: kirkwood: update defconfig with PCIe driver and - board updates - -This commit enables the mvebu PCIe driver in kirkwood_defconfig and -updates various options related to Kirkwood boards. - -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> ---- - arch/arm/configs/kirkwood_defconfig | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig -index a1d8252..452adec 100644 ---- a/arch/arm/configs/kirkwood_defconfig -+++ b/arch/arm/configs/kirkwood_defconfig -@@ -31,6 +31,7 @@ CONFIG_MACH_T5325=y - CONFIG_MACH_TS219=y - CONFIG_MACH_TS41X=y - CONFIG_MACH_CLOUDBOX_DT=y -+CONFIG_MACH_DB88F628X_BP_DT=y - CONFIG_MACH_DLINK_KIRKWOOD_DT=y - CONFIG_MACH_DOCKSTAR_DT=y - CONFIG_MACH_DREAMPLUG_DT=y -@@ -53,6 +54,7 @@ CONFIG_MACH_READYNAS_DT=y - CONFIG_MACH_TOPKICK_DT=y - CONFIG_MACH_TS219_DT=y - # CONFIG_CPU_FEROCEON_OLD_ID is not set -+CONFIG_PCI_MVEBU=y - CONFIG_PREEMPT=y - CONFIG_AEABI=y - # CONFIG_OABI_COMPAT is not set --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0017-pci-mvebu-no-longer-fake-the-slot-location-of-downst.patch b/target/linux/kirkwood/patches-3.10/0017-pci-mvebu-no-longer-fake-the-slot-location-of-downst.patch new file mode 100644 index 0000000000..b1f252f7d9 --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/0017-pci-mvebu-no-longer-fake-the-slot-location-of-downst.patch @@ -0,0 +1,97 @@ +From 5db3b7ccb319679ac9c5791112c7eb42c25331e3 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Thu, 23 May 2013 16:32:51 +0200 +Subject: [PATCH 17/29] pci: mvebu: no longer fake the slot location of + downstream devices + +By default, the Marvell hardware, for each PCIe interface, exhibits +the following devices: + + * On slot 0, a "Marvell Memory controller", identical on all PCIe + interfaces, and which isn't useful when the Marvell SoC is the PCIe + root complex (i.e, the normal case when we run Linux on the Marvell + SoC). + + * On slot 1, the real PCIe card connected into the PCIe slot of the + board. + +So, what the Marvell PCIe driver was doing in its PCI-to-PCI bridge +emulation is that when the Linux PCI core was trying to access the +device in slot 0, we were in fact forwarding the configuration +transaction to the device in slot 1. For all other slots, we were +telling the Linux PCI core that there was no device connected. + +However, new versions of bootloaders from Marvell change the default +PCIe configuration, and make the real device appear in slot 0, and the +"Marvell Memory controller" in slot 1. + +Therefore, this commit modifies the Marvell PCIe driver to adjust the +PCIe hardware configuration to make sure that this behavior (real +device in slot 0, "Marvell Memory controller" in slot 1) is the one +we'll see regardless of what the bootloader has done. It allows to +remove the little hack that was forwarding configuration transactions +on slot 0 to slot 1, which is nice. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Acked-by: Bjorn Helgaas <bhelgaas@google.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> +--- + drivers/pci/host/pci-mvebu.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +--- a/drivers/pci/host/pci-mvebu.c ++++ b/drivers/pci/host/pci-mvebu.c +@@ -51,6 +51,7 @@ + #define PCIE_CTRL_X1_MODE 0x0001 + #define PCIE_STAT_OFF 0x1a04 + #define PCIE_STAT_BUS 0xff00 ++#define PCIE_STAT_DEV 0x1f0000 + #define PCIE_STAT_LINK_DOWN BIT(0) + #define PCIE_DEBUG_CTRL 0x1a60 + #define PCIE_DEBUG_SOFT_RESET BIT(20) +@@ -148,6 +149,16 @@ static void mvebu_pcie_set_local_bus_nr( + writel(stat, port->base + PCIE_STAT_OFF); + } + ++static void mvebu_pcie_set_local_dev_nr(struct mvebu_pcie_port *port, int nr) ++{ ++ u32 stat; ++ ++ stat = readl(port->base + PCIE_STAT_OFF); ++ stat &= ~PCIE_STAT_DEV; ++ stat |= nr << 16; ++ writel(stat, port->base + PCIE_STAT_OFF); ++} ++ + /* + * Setup PCIE BARs and Address Decode Wins: + * BAR[0,2] -> disabled, BAR[1] -> covers all DRAM banks +@@ -572,8 +583,7 @@ static int mvebu_pcie_wr_conf(struct pci + + /* Access the real PCIe interface */ + spin_lock_irqsave(&port->conf_lock, flags); +- ret = mvebu_pcie_hw_wr_conf(port, bus, +- PCI_DEVFN(1, PCI_FUNC(devfn)), ++ ret = mvebu_pcie_hw_wr_conf(port, bus, devfn, + where, size, val); + spin_unlock_irqrestore(&port->conf_lock, flags); + +@@ -606,8 +616,7 @@ static int mvebu_pcie_rd_conf(struct pci + + /* Access the real PCIe interface */ + spin_lock_irqsave(&port->conf_lock, flags); +- ret = mvebu_pcie_hw_rd_conf(port, bus, +- PCI_DEVFN(1, PCI_FUNC(devfn)), ++ ret = mvebu_pcie_hw_rd_conf(port, bus, devfn, + where, size, val); + spin_unlock_irqrestore(&port->conf_lock, flags); + +@@ -817,6 +826,8 @@ static int __init mvebu_pcie_probe(struc + continue; + } + ++ mvebu_pcie_set_local_dev_nr(port, 1); ++ + if (mvebu_pcie_link_up(port)) { + port->haslink = 1; + dev_info(&pdev->dev, "PCIe%d.%d: link up\n", diff --git a/target/linux/kirkwood/patches-3.10/0018-pci-mvebu-allow-the-enumeration-of-devices-beyond-ph.patch b/target/linux/kirkwood/patches-3.10/0018-pci-mvebu-allow-the-enumeration-of-devices-beyond-ph.patch new file mode 100644 index 0000000000..9274ba6dde --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/0018-pci-mvebu-allow-the-enumeration-of-devices-beyond-ph.patch @@ -0,0 +1,97 @@ +From ce12bfd48e93b98717a258b8181aed0e19933e1e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Thu, 23 May 2013 16:32:52 +0200 +Subject: [PATCH 18/29] pci: mvebu: allow the enumeration of devices beyond + physical bridges + +Until now, the Marvell PCIe driver was only allowing the enumeration +of the devices in the secondary bus of the emulated PCI-to-PCI +bridge. This works fine when a PCIe device is directly connected into +a PCIe slot of the Marvell board. + +However, when the device connected in the PCIe slot is a physical PCIe +bridge, beyond which a real PCIe device is connected, it no longer +worked, as the driver was preventing the Linux PCI core from seeing +such devices. + +This commit fixes that by ensuring that configuration transactions on +subordinate busses are properly forwarded on the right PCIe interface. + +Thanks to this patch, a PCIe card beyond a PCIe bridge, itself beyond +the emulated PCI-to-PCI bridge is properly detected, with the +following layout: + +-[0000:00]-+-01.0-[01]----00.0 + +-09.0-[02-07]----00.0-[03-07]--+-01.0-[04]-- + | +-05.0-[05]-- + | +-07.0-[06]-- + | \-09.0-[07]----00.0 + \-0a.0-[08]----00.0 + +Where the PCIe interface that sits beyond the emulated PCI-to-PCI +bridge at 09.0 allows to access the secondary bus 02, on which there +is a PCIe bridge that allows to access the 3 to 7 busses, that are +subordinates to this bridge. And on one of this bus (bus 7), there is +one real PCIe device connected. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Acked-by: Bjorn Helgaas <bhelgaas@google.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> +--- + drivers/pci/host/pci-mvebu.c | 31 ++++++++++++++++++++++++++++--- + 1 file changed, 28 insertions(+), 3 deletions(-) + +--- a/drivers/pci/host/pci-mvebu.c ++++ b/drivers/pci/host/pci-mvebu.c +@@ -554,7 +554,8 @@ mvebu_pcie_find_port(struct mvebu_pcie * + if (bus->number == 0 && port->devfn == devfn) + return port; + if (bus->number != 0 && +- port->bridge.secondary_bus == bus->number) ++ bus->number >= port->bridge.secondary_bus && ++ bus->number <= port->bridge.subordinate_bus) + return port; + } + +@@ -578,7 +579,18 @@ static int mvebu_pcie_wr_conf(struct pci + if (bus->number == 0) + return mvebu_sw_pci_bridge_write(port, where, size, val); + +- if (!port->haslink || PCI_SLOT(devfn) != 0) ++ if (!port->haslink) ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ ++ /* ++ * On the secondary bus, we don't want to expose any other ++ * device than the device physically connected in the PCIe ++ * slot, visible in slot 0. In slot 1, there's a special ++ * Marvell device that only makes sense when the Armada is ++ * used as a PCIe endpoint. ++ */ ++ if (bus->number == port->bridge.secondary_bus && ++ PCI_SLOT(devfn) != 0) + return PCIBIOS_DEVICE_NOT_FOUND; + + /* Access the real PCIe interface */ +@@ -609,7 +621,20 @@ static int mvebu_pcie_rd_conf(struct pci + if (bus->number == 0) + return mvebu_sw_pci_bridge_read(port, where, size, val); + +- if (!port->haslink || PCI_SLOT(devfn) != 0) { ++ if (!port->haslink) { ++ *val = 0xffffffff; ++ return PCIBIOS_DEVICE_NOT_FOUND; ++ } ++ ++ /* ++ * On the secondary bus, we don't want to expose any other ++ * device than the device physically connected in the PCIe ++ * slot, visible in slot 0. In slot 1, there's a special ++ * Marvell device that only makes sense when the Armada is ++ * used as a PCIe endpoint. ++ */ ++ if (bus->number == port->bridge.secondary_bus && ++ PCI_SLOT(devfn) != 0) { + *val = 0xffffffff; + return PCIBIOS_DEVICE_NOT_FOUND; + } diff --git a/target/linux/kirkwood/patches-3.10/0019-pci-mvebu-fix-the-emulation-of-the-status-register.patch b/target/linux/kirkwood/patches-3.10/0019-pci-mvebu-fix-the-emulation-of-the-status-register.patch new file mode 100644 index 0000000000..7213231622 --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/0019-pci-mvebu-fix-the-emulation-of-the-status-register.patch @@ -0,0 +1,87 @@ +From 370c8181fd848948aeae371bbc1124dc0dead22b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Thu, 23 May 2013 16:32:53 +0200 +Subject: [PATCH 19/29] pci: mvebu: fix the emulation of the status register + +The status register of the PCI configuration space of PCI-to-PCI +bridges contain some read-only bits, and so write-1-to-clear bits. So, +the Linux PCI core sometimes writes 0xffff to this status register, +and in the current PCI-to-PCI bridge emulation code of the Marvell +driver, we do take all those 1s being written. Even the read-only bits +are being overwritten. + +For now, all the read-only bits should be emulated to have the zero +value. + +The other bits, that are write-1-to-clear bits are used to report +various kind of errors, and are never set by the emulated bridge, so +there is no need to support this write-1-to-clear bits mechanism. + +As a conclusion, the easiest solution is to simply emulate this status +register by returning zero when read, and ignore the writes to it. + +This has two visible effects: + + * The devsel is no longer 'unknown' in, i.e + + Flags: bus master, 66MHz, user-definable features, ?? devsel, latency 0 + + becomes: + + Flags: bus master, 66MHz, user-definable features, fast devsel, latency 0 + + in lspci -v. + + This was caused by a value of 11b being read for devsel, which is + an invalid value. This 11b value being read was due to a previous + write of 0xffff into the status register. + + * The capability list is no longer broken, because we indicate to the + Linux PCI core that we don't have a Capabilities Pointer in the PCI + configuration space of this bridge. The following message is + therefore no longer visible in lspci -v: + + Capabilities: [fc] <chain broken> + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Acked-by: Bjorn Helgaas <bhelgaas@google.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> +--- + drivers/pci/host/pci-mvebu.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +--- a/drivers/pci/host/pci-mvebu.c ++++ b/drivers/pci/host/pci-mvebu.c +@@ -69,7 +69,6 @@ struct mvebu_sw_pci_bridge { + u16 vendor; + u16 device; + u16 command; +- u16 status; + u16 class; + u8 interface; + u8 revision; +@@ -359,7 +358,6 @@ static void mvebu_sw_pci_bridge_init(str + + memset(bridge, 0, sizeof(struct mvebu_sw_pci_bridge)); + +- bridge->status = PCI_STATUS_CAP_LIST; + bridge->class = PCI_CLASS_BRIDGE_PCI; + bridge->vendor = PCI_VENDOR_ID_MARVELL; + bridge->device = MARVELL_EMULATED_PCI_PCI_BRIDGE_ID; +@@ -386,7 +384,7 @@ static int mvebu_sw_pci_bridge_read(stru + break; + + case PCI_COMMAND: +- *value = bridge->status << 16 | bridge->command; ++ *value = bridge->command; + break; + + case PCI_CLASS_REVISION: +@@ -479,7 +477,6 @@ static int mvebu_sw_pci_bridge_write(str + switch (where & ~3) { + case PCI_COMMAND: + bridge->command = value & 0xffff; +- bridge->status = value >> 16; + break; + + case PCI_BASE_ADDRESS_0 ... PCI_BASE_ADDRESS_1: diff --git a/target/linux/kirkwood/patches-3.10/0018-net-mv643xx_eth-use-phy_disconnect-instead-of-phy_de.patch b/target/linux/kirkwood/patches-3.10/0020-net-mv643xx_eth-use-phy_disconnect-instead-of-phy_de.patch index 513ee8990a..0974985105 100644 --- a/target/linux/kirkwood/patches-3.10/0018-net-mv643xx_eth-use-phy_disconnect-instead-of-phy_de.patch +++ b/target/linux/kirkwood/patches-3.10/0020-net-mv643xx_eth-use-phy_disconnect-instead-of-phy_de.patch @@ -1,7 +1,7 @@ -From 40a635881d8fedff7242598cd3bf892e4733f7dc Mon Sep 17 00:00:00 2001 +From 799e69d38053e344267360a583676eafe2ed8648 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Wed, 29 May 2013 21:32:43 +0200 -Subject: [PATCH 18/29] net: mv643xx_eth: use phy_disconnect instead of +Date: Wed, 29 May 2013 09:32:43 +0000 +Subject: [PATCH 20/29] net: mv643xx_eth: use phy_disconnect instead of phy_detach Using a separated mdio bus driver with mvmdio, phy_detach on network device @@ -11,15 +11,14 @@ to properly stop phy device from accessing network device prior removal of the network device. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> --- drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c -index d1cbfb1..748dcd3 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c -@@ -2805,7 +2805,7 @@ static int mv643xx_eth_remove(struct platform_device *pdev) +@@ -2805,7 +2805,7 @@ static int mv643xx_eth_remove(struct pla unregister_netdev(mp->dev); if (mp->phy != NULL) @@ -28,6 +27,3 @@ index d1cbfb1..748dcd3 100644 cancel_work_sync(&mp->tx_timeout_task); if (!IS_ERR(mp->clk)) --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0019-net-mv643xx_eth-use-managed-devm_ioremap-for-port-re.patch b/target/linux/kirkwood/patches-3.10/0021-net-mv643xx_eth-use-managed-devm_ioremap-for-port-re.patch index 3561248335..caf4d10850 100644 --- a/target/linux/kirkwood/patches-3.10/0019-net-mv643xx_eth-use-managed-devm_ioremap-for-port-re.patch +++ b/target/linux/kirkwood/patches-3.10/0021-net-mv643xx_eth-use-managed-devm_ioremap-for-port-re.patch @@ -1,21 +1,20 @@ -From ba7ccfb6824e89ea6175abcf854e7808597a2c40 Mon Sep 17 00:00:00 2001 +From 002271ca6718b5dfb8082873fb0a60abc1d9e8d5 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Wed, 29 May 2013 21:32:44 +0200 -Subject: [PATCH 19/29] net: mv643xx_eth: use managed devm_ioremap for port +Date: Wed, 29 May 2013 09:32:44 +0000 +Subject: [PATCH 21/29] net: mv643xx_eth: use managed devm_ioremap for port registers Make use of managed devm_ioremap and remove corresponding iounmap. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> --- drivers/net/ethernet/marvell/mv643xx_eth.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c -index 748dcd3..0a8c064 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c -@@ -2470,7 +2470,7 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) +@@ -2470,7 +2470,7 @@ static int mv643xx_eth_shared_probe(stru if (msp == NULL) return -ENOMEM; @@ -24,7 +23,7 @@ index 748dcd3..0a8c064 100644 if (msp->base == NULL) return -ENOMEM; -@@ -2498,7 +2498,6 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev) +@@ -2498,7 +2498,6 @@ static int mv643xx_eth_shared_remove(str { struct mv643xx_eth_shared_private *msp = platform_get_drvdata(pdev); @@ -32,6 +31,3 @@ index 748dcd3..0a8c064 100644 if (!IS_ERR(msp->clk)) clk_disable_unprepare(msp->clk); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0020-net-mv643xx_eth-add-phy_node-to-platform_data-struct.patch b/target/linux/kirkwood/patches-3.10/0022-net-mv643xx_eth-add-phy_node-to-platform_data-struct.patch index 9360f4bf8a..1bb740bbac 100644 --- a/target/linux/kirkwood/patches-3.10/0020-net-mv643xx_eth-add-phy_node-to-platform_data-struct.patch +++ b/target/linux/kirkwood/patches-3.10/0022-net-mv643xx_eth-add-phy_node-to-platform_data-struct.patch @@ -1,21 +1,20 @@ -From 76a09d3052c7c1c5d4a3fcdfee3a12cfc998d58f Mon Sep 17 00:00:00 2001 +From 30b19330e175f621b04718bc4e55db75768997aa Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Wed, 29 May 2013 21:32:45 +0200 -Subject: [PATCH 20/29] net: mv643xx_eth: add phy_node to platform_data struct +Date: Wed, 29 May 2013 09:32:45 +0000 +Subject: [PATCH 22/29] net: mv643xx_eth: add phy_node to platform_data struct This adds a struct device_node pointer for a phy passed by phandle to mv643xx_eth node. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> --- include/linux/mv643xx_eth.h | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h -index 141d395..6e8215b 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h -@@ -30,6 +30,7 @@ struct mv643xx_eth_shared_platform_data { +@@ -30,6 +30,7 @@ struct mv643xx_eth_shared_platform_data #define MV643XX_ETH_PHY_ADDR(x) (0x80 | (x)) #define MV643XX_ETH_PHY_NONE 0xff @@ -31,6 +30,3 @@ index 141d395..6e8215b 100644 /* * Use this MAC address if it is valid, overriding the --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0021-net-mv643xx_eth-use-of_phy_connect-if-phy_node-prese.patch b/target/linux/kirkwood/patches-3.10/0023-net-mv643xx_eth-use-of_phy_connect-if-phy_node-prese.patch index 2a46de0165..71e1a398ae 100644 --- a/target/linux/kirkwood/patches-3.10/0021-net-mv643xx_eth-use-of_phy_connect-if-phy_node-prese.patch +++ b/target/linux/kirkwood/patches-3.10/0023-net-mv643xx_eth-use-of_phy_connect-if-phy_node-prese.patch @@ -1,19 +1,18 @@ -From 04417da7ac6d1a2a38d4406d899ab92bf6e488e1 Mon Sep 17 00:00:00 2001 +From db22a1196162f981444d241f92d02e2e50d12ed7 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Wed, 29 May 2013 21:32:46 +0200 -Subject: [PATCH 21/29] net: mv643xx_eth: use of_phy_connect if phy_node +Date: Wed, 29 May 2013 09:32:46 +0000 +Subject: [PATCH 23/29] net: mv643xx_eth: use of_phy_connect if phy_node present This connects to a phy node passed to the port device instead of probing the phy by phy_addr. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> --- drivers/net/ethernet/marvell/mv643xx_eth.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) -diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c -index 0a8c064..946033b 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -60,6 +60,7 @@ @@ -24,7 +23,7 @@ index 0a8c064..946033b 100644 static char mv643xx_eth_driver_name[] = "mv643xx_eth"; static char mv643xx_eth_driver_version[] = "1.4"; -@@ -2715,17 +2716,27 @@ static int mv643xx_eth_probe(struct platform_device *pdev) +@@ -2715,17 +2716,27 @@ static int mv643xx_eth_probe(struct plat netif_set_real_num_tx_queues(dev, mp->txq_count); netif_set_real_num_rx_queues(dev, mp->rxq_count); @@ -59,6 +58,3 @@ index 0a8c064..946033b 100644 SET_ETHTOOL_OPS(dev, &mv643xx_eth_ethtool_ops); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0022-net-mv643xx_eth-proper-initialization-for-Kirkwood-S.patch b/target/linux/kirkwood/patches-3.10/0024-net-mv643xx_eth-proper-initialization-for-Kirkwood-S.patch index b83120bb65..50bafd3474 100644 --- a/target/linux/kirkwood/patches-3.10/0022-net-mv643xx_eth-proper-initialization-for-Kirkwood-S.patch +++ b/target/linux/kirkwood/patches-3.10/0024-net-mv643xx_eth-proper-initialization-for-Kirkwood-S.patch @@ -1,7 +1,7 @@ -From 3b0f26629fef1b55a71031b4ef4db27d0a66a0be Mon Sep 17 00:00:00 2001 +From 4c1ae9f272bf34388d0fbdc99aa18af2b6c9eda1 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Wed, 29 May 2013 21:32:47 +0200 -Subject: [PATCH 22/29] net: mv643xx_eth: proper initialization for Kirkwood +Date: Wed, 29 May 2013 09:32:47 +0000 +Subject: [PATCH 24/29] net: mv643xx_eth: proper initialization for Kirkwood SoCs Ethernet controllers found on Kirkwood SoCs not only suffer from loosing @@ -16,15 +16,14 @@ Moreover, system controllers on PPC using this driver should also be protected from clearing that bit. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> --- drivers/net/ethernet/marvell/mv643xx_eth.c | 11 +++++++++++ 1 file changed, 11 insertions(+) -diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c -index 946033b..af6bdcc 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c -@@ -116,6 +116,8 @@ static char mv643xx_eth_driver_version[] = "1.4"; +@@ -116,6 +116,8 @@ static char mv643xx_eth_driver_version[] #define LINK_UP 0x00000002 #define TXQ_COMMAND 0x0048 #define TXQ_FIX_PRIO_CONF 0x004c @@ -33,7 +32,7 @@ index 946033b..af6bdcc 100644 #define TX_BW_RATE 0x0050 #define TX_BW_MTU 0x0058 #define TX_BW_BURST 0x005c -@@ -2701,6 +2703,15 @@ static int mv643xx_eth_probe(struct platform_device *pdev) +@@ -2701,6 +2703,15 @@ static int mv643xx_eth_probe(struct plat mp->dev = dev; @@ -49,6 +48,3 @@ index 946033b..af6bdcc 100644 /* * Start with a default rate, and if there is a clock, allow * it to override the default. --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0025-ARM-kirkwood-remove-redundant-DT-board-files.patch b/target/linux/kirkwood/patches-3.10/0025-ARM-kirkwood-remove-redundant-DT-board-files.patch deleted file mode 100644 index 21877f48c3..0000000000 --- a/target/linux/kirkwood/patches-3.10/0025-ARM-kirkwood-remove-redundant-DT-board-files.patch +++ /dev/null @@ -1,439 +0,0 @@ -From 3bfe255171bf03fa4b776e8e10b93d4dbd7df1e8 Mon Sep 17 00:00:00 2001 -From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Tue, 2 Jul 2013 13:00:22 +0200 -Subject: [PATCH 25/29] ARM: kirkwood: remove redundant DT board files - -With DT support for mv643xx_eth board specific init for some boards now -is unneccessary. Remove those board files, Kconfig entries, and -corresponding entries in kirkwood_defconfig. - -Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> ---- - arch/arm/mach-kirkwood/Kconfig | 148 -------------------------------- - arch/arm/mach-kirkwood/Makefile | 22 +---- - arch/arm/mach-kirkwood/board-dnskw.c | 7 -- - arch/arm/mach-kirkwood/board-dt.c | 80 +---------------- - arch/arm/mach-kirkwood/board-lsxl.c | 52 ----------- - arch/arm/mach-kirkwood/board-readynas.c | 28 ------ - 6 files changed, 2 insertions(+), 335 deletions(-) - delete mode 100644 arch/arm/mach-kirkwood/board-lsxl.c - delete mode 100644 arch/arm/mach-kirkwood/board-readynas.c - -diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig -index b56bd3d..dc99588 100644 ---- a/arch/arm/mach-kirkwood/Kconfig -+++ b/arch/arm/mach-kirkwood/Kconfig -@@ -140,20 +140,6 @@ config ARCH_KIRKWOOD_DT - Say 'Y' here if you want your kernel to support the - Marvell Kirkwood using flattened device tree. - --config MACH_CLOUDBOX_DT -- bool "LaCie CloudBox NAS (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the LaCie -- CloudBox NAS, using Flattened Device Tree. -- --config MACH_DB88F628X_BP_DT -- bool "Marvell DB-88F628x-BP Development Board (Flattened Device Tree)" -- help -- Say 'Y' here if you want your kernel to support the Marvell -- DB-88F6281-BP and DB-88F6282-BP Development Board (Flattened -- Device Tree). -- - config MACH_DLINK_KIRKWOOD_DT - bool "D-Link Kirkwood-based NAS (Flattened Device Tree)" - select ARCH_KIRKWOOD_DT -@@ -162,140 +148,6 @@ config MACH_DLINK_KIRKWOOD_DT - Kirkwood-based D-Link NASes such as DNS-320 & DNS-325, - using Flattened Device Tree. - --config MACH_DOCKSTAR_DT -- bool "Seagate FreeAgent Dockstar (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Seagate FreeAgent Dockstar (Flattened Device Tree). -- --config MACH_DREAMPLUG_DT -- bool "Marvell DreamPlug (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Marvell DreamPlug (Flattened Device Tree). -- --config MACH_GOFLEXNET_DT -- bool "Seagate GoFlex Net (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Seagate GoFlex Net (Flattened Device Tree). -- --config MACH_GURUPLUG_DT -- bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Marvell GuruPlug Reference Board (Flattened Device Tree). -- --config MACH_IB62X0_DT -- bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- RaidSonic IB-NAS6210 & IB-NAS6220 devices, using -- Flattened Device Tree. -- --config MACH_ICONNECT_DT -- bool "Iomega Iconnect (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here to enable Iomega Iconnect support. -- --config MACH_INETSPACE_V2_DT -- bool "LaCie Internet Space v2 NAS (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the LaCie -- Internet Space v2 NAS, using Flattened Device Tree. -- --config MACH_IOMEGA_IX2_200_DT -- bool "Iomega StorCenter ix2-200 (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Iomega StorCenter ix2-200 (Flattened Device Tree). -- --config MACH_KM_KIRKWOOD_DT -- bool "Keymile Kirkwood Reference Design (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Keymile Kirkwood Reference Desgin, using Flattened Device Tree. -- --config MACH_LSXL_DT -- bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using -- Flattened Device Tree. -- --config MACH_MPLCEC4_DT -- bool "MPL CEC4 (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- MPL CEC4 (Flattened Device Tree). -- --config MACH_NETSPACE_LITE_V2_DT -- bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the LaCie -- Network Space Lite v2 NAS, using Flattened Device Tree. -- --config MACH_NETSPACE_MAX_V2_DT -- bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the LaCie -- Network Space Max v2 NAS, using Flattened Device Tree. -- --config MACH_NETSPACE_MINI_V2_DT -- bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the LaCie -- Network Space Mini v2 NAS using Flattened Device Tree. -- -- This board is embedded in a product named CloudBox, which -- provides automatic backup on a 100GB cloud storage. This -- should not confused with a more recent LaCie NAS also named -- CloudBox. For this last, the disk capacity is 1TB or above. -- --config MACH_NETSPACE_V2_DT -- bool "LaCie Network Space v2 NAS (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the LaCie -- Network Space v2 NAS, using Flattened Device Tree. -- --config MACH_OPENBLOCKS_A6_DT -- bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- Plat'Home OpenBlocks A6 (Flattened Device Tree). -- --config MACH_READYNAS_DT -- bool "NETGEAR ReadyNAS Duo v2 (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- select ARM_APPENDED_DTB -- select ARM_ATAG_DTB_COMPAT -- help -- Say 'Y' here if you want your kernel to support the -- NETGEAR ReadyNAS Duo v2 using Fattened Device Tree. -- --config MACH_TOPKICK_DT -- bool "USI Topkick (Flattened Device Tree)" -- select ARCH_KIRKWOOD_DT -- help -- Say 'Y' here if you want your kernel to support the -- USI Topkick, using Flattened Device Tree -- - config MACH_TS219_DT - bool "Device Tree for QNAP TS-11X, TS-21X NAS" - select ARCH_KIRKWOOD_DT -diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile -index 2fdc3a7..062f8c7 100644 ---- a/arch/arm/mach-kirkwood/Makefile -+++ b/arch/arm/mach-kirkwood/Makefile -@@ -19,25 +19,5 @@ obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o - obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o - - obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o --obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o --obj-$(CONFIG_MACH_DB88F628X_BP_DT) += board-db88f628x-bp.o - obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o --obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o --obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o --obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o --obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o --obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o --obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o --obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o --obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o --obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o --obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o --obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o --obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o --obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o --obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o --obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o --obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o --obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o --obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o --obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o -+obj-$(CONFIG_MACH_TS219_DT) += tsx1x-common.o -diff --git a/arch/arm/mach-kirkwood/board-dnskw.c b/arch/arm/mach-kirkwood/board-dnskw.c -index a1aa87f..2af7a95 100644 ---- a/arch/arm/mach-kirkwood/board-dnskw.c -+++ b/arch/arm/mach-kirkwood/board-dnskw.c -@@ -14,14 +14,9 @@ - #include <linux/kernel.h> - #include <linux/init.h> - #include <linux/platform_device.h> --#include <linux/mv643xx_eth.h> - #include <linux/gpio.h> - #include "common.h" - --static struct mv643xx_eth_platform_data dnskw_ge00_data = { -- .phy_addr = MV643XX_ETH_PHY_ADDR(8), --}; -- - /* Register any GPIO for output and set the value */ - static void __init dnskw_gpio_register(unsigned gpio, char *name, int def) - { -@@ -36,8 +31,6 @@ static void __init dnskw_gpio_register(unsigned gpio, char *name, int def) - - void __init dnskw_init(void) - { -- kirkwood_ge00_init(&dnskw_ge00_data); -- - /* Set NAS to turn back on after a power failure */ - dnskw_gpio_register(37, "dnskw:power:recover", 1); - } -diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c -index f5aed1f..15e61c8 100644 ---- a/arch/arm/mach-kirkwood/board-dt.c -+++ b/arch/arm/mach-kirkwood/board-dt.c -@@ -106,92 +106,14 @@ static void __init kirkwood_dt_init(void) - kexec_reinit = kirkwood_enable_pcie; - #endif - -- if (of_machine_is_compatible("globalscale,dreamplug")) -- dreamplug_init(); -- -- if (of_machine_is_compatible("globalscale,guruplug")) -- guruplug_dt_init(); -- - if (of_machine_is_compatible("dlink,dns-kirkwood")) - dnskw_init(); - -- if (of_machine_is_compatible("iom,iconnect")) -- iconnect_init(); -- -- if (of_machine_is_compatible("raidsonic,ib-nas62x0")) -- ib62x0_init(); -- -- if (of_machine_is_compatible("qnap,ts219")) -- qnap_dt_ts219_init(); -- -- if (of_machine_is_compatible("seagate,dockstar")) -- dockstar_dt_init(); -- -- if (of_machine_is_compatible("seagate,goflexnet")) -- goflexnet_init(); -- -- if (of_machine_is_compatible("buffalo,lsxl")) -- lsxl_init(); -- -- if (of_machine_is_compatible("iom,ix2-200")) -- iomega_ix2_200_init(); -- -- if (of_machine_is_compatible("keymile,km_kirkwood")) -- km_kirkwood_init(); -- -- if (of_machine_is_compatible("lacie,cloudbox") || -- of_machine_is_compatible("lacie,inetspace_v2") || -- of_machine_is_compatible("lacie,netspace_lite_v2") || -- of_machine_is_compatible("lacie,netspace_max_v2") || -- of_machine_is_compatible("lacie,netspace_mini_v2") || -- of_machine_is_compatible("lacie,netspace_v2")) -- ns2_init(); -- -- if (of_machine_is_compatible("marvell,db-88f6281-bp") || -- of_machine_is_compatible("marvell,db-88f6282-bp")) -- db88f628x_init(); -- -- if (of_machine_is_compatible("mpl,cec4")) -- mplcec4_init(); -- -- if (of_machine_is_compatible("netgear,readynas-duo-v2")) -- netgear_readynas_init(); -- -- if (of_machine_is_compatible("plathome,openblocks-a6")) -- openblocks_a6_init(); -- -- if (of_machine_is_compatible("usi,topkick")) -- usi_topkick_init(); -- - of_platform_populate(NULL, kirkwood_dt_match_table, NULL, NULL); - } - - static const char * const kirkwood_dt_board_compat[] = { -- "globalscale,dreamplug", -- "globalscale,guruplug", -- "dlink,dns-320", -- "dlink,dns-325", -- "iom,iconnect", -- "raidsonic,ib-nas62x0", -- "qnap,ts219", -- "seagate,dockstar", -- "seagate,goflexnet", -- "buffalo,lsxl", -- "iom,ix2-200", -- "keymile,km_kirkwood", -- "lacie,cloudbox", -- "lacie,inetspace_v2", -- "lacie,netspace_lite_v2", -- "lacie,netspace_max_v2", -- "lacie,netspace_mini_v2", -- "lacie,netspace_v2", -- "marvell,db-88f6281-bp", -- "marvell,db-88f6282-bp", -- "mpl,cec4", -- "netgear,readynas-duo-v2", -- "plathome,openblocks-a6", -- "usi,topkick", -- "zyxel,nsa310", -+ "marvell,kirkwood", - NULL - }; - -diff --git a/arch/arm/mach-kirkwood/board-lsxl.c b/arch/arm/mach-kirkwood/board-lsxl.c -deleted file mode 100644 -index 4ec8b7a..0000000 ---- a/arch/arm/mach-kirkwood/board-lsxl.c -+++ /dev/null -@@ -1,52 +0,0 @@ --/* -- * Copyright 2012 (C), Michael Walle <michael@walle.cc> -- * -- * arch/arm/mach-kirkwood/board-lsxl.c -- * -- * Buffalo Linkstation LS-XHL and LS-CHLv2 init for drivers not -- * converted to flattened device tree yet. -- * -- * This file is licensed under the terms of the GNU General Public -- * License version 2. This program is licensed "as is" without any -- * warranty of any kind, whether express or implied. -- */ -- --#include <linux/kernel.h> --#include <linux/init.h> --#include <linux/platform_device.h> --#include <linux/mv643xx_eth.h> --#include "common.h" -- --static struct mv643xx_eth_platform_data lsxl_ge00_data = { -- .phy_addr = MV643XX_ETH_PHY_ADDR(0), --}; -- --static struct mv643xx_eth_platform_data lsxl_ge01_data = { -- .phy_addr = MV643XX_ETH_PHY_ADDR(8), --}; -- --/* -- * On the LS-XHL/LS-CHLv2, the shutdown process is following: -- * - Userland monitors key events until the power switch goes to off position -- * - The board reboots -- * - U-boot starts and goes into an idle mode waiting for the user -- * to move the switch to ON position -- * -- */ --static void lsxl_power_off(void) --{ -- kirkwood_restart('h', NULL); --} -- --void __init lsxl_init(void) --{ -- /* -- * Basic setup. Needs to be called early. -- */ -- -- kirkwood_ge00_init(&lsxl_ge00_data); -- kirkwood_ge01_init(&lsxl_ge01_data); -- -- /* register power-off method */ -- pm_power_off = lsxl_power_off; --} -diff --git a/arch/arm/mach-kirkwood/board-readynas.c b/arch/arm/mach-kirkwood/board-readynas.c -deleted file mode 100644 -index fb42c20..0000000 ---- a/arch/arm/mach-kirkwood/board-readynas.c -+++ /dev/null -@@ -1,28 +0,0 @@ --/* -- * NETGEAR ReadyNAS Duo v2 Board setup for drivers not already -- * converted to DT. -- * -- * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org> -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License -- * as published by the Free Software Foundation; either version -- * 2 of the License, or (at your option) any later version. -- */ -- --#include <linux/kernel.h> --#include <linux/init.h> --#include <linux/platform_device.h> --#include <linux/mv643xx_eth.h> --#include <mach/kirkwood.h> --#include "common.h" -- --static struct mv643xx_eth_platform_data netgear_readynas_ge00_data = { -- .phy_addr = MV643XX_ETH_PHY_ADDR(0), --}; -- --void __init netgear_readynas_init(void) --{ -- kirkwood_ge00_init(&netgear_readynas_ge00_data); -- kirkwood_pcie_init(KW_PCIE0); --} --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0023-net-mv643xx_eth-add-DT-parsing-support.patch b/target/linux/kirkwood/patches-3.10/0025-net-mv643xx_eth-add-DT-parsing-support.patch index 1970bde098..897b261745 100644 --- a/target/linux/kirkwood/patches-3.10/0023-net-mv643xx_eth-add-DT-parsing-support.patch +++ b/target/linux/kirkwood/patches-3.10/0025-net-mv643xx_eth-add-DT-parsing-support.patch @@ -1,7 +1,7 @@ -From dd6cae3b60ee88b301f9325db144e70b5e12482e Mon Sep 17 00:00:00 2001 +From 0e701e28611fc08558406accadae40be36fe5289 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Wed, 29 May 2013 21:32:48 +0200 -Subject: [PATCH 23/29] net: mv643xx_eth: add DT parsing support +Date: Wed, 29 May 2013 09:32:48 +0000 +Subject: [PATCH 25/29] net: mv643xx_eth: add DT parsing support This adds device tree parsing support for the shared driver of mv643xx_eth. As the bindings are slightly different from current PPC bindings new binding @@ -9,15 +9,13 @@ documentation is also added. Following PPC-style device setup, the shared driver now also adds port platform_devices and sets up port platform_data. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> --- .../devicetree/bindings/net/marvell-orion-net.txt | 85 ++++++++++++ drivers/net/ethernet/marvell/mv643xx_eth.c | 153 ++++++++++++++++++++- 2 files changed, 234 insertions(+), 4 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/marvell-orion-net.txt -diff --git a/Documentation/devicetree/bindings/net/marvell-orion-net.txt b/Documentation/devicetree/bindings/net/marvell-orion-net.txt -new file mode 100644 -index 0000000..a73b79f --- /dev/null +++ b/Documentation/devicetree/bindings/net/marvell-orion-net.txt @@ -0,0 +1,85 @@ @@ -106,8 +104,6 @@ index 0000000..a73b79f + local-mac-address = [00 00 00 00 00 00]; + }; +}; -diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c -index af6bdcc..004a250 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -60,6 +60,9 @@ @@ -120,7 +116,7 @@ index af6bdcc..004a250 100644 #include <linux/of_mdio.h> static char mv643xx_eth_driver_name[] = "mv643xx_eth"; -@@ -2453,13 +2456,148 @@ static void infer_hw_params(struct mv643xx_eth_shared_private *msp) +@@ -2453,13 +2456,148 @@ static void infer_hw_params(struct mv643 } } @@ -270,7 +266,7 @@ index af6bdcc..004a250 100644 if (!mv643xx_eth_version_printed++) pr_notice("MV-643xx 10/100/1000 ethernet driver version %s\n", -@@ -2472,6 +2610,7 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) +@@ -2472,6 +2610,7 @@ static int mv643xx_eth_shared_probe(stru msp = devm_kzalloc(&pdev->dev, sizeof(*msp), GFP_KERNEL); if (msp == NULL) return -ENOMEM; @@ -278,7 +274,7 @@ index af6bdcc..004a250 100644 msp->base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); if (msp->base == NULL) -@@ -2488,12 +2627,15 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) +@@ -2488,12 +2627,15 @@ static int mv643xx_eth_shared_probe(stru if (dram) mv643xx_eth_conf_mbus_windows(msp, dram); @@ -296,7 +292,7 @@ index af6bdcc..004a250 100644 return 0; } -@@ -2501,9 +2643,9 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev) +@@ -2501,9 +2643,9 @@ static int mv643xx_eth_shared_remove(str { struct mv643xx_eth_shared_private *msp = platform_get_drvdata(pdev); @@ -307,7 +303,7 @@ index af6bdcc..004a250 100644 return 0; } -@@ -2513,6 +2655,7 @@ static struct platform_driver mv643xx_eth_shared_driver = { +@@ -2513,6 +2655,7 @@ static struct platform_driver mv643xx_et .driver = { .name = MV643XX_ETH_SHARED_NAME, .owner = THIS_MODULE, @@ -315,7 +311,7 @@ index af6bdcc..004a250 100644 }, }; -@@ -2721,6 +2864,8 @@ static int mv643xx_eth_probe(struct platform_device *pdev) +@@ -2721,6 +2864,8 @@ static int mv643xx_eth_probe(struct plat if (!IS_ERR(mp->clk)) { clk_prepare_enable(mp->clk); mp->t_clk = clk_get_rate(mp->clk); @@ -324,6 +320,3 @@ index af6bdcc..004a250 100644 } set_params(mp, pd); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0024-ARM-kirkwood-add-gigabit-ethernet-and-mvmdio-device-.patch b/target/linux/kirkwood/patches-3.10/0026-ARM-kirkwood-add-gigabit-ethernet-and-mvmdio-device-.patch index 31d216906d..23349093d7 100644 --- a/target/linux/kirkwood/patches-3.10/0024-ARM-kirkwood-add-gigabit-ethernet-and-mvmdio-device-.patch +++ b/target/linux/kirkwood/patches-3.10/0026-ARM-kirkwood-add-gigabit-ethernet-and-mvmdio-device-.patch @@ -1,7 +1,7 @@ -From 81547b563bd8340d98cdf2c020449ef2e7e8821d Mon Sep 17 00:00:00 2001 +From 678cc6aa6f66182cddfc0c8fc34d4ef196669b83 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> -Date: Tue, 2 Jul 2013 13:00:19 +0200 -Subject: [PATCH 24/29] ARM: kirkwood: add gigabit ethernet and mvmdio device +Date: Sun, 7 Jul 2013 22:34:56 +0200 +Subject: [PATCH 26/29] ARM: kirkwood: add gigabit ethernet and mvmdio device tree nodes This patch adds mv643xx_eth and mvmdio device tree nodes for DT enabled @@ -9,6 +9,7 @@ Kirkwood boards. Phy nodes are also added with reg property set on a per-board basis. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/boot/dts/kirkwood-cloudbox.dts | 16 +++++++ arch/arm/boot/dts/kirkwood-db.dtsi | 16 +++++++ @@ -38,8 +39,6 @@ Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> arch/arm/boot/dts/kirkwood.dtsi | 52 ++++++++++++++++++++++ 26 files changed, 414 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/kirkwood-cloudbox.dts b/arch/arm/boot/dts/kirkwood-cloudbox.dts -index 5f21d4e..03e1b68 100644 --- a/arch/arm/boot/dts/kirkwood-cloudbox.dts +++ b/arch/arm/boot/dts/kirkwood-cloudbox.dts @@ -87,3 +87,19 @@ @@ -62,8 +61,6 @@ index 5f21d4e..03e1b68 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-db.dtsi b/arch/arm/boot/dts/kirkwood-db.dtsi -index c87cfb8..ca8bf36 100644 --- a/arch/arm/boot/dts/kirkwood-db.dtsi +++ b/arch/arm/boot/dts/kirkwood-db.dtsi @@ -87,3 +87,19 @@ @@ -86,8 +83,6 @@ index c87cfb8..ca8bf36 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-dnskw.dtsi b/arch/arm/boot/dts/kirkwood-dnskw.dtsi -index 6875ac0..7c8bc17 100644 --- a/arch/arm/boot/dts/kirkwood-dnskw.dtsi +++ b/arch/arm/boot/dts/kirkwood-dnskw.dtsi @@ -217,3 +217,19 @@ @@ -110,8 +105,6 @@ index 6875ac0..7c8bc17 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-dockstar.dts b/arch/arm/boot/dts/kirkwood-dockstar.dts -index 0196cf6..b5aebbc 100644 --- a/arch/arm/boot/dts/kirkwood-dockstar.dts +++ b/arch/arm/boot/dts/kirkwood-dockstar.dts @@ -91,3 +91,20 @@ @@ -135,8 +128,6 @@ index 0196cf6..b5aebbc 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-dreamplug.dts b/arch/arm/boot/dts/kirkwood-dreamplug.dts -index 289e51d..e0c93d4 100644 --- a/arch/arm/boot/dts/kirkwood-dreamplug.dts +++ b/arch/arm/boot/dts/kirkwood-dreamplug.dts @@ -99,3 +99,31 @@ @@ -171,8 +162,6 @@ index 289e51d..e0c93d4 100644 + phy-handle = <ðphy1>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-goflexnet.dts b/arch/arm/boot/dts/kirkwood-goflexnet.dts -index c3573be..aba5849 100644 --- a/arch/arm/boot/dts/kirkwood-goflexnet.dts +++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts @@ -170,3 +170,19 @@ @@ -195,8 +184,6 @@ index c3573be..aba5849 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts b/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts -index 44fd97d..210dfb9 100644 --- a/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts +++ b/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts @@ -96,3 +96,33 @@ @@ -233,8 +220,6 @@ index 44fd97d..210dfb9 100644 + phy-handle = <ðphy1>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-ib62x0.dts b/arch/arm/boot/dts/kirkwood-ib62x0.dts -index 5335b1a..fff3e65 100644 --- a/arch/arm/boot/dts/kirkwood-ib62x0.dts +++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts @@ -119,3 +119,19 @@ @@ -257,8 +242,6 @@ index 5335b1a..fff3e65 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-iconnect.dts b/arch/arm/boot/dts/kirkwood-iconnect.dts -index e591d5d..9fe8ba2 100644 --- a/arch/arm/boot/dts/kirkwood-iconnect.dts +++ b/arch/arm/boot/dts/kirkwood-iconnect.dts @@ -176,3 +176,19 @@ @@ -281,8 +264,6 @@ index e591d5d..9fe8ba2 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts -index 3694e94..315f095 100644 --- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts +++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts @@ -191,3 +191,27 @@ @@ -313,8 +294,6 @@ index 3694e94..315f095 100644 + phy-handle = <ðphy1>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-is2.dts b/arch/arm/boot/dts/kirkwood-is2.dts -index 0bdce0a..2e5fe72 100644 --- a/arch/arm/boot/dts/kirkwood-is2.dts +++ b/arch/arm/boot/dts/kirkwood-is2.dts @@ -28,3 +28,5 @@ @@ -323,8 +302,6 @@ index 0bdce0a..2e5fe72 100644 }; + +ðphy0 { reg = <8>; }; -diff --git a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts -index 5bbd054..f9194b1 100644 --- a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts +++ b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts @@ -43,3 +43,19 @@ @@ -347,8 +324,6 @@ index 5bbd054..f9194b1 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-lsxl.dtsi b/arch/arm/boot/dts/kirkwood-lsxl.dtsi -index 37d45c4..dcc6470 100644 --- a/arch/arm/boot/dts/kirkwood-lsxl.dtsi +++ b/arch/arm/boot/dts/kirkwood-lsxl.dtsi @@ -201,3 +201,31 @@ @@ -383,8 +358,6 @@ index 37d45c4..dcc6470 100644 + phy-handle = <ðphy1>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-mplcec4.dts b/arch/arm/boot/dts/kirkwood-mplcec4.dts -index 90501cf..32a0133 100644 --- a/arch/arm/boot/dts/kirkwood-mplcec4.dts +++ b/arch/arm/boot/dts/kirkwood-mplcec4.dts @@ -190,3 +190,30 @@ @@ -418,8 +391,6 @@ index 90501cf..32a0133 100644 + phy-handle = <ðphy1>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts -index 1ca66ab..b66b2cd 100644 --- a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts +++ b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts @@ -178,3 +178,19 @@ @@ -442,8 +413,6 @@ index 1ca66ab..b66b2cd 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi -index 6affd92..6a48bfd 100644 --- a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi @@ -82,3 +82,19 @@ @@ -466,8 +435,6 @@ index 6affd92..6a48bfd 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-ns2.dts b/arch/arm/boot/dts/kirkwood-ns2.dts -index f2d36ecf..8ffd552 100644 --- a/arch/arm/boot/dts/kirkwood-ns2.dts +++ b/arch/arm/boot/dts/kirkwood-ns2.dts @@ -28,3 +28,5 @@ @@ -476,8 +443,6 @@ index f2d36ecf..8ffd552 100644 }; + +ðphy0 { reg = <8>; }; -diff --git a/arch/arm/boot/dts/kirkwood-ns2lite.dts b/arch/arm/boot/dts/kirkwood-ns2lite.dts -index b02eb4e..16332f8 100644 --- a/arch/arm/boot/dts/kirkwood-ns2lite.dts +++ b/arch/arm/boot/dts/kirkwood-ns2lite.dts @@ -28,3 +28,5 @@ @@ -486,8 +451,6 @@ index b02eb4e..16332f8 100644 }; + +ðphy0 { reg = <0>; }; -diff --git a/arch/arm/boot/dts/kirkwood-ns2max.dts b/arch/arm/boot/dts/kirkwood-ns2max.dts -index bcec4d6..68d767d 100644 --- a/arch/arm/boot/dts/kirkwood-ns2max.dts +++ b/arch/arm/boot/dts/kirkwood-ns2max.dts @@ -47,3 +47,5 @@ @@ -496,8 +459,6 @@ index bcec4d6..68d767d 100644 }; + +ðphy0 { reg = <8>; }; -diff --git a/arch/arm/boot/dts/kirkwood-ns2mini.dts b/arch/arm/boot/dts/kirkwood-ns2mini.dts -index adab1ab..5b1b17b 100644 --- a/arch/arm/boot/dts/kirkwood-ns2mini.dts +++ b/arch/arm/boot/dts/kirkwood-ns2mini.dts @@ -48,3 +48,5 @@ @@ -506,8 +467,6 @@ index adab1ab..5b1b17b 100644 }; + +ðphy0 { reg = <0>; }; -diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts -index d27f724..f8be3e3 100644 --- a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts +++ b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts @@ -210,3 +210,19 @@ @@ -530,8 +489,6 @@ index d27f724..f8be3e3 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts -index 66eb45b..34eacf2 100644 --- a/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/arch/arm/boot/dts/kirkwood-topkick.dts @@ -201,3 +201,19 @@ @@ -554,8 +511,6 @@ index 66eb45b..34eacf2 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood-ts219-6281.dts b/arch/arm/boot/dts/kirkwood-ts219-6281.dts -index 42648ab..fff3a3e 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6281.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6281.dts @@ -50,4 +50,6 @@ @@ -567,8 +522,6 @@ index 42648ab..fff3a3e 100644 +}; + +ðphy0 { reg = <8>; }; -diff --git a/arch/arm/boot/dts/kirkwood-ts219-6282.dts b/arch/arm/boot/dts/kirkwood-ts219-6282.dts -index 95ceeb9..ed0441a 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6282.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6282.dts @@ -50,4 +50,6 @@ @@ -580,8 +533,6 @@ index 95ceeb9..ed0441a 100644 +}; + +ðphy0 { reg = <0>; }; -diff --git a/arch/arm/boot/dts/kirkwood-ts219.dtsi b/arch/arm/boot/dts/kirkwood-ts219.dtsi -index 7c022fd..6b063eb 100644 --- a/arch/arm/boot/dts/kirkwood-ts219.dtsi +++ b/arch/arm/boot/dts/kirkwood-ts219.dtsi @@ -81,3 +81,19 @@ @@ -604,8 +555,6 @@ index 7c022fd..6b063eb 100644 + phy-handle = <ðphy0>; + }; +}; -diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi -index 7eef88f..ebc6dc4 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi @@ -203,5 +203,57 @@ @@ -666,6 +615,3 @@ index 7eef88f..ebc6dc4 100644 + }; }; }; --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0027-ARM-kirkwood-remove-redundant-DT-board-files.patch b/target/linux/kirkwood/patches-3.10/0027-ARM-kirkwood-remove-redundant-DT-board-files.patch new file mode 100644 index 0000000000..c0844e3901 --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/0027-ARM-kirkwood-remove-redundant-DT-board-files.patch @@ -0,0 +1,1116 @@ +From 3973689b8f58652143ffa433bec6096d22904ee0 Mon Sep 17 00:00:00 2001 +From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Date: Wed, 3 Jul 2013 18:57:51 +0200 +Subject: [PATCH 27/29] ARM: kirkwood: remove redundant DT board files + +With DT support for mv643xx_eth board specific init for some boards now +is unneccessary. Remove those board files, Kconfig entries, and +corresponding entries in kirkwood_defconfig. + +Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> +--- + arch/arm/configs/kirkwood_defconfig | 21 ---- + arch/arm/mach-kirkwood/Kconfig | 162 -------------------------- + arch/arm/mach-kirkwood/Makefile | 21 ---- + arch/arm/mach-kirkwood/board-db88f628x-bp.c | 24 ---- + arch/arm/mach-kirkwood/board-dnskw.c | 7 -- + arch/arm/mach-kirkwood/board-dockstar.c | 32 ----- + arch/arm/mach-kirkwood/board-dreamplug.c | 35 ------ + arch/arm/mach-kirkwood/board-dt.c | 82 +------------ + arch/arm/mach-kirkwood/board-goflexnet.c | 34 ------ + arch/arm/mach-kirkwood/board-guruplug.c | 33 ------ + arch/arm/mach-kirkwood/board-ib62x0.c | 29 ----- + arch/arm/mach-kirkwood/board-iconnect.c | 24 ---- + arch/arm/mach-kirkwood/board-iomega_ix2_200.c | 34 ------ + arch/arm/mach-kirkwood/board-km_kirkwood.c | 44 ------- + arch/arm/mach-kirkwood/board-lsxl.c | 52 --------- + arch/arm/mach-kirkwood/board-mplcec4.c | 35 ------ + arch/arm/mach-kirkwood/board-ns2.c | 35 ------ + arch/arm/mach-kirkwood/board-openblocks_a6.c | 26 ----- + arch/arm/mach-kirkwood/board-readynas.c | 28 ----- + arch/arm/mach-kirkwood/board-ts219.c | 43 ------- + arch/arm/mach-kirkwood/board-usi_topkick.c | 29 ----- + arch/arm/mach-kirkwood/common.h | 104 ----------------- + 22 files changed, 2 insertions(+), 932 deletions(-) + delete mode 100644 arch/arm/mach-kirkwood/board-db88f628x-bp.c + delete mode 100644 arch/arm/mach-kirkwood/board-dockstar.c + delete mode 100644 arch/arm/mach-kirkwood/board-dreamplug.c + delete mode 100644 arch/arm/mach-kirkwood/board-goflexnet.c + delete mode 100644 arch/arm/mach-kirkwood/board-guruplug.c + delete mode 100644 arch/arm/mach-kirkwood/board-ib62x0.c + delete mode 100644 arch/arm/mach-kirkwood/board-iconnect.c + delete mode 100644 arch/arm/mach-kirkwood/board-iomega_ix2_200.c + delete mode 100644 arch/arm/mach-kirkwood/board-km_kirkwood.c + delete mode 100644 arch/arm/mach-kirkwood/board-lsxl.c + delete mode 100644 arch/arm/mach-kirkwood/board-mplcec4.c + delete mode 100644 arch/arm/mach-kirkwood/board-ns2.c + delete mode 100644 arch/arm/mach-kirkwood/board-openblocks_a6.c + delete mode 100644 arch/arm/mach-kirkwood/board-readynas.c + delete mode 100644 arch/arm/mach-kirkwood/board-ts219.c + delete mode 100644 arch/arm/mach-kirkwood/board-usi_topkick.c + +--- a/arch/arm/configs/kirkwood_defconfig ++++ b/arch/arm/configs/kirkwood_defconfig +@@ -30,28 +30,7 @@ CONFIG_MACH_SHEEVAPLUG=y + CONFIG_MACH_T5325=y + CONFIG_MACH_TS219=y + CONFIG_MACH_TS41X=y +-CONFIG_MACH_CLOUDBOX_DT=y + CONFIG_MACH_DLINK_KIRKWOOD_DT=y +-CONFIG_MACH_DOCKSTAR_DT=y +-CONFIG_MACH_DREAMPLUG_DT=y +-CONFIG_MACH_GOFLEXNET_DT=y +-CONFIG_MACH_GURUPLUG_DT=y +-CONFIG_MACH_IB62X0_DT=y +-CONFIG_MACH_ICONNECT_DT=y +-CONFIG_MACH_INETSPACE_V2_DT=y +-CONFIG_MACH_IOMEGA_IX2_200_DT=y +-CONFIG_MACH_KM_KIRKWOOD_DT=y +-CONFIG_MACH_LSXL_DT=y +-CONFIG_MACH_MPLCEC4_DT=y +-CONFIG_MACH_NETSPACE_LITE_V2_DT=y +-CONFIG_MACH_NETSPACE_MAX_V2_DT=y +-CONFIG_MACH_NETSPACE_MINI_V2_DT=y +-CONFIG_MACH_NETSPACE_V2_DT=y +-CONFIG_MACH_NSA310_DT=y +-CONFIG_MACH_OPENBLOCKS_A6_DT=y +-CONFIG_MACH_READYNAS_DT=y +-CONFIG_MACH_TOPKICK_DT=y +-CONFIG_MACH_TS219_DT=y + # CONFIG_CPU_FEROCEON_OLD_ID is not set + CONFIG_PREEMPT=y + CONFIG_AEABI=y +--- a/arch/arm/mach-kirkwood/Kconfig ++++ b/arch/arm/mach-kirkwood/Kconfig +@@ -140,20 +140,6 @@ config ARCH_KIRKWOOD_DT + Say 'Y' here if you want your kernel to support the + Marvell Kirkwood using flattened device tree. + +-config MACH_CLOUDBOX_DT +- bool "LaCie CloudBox NAS (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the LaCie +- CloudBox NAS, using Flattened Device Tree. +- +-config MACH_DB88F628X_BP_DT +- bool "Marvell DB-88F628x-BP Development Board (Flattened Device Tree)" +- help +- Say 'Y' here if you want your kernel to support the Marvell +- DB-88F6281-BP and DB-88F6282-BP Development Board (Flattened +- Device Tree). +- + config MACH_DLINK_KIRKWOOD_DT + bool "D-Link Kirkwood-based NAS (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT +@@ -162,154 +148,6 @@ config MACH_DLINK_KIRKWOOD_DT + Kirkwood-based D-Link NASes such as DNS-320 & DNS-325, + using Flattened Device Tree. + +-config MACH_DOCKSTAR_DT +- bool "Seagate FreeAgent Dockstar (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Seagate FreeAgent Dockstar (Flattened Device Tree). +- +-config MACH_DREAMPLUG_DT +- bool "Marvell DreamPlug (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Marvell DreamPlug (Flattened Device Tree). +- +-config MACH_GOFLEXNET_DT +- bool "Seagate GoFlex Net (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Seagate GoFlex Net (Flattened Device Tree). +- +-config MACH_GURUPLUG_DT +- bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Marvell GuruPlug Reference Board (Flattened Device Tree). +- +-config MACH_IB62X0_DT +- bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- RaidSonic IB-NAS6210 & IB-NAS6220 devices, using +- Flattened Device Tree. +- +-config MACH_ICONNECT_DT +- bool "Iomega Iconnect (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here to enable Iomega Iconnect support. +- +-config MACH_INETSPACE_V2_DT +- bool "LaCie Internet Space v2 NAS (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the LaCie +- Internet Space v2 NAS, using Flattened Device Tree. +- +-config MACH_IOMEGA_IX2_200_DT +- bool "Iomega StorCenter ix2-200 (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Iomega StorCenter ix2-200 (Flattened Device Tree). +- +-config MACH_KM_KIRKWOOD_DT +- bool "Keymile Kirkwood Reference Design (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Keymile Kirkwood Reference Desgin, using Flattened Device Tree. +- +-config MACH_LSXL_DT +- bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using +- Flattened Device Tree. +- +-config MACH_MPLCEC4_DT +- bool "MPL CEC4 (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- MPL CEC4 (Flattened Device Tree). +- +-config MACH_NETSPACE_LITE_V2_DT +- bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the LaCie +- Network Space Lite v2 NAS, using Flattened Device Tree. +- +-config MACH_NETSPACE_MAX_V2_DT +- bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the LaCie +- Network Space Max v2 NAS, using Flattened Device Tree. +- +-config MACH_NETSPACE_MINI_V2_DT +- bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the LaCie +- Network Space Mini v2 NAS using Flattened Device Tree. +- +- This board is embedded in a product named CloudBox, which +- provides automatic backup on a 100GB cloud storage. This +- should not confused with a more recent LaCie NAS also named +- CloudBox. For this last, the disk capacity is 1TB or above. +- +-config MACH_NETSPACE_V2_DT +- bool "LaCie Network Space v2 NAS (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the LaCie +- Network Space v2 NAS, using Flattened Device Tree. +- +-config MACH_OPENBLOCKS_A6_DT +- bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- Plat'Home OpenBlocks A6 (Flattened Device Tree). +- +-config MACH_READYNAS_DT +- bool "NETGEAR ReadyNAS Duo v2 (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- select ARM_APPENDED_DTB +- select ARM_ATAG_DTB_COMPAT +- help +- Say 'Y' here if you want your kernel to support the +- NETGEAR ReadyNAS Duo v2 using Fattened Device Tree. +- +-config MACH_TOPKICK_DT +- bool "USI Topkick (Flattened Device Tree)" +- select ARCH_KIRKWOOD_DT +- help +- Say 'Y' here if you want your kernel to support the +- USI Topkick, using Flattened Device Tree +- +-config MACH_TS219_DT +- bool "Device Tree for QNAP TS-11X, TS-21X NAS" +- select ARCH_KIRKWOOD_DT +- select ARM_APPENDED_DTB +- select ARM_ATAG_DTB_COMPAT +- help +- Say 'Y' here if you want your kernel to support the QNAP +- TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and +- TS-219P+ Turbo NAS devices using Fattened Device Tree. +- There are two different Device Tree descriptions, depending +- on if the device is based on an if the board uses the MV6281 +- or MV6282. If you have the wrong one, the buttons will not +- work. +- + endmenu + + endif +--- a/arch/arm/mach-kirkwood/Makefile ++++ b/arch/arm/mach-kirkwood/Makefile +@@ -19,25 +19,4 @@ obj-$(CONFIG_MACH_TS219) += ts219-setup + obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o + + obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o +-obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o +-obj-$(CONFIG_MACH_DB88F628X_BP_DT) += board-db88f628x-bp.o + obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o +-obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o +-obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o +-obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o +-obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o +-obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o +-obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o +-obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o +-obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o +-obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o +-obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o +-obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o +-obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o +-obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o +-obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o +-obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o +-obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o +-obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o +-obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o +-obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o +--- a/arch/arm/mach-kirkwood/board-db88f628x-bp.c ++++ /dev/null +@@ -1,24 +0,0 @@ +-/* +- * Saeed Bishara <saeed@marvell.com> +- * +- * Marvell DB-88F628{1,2}-BP Development Board Setup +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/of.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data db88f628x_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(8), +-}; +- +-void __init db88f628x_init(void) +-{ +- kirkwood_ge00_init(&db88f628x_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-dnskw.c ++++ b/arch/arm/mach-kirkwood/board-dnskw.c +@@ -14,14 +14,9 @@ + #include <linux/kernel.h> + #include <linux/init.h> + #include <linux/platform_device.h> +-#include <linux/mv643xx_eth.h> + #include <linux/gpio.h> + #include "common.h" + +-static struct mv643xx_eth_platform_data dnskw_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(8), +-}; +- + /* Register any GPIO for output and set the value */ + static void __init dnskw_gpio_register(unsigned gpio, char *name, int def) + { +@@ -36,8 +31,6 @@ static void __init dnskw_gpio_register(u + + void __init dnskw_init(void) + { +- kirkwood_ge00_init(&dnskw_ge00_data); +- + /* Set NAS to turn back on after a power failure */ + dnskw_gpio_register(37, "dnskw:power:recover", 1); + } +--- a/arch/arm/mach-kirkwood/board-dockstar.c ++++ /dev/null +@@ -1,32 +0,0 @@ +-/* +- * arch/arm/mach-kirkwood/board-dockstar.c +- * +- * Seagate FreeAgent Dockstar Board Init for drivers not converted to +- * flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- * +- * Copied and modified for Seagate GoFlex Net support by +- * Joshua Coombs <josh.coombs@gmail.com> based on ArchLinux ARM's +- * GoFlex kernel patches. +- * +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data dockstar_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-void __init dockstar_dt_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&dockstar_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-dreamplug.c ++++ /dev/null +@@ -1,35 +0,0 @@ +-/* +- * Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> +- * +- * arch/arm/mach-kirkwood/board-dreamplug.c +- * +- * Marvell DreamPlug Reference Board Init for drivers not converted to +- * flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include <linux/gpio.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data dreamplug_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-static struct mv643xx_eth_platform_data dreamplug_ge01_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(1), +-}; +- +-void __init dreamplug_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&dreamplug_ge00_data); +- kirkwood_ge01_init(&dreamplug_ge01_data); +-} +--- a/arch/arm/mach-kirkwood/board-dt.c ++++ b/arch/arm/mach-kirkwood/board-dt.c +@@ -106,92 +106,14 @@ static void __init kirkwood_dt_init(void + kexec_reinit = kirkwood_enable_pcie; + #endif + +- if (of_machine_is_compatible("globalscale,dreamplug")) +- dreamplug_init(); +- +- if (of_machine_is_compatible("globalscale,guruplug")) +- guruplug_dt_init(); +- + if (of_machine_is_compatible("dlink,dns-kirkwood")) + dnskw_init(); + +- if (of_machine_is_compatible("iom,iconnect")) +- iconnect_init(); +- +- if (of_machine_is_compatible("raidsonic,ib-nas62x0")) +- ib62x0_init(); +- +- if (of_machine_is_compatible("qnap,ts219")) +- qnap_dt_ts219_init(); +- +- if (of_machine_is_compatible("seagate,dockstar")) +- dockstar_dt_init(); +- +- if (of_machine_is_compatible("seagate,goflexnet")) +- goflexnet_init(); +- +- if (of_machine_is_compatible("buffalo,lsxl")) +- lsxl_init(); +- +- if (of_machine_is_compatible("iom,ix2-200")) +- iomega_ix2_200_init(); +- +- if (of_machine_is_compatible("keymile,km_kirkwood")) +- km_kirkwood_init(); +- +- if (of_machine_is_compatible("lacie,cloudbox") || +- of_machine_is_compatible("lacie,inetspace_v2") || +- of_machine_is_compatible("lacie,netspace_lite_v2") || +- of_machine_is_compatible("lacie,netspace_max_v2") || +- of_machine_is_compatible("lacie,netspace_mini_v2") || +- of_machine_is_compatible("lacie,netspace_v2")) +- ns2_init(); +- +- if (of_machine_is_compatible("marvell,db-88f6281-bp") || +- of_machine_is_compatible("marvell,db-88f6282-bp")) +- db88f628x_init(); +- +- if (of_machine_is_compatible("mpl,cec4")) +- mplcec4_init(); +- +- if (of_machine_is_compatible("netgear,readynas-duo-v2")) +- netgear_readynas_init(); +- +- if (of_machine_is_compatible("plathome,openblocks-a6")) +- openblocks_a6_init(); +- +- if (of_machine_is_compatible("usi,topkick")) +- usi_topkick_init(); +- +- of_platform_populate(NULL, kirkwood_dt_match_table, NULL, NULL); ++ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); + } + + static const char * const kirkwood_dt_board_compat[] = { +- "globalscale,dreamplug", +- "globalscale,guruplug", +- "dlink,dns-320", +- "dlink,dns-325", +- "iom,iconnect", +- "raidsonic,ib-nas62x0", +- "qnap,ts219", +- "seagate,dockstar", +- "seagate,goflexnet", +- "buffalo,lsxl", +- "iom,ix2-200", +- "keymile,km_kirkwood", +- "lacie,cloudbox", +- "lacie,inetspace_v2", +- "lacie,netspace_lite_v2", +- "lacie,netspace_max_v2", +- "lacie,netspace_mini_v2", +- "lacie,netspace_v2", +- "marvell,db-88f6281-bp", +- "marvell,db-88f6282-bp", +- "mpl,cec4", +- "netgear,readynas-duo-v2", +- "plathome,openblocks-a6", +- "usi,topkick", +- "zyxel,nsa310", ++ "marvell,kirkwood", + NULL + }; + +--- a/arch/arm/mach-kirkwood/board-goflexnet.c ++++ /dev/null +@@ -1,34 +0,0 @@ +-/* +- * Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> +- * +- * arch/arm/mach-kirkwood/board-goflexnet.c +- * +- * Seagate GoFlext Net Board Init for drivers not converted to +- * flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- * +- * Copied and modified for Seagate GoFlex Net support by +- * Joshua Coombs <josh.coombs@gmail.com> based on ArchLinux ARM's +- * GoFlex kernel patches. +- * +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data goflexnet_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-void __init goflexnet_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&goflexnet_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-guruplug.c ++++ /dev/null +@@ -1,33 +0,0 @@ +-/* +- * arch/arm/mach-kirkwood/board-guruplug.c +- * +- * Marvell Guruplug Reference Board Init for drivers not converted to +- * flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include <linux/gpio.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data guruplug_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-static struct mv643xx_eth_platform_data guruplug_ge01_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(1), +-}; +- +-void __init guruplug_dt_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&guruplug_ge00_data); +- kirkwood_ge01_init(&guruplug_ge01_data); +-} +--- a/arch/arm/mach-kirkwood/board-ib62x0.c ++++ /dev/null +@@ -1,29 +0,0 @@ +-/* +- * Copyright 2012 (C), Simon Baatz <gmbnomis@gmail.com> +- * +- * arch/arm/mach-kirkwood/board-ib62x0.c +- * +- * RaidSonic ICY BOX IB-NAS6210 & IB-NAS6220 init for drivers not +- * converted to flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data ib62x0_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(8), +-}; +- +-void __init ib62x0_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&ib62x0_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-iconnect.c ++++ /dev/null +@@ -1,24 +0,0 @@ +-/* +- * arch/arm/mach-kirkwood/board-iconnect.c +- * +- * Iomega i-connect Board Setup +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/of.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data iconnect_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(11), +-}; +- +-void __init iconnect_init(void) +-{ +- kirkwood_ge00_init(&iconnect_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-iomega_ix2_200.c ++++ /dev/null +@@ -1,34 +0,0 @@ +-/* +- * arch/arm/mach-kirkwood/board-iomega_ix2_200.c +- * +- * Iomega StorCenter ix2-200 +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include <linux/ethtool.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data iomega_ix2_200_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_NONE, +- .speed = SPEED_1000, +- .duplex = DUPLEX_FULL, +-}; +- +-static struct mv643xx_eth_platform_data iomega_ix2_200_ge01_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(11), +-}; +- +-void __init iomega_ix2_200_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&iomega_ix2_200_ge00_data); +- kirkwood_ge01_init(&iomega_ix2_200_ge01_data); +-} +--- a/arch/arm/mach-kirkwood/board-km_kirkwood.c ++++ /dev/null +@@ -1,44 +0,0 @@ +-/* +- * Copyright 2012 2012 KEYMILE AG, CH-3097 Bern +- * Valentin Longchamp <valentin.longchamp@keymile.com> +- * +- * arch/arm/mach-kirkwood/board-km_kirkwood.c +- * +- * Keymile km_kirkwood Reference Desing Init for drivers not converted to +- * flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include <linux/clk.h> +-#include <linux/clk-private.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data km_kirkwood_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-void __init km_kirkwood_init(void) +-{ +- struct clk *sata_clk; +- /* +- * Our variant of kirkwood (integrated in the Bobcat) hangs on accessing +- * SATA bits (14-15) of the Clock Gating Control Register. Since these +- * devices are also not present in this variant, their clocks get +- * disabled because unused when clk_disable_unused() gets called. +- * That's why we change the flags to these clocks to CLK_IGNORE_UNUSED +- */ +- sata_clk = clk_get_sys("sata_mv.0", "0"); +- if (!IS_ERR(sata_clk)) +- sata_clk->flags |= CLK_IGNORE_UNUSED; +- sata_clk = clk_get_sys("sata_mv.0", "1"); +- if (!IS_ERR(sata_clk)) +- sata_clk->flags |= CLK_IGNORE_UNUSED; +- +- kirkwood_ge00_init(&km_kirkwood_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-lsxl.c ++++ /dev/null +@@ -1,52 +0,0 @@ +-/* +- * Copyright 2012 (C), Michael Walle <michael@walle.cc> +- * +- * arch/arm/mach-kirkwood/board-lsxl.c +- * +- * Buffalo Linkstation LS-XHL and LS-CHLv2 init for drivers not +- * converted to flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/platform_device.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data lsxl_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-static struct mv643xx_eth_platform_data lsxl_ge01_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(8), +-}; +- +-/* +- * On the LS-XHL/LS-CHLv2, the shutdown process is following: +- * - Userland monitors key events until the power switch goes to off position +- * - The board reboots +- * - U-boot starts and goes into an idle mode waiting for the user +- * to move the switch to ON position +- * +- */ +-static void lsxl_power_off(void) +-{ +- kirkwood_restart('h', NULL); +-} +- +-void __init lsxl_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- +- kirkwood_ge00_init(&lsxl_ge00_data); +- kirkwood_ge01_init(&lsxl_ge01_data); +- +- /* register power-off method */ +- pm_power_off = lsxl_power_off; +-} +--- a/arch/arm/mach-kirkwood/board-mplcec4.c ++++ /dev/null +@@ -1,35 +0,0 @@ +-/* +- * Copyright (C) 2012 MPL AG, Switzerland +- * Stefan Peter <s.peter@mpl.ch> +- * +- * arch/arm/mach-kirkwood/board-mplcec4.c +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data mplcec4_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(1), +-}; +- +-static struct mv643xx_eth_platform_data mplcec4_ge01_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(2), +-}; +- +-void __init mplcec4_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&mplcec4_ge00_data); +- kirkwood_ge01_init(&mplcec4_ge01_data); +-} +- +- +- +--- a/arch/arm/mach-kirkwood/board-ns2.c ++++ /dev/null +@@ -1,35 +0,0 @@ +-/* +- * Copyright 2012 (C), Simon Guinot <simon.guinot@sequanux.org> +- * +- * arch/arm/mach-kirkwood/board-ns2.c +- * +- * LaCie Network Space v2 board (and parents) initialization for drivers +- * not converted to flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/platform_device.h> +-#include <linux/mv643xx_eth.h> +-#include <linux/of.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data ns2_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(8), +-}; +- +-void __init ns2_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- if (of_machine_is_compatible("lacie,cloudbox") || +- of_machine_is_compatible("lacie,netspace_lite_v2") || +- of_machine_is_compatible("lacie,netspace_mini_v2")) +- ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); +- kirkwood_ge00_init(&ns2_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-openblocks_a6.c ++++ /dev/null +@@ -1,26 +0,0 @@ +-/* +- * Copyright 2012 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> +- * +- * arch/arm/mach-kirkwood/board-openblocks_a6.c +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data openblocks_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-void __init openblocks_a6_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&openblocks_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/board-readynas.c ++++ /dev/null +@@ -1,28 +0,0 @@ +-/* +- * NETGEAR ReadyNAS Duo v2 Board setup for drivers not already +- * converted to DT. +- * +- * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org> +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License +- * as published by the Free Software Foundation; either version +- * 2 of the License, or (at your option) any later version. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/platform_device.h> +-#include <linux/mv643xx_eth.h> +-#include <mach/kirkwood.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data netgear_readynas_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-void __init netgear_readynas_init(void) +-{ +- kirkwood_ge00_init(&netgear_readynas_ge00_data); +- kirkwood_pcie_init(KW_PCIE0); +-} +--- a/arch/arm/mach-kirkwood/board-ts219.c ++++ /dev/null +@@ -1,43 +0,0 @@ +-/* +- * +- * QNAP TS-11x/TS-21x Turbo NAS Board Setup via DT +- * +- * Copyright (C) 2012 Andrew Lunn <andrew@lunn.ch> +- * +- * Based on the board file ts219-setup.c: +- * +- * Copyright (C) 2009 Martin Michlmayr <tbm@cyrius.com> +- * Copyright (C) 2008 Byron Bradley <byron.bbradley@gmail.com> +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License +- * as published by the Free Software Foundation; either version +- * 2 of the License, or (at your option) any later version. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/platform_device.h> +-#include <linux/mv643xx_eth.h> +-#include <asm/mach-types.h> +-#include <asm/mach/arch.h> +-#include <mach/kirkwood.h> +-#include "common.h" +-#include "tsx1x-common.h" +- +-static struct mv643xx_eth_platform_data qnap_ts219_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(8), +-}; +- +-void __init qnap_dt_ts219_init(void) +-{ +- u32 dev, rev; +- +- kirkwood_pcie_id(&dev, &rev); +- if (dev == MV88F6282_DEV_ID) +- qnap_ts219_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); +- +- kirkwood_ge00_init(&qnap_ts219_ge00_data); +- +- pm_power_off = qnap_tsx1x_power_off; +-} +--- a/arch/arm/mach-kirkwood/board-usi_topkick.c ++++ /dev/null +@@ -1,29 +0,0 @@ +-/* +- * Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> +- * +- * arch/arm/mach-kirkwood/board-usi_topkick.c +- * +- * USI Topkick Init for drivers not converted to flattened device tree yet. +- * +- * This file is licensed under the terms of the GNU General Public +- * License version 2. This program is licensed "as is" without any +- * warranty of any kind, whether express or implied. +- */ +- +-#include <linux/kernel.h> +-#include <linux/init.h> +-#include <linux/mv643xx_eth.h> +-#include <linux/gpio.h> +-#include "common.h" +- +-static struct mv643xx_eth_platform_data topkick_ge00_data = { +- .phy_addr = MV643XX_ETH_PHY_ADDR(0), +-}; +- +-void __init usi_topkick_init(void) +-{ +- /* +- * Basic setup. Needs to be called early. +- */ +- kirkwood_ge00_init(&topkick_ge00_data); +-} +--- a/arch/arm/mach-kirkwood/common.h ++++ b/arch/arm/mach-kirkwood/common.h +@@ -55,116 +55,12 @@ void kirkwood_restart(char, const char * + void kirkwood_clk_init(void); + + /* board init functions for boards not fully converted to fdt */ +-#ifdef CONFIG_MACH_DREAMPLUG_DT +-void dreamplug_init(void); +-#else +-static inline void dreamplug_init(void) {}; +-#endif +-#ifdef CONFIG_MACH_GURUPLUG_DT +-void guruplug_dt_init(void); +-#else +-static inline void guruplug_dt_init(void) {}; +-#endif +-#ifdef CONFIG_MACH_TS219_DT +-void qnap_dt_ts219_init(void); +-#else +-static inline void qnap_dt_ts219_init(void) {}; +-#endif +- + #ifdef CONFIG_MACH_DLINK_KIRKWOOD_DT + void dnskw_init(void); + #else + static inline void dnskw_init(void) {}; + #endif + +-#ifdef CONFIG_MACH_ICONNECT_DT +-void iconnect_init(void); +-#else +-static inline void iconnect_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_IB62X0_DT +-void ib62x0_init(void); +-#else +-static inline void ib62x0_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_DOCKSTAR_DT +-void dockstar_dt_init(void); +-#else +-static inline void dockstar_dt_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_GOFLEXNET_DT +-void goflexnet_init(void); +-#else +-static inline void goflexnet_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_LSXL_DT +-void lsxl_init(void); +-#else +-static inline void lsxl_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_IOMEGA_IX2_200_DT +-void iomega_ix2_200_init(void); +-#else +-static inline void iomega_ix2_200_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_KM_KIRKWOOD_DT +-void km_kirkwood_init(void); +-#else +-static inline void km_kirkwood_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_DB88F628X_BP_DT +-void db88f628x_init(void); +-#else +-static inline void db88f628x_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_MPLCEC4_DT +-void mplcec4_init(void); +-#else +-static inline void mplcec4_init(void) {}; +-#endif +- +-#if defined(CONFIG_MACH_INETSPACE_V2_DT) || \ +- defined(CONFIG_MACH_NETSPACE_V2_DT) || \ +- defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \ +- defined(CONFIG_MACH_NETSPACE_LITE_V2_DT) || \ +- defined(CONFIG_MACH_NETSPACE_MINI_V2_DT) +-void ns2_init(void); +-#else +-static inline void ns2_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_OPENBLOCKS_A6_DT +-void openblocks_a6_init(void); +-#else +-static inline void openblocks_a6_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_READYNAS_DT +-void netgear_readynas_init(void); +-#else +-static inline void netgear_readynas_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_TOPKICK_DT +-void usi_topkick_init(void); +-#else +-static inline void usi_topkick_init(void) {}; +-#endif +- +-#ifdef CONFIG_MACH_CLOUDBOX_DT +-void cloudbox_init(void); +-#else +-static inline void cloudbox_init(void) {}; +-#endif +- + /* early init functions not converted to fdt yet */ + char *kirkwood_id(void); + void kirkwood_l2_init(void); diff --git a/target/linux/kirkwood/patches-3.10/0026-ARM-kirkwood-remove-legacy-clk-alias-for-mv643xx_eth.patch b/target/linux/kirkwood/patches-3.10/0028-ARM-kirkwood-remove-legacy-clk-alias-for-mv643xx_eth.patch index 98cad19510..08e9bd676b 100644 --- a/target/linux/kirkwood/patches-3.10/0026-ARM-kirkwood-remove-legacy-clk-alias-for-mv643xx_eth.patch +++ b/target/linux/kirkwood/patches-3.10/0028-ARM-kirkwood-remove-legacy-clk-alias-for-mv643xx_eth.patch @@ -1,21 +1,20 @@ -From dcfe8d8652de29fae2e247137d0e776fdda60b14 Mon Sep 17 00:00:00 2001 +From 57bad8fd425fd4fd2ae6e4ae1e7e19c9281d2d3d Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Date: Tue, 2 Jul 2013 13:00:23 +0200 -Subject: [PATCH 26/29] ARM: kirkwood: remove legacy clk alias for mv643xx_eth +Subject: [PATCH 28/29] ARM: kirkwood: remove legacy clk alias for mv643xx_eth With all boards converted to DT enabled mv643xx_eth we can now remove the clock alias for gbe clocks. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Signed-off-by: Jason Cooper <jason@lakedaemon.net> --- arch/arm/mach-kirkwood/board-dt.c | 2 -- 1 file changed, 2 deletions(-) -diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c -index 15e61c8..a6ff0a8 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c -@@ -66,12 +66,10 @@ static void __init kirkwood_legacy_clk_init(void) +@@ -66,12 +66,10 @@ static void __init kirkwood_legacy_clk_i */ clkspec.args[0] = CGC_BIT_GE0; clk = of_clk_get_from_provider(&clkspec); @@ -28,6 +27,3 @@ index 15e61c8..a6ff0a8 100644 clk_prepare_enable(clk); } --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0027-net-mv643xx_eth-do-not-use-port-number-as-platform-d.patch b/target/linux/kirkwood/patches-3.10/0029-net-mv643xx_eth-do-not-use-port-number-as-platform-d.patch index 1928a7c54a..84ac77991c 100644 --- a/target/linux/kirkwood/patches-3.10/0027-net-mv643xx_eth-do-not-use-port-number-as-platform-d.patch +++ b/target/linux/kirkwood/patches-3.10/0029-net-mv643xx_eth-do-not-use-port-number-as-platform-d.patch @@ -1,7 +1,7 @@ -From eac92acae29cfab34785d61cbb3218e88e487b77 Mon Sep 17 00:00:00 2001 +From dc4eff91629aa5132f9c0737ef6d9ef013d4f8ce Mon Sep 17 00:00:00 2001 From: Jonas Gorski <jogo@openwrt.org> -Date: Mon, 8 Jul 2013 00:35:12 +0200 -Subject: [PATCH 27/29] net: mv643xx_eth: do not use port number as platform +Date: Mon, 8 Jul 2013 00:44:55 +0200 +Subject: [PATCH 29/29] net: mv643xx_eth: do not use port number as platform device id The port number is only local to the ethernet block, not global, so @@ -12,15 +12,14 @@ Fix this by using the array index offset for the allocated platform devices as the id. Signed-off-by: Jonas Gorski <jogo@openwrt.org> +Signed-off-by: David S. Miller <davem@davemloft.net> --- drivers/net/ethernet/marvell/mv643xx_eth.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) -diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c -index 004a250..e57d292 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c -@@ -2483,6 +2483,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev, +@@ -2483,6 +2483,7 @@ static int mv643xx_eth_shared_of_add_por struct resource res; const char *mac_addr; int ret; @@ -28,7 +27,7 @@ index 004a250..e57d292 100644 memset(&ppd, 0, sizeof(ppd)); ppd.shared = pdev; -@@ -2503,6 +2504,14 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev, +@@ -2503,6 +2504,14 @@ static int mv643xx_eth_shared_of_add_por return -EINVAL; } @@ -43,7 +42,7 @@ index 004a250..e57d292 100644 mac_addr = of_get_mac_address(pnp); if (mac_addr) memcpy(ppd.mac_addr, mac_addr, 6); -@@ -2521,7 +2530,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev, +@@ -2521,7 +2530,7 @@ static int mv643xx_eth_shared_of_add_por of_property_read_u32(pnp, "duplex", &ppd.duplex); } @@ -52,7 +51,7 @@ index 004a250..e57d292 100644 if (!ppdev) return -ENOMEM; ppdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); -@@ -2538,7 +2547,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev, +@@ -2538,7 +2547,7 @@ static int mv643xx_eth_shared_of_add_por if (ret) goto port_err; @@ -61,6 +60,3 @@ index 004a250..e57d292 100644 return 0; --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/0050-of-add-support-for-parsing-mac-addresses-from-mtd.patch b/target/linux/kirkwood/patches-3.10/0050-of-add-support-for-parsing-mac-addresses-from-mtd.patch index bc0cbb2e0b..f956c58737 100644 --- a/target/linux/kirkwood/patches-3.10/0050-of-add-support-for-parsing-mac-addresses-from-mtd.patch +++ b/target/linux/kirkwood/patches-3.10/0050-of-add-support-for-parsing-mac-addresses-from-mtd.patch @@ -8,8 +8,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> drivers/of/of_net.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) -diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c -index ffab033..8b40ac6 100644 --- a/drivers/of/of_net.c +++ b/drivers/of/of_net.c @@ -10,6 +10,7 @@ @@ -20,7 +18,7 @@ index ffab033..8b40ac6 100644 /** * It maps 'enum phy_interface_t' found in include/linux/phy.h -@@ -55,6 +56,103 @@ const int of_get_phy_mode(struct device_node *np) +@@ -55,6 +56,103 @@ const int of_get_phy_mode(struct device_ } EXPORT_SYMBOL_GPL(of_get_phy_mode); @@ -124,7 +122,7 @@ index ffab033..8b40ac6 100644 /** * Search the device tree for the best MAC address to use. 'mac-address' is * checked first, because that is supposed to contain to "most recent" MAC -@@ -89,6 +187,6 @@ const void *of_get_mac_address(struct device_node *np) +@@ -89,6 +187,6 @@ const void *of_get_mac_address(struct de if (pp && (pp->length == 6) && is_valid_ether_addr(pp->value)) return pp->value; @@ -132,6 +130,3 @@ index ffab033..8b40ac6 100644 + return of_get_mac_address_mtd(np); } EXPORT_SYMBOL(of_get_mac_address); --- -1.8.4.rc1 - diff --git a/target/linux/kirkwood/patches-3.10/110-ib62x0.patch b/target/linux/kirkwood/patches-3.10/110-ib62x0.patch new file mode 100644 index 0000000000..7404decd7e --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/110-ib62x0.patch @@ -0,0 +1,84 @@ +--- a/arch/arm/boot/dts/kirkwood-ib62x0.dts ++++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts +@@ -5,7 +5,7 @@ + + / { + model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)"; +- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; ++ compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; + + memory { + device_type = "memory"; +@@ -50,6 +50,7 @@ + marvell,function = "gpio"; + }; + }; ++ + serial@12000 { + status = "okay"; + }; +@@ -64,19 +65,18 @@ + + partition@0 { + label = "u-boot"; +- reg = <0x0000000 0x100000>; ++ reg = <0x0000000 0xe0000>; + }; + +- partition@100000 { +- label = "uImage"; +- reg = <0x0100000 0x600000>; ++ partition@e0000 { ++ label = "u-boot environment"; ++ reg = <0xe0000 0x100000>; + }; + +- partition@700000 { +- label = "root"; +- reg = <0x0700000 0xf900000>; ++ partition@100000 { ++ label = "rootfs"; ++ reg = <0x100000 0xff00000>; + }; +- + }; + }; + +@@ -84,6 +84,7 @@ + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; ++ + button@1 { + label = "USB Copy"; + linux,code = <133>; +@@ -95,6 +96,7 @@ + gpios = <&gpio0 28 1>; + }; + }; ++ + gpio-leds { + compatible = "gpio-leds"; + +@@ -112,12 +114,11 @@ + gpios = <&gpio0 27 0>; + }; + }; ++ + gpio_poweroff { + compatible = "gpio-poweroff"; + gpios = <&gpio0 24 0>; + }; +- +- + }; + + &mdio { +@@ -131,6 +132,7 @@ + + ð0 { + status = "okay"; ++ + ethernet0-port@0 { + phy-handle = <ðphy0>; + }; |