On 1/29/26 00:45, Michael Osipov wrote:
The branch main has been updated by michaelo:
URL:
https://deu01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcgit.freebsd.org%2Fsrc%2Fcommit%2F%3Fid%3D56970c3c4b0bc61d972837661a31cc2b9e8e8d7c&data=05%7C02%7Cmichael.osipov%40innomotics.com%7C599792c98cac445815a108de5f529e81%7C698c6ffb74e34a84be68f22d8d3201a3%7C0%7C0%7C639053005625974477%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=PsvT9MHa5qWyE2CBQGLbDG30GT8AWpltNOu3JrYO%2BK4%3D&reserved=0
commit 56970c3c4b0bc61d972837661a31cc2b9e8e8d7c
Author: Michael Osipov <[email protected]>
AuthorDate: 2026-01-28 09:02:33 +0000
Commit: Michael Osipov <[email protected]>
CommitDate: 2026-01-29 08:44:45 +0000
loader: Prefer comma-separated list of values for "console"
PR: 292595
Reviewed by: imp
MFC after: 1 week
Differential Revision:
https://deu01.safelinks.protection.outlook.com/?url=https%3A%2F%2Freviews.freebsd.org%2FD54923&data=05%7C02%7Cmichael.osipov%40innomotics.com%7C599792c98cac445815a108de5f529e81%7C698c6ffb74e34a84be68f22d8d3201a3%7C0%7C0%7C639053005625994409%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=fqqWtXQep%2FyB%2BinUOiod%2FO%2BqDOOQ4UC5O4KzvM36C7Q%3D&reserved=0
---
release/tools/azure.conf | 2 +-
release/tools/openstack.conf | 2 +-
stand/efi/loader/main.c | 4 ++--
stand/i386/loader/main.c | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/release/tools/azure.conf b/release/tools/azure.conf
index 981e40566a1c..4fa6ba4d924d 100644
--- a/release/tools/azure.conf
+++ b/release/tools/azure.conf
@@ -59,7 +59,7 @@ autoboot_delay="-1"
beastie_disable="YES"
loader_logo="none"
hw.memtest.tests="0"
-console="comconsole efi vidconsole"
+console="comconsole,efi,vidconsole"
comconsole_speed="115200"
boot_multicons="YES"
boot_serial="YES"
diff --git a/release/tools/openstack.conf b/release/tools/openstack.conf
index 9ce65a75c3c5..6cfb02bab9af 100644
--- a/release/tools/openstack.conf
+++ b/release/tools/openstack.conf
@@ -33,7 +33,7 @@ vm_extra_pre_umount() {
echo 'autoboot_delay="-1"' >> ${DESTDIR}/boot/loader.conf
echo 'beastie_disable="YES"' >> ${DESTDIR}/boot/loader.conf
echo 'boot_multicons="YES"' >> ${DESTDIR}/boot/loader.conf
- echo 'console="comconsole vidconsole"' >> ${DESTDIR}/boot/loader.conf
+ echo 'console="comconsole,vidconsole"' >> ${DESTDIR}/boot/loader.conf
echo 'comconsole_speed="115200"' >> ${DESTDIR}/boot/loader.conf
# Reboot quickly, Don't wait at the panic screen
diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c
index 22dbd10a0f37..7ff2cf188509 100644
--- a/stand/efi/loader/main.c
+++ b/stand/efi/loader/main.c
@@ -1316,10 +1316,10 @@ main(int argc, CHAR16 *argv[])
setenv("console", "comconsole", 1);
break;
case VID_SER_BOTH:
- setenv("console", "efi comconsole", 1);
+ setenv("console", "efi,comconsole", 1);
break;
case SER_VID_BOTH:
- setenv("console", "comconsole efi", 1);
+ setenv("console", "comconsole,efi", 1);
break;
/* case VIDEO_ONLY can't happen -- it's the
first if above */
}
[Note: I CC'd Warner just because I'm not sure anyone else knows for
sure about this area's complicated history and issues.]
This looks possibly wrong to me for efi for all but amd64 --but for the
references to comconsole, not the space vs. comma issue.
stand: efi create eficom console device.
(2023-05-11)
QUOTE of
<https://deu01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcgit.freebsd.org%2Fsrc%2Fcommit%2Fstand%2Fefi%3Fid%3D2f131435bc22&data=05%7C02%7Cmichael.osipov%40innomotics.com%7C599792c98cac445815a108de5f529e81%7C698c6ffb74e34a84be68f22d8d3201a3%7C0%7C0%7C639053005626005673%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=b7UCUYk%2BJZ4wfJpjvdpv3zW7Vjuep0reJkcNgpl%2B3Gk%3D&reserved=0>
console=comconsole talks to the hardware directly. This is available
only on amd64. It is not available anywhere else (and so requires
changes for people doing comconsole on aarch64)
console=eficom talks to the console via EFI protocols. It's available
on amd64, aarch64 and riscv64. It's the first port that we find, though
it can be overriden by efi_com_port (which should be set to the UID of
the serial port, not the I/O port, despite the name). devinfo -v
will give the UID to uartX mapping.
This is an incompatible change for HYPER-V on amd64. It only works with
eficom console, so you'll need to change your configuration in
loader.conf. No compatibility hack will ever be provided for this (since
it requires renamig, which the loader cannot reliably do).
It's also an incompatible change for aarch64. comconsole will need to
change to eficom. There might be a comconsole "shim" for this.
END QUOTE
stand: add comconsole backwards compatibility shim for aarch64
(2023-05-11)
QUOTE of
<https://deu01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcgit.freebsd.org%2Fsrc%2Fcommit%2Fstand%2Fefi%3Fid%3Df93416d67743&data=05%7C02%7Cmichael.osipov%40innomotics.com%7C599792c98cac445815a108de5f529e81%7C698c6ffb74e34a84be68f22d8d3201a3%7C0%7C0%7C639053005626016462%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=%2BcXcfrBSDtWBYluSYlONTo%2FzYP761LUbk5mfxjQ3Brg%3D&reserved=0>
Add a compat shim for the "comconsole" name so that people with a
"console=comconsole" in their loader.conf on aarch64 will continue to
work (though with a warning).
This is only aarch64: it will never be there for amd64 (where comconsole
always means talk to the hardware directly). To do that is too hard.
END QUOTE
But that last (f93416d67743) is only for:
+#if defined(__aarch64__) && __FreeBSD_version < 1500000
+/* Hack for backward compatibility -- but only for a while */
+extern struct console comconsole;
+#endif
. . .
+#if defined(__aarch64__) && __FreeBSD_version < 1500000
+ &comconsole,
+#endif
. . . (and so on) . . .
So, as of FreeBSD 15+, aarch64 does not have comconsole as far as I can
tell.
It looks to me like for FreeBSD 15+ eficom should be referenced mostly,
instead of comconsole, comconsole being only for amd64.
For FreeBSD 14.3+ and stable/14 it may be that comconsole should be used
for amd64 and aarch64. (stable/13 does not have the commits at all.)
There is also a prior:
if (efi_has_gop())
how |= RB_MULTIPLE;
else
how |= RB_MULTIPLE | RB_SERIAL;
setenv("console", "efi,comconsole", 1);
and:
#if defined(__riscv)
/*
* This workaround likely is papering over a real issue
*/
if ((uhowto & RB_SERIAL) != 0)
setenv("console", "comconsole", 1);
#endif
that may well both be wrong for stand/efi/loader/main.c too.