Commit 2ec6ef10 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Paul Mackerras

[POWERPC] Get default baud rate in udbg_scc

On powermac, when open firmware is set to use the SCC for console, this
causes the low level udbg early console to read back the speed and
re-use it instead of hard coding 57600 bps. This doesn't (yet) pass the
detected speed all the way to pmac_zilog though.
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 54c99412
...@@ -111,8 +111,6 @@ void udbg_scc_init(int force_scc) ...@@ -111,8 +111,6 @@ void udbg_scc_init(int force_scc)
pmac_call_feature(PMAC_FTR_SCC_ENABLE, ch, pmac_call_feature(PMAC_FTR_SCC_ENABLE, ch,
PMAC_SCC_ASYNC | PMAC_SCC_FLAG_XMON, 1); PMAC_SCC_ASYNC | PMAC_SCC_FLAG_XMON, 1);
/* Setup for 57600 8N1 */
if (ch == ch_a) if (ch == ch_a)
addr += 0x20; addr += 0x20;
sccc = ioremap(addr & PAGE_MASK, PAGE_SIZE) ; sccc = ioremap(addr & PAGE_MASK, PAGE_SIZE) ;
...@@ -125,9 +123,21 @@ void udbg_scc_init(int force_scc) ...@@ -125,9 +123,21 @@ void udbg_scc_init(int force_scc)
x = in_8(sccc); x = in_8(sccc);
out_8(sccc, 0x09); /* reset A or B side */ out_8(sccc, 0x09); /* reset A or B side */
out_8(sccc, 0xc0); out_8(sccc, 0xc0);
/* If SCC was the OF output port, read the BRG value, else
* Setup for 57600 8N1
*/
if (ch_def != NULL) {
out_8(sccc, 13);
scc_inittab[1] = in_8(sccc);
out_8(sccc, 12);
scc_inittab[3] = in_8(sccc);
}
for (i = 0; i < sizeof(scc_inittab); ++i) for (i = 0; i < sizeof(scc_inittab); ++i)
out_8(sccc, scc_inittab[i]); out_8(sccc, scc_inittab[i]);
udbg_putc = udbg_scc_putc; udbg_putc = udbg_scc_putc;
udbg_getc = udbg_scc_getc; udbg_getc = udbg_scc_getc;
udbg_getc_poll = udbg_scc_getc_poll; udbg_getc_poll = udbg_scc_getc_poll;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment