aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm47xx')
-rw-r--r--target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch8
-rw-r--r--target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch76
-rw-r--r--target/linux/brcm47xx/patches-4.4/940-bcm47xx-yenta.patch8
3 files changed, 8 insertions, 84 deletions
diff --git a/target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch b/target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch
index 32a65186db..e99c18272b 100644
--- a/target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch
+++ b/target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch
@@ -355,7 +355,7 @@
if (dc_lsize == 0)
r4k_blast_dcache = (void *)cache_noop;
else if (dc_lsize == 16)
-@@ -880,6 +892,8 @@ static void local_r4k_flush_cache_sigtra
+@@ -882,6 +894,8 @@ static void local_r4k_flush_cache_sigtra
unsigned long addr = (unsigned long) arg;
R4600_HIT_CACHEOP_WAR_IMPL;
@@ -364,7 +364,7 @@
if (dc_lsize)
protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
if (!cpu_icache_snoops_remote_store && scache_size)
-@@ -1704,6 +1718,17 @@ static void coherency_setup(void)
+@@ -1706,6 +1720,17 @@ static void coherency_setup(void)
* silly idea of putting something else there ...
*/
switch (current_cpu_type()) {
@@ -382,7 +382,7 @@
case CPU_R4000PC:
case CPU_R4000SC:
case CPU_R4000MC:
-@@ -1750,6 +1775,15 @@ void r4k_cache_init(void)
+@@ -1752,6 +1777,15 @@ void r4k_cache_init(void)
extern void build_copy_page(void);
struct cpuinfo_mips *c = &current_cpu_data;
@@ -398,7 +398,7 @@
probe_pcache();
setup_scache();
-@@ -1819,7 +1853,15 @@ void r4k_cache_init(void)
+@@ -1821,7 +1855,15 @@ void r4k_cache_init(void)
*/
local_r4k___flush_cache_all(NULL);
diff --git a/target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch b/target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch
deleted file mode 100644
index e6cf500156..0000000000
--- a/target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Fri, 27 Jul 2018 12:39:01 +0200
-Subject: [PATCH] Revert "MIPS: BCM47XX: Enable 74K Core ExternalSync for PCIe
- erratum"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This reverts commit 2a027b47dba6b77ab8c8e47b589ae9bbc5ac6175.
-
-Enabling ExternalSync caused a regression for BCM4718A1 (used e.g. in
-Netgear E3000 and ASUS RT-N16): it simply hangs during PCIe
-initialization. It's likely that BCM4717A1 is also affected.
-
-I didn't notice that earlier as the only BCM47XX devices with PCIe I
-own are:
-1) BCM4706 with 2 x 14e4:4331
-2) BCM4706 with 14e4:4360 and 14e4:4331
-it appears that BCM4706 is unaffected.
-
-While BCM5300X-ES300-RDS.pdf seems to document that erratum and its
-workarounds (according to quotes provided by Tokunori) it seems not even
-Broadcom follows them.
-
-According to the provided info Broadcom should define CONF7_ES in their
-SDK's mipsinc.h and implement workaround in the si_mips_init(). Checking
-both didn't reveal such code. It *could* mean Broadcom also had some
-problems with the given workaround.
-
-Reported-by: Michael Marley <michael@michaelmarley.com>
-Cc: Tokunori Ikegami <ikegami@allied-telesis.co.jp>
-Cc: Paul Burton <paul.burton@mips.com>
-Cc: Hauke Mehrtens <hauke@hauke-m.de>
-Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Cc: stable@vger.kernel.org
-Cc: James Hogan <jhogan@kernel.org>
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
----
- arch/mips/bcm47xx/setup.c | 6 ------
- arch/mips/include/asm/mipsregs.h | 3 ---
- 2 files changed, 9 deletions(-)
-
---- a/arch/mips/bcm47xx/setup.c
-+++ b/arch/mips/bcm47xx/setup.c
-@@ -249,12 +249,6 @@ static int __init bcm47xx_cpu_fixes(void
- */
- if (bcm47xx_bus.bcma.bus.chipinfo.id == BCMA_CHIP_ID_BCM4706)
- cpu_wait = NULL;
--
-- /*
-- * BCM47XX Erratum "R10: PCIe Transactions Periodically Fail"
-- * Enable ExternalSync for sync instruction to take effect
-- */
-- set_c0_config7(MIPS_CONF7_ES);
- break;
- #endif
- }
---- a/arch/mips/include/asm/mipsregs.h
-+++ b/arch/mips/include/asm/mipsregs.h
-@@ -605,8 +605,6 @@
- #define MIPS_CONF7_WII (_ULCAST_(1) << 31)
-
- #define MIPS_CONF7_RPS (_ULCAST_(1) << 2)
--/* ExternalSync */
--#define MIPS_CONF7_ES (_ULCAST_(1) << 8)
-
- #define MIPS_CONF7_IAR (_ULCAST_(1) << 10)
- #define MIPS_CONF7_AR (_ULCAST_(1) << 16)
-@@ -2014,7 +2012,6 @@ __BUILD_SET_C0(status)
- __BUILD_SET_C0(cause)
- __BUILD_SET_C0(config)
- __BUILD_SET_C0(config5)
--__BUILD_SET_C0(config7)
- __BUILD_SET_C0(intcontrol)
- __BUILD_SET_C0(intctl)
- __BUILD_SET_C0(srsmap)
diff --git a/target/linux/brcm47xx/patches-4.4/940-bcm47xx-yenta.patch b/target/linux/brcm47xx/patches-4.4/940-bcm47xx-yenta.patch
index 00a44d6317..bda27d16c4 100644
--- a/target/linux/brcm47xx/patches-4.4/940-bcm47xx-yenta.patch
+++ b/target/linux/brcm47xx/patches-4.4/940-bcm47xx-yenta.patch
@@ -1,6 +1,6 @@
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
-@@ -919,6 +919,8 @@ static unsigned int yenta_probe_irq(stru
+@@ -920,6 +920,8 @@ static unsigned int yenta_probe_irq(stru
* Probe for usable interrupts using the force
* register to generate bogus card status events.
*/
@@ -9,7 +9,7 @@
cb_writel(socket, CB_SOCKET_EVENT, -1);
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
reg = exca_readb(socket, I365_CSCINT);
-@@ -934,6 +936,7 @@ static unsigned int yenta_probe_irq(stru
+@@ -935,6 +937,7 @@ static unsigned int yenta_probe_irq(stru
}
cb_writel(socket, CB_SOCKET_MASK, 0);
exca_writeb(socket, I365_CSCINT, reg);
@@ -17,7 +17,7 @@
mask = probe_irq_mask(val) & 0xffff;
-@@ -1018,6 +1021,10 @@ static void yenta_get_socket_capabilitie
+@@ -1019,6 +1022,10 @@ static void yenta_get_socket_capabilitie
else
socket->socket.irq_mask = 0;
@@ -28,7 +28,7 @@
dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n",
socket->socket.irq_mask, socket->cb_irq);
}
-@@ -1250,6 +1257,15 @@ static int yenta_probe(struct pci_dev *d
+@@ -1251,6 +1258,15 @@ static int yenta_probe(struct pci_dev *d
dev_info(&dev->dev, "Socket status: %08x\n",
cb_readl(socket, CB_SOCKET_STATE));