diff options
Diffstat (limited to 'target/linux/octeon/patches-3.14')
5 files changed, 0 insertions, 334 deletions
diff --git a/target/linux/octeon/patches-3.14/0010-MIPS-octeon-Add-interface-mode-detection-for-Octeon-.patch b/target/linux/octeon/patches-3.14/0010-MIPS-octeon-Add-interface-mode-detection-for-Octeon-.patch deleted file mode 100644 index 0678df29e7..0000000000 --- a/target/linux/octeon/patches-3.14/0010-MIPS-octeon-Add-interface-mode-detection-for-Octeon-.patch +++ /dev/null @@ -1,202 +0,0 @@ -From d8ce75934b888df0bd73dfd9c030a2b034a04977 Mon Sep 17 00:00:00 2001 -From: Alex Smith <alex.smith@imgtec.com> -Date: Thu, 29 May 2014 11:10:01 +0100 -Subject: [PATCH] MIPS: octeon: Add interface mode detection for Octeon II - -Add interface mode detection for Octeon II. This is necessary to detect -the interface modes correctly on the UBNT E200 board. Code is taken -from the UBNT GPL source release, with some alterations: SRIO, ILK and -RXAUI interface modes are removed and instead return disabled as these -modes are not currently supported. - -Signed-off-by: Alex Smith <alex.smith@imgtec.com> -Tested-by: David Daney <david.daney@cavium.com> -Cc: linux-mips@linux-mips.org -Patchwork: https://patchwork.linux-mips.org/patch/7039/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---- - arch/mips/cavium-octeon/executive/cvmx-helper.c | 166 ++++++++++++++++++++++++ - 1 file changed, 166 insertions(+) - ---- a/arch/mips/cavium-octeon/executive/cvmx-helper.c -+++ b/arch/mips/cavium-octeon/executive/cvmx-helper.c -@@ -106,6 +106,158 @@ int cvmx_helper_ports_on_interface(int i - EXPORT_SYMBOL_GPL(cvmx_helper_ports_on_interface); - - /** -+ * @INTERNAL -+ * Return interface mode for CN68xx. -+ */ -+static cvmx_helper_interface_mode_t __cvmx_get_mode_cn68xx(int interface) -+{ -+ union cvmx_mio_qlmx_cfg qlm_cfg; -+ switch (interface) { -+ case 0: -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(0)); -+ /* QLM is disabled when QLM SPD is 15. */ -+ if (qlm_cfg.s.qlm_spd == 15) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ if (qlm_cfg.s.qlm_cfg == 2) -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ else if (qlm_cfg.s.qlm_cfg == 3) -+ return CVMX_HELPER_INTERFACE_MODE_XAUI; -+ else -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ case 2: -+ case 3: -+ case 4: -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(interface)); -+ /* QLM is disabled when QLM SPD is 15. */ -+ if (qlm_cfg.s.qlm_spd == 15) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ if (qlm_cfg.s.qlm_cfg == 2) -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ else if (qlm_cfg.s.qlm_cfg == 3) -+ return CVMX_HELPER_INTERFACE_MODE_XAUI; -+ else -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ case 7: -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(3)); -+ /* QLM is disabled when QLM SPD is 15. */ -+ if (qlm_cfg.s.qlm_spd == 15) { -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } else if (qlm_cfg.s.qlm_cfg != 0) { -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(1)); -+ if (qlm_cfg.s.qlm_cfg != 0) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } -+ return CVMX_HELPER_INTERFACE_MODE_NPI; -+ case 8: -+ return CVMX_HELPER_INTERFACE_MODE_LOOP; -+ default: -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } -+} -+ -+/** -+ * @INTERNAL -+ * Return interface mode for an Octeon II -+ */ -+static cvmx_helper_interface_mode_t __cvmx_get_mode_octeon2(int interface) -+{ -+ union cvmx_gmxx_inf_mode mode; -+ -+ if (OCTEON_IS_MODEL(OCTEON_CN68XX)) -+ return __cvmx_get_mode_cn68xx(interface); -+ -+ if (interface == 2) -+ return CVMX_HELPER_INTERFACE_MODE_NPI; -+ -+ if (interface == 3) -+ return CVMX_HELPER_INTERFACE_MODE_LOOP; -+ -+ /* Only present in CN63XX & CN66XX Octeon model */ -+ if ((OCTEON_IS_MODEL(OCTEON_CN63XX) && -+ (interface == 4 || interface == 5)) || -+ (OCTEON_IS_MODEL(OCTEON_CN66XX) && -+ interface >= 4 && interface <= 7)) { -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } -+ -+ if (OCTEON_IS_MODEL(OCTEON_CN66XX)) { -+ union cvmx_mio_qlmx_cfg mio_qlm_cfg; -+ -+ /* QLM2 is SGMII0 and QLM1 is SGMII1 */ -+ if (interface == 0) -+ mio_qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(2)); -+ else if (interface == 1) -+ mio_qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(1)); -+ else -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ if (mio_qlm_cfg.s.qlm_spd == 15) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ if (mio_qlm_cfg.s.qlm_cfg == 9) -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ else if (mio_qlm_cfg.s.qlm_cfg == 11) -+ return CVMX_HELPER_INTERFACE_MODE_XAUI; -+ else -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } else if (OCTEON_IS_MODEL(OCTEON_CN61XX)) { -+ union cvmx_mio_qlmx_cfg qlm_cfg; -+ -+ if (interface == 0) { -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(2)); -+ if (qlm_cfg.s.qlm_cfg == 2) -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ else if (qlm_cfg.s.qlm_cfg == 3) -+ return CVMX_HELPER_INTERFACE_MODE_XAUI; -+ else -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } else if (interface == 1) { -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(0)); -+ if (qlm_cfg.s.qlm_cfg == 2) -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ else if (qlm_cfg.s.qlm_cfg == 3) -+ return CVMX_HELPER_INTERFACE_MODE_XAUI; -+ else -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } -+ } else if (OCTEON_IS_MODEL(OCTEON_CNF71XX)) { -+ if (interface == 0) { -+ union cvmx_mio_qlmx_cfg qlm_cfg; -+ qlm_cfg.u64 = cvmx_read_csr(CVMX_MIO_QLMX_CFG(0)); -+ if (qlm_cfg.s.qlm_cfg == 2) -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ } -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } -+ -+ if (interface == 1 && OCTEON_IS_MODEL(OCTEON_CN63XX)) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface)); -+ -+ if (OCTEON_IS_MODEL(OCTEON_CN63XX)) { -+ switch (mode.cn63xx.mode) { -+ case 0: -+ return CVMX_HELPER_INTERFACE_MODE_SGMII; -+ case 1: -+ return CVMX_HELPER_INTERFACE_MODE_XAUI; -+ default: -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ } -+ } else { -+ if (!mode.s.en) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ if (mode.s.type) -+ return CVMX_HELPER_INTERFACE_MODE_GMII; -+ else -+ return CVMX_HELPER_INTERFACE_MODE_RGMII; -+ } -+} -+ -+/** - * Get the operating mode of an interface. Depending on the Octeon - * chip and configuration, this function returns an enumeration - * of the type of packet I/O supported by an interface. -@@ -118,6 +270,20 @@ EXPORT_SYMBOL_GPL(cvmx_helper_ports_on_i - cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface) - { - union cvmx_gmxx_inf_mode mode; -+ -+ if (interface < 0 || -+ interface >= cvmx_helper_get_number_of_interfaces()) -+ return CVMX_HELPER_INTERFACE_MODE_DISABLED; -+ -+ /* -+ * Octeon II models -+ */ -+ if (OCTEON_IS_MODEL(OCTEON_CN6XXX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)) -+ return __cvmx_get_mode_octeon2(interface); -+ -+ /* -+ * Octeon and Octeon Plus models -+ */ - if (interface == 2) - return CVMX_HELPER_INTERFACE_MODE_NPI; - diff --git a/target/linux/octeon/patches-3.14/0011-MIPS-Octeon-Add-twsi-interrupt-initialization-for-OC.patch b/target/linux/octeon/patches-3.14/0011-MIPS-Octeon-Add-twsi-interrupt-initialization-for-OC.patch deleted file mode 100644 index 382410f239..0000000000 --- a/target/linux/octeon/patches-3.14/0011-MIPS-Octeon-Add-twsi-interrupt-initialization-for-OC.patch +++ /dev/null @@ -1,47 +0,0 @@ -From a53825ef4e9b2f42a21ad2b903f4d0ce691a5d63 Mon Sep 17 00:00:00 2001 -From: Eunbong Song <eunb.song@samsung.com> -Date: Tue, 22 Apr 2014 06:16:15 +0000 -Subject: [PATCH] MIPS: Octeon: Add twsi interrupt initialization for OCTEON - 3XXX, 5XXX, 63XX - -In octeon_3xxx.dts file, there is a definiton for twsi/twsi2 interrupts. -But there is no code for initialization of this interrupts. This patch adds -code for initialization of twsi interrupts. - -Signed-off-by: Eunbong Song <eunb.song@samsung.com> -Cc: linux-kernel@vger.kernel.org -Cc: linux-mips@linux-mips.org -Patchwork: https://patchwork.linux-mips.org/patch/6816/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---- - arch/mips/cavium-octeon/octeon-irq.c | 2 ++ - arch/mips/include/asm/mach-cavium-octeon/irq.h | 2 ++ - 2 files changed, 4 insertions(+) - ---- a/arch/mips/cavium-octeon/octeon-irq.c -+++ b/arch/mips/cavium-octeon/octeon-irq.c -@@ -1260,11 +1260,13 @@ static void __init octeon_irq_init_ciu(v - for (i = 0; i < 4; i++) - octeon_irq_force_ciu_mapping(ciu_domain, i + OCTEON_IRQ_PCI_MSI0, 0, i + 40); - -+ octeon_irq_force_ciu_mapping(ciu_domain, OCTEON_IRQ_TWSI, 0, 45); - octeon_irq_force_ciu_mapping(ciu_domain, OCTEON_IRQ_RML, 0, 46); - for (i = 0; i < 4; i++) - octeon_irq_force_ciu_mapping(ciu_domain, i + OCTEON_IRQ_TIMER0, 0, i + 52); - - octeon_irq_force_ciu_mapping(ciu_domain, OCTEON_IRQ_USB0, 0, 56); -+ octeon_irq_force_ciu_mapping(ciu_domain, OCTEON_IRQ_TWSI2, 0, 59); - - /* CIU_1 */ - for (i = 0; i < 16; i++) ---- a/arch/mips/include/asm/mach-cavium-octeon/irq.h -+++ b/arch/mips/include/asm/mach-cavium-octeon/irq.h -@@ -35,6 +35,8 @@ enum octeon_irq { - OCTEON_IRQ_PCI_MSI2, - OCTEON_IRQ_PCI_MSI3, - -+ OCTEON_IRQ_TWSI, -+ OCTEON_IRQ_TWSI2, - OCTEON_IRQ_RML, - OCTEON_IRQ_TIMER0, - OCTEON_IRQ_TIMER1, diff --git a/target/linux/octeon/patches-3.14/100-ubnt_edgerouter2_support.patch b/target/linux/octeon/patches-3.14/100-ubnt_edgerouter2_support.patch deleted file mode 100644 index 7891e7129a..0000000000 --- a/target/linux/octeon/patches-3.14/100-ubnt_edgerouter2_support.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h -+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h -@@ -228,6 +228,8 @@ enum cvmx_board_types_enum { - */ - CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001, - CVMX_BOARD_TYPE_UBNT_E100 = 20002, -+ CVMX_BOARD_TYPE_UBNT_E200 = 20003, -+ CVMX_BOARD_TYPE_UBNT_E220 = 20005, - CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000, - - /* The remaining range is reserved for future use. */ -@@ -327,6 +329,8 @@ static inline const char *cvmx_board_typ - /* Customer private range */ - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN) - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100) -+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200) -+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E220) - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX) - } - return "Unsupported Board"; ---- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c -+++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c -@@ -186,6 +186,8 @@ int cvmx_helper_board_get_mii_address(in - return 7 - ipd_port; - else - return -1; -+ case CVMX_BOARD_TYPE_UBNT_E200: -+ return -1; - } - - /* Some unknown board. Somebody forgot to update this function... */ diff --git a/target/linux/octeon/patches-3.14/110-er200-ethernet_probe_order.patch b/target/linux/octeon/patches-3.14/110-er200-ethernet_probe_order.patch deleted file mode 100644 index 1771fba517..0000000000 --- a/target/linux/octeon/patches-3.14/110-er200-ethernet_probe_order.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/drivers/staging/octeon/ethernet.c -+++ b/drivers/staging/octeon/ethernet.c -@@ -624,6 +624,7 @@ static int cvm_oct_probe(struct platform - int interface; - int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE; - int qos; -+ int i; - struct device_node *pip; - - octeon_mdiobus_force_mod_depencency(); -@@ -707,13 +708,19 @@ static int cvm_oct_probe(struct platform - } - - num_interfaces = cvmx_helper_get_number_of_interfaces(); -- for (interface = 0; interface < num_interfaces; interface++) { -- cvmx_helper_interface_mode_t imode = -- cvmx_helper_interface_get_mode(interface); -- int num_ports = cvmx_helper_ports_on_interface(interface); -+ for (i = 0; i < num_interfaces; i++) { -+ cvmx_helper_interface_mode_t imode; -+ int interface; -+ int num_ports; - int port; - int port_index; - -+ interface = i; -+ if (cvmx_sysinfo_get()->board_type == CVMX_BOARD_TYPE_UBNT_E200) -+ interface = num_interfaces - (i + 1); -+ -+ num_ports = cvmx_helper_ports_on_interface(interface); -+ imode = cvmx_helper_interface_get_mode(interface); - for (port_index = 0, - port = cvmx_helper_get_ipd_port(interface, 0); - port < cvmx_helper_get_ipd_port(interface, num_ports); diff --git a/target/linux/octeon/patches-3.14/120-octeon_platform_usb.patch b/target/linux/octeon/patches-3.14/120-octeon_platform_usb.patch deleted file mode 100644 index 7cffaf621f..0000000000 --- a/target/linux/octeon/patches-3.14/120-octeon_platform_usb.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/arch/mips/cavium-octeon/octeon-platform.c -+++ b/arch/mips/cavium-octeon/octeon-platform.c -@@ -82,7 +82,7 @@ static int __init octeon_ehci_device_ini - }; - - /* Only Octeon2 has ehci/ohci */ -- if (!OCTEON_IS_MODEL(OCTEON_CN63XX)) -+ if (!OCTEON_IS_MODEL(OCTEON_CN6XXX)) - return 0; - - if (octeon_is_simulation() || usb_disabled()) -@@ -131,7 +131,7 @@ static int __init octeon_ohci_device_ini - }; - - /* Only Octeon2 has ehci/ohci */ -- if (!OCTEON_IS_MODEL(OCTEON_CN63XX)) -+ if (!OCTEON_IS_MODEL(OCTEON_CN6XXX)) - return 0; - - if (octeon_is_simulation() || usb_disabled()) |