Re: git: 56970c3c4b0b - main - loader: Prefer comma-separated list of values for "console"

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 29 Jan 2026 17:09:36 UTC
On 1/29/26 08:31, Michael Osipov wrote:
> 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?
> 
> Michael
> 
> 

Sounds like you were not the right person to reference for this and you
might not be involved if anything does happen related to my
notes/questions. Also: not tied to what you report for the context for
your change. I was just prompted to think of the issue by the text
presented in the commit. I had not been tracking the prior stages of
your activity.

I expect that my basic questions about the use of comconsole in
stand/efi/loader/main.c are still appropriate, even if you would not be
involved in answering them.

I think I'll try to move this to freebsd-stable@ since it is off topic
to your purpose in your commit. Future replies could omit:
dev-commits-src-main@


-- 
===
Mark Millard
marklmi at yahoo.com