Date: Thu, 29 Jan 2026 17:31:20 +0100 From: Michael Osipov <michaelo@FreeBSD.org> To: Mark Millard <marklmi@yahoo.com>, dev-commits-src-main@FreeBSD.org Cc: Warner Losh <imp@bsdimp.com> Subject: Re: git: 56970c3c4b0b - main - loader: Prefer comma-separated list of values for "console" Message-ID: <40a3f9a2-3adc-470b-8dcb-63b166e2cf14@FreeBSD.org> In-Reply-To: <b846b73d-d744-4e99-81ca-77b11cf5042a@yahoo.com> References: <697b1e0e.27b69.ae3352c@gitrepo.freebsd.org> <b846b73d-d744-4e99-81ca-77b11cf5042a@yahoo.com>
index | next in thread | previous in thread | raw e-mail
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 <michaelo@FreeBSD.org> >> AuthorDate: 2026-01-28 09:02:33 +0000 >> Commit: Michael Osipov <michaelo@FreeBSD.org> >> 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? Michaelhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40a3f9a2-3adc-470b-8dcb-63b166e2cf14>
