diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-01-05 22:13:18 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-01-05 22:13:18 +0000 |
commit | 63cac40a313249a3462473fb6b248c04433690e1 (patch) | |
tree | 55a7b3cf8890fa5d520d10c6a6f641fb750aadab /sys/arch/sparc64/dev | |
parent | a3dd621039c950b52d3939b02f8034e093e7bdff (diff) |
Restrict FIFO depth to 1 byte on m4k/m5k/m8k/m9k. Hopefully this prevents
hardware faults from happening.
Diffstat (limited to 'sys/arch/sparc64/dev')
-rw-r--r-- | sys/arch/sparc64/dev/com_ebus.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/arch/sparc64/dev/com_ebus.c b/sys/arch/sparc64/dev/com_ebus.c index b3cfb9b77d4..77320bcc315 100644 --- a/sys/arch/sparc64/dev/com_ebus.c +++ b/sys/arch/sparc64/dev/com_ebus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: com_ebus.c,v 1.18 2008/07/10 12:33:40 kettenis Exp $ */ +/* $OpenBSD: com_ebus.c,v 1.19 2009/01/05 22:13:17 kettenis Exp $ */ /* $NetBSD: com_ebus.c,v 1.6 2001/07/24 19:27:10 eeh Exp $ */ /* @@ -203,6 +203,17 @@ com_ebus_attach(struct device *parent, struct device *self, void *aux) cn_tab->cn_putc = comcnputc; } + /* + * Apparently shoving too much data down the TX FIFO on the + * Fujitsu SPARC Enterprise M4000/M5000 causes a hardware + * fault. Avoid this issue by setting the FIFO depth to 1. + * This will effectively disable the TX FIFO, but will still + * enable the RX FIFO, which is what we really care about. + */ + if (OF_getprop(node, "compatible", buf, sizeof(buf)) > 0 && + strcmp(buf, "FJSV,su") == 0) + sc->sc_fifolen = 1; + if (OF_getproplen(ea->ea_node, "keyboard") == 0) printf(": keyboard"); else if (OF_getproplen(ea->ea_node, "mouse") == 0) |