Module Name: src
Committed By: jmcneill
Date: Tue Sep 28 11:37:45 UTC 2021
Modified Files:
src/sys/stand/efiboot: Makefile.efiboot boot.c efiboot.c efiboot.h
version
Log Message:
efiboot: Add support for changing the video mode.
Add a new "gop" command that can query the list of available video modes.
With a mode number as argument (eg. "gop 16"), the new display mode will
be selected.
The "version" command prints the current display mode.
To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/sys/stand/efiboot/Makefile.efiboot
cvs rdiff -u -r1.36 -r1.37 src/sys/stand/efiboot/boot.c
cvs rdiff -u -r1.20 -r1.21 src/sys/stand/efiboot/efiboot.c
cvs rdiff -u -r1.16 -r1.17 src/sys/stand/efiboot/efiboot.h
cvs rdiff -u -r1.28 -r1.29 src/sys/stand/efiboot/version
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/stand/efiboot/Makefile.efiboot
diff -u src/sys/stand/efiboot/Makefile.efiboot:1.22 src/sys/stand/efiboot/Makefile.efiboot:1.23
--- src/sys/stand/efiboot/Makefile.efiboot:1.22 Sun Jun 20 19:10:47 2021
+++ src/sys/stand/efiboot/Makefile.efiboot Tue Sep 28 11:37:45 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.efiboot,v 1.22 2021/06/20 19:10:47 jmcneill Exp $
+# $NetBSD: Makefile.efiboot,v 1.23 2021/09/28 11:37:45 jmcneill Exp $
S= ${.CURDIR}/../../..
@@ -24,8 +24,8 @@ SOURCES= crt0-efi-${GNUEFIARCH}.S reloc_
SOURCES+= boot.c bootmenu.c conf.c console.c dev_net.c devopen.c exec.c \
module.c overlay.c panic.c prompt.c
SOURCES+= efiboot.c efichar.c efidev.c efigetsecs.c efifdt.c \
- efifile.c efiblock.c efinet.c efipxe.c efiacpi.c efirng.c efiwatchdog.c \
- smbios.c
+ efifile.c efiblock.c efinet.c efipxe.c efiacpi.c efirng.c \
+ efiwatchdog.c efigop.c smbios.c
.PATH: ${S}/external/bsd/libfdt/dist
CPPFLAGS+= -I${S}/external/bsd/libfdt/dist
Index: src/sys/stand/efiboot/boot.c
diff -u src/sys/stand/efiboot/boot.c:1.36 src/sys/stand/efiboot/boot.c:1.37
--- src/sys/stand/efiboot/boot.c:1.36 Tue Sep 7 11:41:31 2021
+++ src/sys/stand/efiboot/boot.c Tue Sep 28 11:37:45 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: boot.c,v 1.36 2021/09/07 11:41:31 nia Exp $ */
+/* $NetBSD: boot.c,v 1.37 2021/09/28 11:37:45 jmcneill Exp $ */
/*-
* Copyright (c) 2016 Kimihiro Nonaka <[email protected]>
@@ -99,6 +99,7 @@ void command_modules(char *);
void command_load(char *);
void command_unload(char *);
void command_ls(char *);
+void command_gop(char *);
void command_mem(char *);
void command_menu(char *);
void command_reset(char *);
@@ -118,6 +119,7 @@ const struct boot_command commands[] = {
{ "load", command_load, "load <module_name>" },
{ "unload", command_unload, "unload <module_name>" },
{ "ls", command_ls, "ls [hdNn:/path]" },
+ { "gop", command_gop, "gop [mode]" },
{ "mem", command_mem, "mem" },
{ "menu", command_menu, "menu" },
{ "reboot", command_reset, "reboot|reset" },
@@ -290,6 +292,20 @@ command_ls(char *arg)
}
void
+command_gop(char *arg)
+{
+ UINT32 mode;
+
+ if (!arg || !*arg) {
+ efi_gop_dump();
+ return;
+ }
+
+ mode = atoi(arg);
+ efi_gop_setmode(mode);
+}
+
+void
command_mem(char *arg)
{
EFI_MEMORY_DESCRIPTOR *md, *memmap;
@@ -347,6 +363,7 @@ command_version(char *arg)
efi_acpi_show();
efi_rng_show();
efi_md_show();
+ efi_gop_show();
}
void
Index: src/sys/stand/efiboot/efiboot.c
diff -u src/sys/stand/efiboot/efiboot.c:1.20 src/sys/stand/efiboot/efiboot.c:1.21
--- src/sys/stand/efiboot/efiboot.c:1.20 Fri Jun 26 03:23:04 2020
+++ src/sys/stand/efiboot/efiboot.c Tue Sep 28 11:37:45 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: efiboot.c,v 1.20 2020/06/26 03:23:04 thorpej Exp $ */
+/* $NetBSD: efiboot.c,v 1.21 2021/09/28 11:37:45 jmcneill Exp $ */
/*-
* Copyright (c) 2018 Jared McNeill <[email protected]>
@@ -98,6 +98,7 @@ efi_main(EFI_HANDLE imageHandle, EFI_SYS
efi_file_system_probe();
efi_block_probe();
efi_rng_probe();
+ efi_gop_probe();
boot();
Index: src/sys/stand/efiboot/efiboot.h
diff -u src/sys/stand/efiboot/efiboot.h:1.16 src/sys/stand/efiboot/efiboot.h:1.17
--- src/sys/stand/efiboot/efiboot.h:1.16 Tue Sep 7 11:41:31 2021
+++ src/sys/stand/efiboot/efiboot.h Tue Sep 28 11:37:45 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: efiboot.h,v 1.16 2021/09/07 11:41:31 nia Exp $ */
+/* $NetBSD: efiboot.h,v 1.17 2021/09/28 11:37:45 jmcneill Exp $ */
/*-
* Copyright (c) 2016 Kimihiro Nonaka <[email protected]>
@@ -106,6 +106,12 @@ bool efi_pxe_match_booted_interface(cons
/* efiwatchdog.c */
void efi_set_watchdog(uint32_t, uint64_t);
+/* efigop.c */
+void efi_gop_probe(void);
+void efi_gop_show(void);
+void efi_gop_dump(void);
+void efi_gop_setmode(UINT32);
+
/* exec.c */
int exec_netbsd(const char *, const char *);
Index: src/sys/stand/efiboot/version
diff -u src/sys/stand/efiboot/version:1.28 src/sys/stand/efiboot/version:1.29
--- src/sys/stand/efiboot/version:1.28 Sun Aug 8 21:50:10 2021
+++ src/sys/stand/efiboot/version Tue Sep 28 11:37:45 2021
@@ -1,4 +1,4 @@
-$NetBSD: version,v 1.28 2021/08/08 21:50:10 andvar Exp $
+$NetBSD: version,v 1.29 2021/09/28 11:37:45 jmcneill Exp $
NOTE ANY CHANGES YOU MAKE TO THE EFI BOOTLOADER HERE. The format of this
file is important - make sure the entries are appended on end, last item
@@ -31,3 +31,4 @@ is taken as the current.
2.8: Add bi-endian disklabel and FFS support.
2.9: Watchdog support.
2.10: Use disk I/O protocol for block devices.
+2.11: Add support for changing the video mode.