mirror of https://github.com/hak5/openwrt-owl.git
brcm47xx: deactivate early printk support
This breaks some devices where the serial console is not at port 0 but somewhere else. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 39060owl
parent
952db22551
commit
36197755dc
|
@ -49,8 +49,7 @@ CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
|
||||||
CONFIG_CPU_SUPPORTS_HIGHMEM=y
|
CONFIG_CPU_SUPPORTS_HIGHMEM=y
|
||||||
CONFIG_CSRC_R4K=y
|
CONFIG_CSRC_R4K=y
|
||||||
CONFIG_DMA_NONCOHERENT=y
|
CONFIG_DMA_NONCOHERENT=y
|
||||||
CONFIG_EARLY_PRINTK=y
|
# CONFIG_EARLY_PRINTK is not set
|
||||||
CONFIG_EARLY_PRINTK_8250=y
|
|
||||||
CONFIG_GENERIC_ATOMIC64=y
|
CONFIG_GENERIC_ATOMIC64=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||||
|
|
|
@ -51,50 +51,3 @@ Date: Thu Sep 19 22:48:35 2013 +0200
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init prom_free_prom_memory(void)
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include <bcm47xx.h>
|
#include <bcm47xx.h>
|
||||||
#include <bcm47xx_nvram.h>
|
#include <bcm47xx_nvram.h>
|
||||||
#include <bcm47xx_board.h>
|
#include <bcm47xx_board.h>
|
||||||
@@ -214,6 +215,15 @@ static void __init bcm47xx_register_bcma
|
@@ -199,6 +200,15 @@ static void __init bcm47xx_register_bcma
|
||||||
panic("Failed to initialize BCMA bus (err %d)", err);
|
panic("Failed to initialize BCMA bus (err %d)", err);
|
||||||
|
|
||||||
bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, NULL);
|
bcm47xx_fill_bcma_boardinfo(&bcm47xx_bus.bcma.bus.boardinfo, NULL);
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include <asm/bootinfo.h>
|
#include <asm/bootinfo.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
#include <asm/reboot.h>
|
#include <asm/reboot.h>
|
||||||
@@ -254,6 +255,33 @@ void __init plat_mem_setup(void)
|
@@ -239,6 +240,33 @@ void __init plat_mem_setup(void)
|
||||||
mips_set_machine_name(bcm47xx_board_get_name());
|
mips_set_machine_name(bcm47xx_board_get_name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
static int __init bcm47xx_register_bus_complete(void)
|
static int __init bcm47xx_register_bus_complete(void)
|
||||||
{
|
{
|
||||||
switch (bcm47xx_bus_type) {
|
switch (bcm47xx_bus_type) {
|
||||||
@@ -268,6 +296,8 @@ static int __init bcm47xx_register_bus_c
|
@@ -253,6 +281,8 @@ static int __init bcm47xx_register_bus_c
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue