summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/linux/brcm47xx/patches-3.10/082-MIPS-BCM47XX-add-EARLY_PRINTK_8250-support.patch47
-rw-r--r--target/linux/brcm47xx/patches-3.10/830-huawei_e970_support.patch4
2 files changed, 49 insertions, 2 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/082-MIPS-BCM47XX-add-EARLY_PRINTK_8250-support.patch b/target/linux/brcm47xx/patches-3.10/082-MIPS-BCM47XX-add-EARLY_PRINTK_8250-support.patch
index 744e359..42f5917 100644
--- a/target/linux/brcm47xx/patches-3.10/082-MIPS-BCM47XX-add-EARLY_PRINTK_8250-support.patch
+++ b/target/linux/brcm47xx/patches-3.10/082-MIPS-BCM47XX-add-EARLY_PRINTK_8250-support.patch
@@ -51,3 +51,50 @@ Date: Thu Sep 19 22:48:35 2013 +0200
}
void __init prom_free_prom_memory(void)
+--- a/arch/mips/bcm47xx/setup.c
++++ b/arch/mips/bcm47xx/setup.c
+@@ -123,6 +123,28 @@ static int bcm47xx_get_invariants(struct
+ return 0;
+ }
+
++/*
++ * This is the second serial on the chip common core, it is at this position
++ * for sb (ssb) and ai (bcma) bus.
++ */
++#define BCM47XX_SERIAL1_ADDR (SSB_ENUM_BASE + SSB_CHIPCO_UART1_DATA)
++
++static void __init bcm47xx_swap_serial_ssb(struct ssb_mipscore *mcore)
++{
++ struct ssb_serial_port port;
++
++ printk(KERN_INFO "Swapping serial ports\n");
++
++ setup_8250_early_printk_port(CKSEG1ADDR(BCM47XX_SERIAL1_ADDR), 0, 0);
++
++ /* swap serial ports */
++ memcpy(&port, &mcore->serial_ports[0], sizeof(port));
++ memcpy(&mcore->serial_ports[0], &mcore->serial_ports[1], sizeof(port));
++ memcpy(&mcore->serial_ports[1], &port, sizeof(port));
++
++ printk(KERN_INFO "Serial port were Swapped\n");
++}
++
+ static void __init bcm47xx_register_ssb(void)
+ {
+ int err;
+@@ -142,14 +164,7 @@ static void __init bcm47xx_register_ssb(
+ mcore = &bcm47xx_bus.ssb.mipscore;
+ if (bcm47xx_nvram_getenv("kernel_args", buf, sizeof(buf)) >= 0) {
+ if (strstr(buf, "console=ttyS1")) {
+- struct ssb_serial_port port;
+-
+- printk(KERN_DEBUG "Swapping serial ports!\n");
+- /* swap serial ports */
+- memcpy(&port, &mcore->serial_ports[0], sizeof(port));
+- memcpy(&mcore->serial_ports[0], &mcore->serial_ports[1],
+- sizeof(port));
+- memcpy(&mcore->serial_ports[1], &port, sizeof(port));
++ bcm47xx_swap_serial_ssb(mcore);
+ }
+ }
+ }
diff --git a/target/linux/brcm47xx/patches-3.10/830-huawei_e970_support.patch b/target/linux/brcm47xx/patches-3.10/830-huawei_e970_support.patch
index 333b9e6..2ff649d 100644
--- a/target/linux/brcm47xx/patches-3.10/830-huawei_e970_support.patch
+++ b/target/linux/brcm47xx/patches-3.10/830-huawei_e970_support.patch
@@ -8,7 +8,7 @@
#include <asm/bootinfo.h>
#include <asm/prom.h>
#include <asm/reboot.h>
-@@ -229,6 +230,33 @@ void __init plat_mem_setup(void)
+@@ -244,6 +245,33 @@ void __init plat_mem_setup(void)
mips_set_machine_name(bcm47xx_board_get_name());
}
@@ -42,7 +42,7 @@
static int __init bcm47xx_register_bus_complete(void)
{
switch (bcm47xx_bus_type) {
-@@ -243,6 +271,8 @@ static int __init bcm47xx_register_bus_c
+@@ -258,6 +286,8 @@ static int __init bcm47xx_register_bus_c
break;
#endif
}