aboutsummaryrefslogtreecommitdiffstats
path: root/vgasrc/vgahw.h
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2017-11-15 14:43:10 +0100
committerGerd Hoffmann <kraxel@redhat.com>2018-06-22 07:44:07 +0200
commit77404b450d30a1d7860e717e98762b8a4745341d (patch)
tree1baf51c0af23cf05f75813323b171c6a670fe1a9 /vgasrc/vgahw.h
parent4d70b24b86012e382cf551ce72c2dd6c92a6d1fa (diff)
downloadseabios-77404b450d30a1d7860e717e98762b8a4745341d.tar.gz
qemu: add bochs-display support
Use coreboot text mode emulation to also support the qemu bochs-display device. This is a new display device supporting simple linear framebuffers, using the bochs register interface. No support for legacy vga (text modes, planar modes, cga modes, 8bpp palette modes all dropped). The bochs interface is compatible with the qemu stdvga. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'vgasrc/vgahw.h')
-rw-r--r--vgasrc/vgahw.h28
1 files changed, 15 insertions, 13 deletions
diff --git a/vgasrc/vgahw.h b/vgasrc/vgahw.h
index 2a85eba8..6d6ff1aa 100644
--- a/vgasrc/vgahw.h
+++ b/vgasrc/vgahw.h
@@ -14,7 +14,7 @@ static inline struct vgamode_s *vgahw_find_mode(int mode) {
return clext_find_mode(mode);
if (CONFIG_VGA_BOCHS)
return bochsvga_find_mode(mode);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_find_mode(mode);
return stdvga_find_mode(mode);
}
@@ -24,7 +24,7 @@ static inline int vgahw_set_mode(struct vgamode_s *vmode_g, int flags) {
return clext_set_mode(vmode_g, flags);
if (CONFIG_VGA_BOCHS)
return bochsvga_set_mode(vmode_g, flags);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_set_mode(vmode_g, flags);
return stdvga_set_mode(vmode_g, flags);
}
@@ -34,7 +34,7 @@ static inline void vgahw_list_modes(u16 seg, u16 *dest, u16 *last) {
clext_list_modes(seg, dest, last);
else if (CONFIG_VGA_BOCHS)
bochsvga_list_modes(seg, dest, last);
- else if (CONFIG_VGA_COREBOOT)
+ else if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
cbvga_list_modes(seg, dest, last);
else
stdvga_list_modes(seg, dest, last);
@@ -49,6 +49,8 @@ static inline int vgahw_setup(void) {
return geodevga_setup();
if (CONFIG_VGA_COREBOOT)
return cbvga_setup();
+ if (CONFIG_DISPLAY_BOCHS)
+ return bochs_display_setup();
return stdvga_setup();
}
@@ -57,7 +59,7 @@ static inline int vgahw_get_window(struct vgamode_s *vmode_g, int window) {
return clext_get_window(vmode_g, window);
if (CONFIG_VGA_BOCHS)
return bochsvga_get_window(vmode_g, window);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_get_window(vmode_g, window);
return stdvga_get_window(vmode_g, window);
}
@@ -68,7 +70,7 @@ static inline int vgahw_set_window(struct vgamode_s *vmode_g, int window
return clext_set_window(vmode_g, window, val);
if (CONFIG_VGA_BOCHS)
return bochsvga_set_window(vmode_g, window, val);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_set_window(vmode_g, window, val);
return stdvga_set_window(vmode_g, window, val);
}
@@ -78,7 +80,7 @@ static inline int vgahw_get_linelength(struct vgamode_s *vmode_g) {
return clext_get_linelength(vmode_g);
if (CONFIG_VGA_BOCHS)
return bochsvga_get_linelength(vmode_g);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_get_linelength(vmode_g);
return stdvga_get_linelength(vmode_g);
}
@@ -88,7 +90,7 @@ static inline int vgahw_set_linelength(struct vgamode_s *vmode_g, int val) {
return clext_set_linelength(vmode_g, val);
if (CONFIG_VGA_BOCHS)
return bochsvga_set_linelength(vmode_g, val);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_set_linelength(vmode_g, val);
return stdvga_set_linelength(vmode_g, val);
}
@@ -98,7 +100,7 @@ static inline int vgahw_get_displaystart(struct vgamode_s *vmode_g) {
return clext_get_displaystart(vmode_g);
if (CONFIG_VGA_BOCHS)
return bochsvga_get_displaystart(vmode_g);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_get_displaystart(vmode_g);
return stdvga_get_displaystart(vmode_g);
}
@@ -108,7 +110,7 @@ static inline int vgahw_set_displaystart(struct vgamode_s *vmode_g, int val) {
return clext_set_displaystart(vmode_g, val);
if (CONFIG_VGA_BOCHS)
return bochsvga_set_displaystart(vmode_g, val);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_set_displaystart(vmode_g, val);
return stdvga_set_displaystart(vmode_g, val);
}
@@ -116,7 +118,7 @@ static inline int vgahw_set_displaystart(struct vgamode_s *vmode_g, int val) {
static inline int vgahw_get_dacformat(struct vgamode_s *vmode_g) {
if (CONFIG_VGA_BOCHS)
return bochsvga_get_dacformat(vmode_g);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_get_dacformat(vmode_g);
return stdvga_get_dacformat(vmode_g);
}
@@ -124,7 +126,7 @@ static inline int vgahw_get_dacformat(struct vgamode_s *vmode_g) {
static inline int vgahw_set_dacformat(struct vgamode_s *vmode_g, int val) {
if (CONFIG_VGA_BOCHS)
return bochsvga_set_dacformat(vmode_g, val);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_set_dacformat(vmode_g, val);
return stdvga_set_dacformat(vmode_g, val);
}
@@ -134,13 +136,13 @@ static inline int vgahw_save_restore(int cmd, u16 seg, void *data) {
return clext_save_restore(cmd, seg, data);
if (CONFIG_VGA_BOCHS)
return bochsvga_save_restore(cmd, seg, data);
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_save_restore(cmd, seg, data);
return stdvga_save_restore(cmd, seg, data);
}
static inline int vgahw_get_linesize(struct vgamode_s *vmode_g) {
- if (CONFIG_VGA_COREBOOT)
+ if (CONFIG_VGA_COREBOOT || CONFIG_DISPLAY_BOCHS)
return cbvga_get_linesize(vmode_g);
return stdvga_get_linesize(vmode_g);
}