diff options
Diffstat (limited to 'arch/ppc/xmon/start.c')
-rw-r--r-- | arch/ppc/xmon/start.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/arch/ppc/xmon/start.c b/arch/ppc/xmon/start.c index f7e92986952a..d74a883e5bde 100644 --- a/arch/ppc/xmon/start.c +++ b/arch/ppc/xmon/start.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <asm/processor.h> | 15 | #include <asm/processor.h> |
16 | #include <asm/delay.h> | 16 | #include <asm/delay.h> |
17 | #include <asm/btext.h> | 17 | #include <asm/btext.h> |
18 | #include <asm/ibm4xx.h> | ||
18 | 19 | ||
19 | static volatile unsigned char *sccc, *sccd; | 20 | static volatile unsigned char *sccc, *sccd; |
20 | unsigned int TXRDY, RXRDY, DLAB; | 21 | unsigned int TXRDY, RXRDY, DLAB; |
@@ -57,23 +58,30 @@ static struct sysrq_key_op sysrq_xmon_op = | |||
57 | void | 58 | void |
58 | xmon_map_scc(void) | 59 | xmon_map_scc(void) |
59 | { | 60 | { |
60 | #ifdef CONFIG_PPC_PREP | 61 | #if defined(CONFIG_GEMINI) |
61 | volatile unsigned char *base; | ||
62 | |||
63 | #elif defined(CONFIG_GEMINI) | ||
64 | /* should already be mapped by the kernel boot */ | 62 | /* should already be mapped by the kernel boot */ |
65 | sccc = (volatile unsigned char *) 0xffeffb0d; | ||
66 | sccd = (volatile unsigned char *) 0xffeffb08; | 63 | sccd = (volatile unsigned char *) 0xffeffb08; |
67 | TXRDY = 0x20; | ||
68 | RXRDY = 1; | ||
69 | DLAB = 0x80; | ||
70 | #elif defined(CONFIG_405GP) | 64 | #elif defined(CONFIG_405GP) |
71 | sccc = (volatile unsigned char *)0xef600305; | ||
72 | sccd = (volatile unsigned char *)0xef600300; | 65 | sccd = (volatile unsigned char *)0xef600300; |
66 | #elif defined(CONFIG_440EP) | ||
67 | sccd = (volatile unsigned char *) ioremap(PPC440EP_UART0_ADDR, 8); | ||
68 | #elif defined(CONFIG_440SP) | ||
69 | sccd = (volatile unsigned char *) ioremap64(PPC440SP_UART0_ADDR, 8); | ||
70 | #elif defined(CONFIG_440SPE) | ||
71 | sccd = (volatile unsigned char *) ioremap64(PPC440SPE_UART0_ADDR, 8); | ||
72 | #elif defined(CONFIG_44x) | ||
73 | /* This is the default for 44x platforms. Any boards that have a | ||
74 | different UART address need to be put in cases before this or the | ||
75 | port will be mapped incorrectly */ | ||
76 | sccd = (volatile unsigned char *) ioremap64(PPC440GP_UART0_ADDR, 8); | ||
77 | #endif /* platform */ | ||
78 | |||
79 | #ifndef CONFIG_PPC_PREP | ||
80 | sccc = sccd + 5; | ||
73 | TXRDY = 0x20; | 81 | TXRDY = 0x20; |
74 | RXRDY = 1; | 82 | RXRDY = 1; |
75 | DLAB = 0x80; | 83 | DLAB = 0x80; |
76 | #endif /* platform */ | 84 | #endif |
77 | 85 | ||
78 | register_sysrq_key('x', &sysrq_xmon_op); | 86 | register_sysrq_key('x', &sysrq_xmon_op); |
79 | } | 87 | } |