mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
Handle vga= in -append
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 <pterjan@gmail.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
07323531c1
commit
bf4e5d9297
1 changed files with 19 additions and 0 deletions
19
hw/pc.c
19
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,24 @@ 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) {
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue