From 8f62926e036b909d165162df8b2a66b60fa33ecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Date: Mon, 25 Jun 2018 09:39:16 +0000 Subject: [PATCH] vt: add option to ignore NO_VGA flag in ACPI To workaround buggy firmware that sets this flag when there's actually a VGA present. Reported and tested by: Yasuhiro KIMURA Sponsored by: Citrix Systems R&D Reviewed by: kib Differential revision: https://reviews.freebsd.org/D16003 --- share/man/man4/vt.4 | 5 +++++ sys/dev/vt/hw/vga/vt_vga.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/share/man/man4/vt.4 b/share/man/man4/vt.4 index 489ed31f61d4..4b9e87c2e8b6 100644 --- a/share/man/man4/vt.4 +++ b/share/man/man4/vt.4 @@ -44,6 +44,7 @@ In .Xr loader.conf 5 : .Cd hw.vga.textmode=1 +.Cd hw.vga.acpi_ignore_no_vga=1 .Cd kern.vty=vt .Cd kern.vt.color..rgb="" .Cd kern.vt.fb.default_mode="x" @@ -196,6 +197,10 @@ prompt or in Set to 1 to use virtual terminals in text mode instead of graphics mode. Features that require graphics mode, like loadable fonts, will be disabled. +.It Va hw.vga.acpi_ignore_no_vga +Set to 1 to force the usage of the VGA driver regardless of whether +ACPI IAPC_BOOT_ARCH signals no VGA support. +Can be used to workaround firmware bugs in the ACPI tables. .It Va kern.vty Set this value to .Ql vt diff --git a/sys/dev/vt/hw/vga/vt_vga.c b/sys/dev/vt/hw/vga/vt_vga.c index daf53df8538d..a30e0101b5cb 100644 --- a/sys/dev/vt/hw/vga/vt_vga.c +++ b/sys/dev/vt/hw/vga/vt_vga.c @@ -1217,6 +1217,12 @@ vga_acpi_disabled(void) ACPI_TABLE_FADT *fadt; vm_paddr_t physaddr; uint16_t flags; + int ignore; + + TUNABLE_INT_FETCH("hw.vga.acpi_ignore_no_vga", &ignore); + + if (ignore) + return (false); physaddr = acpi_find_table(ACPI_SIG_FADT); if (physaddr == 0)