svn commit: r358989 - in head/stand/efi: libefi loader loader/arch/arm loader/arch/arm64

Toomas Soome tsoome at me.com
Fri Mar 20 12:59:20 UTC 2020



> On 20. Mar 2020, at 13:29, Tomoaki AOKI <junchoon at dec.sakura.ne.jp> wrote:
> 
> 
> Maybe I got a hint...
> COLUMNS and LINES (either `show` on loader prompt or `kenv` on running
> system) only appears when I manually set any mode by ex. `mode 0`
> on loader prompt. Just viewing current mode by `mode` doesn't affect.
> 
> If `mode 0`, COLUMNS="80" LINES="25" and if `mode 3` COLUMNS="128"
> LINES="40". (Actually, 128x48 screen after starting kernel, though.)
> 
> This would mean COLUMNS and LINES cannot be fetched properly unless
> mode is manually set on loader prompt.
> Can it be any hint for you, Toomas?
> 

having *no* COLUMNS and LINES is greatly confusing because we set them just before we return from efi_cons_update_mode() in efi/libefi/efi_console.c. I specifically did change that with last patch, so we would get the values, and we do not return early as we did before.

And yes, we do update COLUMNS/LINES from command_mode() in efi/loader/main.c, by calling this same efi_cons_update_mode(). Perhaps we should read current mode and set it from efi_cons_probe() to work around this bug. 

But thank you from this feedback, it is really helpful.

thanks,
toomas


> 
> FYI, on loader prompt, 
> 
> `mode`
> Current mode: 0
> Mode 0: 80 columns, 25 rows
> Mode 2: 100 columns, 31 rows
> Mode 3: 128 columns, 40 rows
> Select a mode with the command "mode <number>"
> OK
> 
> `gop list`
> mode 0: 640x480x32, stride=640
> mode 1: 800x600x32, stride=800
> mode 2: 1024x768x32, stride=1024
> OK
> 
> 
> On running system after `mode 0` on loader prompt:
> 
> === kenv output excluding hardware serial No. and UUID below ===
> 
> COLUMNS="80"
> LINES="25"
> acpi.oem="LENOVO"
> acpi.revision="2"
> acpi.rsdp="0x000000004fd0e014"
> acpi.rsdt="0x000000004fd0c0c4"
> acpi.xsdt="0x000000004fd0c188"
> acpi.xsdt_length="36"
> autoboot_delay="NO"
> bootenv_autolist="YES"
> bootenvs[0]="zfs:zsysS05/ROOT/head-r359007-boot1Rev6TA3"
> bootenvs[10]="zfs:zsysS05/ROOT/head-r358565-boot1Rev6TA3"
> bootenvs[11]="zfs:zsysS05/ROOT/he<"
> bootenvs[12]="zfs:zsysS05/ROOT/"
> bootenvs[13]="zfs:zsysS05/ROOT/boot1Rev6TA3"
> bootenvs[14]="zfs:zsysS05/ROOT/"
> bootenvs[1]="zfs:zsysS05/ROOT/head-r359005-boot1Rev6TA3"
> bootenvs[2]="zfs:zsysS05/ROOT/head-r358989-boot1Rev6TA3"
> bootenvs[3]="zfs:zsysS05/ROOT/head-r358906-boot1Rev6TA3"
> bootenvs[4]="zfs:zsysS05/ROOT/head-r358872-boot1Rev6TA3"
> bootenvs[5]="zfs:zsysS05/ROOT/head-r358865-boot1Rev6TA3-2"
> bootenvs[6]="zfs:zsysS05/ROOT/head-r358827-boot1Rev6TA3"
> bootenvs[7]="zfs:zsysS05/ROOT/head-r358734-boot1Rev6TA3"
> bootenvs[8]="zfs:zsysS05/ROOT/head-r358729-boot1Rev6TA3"
> bootenvs[9]="zfs:zsysS05/ROOT/head-r358669-boot1Rev6TA3"
> bootenvs_count="15"
> bootfile="kernel"
> comconsole_pcidev=""
> comconsole_port="1016"
> comconsole_speed="9600"
> console="efi"
> currdev="zfs:zsysS05/ROOT/default:"
> efi-version="2.60"
> efi_max_resolution="2160p"
> hint.acpi.0.oem="LENOVO"
> hint.acpi.0.revision="2"
> hint.acpi.0.rsdp="0x000000004fd0e014"
> hint.acpi.0.rsdt="0x000000004fd0c0c4"
> hint.acpi.0.xsdt="0x000000004fd0c188"
> hint.acpi.0.xsdt_length="36"
> hint.acpi_throttle.0.disabled="1"
> hint.atkbd.0.at <http://hint.atkbd.0.at/>="atkbdc"
> hint.atkbd.0.irq="1"
> hint.atkbdc.0.at <http://hint.atkbdc.0.at/>="isa"
> hint.atkbdc.0.port="0x060"
> hint.atrtc.0.at <http://hint.atrtc.0.at/>="isa"
> hint.atrtc.0.irq="8"
> hint.atrtc.0.port="0x70"
> hint.attimer.0.at <http://hint.attimer.0.at/>="isa"
> hint.attimer.0.irq="0"
> hint.attimer.0.port="0x40"
> hint.fd.0.at <http://hint.fd.0.at/>="fdc0"
> hint.fd.0.drive="0"
> hint.fd.1.at <http://hint.fd.1.at/>="fdc0"
> hint.fd.1.drive="1"
> hint.fdc.0.at <http://hint.fdc.0.at/>="isa"
> hint.fdc.0.drq="2"
> hint.fdc.0.irq="6"
> hint.fdc.0.port="0x3F0"
> hint.p4tcc.0.disabled="1"
> hint.ppc.0.at <http://hint.ppc.0.at/>="isa"
> hint.ppc.0.irq="7"
> hint.psm.0.at <http://hint.psm.0.at/>="atkbdc"
> hint.psm.0.irq="12"
> hint.sc.0.at <http://hint.sc.0.at/>="isa"
> hint.sc.0.flags="0x100"
> hint.smbios.0.mem="0x4d580000"
> hint.uart.0.at <http://hint.uart.0.at/>="isa"
> hint.uart.0.flags="0x10"
> hint.uart.0.irq="4"
> hint.uart.0.port="0x3F8"
> hint.uart.1.at <http://hint.uart.1.at/>="isa"
> hint.uart.1.irq="3"
> hint.uart.1.port="0x2F8"
> hw.ata.atapi_dma="1"
> hw.ibrs_disable="0"
> hw.pci.allow_unsupported_io_range="1"
> hw.psm.elantech_support="1"
> hw.psm.trackpoint_support="1"
> interpret="OK"
> kern.hz="8192"
> kern.ipc.semmni="40"
> kern.ipc.semmns="300"
> kern.ipc.shm_use_phys="1"
> kern.ipc.shmmni="1024"
> kern.ipc.shmseg="1024"
> kern.maxfiles="250000"
> kern.vty="vt"
> kernel="kernel"
> kernel_options=""
> kernel_path="/boot/kernel"
> kernelname="/boot/kernel/kernel"
> kernels="kernel kernel.old"
> kernels_autodetect="YES"
> loaddev="zfs:zsysS05/ROOT/default:"
> loader_conf_files="/boot/device.hints /boot/loader.conf /boot/loader.conf.local"
> machdep.mitigations.taa.enable="3"
> module_blacklist="drm drm2 radeonkms i915kms amdgpu"
> module_path="/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays"
> net.graph.maxdata="65536"
> nextboot_conf="/boot/nextboot.conf"
> nextboot_enable="NO"
> prompt="${interpret}"
> script.lang="lua"
> smbios.bios.reldate="11/04/2019"
> smbios.bios.vendor="LENOVO"
> smbios.bios.version="N2CET48W (1.31 )"
> smbios.chassis.maker="LENOVO"
> smbios.chassis.serial="********"
> smbios.chassis.tag="No Asset Information"
> smbios.chassis.version="None"
> smbios.memory.enabled="33554432"
> smbios.planar.location="Not Available"
> smbios.planar.maker="LENOVO"
> smbios.planar.product="20M9CTO1WW"
> smbios.planar.serial="***********"
> smbios.planar.tag="Not Available"
> smbios.planar.version="SDK0J40697 WIN"
> smbios.socket.enabled="1"
> smbios.socket.populated="1"
> smbios.system.family="ThinkPad P52"
> smbios.system.maker="LENOVO"
> smbios.system.product="20M9CTO1WW"
> smbios.system.serial="********"
> smbios.system.sku="LENOVO_MT_20M9_BU_Think_FM_ThinkPad P52"
> smbios.system.uuid="********-****-****-****-************"
> smbios.system.version="ThinkPad P52"
> smbios.version="3.1"
> teken.bg_color="0"
> teken.fg_color="7"
> twiddle_divisor="1"
> verbose_loading="NO"
> vfs.root.mountfrom="zfs:zsysS05/ROOT/default"
> vfs.zfs.abd_chunk_size="1024"
> vfs.zfs.prefetch_disable="1"
> vm.pmap.pti="1"
> zfs_be_active="zfs:zsysS05/ROOT/default"
> zfs_be_currpage="1"
> zfs_be_root="zsysS05/ROOT"
> 
> === kenv output excluding hardware serial No. and UUID above ===
> 
> 
>> 
>>> 
>>> === `kenv` output except hardware serial No. and UUID below ===
>>> 
>>> acpi.oem="LENOVO"
>>> acpi.revision="2"
>>> acpi.rsdp="0x000000004fd0e014"
>>> acpi.rsdt="0x000000004fd0c0c4"
>>> acpi.xsdt="0x000000004fd0c188"
>>> acpi.xsdt_length="36"
>>> bootenv_autolist="YES"
>>> bootenvs[0]="zfs:zsysS05/ROOT/head-r359007-boot1Rev6TA3"
>>> bootenvs[10]="zfs:zsysS05/ROOT/head-r358565-boot1Rev6TA3"
>>> bootenvs[11]="zfs:zsysS05/ROOT/"
>>> bootenvs[1]="zfs:zsysS05/ROOT/head-r359005-boot1Rev6TA3"
>>> bootenvs[2]="zfs:zsysS05/ROOT/head-r358989-boot1Rev6TA3"
>>> bootenvs[3]="zfs:zsysS05/ROOT/head-r358906-boot1Rev6TA3"
>>> bootenvs[4]="zfs:zsysS05/ROOT/head-r358872-boot1Rev6TA3"
>>> bootenvs[5]="zfs:zsysS05/ROOT/head-r358865-boot1Rev6TA3-2"
>>> bootenvs[6]="zfs:zsysS05/ROOT/head-r358827-boot1Rev6TA3"
>>> bootenvs[7]="zfs:zsysS05/ROOT/head-r358734-boot1Rev6TA3"
>>> bootenvs[8]="zfs:zsysS05/ROOT/head-r358729-boot1Rev6TA3"
>>> bootenvs[9]="zfs:zsysS05/ROOT/head-r358669-boot1Rev6TA3"
>>> bootenvs_count="12"
>>> bootfile="kernel"
>>> comconsole_pcidev=""
>>> comconsole_port="1016"
>>> comconsole_speed="9600"
>>> console="efi"
>>> currdev="zfs:zsysS05/ROOT/default:"
>>> efi-version="2.60"
>>> efi_max_resolution="2160p"
>>> hint.acpi.0.oem="LENOVO"
>>> hint.acpi.0.revision="2"
>>> hint.acpi.0.rsdp="0x000000004fd0e014"
>>> hint.acpi.0.rsdt="0x000000004fd0c0c4"
>>> hint.acpi.0.xsdt="0x000000004fd0c188"
>>> hint.acpi.0.xsdt_length="36"
>>> hint.acpi_throttle.0.disabled="1"
>>> hint.atkbd.0.at <http://hint.atkbd.0.at/> <http://hint.atkbd.0.at/ <http://hint.atkbd.0.at/>>="atkbdc"
>>> hint.atkbd.0.irq="1"
>>> hint.atkbdc.0.at <http://hint.atkbdc.0.at/> <http://hint.atkbdc.0.at/ <http://hint.atkbdc.0.at/>>="isa"
>>> hint.atkbdc.0.port="0x060"
>>> hint.atrtc.0.at <http://hint.atrtc.0.at/> <http://hint.atrtc.0.at/ <http://hint.atrtc.0.at/>>="isa"
>>> hint.atrtc.0.irq="8"
>>> hint.atrtc.0.port="0x70"
>>> hint.attimer.0.at <http://hint.attimer.0.at/> <http://hint.attimer.0.at/ <http://hint.attimer.0.at/>>="isa"
>>> hint.attimer.0.irq="0"
>>> hint.attimer.0.port="0x40"
>>> hint.fd.0.at <http://hint.fd.0.at/> <http://hint.fd.0.at/ <http://hint.fd.0.at/>>="fdc0"
>>> hint.fd.0.drive="0"
>>> hint.fd.1.at <http://hint.fd.1.at/> <http://hint.fd.1.at/ <http://hint.fd.1.at/>>="fdc0"
>>> hint.fd.1.drive="1"
>>> hint.fdc.0.at <http://hint.fdc.0.at/> <http://hint.fdc.0.at/ <http://hint.fdc.0.at/>>="isa"
>>> hint.fdc.0.drq="2"
>>> hint.fdc.0.irq="6"
>>> hint.fdc.0.port="0x3F0"
>>> hint.p4tcc.0.disabled="1"
>>> hint.ppc.0.at <http://hint.ppc.0.at/> <http://hint.ppc.0.at/ <http://hint.ppc.0.at/>>="isa"
>>> hint.ppc.0.irq="7"
>>> hint.psm.0.at <http://hint.psm.0.at/> <http://hint.psm.0.at/ <http://hint.psm.0.at/>>="atkbdc"
>>> hint.psm.0.irq="12"
>>> hint.sc.0.at <http://hint.sc.0.at/> <http://hint.sc.0.at/ <http://hint.sc.0.at/>>="isa"
>>> hint.sc.0.flags="0x100"
>>> hint.smbios.0.mem="0x4d580000"
>>> hint.uart.0.at <http://hint.uart.0.at/> <http://hint.uart.0.at/ <http://hint.uart.0.at/>>="isa"
>>> hint.uart.0.flags="0x10"
>>> hint.uart.0.irq="4"
>>> hint.uart.0.port="0x3F8"
>>> hint.uart.1.at <http://hint.uart.1.at/> <http://hint.uart.1.at/ <http://hint.uart.1.at/>>="isa"
>>> hint.uart.1.irq="3"
>>> hint.uart.1.port="0x2F8"
>>> hw.ata.atapi_dma="1"
>>> hw.ibrs_disable="0"
>>> hw.pci.allow_unsupported_io_range="1"
>>> hw.psm.elantech_support="1"
>>> hw.psm.trackpoint_support="1"
>>> kern.hz="8192"
>>> kern.ipc.semmni="40"
>>> kern.ipc.semmns="300"
>>> kern.ipc.shm_use_phys="1"
>>> kern.ipc.shmmni="1024"
>>> kern.ipc.shmseg="1024"
>>> kern.maxfiles="250000"
>>> kern.vty="vt"
>>> kernel="kernel"
>>> kernel_options=""
>>> kernel_path="/boot/kernel"
>>> kernelname="/boot/kernel/kernel"
>>> kernels="kernel kernel.old"
>>> kernels_autodetect="YES"
>>> loaddev="zfs:zsysS05/ROOT/default:"
>>> loader_conf_files="/boot/device.hints /boot/loader.conf /boot/loader.conf.local"
>>> machdep.mitigations.taa.enable="3"
>>> module_blacklist="drm drm2 radeonkms i915kms amdgpu"
>>> module_path="/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays"
>>> net.graph.maxdata="65536"
>>> nextboot_conf="/boot/nextboot.conf"
>>> nextboot_enable="NO"
>>> script.lang="lua"
>>> smbios.bios.reldate="11/04/2019"
>>> smbios.bios.vendor="LENOVO"
>>> smbios.bios.version="N2CET48W (1.31 )"
>>> smbios.chassis.maker="LENOVO"
>>> smbios.chassis.serial="********"
>>> smbios.chassis.tag="No Asset Information"
>>> smbios.chassis.version="None"
>>> smbios.memory.enabled="33554432"
>>> smbios.planar.location="Not Available"
>>> smbios.planar.maker="LENOVO"
>>> smbios.planar.product="20M9CTO1WW"
>>> smbios.planar.serial="***********"
>>> smbios.planar.tag="Not Available"
>>> smbios.planar.version="SDK0J40697 WIN"
>>> smbios.socket.enabled="1"
>>> smbios.socket.populated="1"
>>> smbios.system.family="ThinkPad P52"
>>> smbios.system.maker="LENOVO"
>>> smbios.system.product="20M9CTO1WW"
>>> smbios.system.serial="********"
>>> smbios.system.sku="LENOVO_MT_20M9_BU_Think_FM_ThinkPad P52"
>>> smbios.system.uuid="********-****-****-****-************"
>>> smbios.system.version="ThinkPad P52"
>>> smbios.version="3.1"
>>> twiddle_divisor="1"
>>> verbose_loading="NO"
>>> vfs.root.mountfrom="zfs:zsysS05/ROOT/default"
>>> vfs.zfs.abd_chunk_size="1024"
>>> vfs.zfs.prefetch_disable="1"
>>> vm.pmap.pti="1"
>>> zfs_be_active="zfs:zsysS05/ROOT/default"
>>> zfs_be_currpage="1"
>>> zfs_be_root="zsysS05/ROOT"
>>> 
>>> 
>>> === `kenv` output except hardware serial No and UUID above ===
>>> 
>>> 
>>>> 
>>>> 
>>>>> 
>>>>>> 
>>>>>> Regarding the issue with vm, I am afraid the roots are going much deeper there. I have not got to the exact cause (and therefore a fix), but the problem is not about this specific patch. The problem is about memory map, specifically one just before and after we switch off Boot Services. 
>>>>> That's a very bad news for me.  Looking at HEAD's commit list I hope
>>>>> that's a known problem?  Or should I open a PR on bugs.FreeBSD.org <http://bugs.freebsd.org/><http://bugs.freebsd.org/ <http://bugs.freebsd.org/>><http://bugs.freebsd.org/ <http://bugs.freebsd.org/> <http://bugs.freebsd.org/ <http://bugs.freebsd.org/>>>?
>>>> 
>>>> 
>>>> PR is always good idea. Finding the exact cause and getting sure fix is question of time. I have done quite amount of investigation, but I can not yet point the finger even as there is one known issue identified. *IF* I am correct about the issue, the fix will take some time as it is not too trivial.
>>>> 
>>>> 
>>>>> 
>>>>> Moreover, I believe the next snapshot of the CURRENT (which will be made
>>>>> after r358989) made by the release team will be unbootable on VMware
>>>>> hypervisors.
>>>> 
>>>> BIOS version is ok.
>>>> 
>>>> rgds,
>>>> toomas
>>>> 
>>>>> 
>>>>>> 
>>>>>> rgds,
>>>>>> toomas
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> [1]
>>>>>>> https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/>><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/>>><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/>><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/><https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/ <https://old.reddit.com/r/freebsd/comments/drxqlm/failed_to_do_efi_boot_on_a_vmware_virtual_machine/f6om6p2/>>>>
>>>>>>>>>> 
>>>>>>>>>> Not tried (not enough time for now as I'm mainly using stable/12),
>>>>>>>>>> but possibly calling efi_cons_probe() from efi_cons_init() would be
>>>>>>>>>> needed, as ome codes are moved from the latter to the former.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> Author: tsoome
>>>>>>>>>>> Date: Sat Mar 14 06:36:03 2020
>>>>>>>>>>> New Revision: 358989
>>>>>>>>>>> URL: https://svnweb.freebsd.org/changeset/base/358989
>>>>>>>>>>> 
>>>>>>>>>>> Log:
>>>>>>>>>>> loader: add comconsole implementation on top of SIO protocol
>>>>>>>>>>> 
>>>>>>>>>>> Provide comconsole on top of SIO for arm platforms (x86 does use bios
>>>>>>>>>> version).
>>>>>>>>>>> 
>>>>>>>>>>> Added:
>>>>>>>>>>> head/stand/efi/loader/efiserialio.c   (contents, props changed)
>>>>>>>>>>> Modified:
>>>>>>>>>>> head/stand/efi/libefi/efi_console.c
>>>>>>>>>>> head/stand/efi/loader/arch/arm/Makefile.inc
>>>>>>>>>>> head/stand/efi/loader/arch/arm64/Makefile.inc
>>>>>>>>>>> head/stand/efi/loader/conf.c
>>>>>>>>>>> head/stand/efi/loader/main.c
>>>>>>>>>>> 
>>>>>>>>>>> Modified: head/stand/efi/libefi/efi_console.c
>>>>>>>>>>> ==============================================================================
>>>>>>>>>>> --- head/stand/efi/libefi/efi_console.c	Sat Mar 14 05:57:22
>>>>>>>>>> 2020	(r358988)
>>>>>>>>>>> +++ head/stand/efi/libefi/efi_console.c
>>>>>>>>>> Sat Mar 14 06:36:03 2020	(r358989)
>>>>>>>>>>> @@ -377,9 +377,22 @@ efi_cons_respond(void *s __unused, const void *buf __u
>>>>>>>>>>> {
>>>>>>>>>>> }
>>>>>>>>>>> 
>>>>>>>>>>> +/*
>>>>>>>>>>> + * Set up conin/conout/coninex to make sure we have input ready.
>>>>>>>>>>> + */
>>>>>>>>>>> static void
>>>>>>>>>>> efi_cons_probe(struct console *cp)
>>>>>>>>>>> {
>>>>>>>>>>> +	EFI_STATUS status;
>>>>>>>>>>> +
>>>>>>>>>>> +	conout = ST->ConOut;
>>>>>>>>>>> +	conin = ST->ConIn;
>>>>>>>>>>> +
>>>>>>>>>>> +	status = BS->OpenProtocol(ST->ConsoleInHandle,
>>>>>>>>>> &simple_input_ex_guid,
>>>>>>>>>>> +	    (void **)&coninex, IH, NULL,
>>>>>>>>>> EFI_OPEN_PROTOCOL_GET_PROTOCOL);
>>>>>>>>>>> +	if (status != EFI_SUCCESS)
>>>>>>>>>>> +		coninex = NULL;
>>>>>>>>>>> +
>>>>>>>>>>> 	cp->c_flags |= C_PRESENTIN | C_PRESENTOUT;
>>>>>>>>>>> }
>>>>>>>>>>> 
>>>>>>>>>>> @@ -889,15 +902,7 @@ efi_cons_init(int arg)
>>>>>>>>>>> 	if (conin != NULL)
>>>>>>>>>>> 		return (0);
>>>>>>>>>>> 
>>>>>>>>>>> -	conout = ST->ConOut;
>>>>>>>>>>> -	conin = ST->ConIn;
>>>>>>>>>>> -
>>>>>>>>>>> 	conout->EnableCursor(conout, TRUE);
>>>>>>>>>>> -	status = BS->OpenProtocol(ST->ConsoleInHandle,
>>>>>>>>>> &simple_input_ex_guid,
>>>>>>>>>>> -	    (void **)&coninex, IH, NULL,
>>>>>>>>>> EFI_OPEN_PROTOCOL_GET_PROTOCOL);
>>>>>>>>>>> -	if (status != EFI_SUCCESS)
>>>>>>>>>>> -		coninex = NULL;
>>>>>>>>>>> -
>>>>>>>>>>> 	if (efi_cons_update_mode())
>>>>>>>>>>> 		return (0);
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> Modified: head/stand/efi/loader/arch/arm/Makefile.inc
>>>>>>>>>>> ==============================================================================
>>>>>>>>>>> --- head/stand/efi/loader/arch/arm/Makefile.inc	Sat Mar 14
>>>>>>>>>> 05:57:22 2020	(r358988)
>>>>>>>>>>> +++ head/stand/efi/loader/arch/arm/Makefile.inc	Sat Mar 14 06:36:03
>>>>>>>>>> 2020	(r358989)
>>>>>>>>>>> @@ -1,6 +1,7 @@
>>>>>>>>>>> # $FreeBSD$
>>>>>>>>>>> 
>>>>>>>>>>> SRCS+=	exec.c \
>>>>>>>>>>> +	efiserialio.c \
>>>>>>>>>>> 	start.S
>>>>>>>>>>> 
>>>>>>>>>>> HAVE_FDT=yes
>>>>>>>>>> 
>>>>>>>>>> (Snip)
>>>>>>>>>> 
>>>>>>>>>>> @@ -930,7 +936,6 @@ main(int argc, CHAR16 *argv[])
>>>>>>>>>>> 	if (!has_kbd && (howto & RB_PROBE))
>>>>>>>>>>> 		howto |= RB_SERIAL | RB_MULTIPLE;
>>>>>>>>>>> 	howto &= ~RB_PROBE;
>>>>>>>>>>> -	uhowto = parse_uefi_con_out();
>>>>>>>>>>> 
>>>>>>>>>>> 	/*
>>>>>>>>>>> 	 * Read additional environment variables from the boot device's
>>>>>>>>>> 
>>>>>>>>>> -- 
>>>>>>>>>> Tomoaki AOKI    <junchoon at dec.sakura.ne.jp>
>>>> 
>>> 
>>> 
>>> -- 
>>> Tomoaki AOKI    <junchoon at dec.sakura.ne.jp <mailto:junchoon at dec.sakura.ne.jp> <mailto:junchoon at dec.sakura.ne.jp <mailto:junchoon at dec.sakura.ne.jp>>>
>> 
> 
> 
> -- 
> Tomoaki AOKI    <junchoon at dec.sakura.ne.jp <mailto:junchoon at dec.sakura.ne.jp>>



More information about the svn-src-head mailing list