diff options
-rw-r--r-- | arch/mips/alchemy/common/setup.c | 34 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/db1x00/board_setup.c | 28 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/pb1000/board_setup.c | 10 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/pb1100/board_setup.c | 27 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/pb1200/board_setup.c | 24 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/pb1500/board_setup.c | 18 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/pb1550/board_setup.c | 12 | ||||
-rw-r--r-- | arch/mips/alchemy/mtx-1/board_setup.c | 12 | ||||
-rw-r--r-- | arch/mips/alchemy/xxs1500/board_setup.c | 12 |
9 files changed, 136 insertions, 41 deletions
diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c index 1ac6b06f42a3..9889ec3ba4c4 100644 --- a/arch/mips/alchemy/common/setup.c +++ b/arch/mips/alchemy/common/setup.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <asm/time.h> | 35 | #include <asm/time.h> |
36 | 36 | ||
37 | #include <au1000.h> | 37 | #include <au1000.h> |
38 | #include <prom.h> | ||
39 | 38 | ||
40 | extern void __init board_setup(void); | 39 | extern void __init board_setup(void); |
41 | extern void au1000_restart(char *); | 40 | extern void au1000_restart(char *); |
@@ -46,12 +45,15 @@ extern void set_cpuspec(void); | |||
46 | void __init plat_mem_setup(void) | 45 | void __init plat_mem_setup(void) |
47 | { | 46 | { |
48 | struct cpu_spec *sp; | 47 | struct cpu_spec *sp; |
49 | char *argptr; | ||
50 | unsigned long prid, cpufreq, bclk; | 48 | unsigned long prid, cpufreq, bclk; |
51 | 49 | ||
52 | set_cpuspec(); | 50 | set_cpuspec(); |
53 | sp = cur_cpu_spec[0]; | 51 | sp = cur_cpu_spec[0]; |
54 | 52 | ||
53 | _machine_restart = au1000_restart; | ||
54 | _machine_halt = au1000_halt; | ||
55 | pm_power_off = au1000_power_off; | ||
56 | |||
55 | board_setup(); /* board specific setup */ | 57 | board_setup(); /* board specific setup */ |
56 | 58 | ||
57 | prid = read_c0_prid(); | 59 | prid = read_c0_prid(); |
@@ -79,34 +81,6 @@ void __init plat_mem_setup(void) | |||
79 | /* Clear to obtain best system bus performance */ | 81 | /* Clear to obtain best system bus performance */ |
80 | clear_c0_config(1 << 19); /* Clear Config[OD] */ | 82 | clear_c0_config(1 << 19); /* Clear Config[OD] */ |
81 | 83 | ||
82 | argptr = prom_getcmdline(); | ||
83 | |||
84 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
85 | argptr = strstr(argptr, "console="); | ||
86 | if (argptr == NULL) { | ||
87 | argptr = prom_getcmdline(); | ||
88 | strcat(argptr, " console=ttyS0,115200"); | ||
89 | } | ||
90 | #endif | ||
91 | |||
92 | #ifdef CONFIG_FB_AU1100 | ||
93 | argptr = strstr(argptr, "video="); | ||
94 | if (argptr == NULL) { | ||
95 | argptr = prom_getcmdline(); | ||
96 | /* default panel */ | ||
97 | /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/ | ||
98 | } | ||
99 | #endif | ||
100 | |||
101 | #if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) | ||
102 | /* au1000 does not support vra, au1500 and au1100 do */ | ||
103 | strcat(argptr, " au1000_audio=vra"); | ||
104 | argptr = prom_getcmdline(); | ||
105 | #endif | ||
106 | _machine_restart = au1000_restart; | ||
107 | _machine_halt = au1000_halt; | ||
108 | pm_power_off = au1000_power_off; | ||
109 | |||
110 | /* IO/MEM resources. */ | 84 | /* IO/MEM resources. */ |
111 | set_io_port_base(0); | 85 | set_io_port_base(0); |
112 | ioport_resource.start = IOPORT_RESOURCE_START; | 86 | ioport_resource.start = IOPORT_RESOURCE_START; |
diff --git a/arch/mips/alchemy/devboards/db1x00/board_setup.c b/arch/mips/alchemy/devboards/db1x00/board_setup.c index 427f799031bb..a75ffbf99f25 100644 --- a/arch/mips/alchemy/devboards/db1x00/board_setup.c +++ b/arch/mips/alchemy/devboards/db1x00/board_setup.c | |||
@@ -32,6 +32,9 @@ | |||
32 | #include <asm/mach-au1x00/au1000.h> | 32 | #include <asm/mach-au1x00/au1000.h> |
33 | #include <asm/mach-db1x00/db1x00.h> | 33 | #include <asm/mach-db1x00/db1x00.h> |
34 | 34 | ||
35 | #include <prom.h> | ||
36 | |||
37 | |||
35 | static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; | 38 | static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; |
36 | 39 | ||
37 | const char *get_system_type(void) | 40 | const char *get_system_type(void) |
@@ -52,6 +55,31 @@ void board_reset(void) | |||
52 | void __init board_setup(void) | 55 | void __init board_setup(void) |
53 | { | 56 | { |
54 | u32 pin_func = 0; | 57 | u32 pin_func = 0; |
58 | char *argptr; | ||
59 | |||
60 | argptr = prom_getcmdline(); | ||
61 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
62 | argptr = strstr(argptr, "console="); | ||
63 | if (argptr == NULL) { | ||
64 | argptr = prom_getcmdline(); | ||
65 | strcat(argptr, " console=ttyS0,115200"); | ||
66 | } | ||
67 | #endif | ||
68 | |||
69 | #ifdef CONFIG_FB_AU1100 | ||
70 | argptr = strstr(argptr, "video="); | ||
71 | if (argptr == NULL) { | ||
72 | argptr = prom_getcmdline(); | ||
73 | /* default panel */ | ||
74 | /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/ | ||
75 | } | ||
76 | #endif | ||
77 | |||
78 | #if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) | ||
79 | /* au1000 does not support vra, au1500 and au1100 do */ | ||
80 | strcat(argptr, " au1000_audio=vra"); | ||
81 | argptr = prom_getcmdline(); | ||
82 | #endif | ||
55 | 83 | ||
56 | /* Not valid for Au1550 */ | 84 | /* Not valid for Au1550 */ |
57 | #if defined(CONFIG_IRDA) && \ | 85 | #if defined(CONFIG_IRDA) && \ |
diff --git a/arch/mips/alchemy/devboards/pb1000/board_setup.c b/arch/mips/alchemy/devboards/pb1000/board_setup.c index b75e487f53ed..889c8fda2ab1 100644 --- a/arch/mips/alchemy/devboards/pb1000/board_setup.c +++ b/arch/mips/alchemy/devboards/pb1000/board_setup.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
29 | #include <asm/mach-au1x00/au1000.h> | 29 | #include <asm/mach-au1x00/au1000.h> |
30 | #include <asm/mach-pb1x00/pb1000.h> | 30 | #include <asm/mach-pb1x00/pb1000.h> |
31 | #include <prom.h> | ||
31 | 32 | ||
32 | 33 | ||
33 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { | 34 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { |
@@ -52,6 +53,15 @@ void __init board_setup(void) | |||
52 | u32 sys_freqctrl, sys_clksrc; | 53 | u32 sys_freqctrl, sys_clksrc; |
53 | u32 prid = read_c0_prid(); | 54 | u32 prid = read_c0_prid(); |
54 | 55 | ||
56 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
57 | char *argptr = prom_getcmdline(); | ||
58 | argptr = strstr(argptr, "console="); | ||
59 | if (argptr == NULL) { | ||
60 | argptr = prom_getcmdline(); | ||
61 | strcat(argptr, " console=ttyS0,115200"); | ||
62 | } | ||
63 | #endif | ||
64 | |||
55 | /* Set AUX clock to 12 MHz * 8 = 96 MHz */ | 65 | /* Set AUX clock to 12 MHz * 8 = 96 MHz */ |
56 | au_writel(8, SYS_AUXPLL); | 66 | au_writel(8, SYS_AUXPLL); |
57 | au_writel(0, SYS_PINSTATERD); | 67 | au_writel(0, SYS_PINSTATERD); |
diff --git a/arch/mips/alchemy/devboards/pb1100/board_setup.c b/arch/mips/alchemy/devboards/pb1100/board_setup.c index 9daab7e29224..fbd211e13489 100644 --- a/arch/mips/alchemy/devboards/pb1100/board_setup.c +++ b/arch/mips/alchemy/devboards/pb1100/board_setup.c | |||
@@ -29,6 +29,8 @@ | |||
29 | #include <asm/mach-au1x00/au1000.h> | 29 | #include <asm/mach-au1x00/au1000.h> |
30 | #include <asm/mach-pb1x00/pb1100.h> | 30 | #include <asm/mach-pb1x00/pb1100.h> |
31 | 31 | ||
32 | #include <prom.h> | ||
33 | |||
32 | 34 | ||
33 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { | 35 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { |
34 | { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card Fully_Inserted# */ | 36 | { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card Fully_Inserted# */ |
@@ -54,6 +56,31 @@ void board_reset(void) | |||
54 | void __init board_setup(void) | 56 | void __init board_setup(void) |
55 | { | 57 | { |
56 | volatile void __iomem *base = (volatile void __iomem *)0xac000000UL; | 58 | volatile void __iomem *base = (volatile void __iomem *)0xac000000UL; |
59 | char *argptr; | ||
60 | |||
61 | argptr = prom_getcmdline(); | ||
62 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
63 | argptr = strstr(argptr, "console="); | ||
64 | if (argptr == NULL) { | ||
65 | argptr = prom_getcmdline(); | ||
66 | strcat(argptr, " console=ttyS0,115200"); | ||
67 | } | ||
68 | #endif | ||
69 | |||
70 | #ifdef CONFIG_FB_AU1100 | ||
71 | argptr = strstr(argptr, "video="); | ||
72 | if (argptr == NULL) { | ||
73 | argptr = prom_getcmdline(); | ||
74 | /* default panel */ | ||
75 | /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/ | ||
76 | } | ||
77 | #endif | ||
78 | |||
79 | #if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) | ||
80 | /* au1000 does not support vra, au1500 and au1100 do */ | ||
81 | strcat(argptr, " au1000_audio=vra"); | ||
82 | argptr = prom_getcmdline(); | ||
83 | #endif | ||
57 | 84 | ||
58 | /* Set AUX clock to 12 MHz * 8 = 96 MHz */ | 85 | /* Set AUX clock to 12 MHz * 8 = 96 MHz */ |
59 | au_writel(8, SYS_AUXPLL); | 86 | au_writel(8, SYS_AUXPLL); |
diff --git a/arch/mips/alchemy/devboards/pb1200/board_setup.c b/arch/mips/alchemy/devboards/pb1200/board_setup.c index 8f03dc8fdd29..b5585e462004 100644 --- a/arch/mips/alchemy/devboards/pb1200/board_setup.c +++ b/arch/mips/alchemy/devboards/pb1200/board_setup.c | |||
@@ -46,7 +46,19 @@ void board_reset(void) | |||
46 | 46 | ||
47 | void __init board_setup(void) | 47 | void __init board_setup(void) |
48 | { | 48 | { |
49 | char *argptr = NULL; | 49 | char *argptr; |
50 | |||
51 | argptr = prom_getcmdline(); | ||
52 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
53 | argptr = strstr(argptr, "console="); | ||
54 | if (argptr == NULL) { | ||
55 | argptr = prom_getcmdline(); | ||
56 | strcat(argptr, " console=ttyS0,115200"); | ||
57 | } | ||
58 | #endif | ||
59 | #ifdef CONFIG_FB_AU1200 | ||
60 | strcat(argptr, " video=au1200fb:panel:bs"); | ||
61 | #endif | ||
50 | 62 | ||
51 | #if 0 | 63 | #if 0 |
52 | { | 64 | { |
@@ -104,16 +116,6 @@ void __init board_setup(void) | |||
104 | } | 116 | } |
105 | #endif | 117 | #endif |
106 | 118 | ||
107 | #ifdef CONFIG_FB_AU1200 | ||
108 | argptr = prom_getcmdline(); | ||
109 | #ifdef CONFIG_MIPS_PB1200 | ||
110 | strcat(argptr, " video=au1200fb:panel:bs"); | ||
111 | #endif | ||
112 | #ifdef CONFIG_MIPS_DB1200 | ||
113 | strcat(argptr, " video=au1200fb:panel:bs"); | ||
114 | #endif | ||
115 | #endif | ||
116 | |||
117 | /* | 119 | /* |
118 | * The Pb1200 development board uses external MUX for PSC0 to | 120 | * The Pb1200 development board uses external MUX for PSC0 to |
119 | * support SMB/SPI. bcsr->resets bit 12: 0=SMB 1=SPI | 121 | * support SMB/SPI. bcsr->resets bit 12: 0=SMB 1=SPI |
diff --git a/arch/mips/alchemy/devboards/pb1500/board_setup.c b/arch/mips/alchemy/devboards/pb1500/board_setup.c index 47173f1e5ae9..dcb36a66442f 100644 --- a/arch/mips/alchemy/devboards/pb1500/board_setup.c +++ b/arch/mips/alchemy/devboards/pb1500/board_setup.c | |||
@@ -29,6 +29,8 @@ | |||
29 | #include <asm/mach-au1x00/au1000.h> | 29 | #include <asm/mach-au1x00/au1000.h> |
30 | #include <asm/mach-pb1x00/pb1500.h> | 30 | #include <asm/mach-pb1x00/pb1500.h> |
31 | 31 | ||
32 | #include <prom.h> | ||
33 | |||
32 | 34 | ||
33 | char irq_tab_alchemy[][5] __initdata = { | 35 | char irq_tab_alchemy[][5] __initdata = { |
34 | [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */ | 36 | [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */ |
@@ -61,6 +63,22 @@ void __init board_setup(void) | |||
61 | { | 63 | { |
62 | u32 pin_func; | 64 | u32 pin_func; |
63 | u32 sys_freqctrl, sys_clksrc; | 65 | u32 sys_freqctrl, sys_clksrc; |
66 | char *argptr; | ||
67 | |||
68 | argptr = prom_getcmdline(); | ||
69 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
70 | argptr = strstr(argptr, "console="); | ||
71 | if (argptr == NULL) { | ||
72 | argptr = prom_getcmdline(); | ||
73 | strcat(argptr, " console=ttyS0,115200"); | ||
74 | } | ||
75 | #endif | ||
76 | |||
77 | #if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) | ||
78 | /* au1000 does not support vra, au1500 and au1100 do */ | ||
79 | strcat(argptr, " au1000_audio=vra"); | ||
80 | argptr = prom_getcmdline(); | ||
81 | #endif | ||
64 | 82 | ||
65 | sys_clksrc = sys_freqctrl = pin_func = 0; | 83 | sys_clksrc = sys_freqctrl = pin_func = 0; |
66 | /* Set AUX clock to 12 MHz * 8 = 96 MHz */ | 84 | /* Set AUX clock to 12 MHz * 8 = 96 MHz */ |
diff --git a/arch/mips/alchemy/devboards/pb1550/board_setup.c b/arch/mips/alchemy/devboards/pb1550/board_setup.c index 25a9190265db..f462652d762a 100644 --- a/arch/mips/alchemy/devboards/pb1550/board_setup.c +++ b/arch/mips/alchemy/devboards/pb1550/board_setup.c | |||
@@ -32,6 +32,8 @@ | |||
32 | #include <asm/mach-au1x00/au1000.h> | 32 | #include <asm/mach-au1x00/au1000.h> |
33 | #include <asm/mach-pb1x00/pb1550.h> | 33 | #include <asm/mach-pb1x00/pb1550.h> |
34 | 34 | ||
35 | #include <prom.h> | ||
36 | |||
35 | 37 | ||
36 | char irq_tab_alchemy[][5] __initdata = { | 38 | char irq_tab_alchemy[][5] __initdata = { |
37 | [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ | 39 | [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ |
@@ -61,6 +63,16 @@ void __init board_setup(void) | |||
61 | { | 63 | { |
62 | u32 pin_func; | 64 | u32 pin_func; |
63 | 65 | ||
66 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
67 | char *argptr; | ||
68 | argptr = prom_getcmdline(); | ||
69 | argptr = strstr(argptr, "console="); | ||
70 | if (argptr == NULL) { | ||
71 | argptr = prom_getcmdline(); | ||
72 | strcat(argptr, " console=ttyS0,115200"); | ||
73 | } | ||
74 | #endif | ||
75 | |||
64 | /* | 76 | /* |
65 | * Enable PSC1 SYNC for AC'97. Normaly done in audio driver, | 77 | * Enable PSC1 SYNC for AC'97. Normaly done in audio driver, |
66 | * but it is board specific code, so put it here. | 78 | * but it is board specific code, so put it here. |
diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c index 3f8079186cf2..8ed1ae12bc55 100644 --- a/arch/mips/alchemy/mtx-1/board_setup.c +++ b/arch/mips/alchemy/mtx-1/board_setup.c | |||
@@ -32,6 +32,8 @@ | |||
32 | 32 | ||
33 | #include <asm/mach-au1x00/au1000.h> | 33 | #include <asm/mach-au1x00/au1000.h> |
34 | 34 | ||
35 | #include <prom.h> | ||
36 | |||
35 | extern int (*board_pci_idsel)(unsigned int devsel, int assert); | 37 | extern int (*board_pci_idsel)(unsigned int devsel, int assert); |
36 | int mtx1_pci_idsel(unsigned int devsel, int assert); | 38 | int mtx1_pci_idsel(unsigned int devsel, int assert); |
37 | 39 | ||
@@ -43,6 +45,16 @@ void board_reset(void) | |||
43 | 45 | ||
44 | void __init board_setup(void) | 46 | void __init board_setup(void) |
45 | { | 47 | { |
48 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
49 | char *argptr; | ||
50 | argptr = prom_getcmdline(); | ||
51 | argptr = strstr(argptr, "console="); | ||
52 | if (argptr == NULL) { | ||
53 | argptr = prom_getcmdline(); | ||
54 | strcat(argptr, " console=ttyS0,115200"); | ||
55 | } | ||
56 | #endif | ||
57 | |||
46 | #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) | 58 | #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) |
47 | /* Enable USB power switch */ | 59 | /* Enable USB power switch */ |
48 | au_writel(au_readl(GPIO2_DIR) | 0x10, GPIO2_DIR); | 60 | au_writel(au_readl(GPIO2_DIR) | 0x10, GPIO2_DIR); |
diff --git a/arch/mips/alchemy/xxs1500/board_setup.c b/arch/mips/alchemy/xxs1500/board_setup.c index 4c587acac5c3..a2634fabc50d 100644 --- a/arch/mips/alchemy/xxs1500/board_setup.c +++ b/arch/mips/alchemy/xxs1500/board_setup.c | |||
@@ -28,6 +28,8 @@ | |||
28 | 28 | ||
29 | #include <asm/mach-au1x00/au1000.h> | 29 | #include <asm/mach-au1x00/au1000.h> |
30 | 30 | ||
31 | #include <prom.h> | ||
32 | |||
31 | void board_reset(void) | 33 | void board_reset(void) |
32 | { | 34 | { |
33 | /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ | 35 | /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ |
@@ -38,6 +40,16 @@ void __init board_setup(void) | |||
38 | { | 40 | { |
39 | u32 pin_func; | 41 | u32 pin_func; |
40 | 42 | ||
43 | #ifdef CONFIG_SERIAL_8250_CONSOLE | ||
44 | char *argptr; | ||
45 | argptr = prom_getcmdline(); | ||
46 | argptr = strstr(argptr, "console="); | ||
47 | if (argptr == NULL) { | ||
48 | argptr = prom_getcmdline(); | ||
49 | strcat(argptr, " console=ttyS0,115200"); | ||
50 | } | ||
51 | #endif | ||
52 | |||
41 | /* Set multiple use pins (UART3/GPIO) to UART (it's used as UART too) */ | 53 | /* Set multiple use pins (UART3/GPIO) to UART (it's used as UART too) */ |
42 | pin_func = au_readl(SYS_PINFUNC) & ~SYS_PF_UR3; | 54 | pin_func = au_readl(SYS_PINFUNC) & ~SYS_PF_UR3; |
43 | pin_func |= SYS_PF_UR3; | 55 | pin_func |= SYS_PF_UR3; |