summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/fb/fbreg.h23
-rw-r--r--sys/dev/syscons/schistory.c2
-rw-r--r--sys/dev/syscons/scterm-teken.c2
-rw-r--r--sys/dev/syscons/syscons.c2
4 files changed, 26 insertions, 3 deletions
diff --git a/sys/dev/fb/fbreg.h b/sys/dev/fb/fbreg.h
index c9689d3..a844c56 100644
--- a/sys/dev/fb/fbreg.h
+++ b/sys/dev/fb/fbreg.h
@@ -92,6 +92,29 @@ void ofwfb_fillw(int pat, void *base, size_t cnt);
u_int16_t ofwfb_readw(u_int16_t *addr);
void ofwfb_writew(u_int16_t *addr, u_int16_t val);
+#elif defined(__mips__)
+
+/*
+ * Use amd64/i386-like settings under the assumption that MIPS-based display
+ * drivers will have to add a level of indirection between a syscons-managed
+ * frame buffer and the actual video hardware. We are forced to do this
+ * because syscons doesn't carry around required busspace handles and tags to
+ * use here. This is only really a problem for true VGA devices hooked up to
+ * MIPS, as others will be performing a translation anyway.
+ */
+#define bcopy_io(s, d, c) memcpy((void *)(d), (void *)(s), (c))
+#define bcopy_toio(s, d, c) memcpy((void *)(d), (void *)(s), (c))
+#define bcopy_fromio(s, d, c) memcpy((void *)(d), (void *)(s), (c))
+#define bzero_io(d, c) memset((void *)(d), 0, (c))
+#define fill_io(p, d, c) memset((void *)(d), (p), (c))
+static __inline void
+fillw(int val, uint16_t *buf, size_t size)
+{
+ while (size--)
+ *buf++ = val;
+}
+#define fillw_io(p, d, c) fillw((p), (void *)(d), (c))
+
#else /* !__i386__ && !__amd64__ && !__ia64__ && !__sparc64__ && !__powerpc__ */
#define bcopy_io(s, d, c) memcpy_io((d), (s), (c))
#define bcopy_toio(s, d, c) memcpy_toio((d), (void *)(s), (c))
diff --git a/sys/dev/syscons/schistory.c b/sys/dev/syscons/schistory.c
index 8eefb00..cb8cfe9 100644
--- a/sys/dev/syscons/schistory.c
+++ b/sys/dev/syscons/schistory.c
@@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/malloc.h>
-#if defined(__sparc64__) || defined(__powerpc__)
+#if defined(__sparc64__) || defined(__powerpc__) || defined(__mips__)
#include <machine/sc_machdep.h>
#else
#include <machine/pc/display.h>
diff --git a/sys/dev/syscons/scterm-teken.c b/sys/dev/syscons/scterm-teken.c
index 6762388..e3395cb 100644
--- a/sys/dev/syscons/scterm-teken.c
+++ b/sys/dev/syscons/scterm-teken.c
@@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$");
#include <sys/consio.h>
#include <sys/kbio.h>
-#if defined(__sparc64__) || defined(__powerpc__)
+#if defined(__sparc64__) || defined(__powerpc__) || defined(__mips__)
#include <machine/sc_machdep.h>
#else
#include <machine/pc/display.h>
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 01b1150..bacbb73 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -62,7 +62,7 @@ __FBSDID("$FreeBSD$");
#include <sys/power.h>
#include <machine/clock.h>
-#if defined(__sparc64__) || defined(__powerpc__)
+#if defined(__sparc64__) || defined(__powerpc__) || defined(__mips__)
#include <machine/sc_machdep.h>
#else
#include <machine/pc/display.h>
OpenPOWER on IntegriCloud