aboutsummaryrefslogtreecommitdiff
path: root/platforms
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-10-09 17:23:10 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-10-15 14:45:28 +1100
commit658e2b1558d446a4dd9effc24308cfbe8d16618f (patch)
tree7c350af857e304e4751ab37acbd792c1b2c07fa1 /platforms
parent744c79548c78db31217b78855b7075f5fd0b92c1 (diff)
downloadskiboot-658e2b1558d446a4dd9effc24308cfbe8d16618f.zip
skiboot-658e2b1558d446a4dd9effc24308cfbe8d16618f.tar.gz
skiboot-658e2b1558d446a4dd9effc24308cfbe8d16618f.tar.bz2
uart: Give UART it's own OPAL console callbacks instead of dummy console
This means the Linux output no longer gets into our internal log, which makes dumping of it from Linux a lot nicer. It will also allow us to improve the way we do the bufferring for Linux and to exploit eventually the TX interrupts. It will also allow us to implement some form of timeouts for the OPAL console variant of it so we don't get stuck of the BMC doesn't consume from the virtual UART. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'platforms')
-rw-r--r--platforms/astbmc/common.c7
-rw-r--r--platforms/rhesus/rhesus.c3
2 files changed, 7 insertions, 3 deletions
diff --git a/platforms/astbmc/common.c b/platforms/astbmc/common.c
index 359188b..17dd66f 100644
--- a/platforms/astbmc/common.c
+++ b/platforms/astbmc/common.c
@@ -54,6 +54,10 @@ void astbmc_init(void)
/* As soon as IPMI is up, inform BMC we are in "S0" */
ipmi_set_power_state(IPMI_PWR_SYS_S0_WORKING, IPMI_PWR_NOCHANGE);
+
+ /* Setup UART console for use by Linux via OPAL API */
+ if (!dummy_console_enabled())
+ uart_setup_opal_console();
}
int64_t astbmc_ipmi_power_down(uint64_t request)
@@ -163,9 +167,6 @@ static void astbmc_fixup_dt(void)
astbmc_fixup_dt_uart(primary_lpc);
astbmc_fixup_dt_bt(primary_lpc);
-
- /* Force the dummy console for now */
- force_dummy_console();
}
static void astbmc_fixup_psi_bar(void)
diff --git a/platforms/rhesus/rhesus.c b/platforms/rhesus/rhesus.c
index b749eef..bcf67ee 100644
--- a/platforms/rhesus/rhesus.c
+++ b/platforms/rhesus/rhesus.c
@@ -179,6 +179,9 @@ static void rhesus_init(void)
{
/* Initialize PNOR/NVRAM */
rhesus_pnor_init();
+
+ /* Setup UART for direct use by Linux */
+ uart_setup_linux_passthrough();
}
static void rhesus_dt_fixup_uart(struct dt_node *lpc)