# HG changeset patch
# User Hollis Blanchard <hollisb@xxxxxxxxxx>
# Date 1155683306 18000
# Node ID 2250d38aed3854c626bdc642a91884754f9d12d8
# Parent 6dcd85ea232e0de5445f325abd0829a0ed6d56a1
[POWERPC] fix vga.c compilation
- replace vga_readb/writeb with plain readb/writeb
- add per-arch vga.c and vga.h
- make detect_video() a per-arch function
- stop doing void* arithmetic
- remove i386 ifdef
Boot-tested on PowerPC; compile-tested on x86.
Signed-off-by Hollis Blanchard <hollisb@xxxxxxxxxx>
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/ia64/xen/Makefile
--- a/xen/arch/ia64/xen/Makefile Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/arch/ia64/xen/Makefile Tue Aug 15 18:08:26 2006 -0500
@@ -25,5 +25,6 @@ obj-y += xentime.o
obj-y += xentime.o
obj-y += flushd.o
obj-y += privop_stat.o
+obj-y += vga.o
obj-$(crash_debug) += gdbstub.o
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/powerpc/Makefile
--- a/xen/arch/powerpc/Makefile Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/arch/powerpc/Makefile Tue Aug 15 18:08:26 2006 -0500
@@ -35,6 +35,7 @@ obj-y += smp.o
obj-y += smp.o
obj-y += time.o
obj-y += usercopy.o
+obj-y += vga.o
obj-$(debug) += 0opt.o
obj-$(crash_debug) += gdbstub.o
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/x86/Makefile
--- a/xen/arch/x86/Makefile Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/arch/x86/Makefile Tue Aug 15 18:08:26 2006 -0500
@@ -38,6 +38,7 @@ obj-y += trampoline.o
obj-y += trampoline.o
obj-y += traps.o
obj-y += usercopy.o
+obj-y += vga.o
obj-y += x86_emulate.o
ifneq ($(pae),n)
diff -r 6dcd85ea232e -r 2250d38aed38 xen/drivers/video/vga.c
--- a/xen/drivers/video/vga.c Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/drivers/video/vga.c Tue Aug 15 18:08:26 2006 -0500
@@ -14,6 +14,7 @@
#include <xen/console.h>
#include <xen/font.h>
#include <xen/vga.h>
+#include <asm/vga.h>
#include <asm/io.h>
/* Some of the code below is taken from SVGAlib. The original,
@@ -159,13 +160,6 @@
* into a single 16-bit quantity */
#define VGA_OUT16VAL(v, r) (((v) << 8) | (r))
-#if defined(__i386__) || defined(__x86_64__)
-# define vgabase 0
-# define VGA_OUTW_WRITE
-# define vga_readb(x) (*(x))
-# define vga_writeb(x,y) (*(y) = (x))
-#endif
-
/*
* generic VGA port read/write
*/
@@ -187,17 +181,17 @@ static inline void vga_io_w_fast(uint16_
static inline uint8_t vga_mm_r(void __iomem *regbase, uint16_t port)
{
- return readb(regbase + port);
+ return readb((char *)regbase + port);
}
static inline void vga_mm_w(void __iomem *regbase, uint16_t port, uint8_t val)
{
- writeb(val, regbase + port);
+ writeb(val, (char *)regbase + port);
}
static inline void vga_mm_w_fast(void __iomem *regbase, uint16_t port, uint8_t
reg, uint8_t val)
{
- writew(VGA_OUT16VAL(val, reg), regbase + port);
+ writew(VGA_OUT16VAL(val, reg), (char *)regbase + port);
}
static inline uint8_t vga_r(void __iomem *regbase, uint16_t port)
@@ -302,43 +296,6 @@ static inline void vga_wattr(void __iome
vga_w(regbase, VGA_ATT_W, val);
}
-static int detect_video(void *video_base)
-{
- volatile u16 *p = (volatile u16 *)video_base;
- u16 saved1 = p[0], saved2 = p[1];
- int video_found = 1;
-
- p[0] = 0xAA55;
- p[1] = 0x55AA;
- if ( (p[0] != 0xAA55) || (p[1] != 0x55AA) )
- video_found = 0;
-
- p[0] = 0x55AA;
- p[1] = 0xAA55;
- if ( (p[0] != 0x55AA) || (p[1] != 0xAA55) )
- video_found = 0;
-
- p[0] = saved1;
- p[1] = saved2;
-
- return video_found;
-}
-
-static int detect_vga(void)
-{
- /*
- * Look at a number of well-known locations. Even if video is not at
- * 0xB8000 right now, it will appear there when we set up text mode 3.
- *
- * We assume if there is any sign of a video adaptor then it is at least
- * VGA-compatible (surely noone runs CGA, EGA, .... these days?).
- *
- * These checks are basically to detect headless server boxes.
- */
- return (detect_video(ioremap(0xA0000, 0x1000)) ||
- detect_video(ioremap(0xB0000, 0x1000)) ||
- detect_video(ioremap(0xB8000, 0x1000)));
-}
/* This is actually code from vgaHWRestore in an old version of XFree86 :-) */
void *setup_vga(void)
@@ -519,11 +476,11 @@ int vga_load_font(const struct font_desc
for ( i = j = 0; i < CHAR_MAP_SIZE; )
{
- vga_writeb(j < font->count * fontheight ? data[j++] : 0,
+ writeb(j < font->count * fontheight ? data[j++] : 0,
map + i++);
if ( !(j % fontheight) )
while ( i & (FONT_HEIGHT_MAX - 1) )
- vga_writeb(0, map + i++);
+ writeb(0, map + i++);
}
}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/xen/vga.h
--- a/xen/include/xen/vga.h Tue Aug 15 13:54:09 2006 +0100
+++ b/xen/include/xen/vga.h Tue Aug 15 18:08:26 2006 -0500
@@ -11,6 +11,7 @@
struct font_desc;
+int detect_vga(void);
void *setup_vga(void);
void vga_cursor_off(void);
int vga_load_font(const struct font_desc *, unsigned rows);
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/ia64/xen/vga.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/ia64/xen/vga.c Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#include <xen/vga.h>
+
+int detect_vga(void)
+{
+ /* disabled completely for now */
+ return 0;
+}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/powerpc/vga.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/powerpc/vga.c Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#include <xen/vga.h>
+
+int detect_vga(void)
+{
+ /* disabled completely for now */
+ return 0;
+}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/arch/x86/vga.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/x86/vga.c Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,59 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (c) 2002-2004, K A Fraser.
+ */
+
+#include <xen/types.h>
+#include <xen/vga.h>
+#include <asm/io.h>
+
+static int detect_video(void *video_base)
+{
+ volatile u16 *p = (volatile u16 *)video_base;
+ u16 saved1 = p[0], saved2 = p[1];
+ int video_found = 1;
+
+ p[0] = 0xAA55;
+ p[1] = 0x55AA;
+ if ( (p[0] != 0xAA55) || (p[1] != 0x55AA) )
+ video_found = 0;
+
+ p[0] = 0x55AA;
+ p[1] = 0xAA55;
+ if ( (p[0] != 0x55AA) || (p[1] != 0xAA55) )
+ video_found = 0;
+
+ p[0] = saved1;
+ p[1] = saved2;
+
+ return video_found;
+}
+
+int detect_vga(void)
+{
+ /*
+ * Look at a number of well-known locations. Even if video is not at
+ * 0xB8000 right now, it will appear there when we set up text mode 3.
+ *
+ * We assume if there is any sign of a video adaptor then it is at least
+ * VGA-compatible (surely noone runs CGA, EGA, .... these days?).
+ *
+ * These checks are basically to detect headless server boxes.
+ */
+ return (detect_video(ioremap(0xA0000, 0x1000)) ||
+ detect_video(ioremap(0xB0000, 0x1000)) ||
+ detect_video(ioremap(0xB8000, 0x1000)));
+}
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/asm-ia64/vga.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/asm-ia64/vga.h Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,33 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#ifndef _ASM_VGA_H_
+#define _ASM_VGA_H_
+
+#define vgabase 0
+#define VGA_OUTW_WRITE
+
+static int detect_vga(void)
+{
+ /* disabled completely for now */
+ return 0;
+}
+
+#endif /* _ASM_VGA_H_ */
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/asm-powerpc/vga.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/asm-powerpc/vga.h Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#ifndef _ASM_VGA_H_
+#define _ASM_VGA_H_
+
+#define vgabase 0
+#define VGA_OUTW_WRITE
+
+#endif /* _ASM_VGA_H_ */
diff -r 6dcd85ea232e -r 2250d38aed38 xen/include/asm-x86/vga.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/include/asm-x86/vga.h Tue Aug 15 18:08:26 2006 -0500
@@ -0,0 +1,27 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (C) IBM Corp. 2006
+ *
+ * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx>
+ */
+
+#ifndef _ASM_VGA_H_
+#define _ASM_VGA_H_
+
+#define vgabase 0
+#define VGA_OUTW_WRITE
+
+#endif /* _ASM_VGA_H_ */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|