On 2026-01-29 17:22, Mark Millard wrote:
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.

Hi Mark,

thanks for raising. I do not fully understand the point you are trying to make. This change is a spinoff from https://reviews.freebsd.org/D54843 where we identified that comma is the preferred separator, but space is allowed as well. For consistency reasons I have updated everything to comma. I didn't change the actual values.

Can you clarify?

Michael

Reply via email to