On 1/29/26 00:45, Michael Osipov wrote: > The branch main has been updated by michaelo: > > URL: > https://cgit.FreeBSD.org/src/commit/?id=56970c3c4b0bc61d972837661a31cc2b9e8e8d7c > > 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://reviews.freebsd.org/D54923 > --- > 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://cgit.freebsd.org/src/commit/stand/efi?id=2f131435bc22> 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://cgit.freebsd.org/src/commit/stand/efi?id=f93416d67743> 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. > diff --git a/stand/i386/loader/main.c b/stand/i386/loader/main.c > index a70b3a253b90..7538c6d4fb3f 100644 > --- a/stand/i386/loader/main.c > +++ b/stand/i386/loader/main.c > @@ -162,9 +162,9 @@ main(void) > bi_setboothowto(initial_howto); > if (initial_howto & RB_MULTIPLE) { > if (initial_howto & RB_SERIAL) > - setenv("console", "comconsole vidconsole", 1); > + setenv("console", "comconsole,vidconsole", 1); > else > - setenv("console", "vidconsole comconsole", 1); > + setenv("console", "vidconsole,comconsole", 1); > } else if (initial_howto & RB_SERIAL) { > setenv("console", "comconsole", 1); > } else if (initial_howto & RB_MUTE) { > > -- === Mark Millard marklmi at yahoo.com
