[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Handle vga= in -append
From: |
Pascal Terjan |
Subject: |
[Qemu-devel] [PATCH] Handle vga= in -append |
Date: |
Mon, 13 Jul 2009 17:46:42 +0200 |
Here is a patch I had sent twice to the list 2 years ago.
Hopefuly this time someone will be interested
It adds support for passing vga mode to linux kernel through
vga= option in -append
Signed-off-by: Pascal Terjan <address@hidden>
---
hw/pc.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/hw/pc.c b/hw/pc.c
index c134506..9050934 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -825,6 +825,7 @@ static void load_linux(void *fw_cfg,
uint8_t header[8192];
target_phys_addr_t real_addr, prot_addr, cmdline_addr, initrd_addr = 0;
FILE *f, *fi;
+ char *vmode;
/* Align to 16 bytes as a paranoia measure */
cmdline_size = (strlen(kernel_cmdline)+16) & ~15;
@@ -900,6 +901,25 @@ static void load_linux(void *fw_cfg,
stw_p(header+0x22, cmdline_addr-real_addr);
}
+ /* handle vga= parameter */
+ vmode = strstr(kernel_cmdline, "vga=");
+ if (vmode) {
+ char *space;
+ unsigned int video_mode;
+ /* skip "vga=" */
+ vmode += 4;
+ if (!strncmp(vmode, "normal", 6)) {
+ video_mode = 0xffff;
+ } else if (!strncmp(vmode, "ext", 3)) {
+ video_mode = 0xfffe;
+ } else if (!strncmp(vmode, "ask", 3)) {
+ video_mode = 0xfffd;
+ } else {
+ video_mode = strtol(vmode, NULL, 0);
+ }
+ stw_p(header+0x1fa, video_mode);
+ }
+
/* loader type */
/* High nybble = B reserved for Qemu; low nybble is revision number.
If this code is substantially changed, you may want to consider
--
1.6.3.3
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] Handle vga= in -append,
Pascal Terjan <=