Date: Fri, 20 Mar 2020 14:59:10 +0200 From: Toomas Soome <tsoome@me.com> To: junchoon@dec.sakura.ne.jp Cc: Ruslan Garipov <brigadir15@gmail.com>, svn-src-head@freebsd.org Subject: Re: svn commit: r358989 - in head/stand/efi: libefi loader loader/arch/arm loader/arch/arm64 Message-ID: <889F68BB-59AE-4381-8947-10B769CF7008@me.com> In-Reply-To: <20200320202906.8fcd15f65de67d54d31c5547@dec.sakura.ne.jp> References: <20200316001745.07df62f72d647b924b657d86@dec.sakura.ne.jp> <746EE981-536F-49AD-9B76-F9F103ECB1F9@me.com> <20200317211614.bbe1b18a32d7863941fffbe8@dec.sakura.ne.jp> <55b1f91b-6157-bfee-cd74-124ed50bc663@gmail.com> <EFDD40A1-3583-489A-9F4A-50BD19B5049E@me.com> <944c641f-b570-1420-6b63-96374217d795@gmail.com> <4ABF87AE-948F-43A8-940A-744FC2F4DE4D@me.com> <20200319213329.f354314a9a72e1419d76d2ba@dec.sakura.ne.jp> <BCBD8E38-32D5-42D2-B097-1CB2B4278B21@me.com> <20200320202906.8fcd15f65de67d54d31c5547@dec.sakura.ne.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 20. Mar 2020, at 13:29, Tomoaki AOKI <junchoon@dec.sakura.ne.jp> = wrote: >=20 >=20 > 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. >=20 > If `mode 0`, COLUMNS=3D"80" LINES=3D"25" and if `mode 3` COLUMNS=3D"128"= > LINES=3D"40". (Actually, 128x48 screen after starting kernel, though.) >=20 > 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? >=20 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.=20 But thank you from this feedback, it is really helpful. thanks, toomas >=20 > FYI, on loader prompt,=20 >=20 > `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 >=20 > `gop list` > mode 0: 640x480x32, stride=3D640 > mode 1: 800x600x32, stride=3D800 > mode 2: 1024x768x32, stride=3D1024 > OK >=20 >=20 > On running system after `mode 0` on loader prompt: >=20 > =3D=3D=3D kenv output excluding hardware serial No. and UUID below =3D=3D= =3D >=20 > COLUMNS=3D"80" > LINES=3D"25" > acpi.oem=3D"LENOVO" > acpi.revision=3D"2" > acpi.rsdp=3D"0x000000004fd0e014" > acpi.rsdt=3D"0x000000004fd0c0c4" > acpi.xsdt=3D"0x000000004fd0c188" > acpi.xsdt_length=3D"36" > autoboot_delay=3D"NO" > bootenv_autolist=3D"YES" > bootenvs[0]=3D"zfs:zsysS05/ROOT/head-r359007-boot1Rev6TA3" > bootenvs[10]=3D"zfs:zsysS05/ROOT/head-r358565-boot1Rev6TA3" > bootenvs[11]=3D"zfs:zsysS05/ROOT/he<" > bootenvs[12]=3D"zfs:zsysS05/ROOT/" > bootenvs[13]=3D"zfs:zsysS05/ROOT/boot1Rev6TA3" > bootenvs[14]=3D"zfs:zsysS05/ROOT/" > bootenvs[1]=3D"zfs:zsysS05/ROOT/head-r359005-boot1Rev6TA3" > bootenvs[2]=3D"zfs:zsysS05/ROOT/head-r358989-boot1Rev6TA3" > bootenvs[3]=3D"zfs:zsysS05/ROOT/head-r358906-boot1Rev6TA3" > bootenvs[4]=3D"zfs:zsysS05/ROOT/head-r358872-boot1Rev6TA3" > bootenvs[5]=3D"zfs:zsysS05/ROOT/head-r358865-boot1Rev6TA3-2" > bootenvs[6]=3D"zfs:zsysS05/ROOT/head-r358827-boot1Rev6TA3" > bootenvs[7]=3D"zfs:zsysS05/ROOT/head-r358734-boot1Rev6TA3" > bootenvs[8]=3D"zfs:zsysS05/ROOT/head-r358729-boot1Rev6TA3" > bootenvs[9]=3D"zfs:zsysS05/ROOT/head-r358669-boot1Rev6TA3" > bootenvs_count=3D"15" > bootfile=3D"kernel" > comconsole_pcidev=3D"" > comconsole_port=3D"1016" > comconsole_speed=3D"9600" > console=3D"efi" > currdev=3D"zfs:zsysS05/ROOT/default:" > efi-version=3D"2.60" > efi_max_resolution=3D"2160p" > hint.acpi.0.oem=3D"LENOVO" > hint.acpi.0.revision=3D"2" > hint.acpi.0.rsdp=3D"0x000000004fd0e014" > hint.acpi.0.rsdt=3D"0x000000004fd0c0c4" > hint.acpi.0.xsdt=3D"0x000000004fd0c188" > hint.acpi.0.xsdt_length=3D"36" > hint.acpi_throttle.0.disabled=3D"1" > hint.atkbd.0.at <http://hint.atkbd.0.at/>=3D"atkbdc" > hint.atkbd.0.irq=3D"1" > hint.atkbdc.0.at <http://hint.atkbdc.0.at/>=3D"isa" > hint.atkbdc.0.port=3D"0x060" > hint.atrtc.0.at <http://hint.atrtc.0.at/>=3D"isa" > hint.atrtc.0.irq=3D"8" > hint.atrtc.0.port=3D"0x70" > hint.attimer.0.at <http://hint.attimer.0.at/>=3D"isa" > hint.attimer.0.irq=3D"0" > hint.attimer.0.port=3D"0x40" > hint.fd.0.at <http://hint.fd.0.at/>=3D"fdc0" > hint.fd.0.drive=3D"0" > hint.fd.1.at <http://hint.fd.1.at/>=3D"fdc0" > hint.fd.1.drive=3D"1" > hint.fdc.0.at <http://hint.fdc.0.at/>=3D"isa" > hint.fdc.0.drq=3D"2" > hint.fdc.0.irq=3D"6" > hint.fdc.0.port=3D"0x3F0" > hint.p4tcc.0.disabled=3D"1" > hint.ppc.0.at <http://hint.ppc.0.at/>=3D"isa" > hint.ppc.0.irq=3D"7" > hint.psm.0.at <http://hint.psm.0.at/>=3D"atkbdc" > hint.psm.0.irq=3D"12" > hint.sc.0.at <http://hint.sc.0.at/>=3D"isa" > hint.sc.0.flags=3D"0x100" > hint.smbios.0.mem=3D"0x4d580000" > hint.uart.0.at <http://hint.uart.0.at/>=3D"isa" > hint.uart.0.flags=3D"0x10" > hint.uart.0.irq=3D"4" > hint.uart.0.port=3D"0x3F8" > hint.uart.1.at <http://hint.uart.1.at/>=3D"isa" > hint.uart.1.irq=3D"3" > hint.uart.1.port=3D"0x2F8" > hw.ata.atapi_dma=3D"1" > hw.ibrs_disable=3D"0" > hw.pci.allow_unsupported_io_range=3D"1" > hw.psm.elantech_support=3D"1" > hw.psm.trackpoint_support=3D"1" > interpret=3D"OK" > kern.hz=3D"8192" > kern.ipc.semmni=3D"40" > kern.ipc.semmns=3D"300" > kern.ipc.shm_use_phys=3D"1" > kern.ipc.shmmni=3D"1024" > kern.ipc.shmseg=3D"1024" > kern.maxfiles=3D"250000" > kern.vty=3D"vt" > kernel=3D"kernel" > kernel_options=3D"" > kernel_path=3D"/boot/kernel" > kernelname=3D"/boot/kernel/kernel" > kernels=3D"kernel kernel.old" > kernels_autodetect=3D"YES" > loaddev=3D"zfs:zsysS05/ROOT/default:" > loader_conf_files=3D"/boot/device.hints /boot/loader.conf = /boot/loader.conf.local" > machdep.mitigations.taa.enable=3D"3" > module_blacklist=3D"drm drm2 radeonkms i915kms amdgpu" > module_path=3D"/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays" > net.graph.maxdata=3D"65536" > nextboot_conf=3D"/boot/nextboot.conf" > nextboot_enable=3D"NO" > prompt=3D"${interpret}" > script.lang=3D"lua" > smbios.bios.reldate=3D"11/04/2019" > smbios.bios.vendor=3D"LENOVO" > smbios.bios.version=3D"N2CET48W (1.31 )" > smbios.chassis.maker=3D"LENOVO" > smbios.chassis.serial=3D"********" > smbios.chassis.tag=3D"No Asset Information" > smbios.chassis.version=3D"None" > smbios.memory.enabled=3D"33554432" > smbios.planar.location=3D"Not Available" > smbios.planar.maker=3D"LENOVO" > smbios.planar.product=3D"20M9CTO1WW" > smbios.planar.serial=3D"***********" > smbios.planar.tag=3D"Not Available" > smbios.planar.version=3D"SDK0J40697 WIN" > smbios.socket.enabled=3D"1" > smbios.socket.populated=3D"1" > smbios.system.family=3D"ThinkPad P52" > smbios.system.maker=3D"LENOVO" > smbios.system.product=3D"20M9CTO1WW" > smbios.system.serial=3D"********" > smbios.system.sku=3D"LENOVO_MT_20M9_BU_Think_FM_ThinkPad P52" > smbios.system.uuid=3D"********-****-****-****-************" > smbios.system.version=3D"ThinkPad P52" > smbios.version=3D"3.1" > teken.bg_color=3D"0" > teken.fg_color=3D"7" > twiddle_divisor=3D"1" > verbose_loading=3D"NO" > vfs.root.mountfrom=3D"zfs:zsysS05/ROOT/default" > vfs.zfs.abd_chunk_size=3D"1024" > vfs.zfs.prefetch_disable=3D"1" > vm.pmap.pti=3D"1" > zfs_be_active=3D"zfs:zsysS05/ROOT/default" > zfs_be_currpage=3D"1" > zfs_be_root=3D"zsysS05/ROOT" >=20 > =3D=3D=3D kenv output excluding hardware serial No. and UUID above =3D=3D= =3D >=20 >=20 >>=20 >>>=20 >>> =3D=3D=3D `kenv` output except hardware serial No. and UUID below = =3D=3D=3D >>>=20 >>> acpi.oem=3D"LENOVO" >>> acpi.revision=3D"2" >>> acpi.rsdp=3D"0x000000004fd0e014" >>> acpi.rsdt=3D"0x000000004fd0c0c4" >>> acpi.xsdt=3D"0x000000004fd0c188" >>> acpi.xsdt_length=3D"36" >>> bootenv_autolist=3D"YES" >>> bootenvs[0]=3D"zfs:zsysS05/ROOT/head-r359007-boot1Rev6TA3" >>> bootenvs[10]=3D"zfs:zsysS05/ROOT/head-r358565-boot1Rev6TA3" >>> bootenvs[11]=3D"zfs:zsysS05/ROOT/" >>> bootenvs[1]=3D"zfs:zsysS05/ROOT/head-r359005-boot1Rev6TA3" >>> bootenvs[2]=3D"zfs:zsysS05/ROOT/head-r358989-boot1Rev6TA3" >>> bootenvs[3]=3D"zfs:zsysS05/ROOT/head-r358906-boot1Rev6TA3" >>> bootenvs[4]=3D"zfs:zsysS05/ROOT/head-r358872-boot1Rev6TA3" >>> bootenvs[5]=3D"zfs:zsysS05/ROOT/head-r358865-boot1Rev6TA3-2" >>> bootenvs[6]=3D"zfs:zsysS05/ROOT/head-r358827-boot1Rev6TA3" >>> bootenvs[7]=3D"zfs:zsysS05/ROOT/head-r358734-boot1Rev6TA3" >>> bootenvs[8]=3D"zfs:zsysS05/ROOT/head-r358729-boot1Rev6TA3" >>> bootenvs[9]=3D"zfs:zsysS05/ROOT/head-r358669-boot1Rev6TA3" >>> bootenvs_count=3D"12" >>> bootfile=3D"kernel" >>> comconsole_pcidev=3D"" >>> comconsole_port=3D"1016" >>> comconsole_speed=3D"9600" >>> console=3D"efi" >>> currdev=3D"zfs:zsysS05/ROOT/default:" >>> efi-version=3D"2.60" >>> efi_max_resolution=3D"2160p" >>> hint.acpi.0.oem=3D"LENOVO" >>> hint.acpi.0.revision=3D"2" >>> hint.acpi.0.rsdp=3D"0x000000004fd0e014" >>> hint.acpi.0.rsdt=3D"0x000000004fd0c0c4" >>> hint.acpi.0.xsdt=3D"0x000000004fd0c188" >>> hint.acpi.0.xsdt_length=3D"36" >>> hint.acpi_throttle.0.disabled=3D"1" >>> hint.atkbd.0.at <http://hint.atkbd.0.at/> <http://hint.atkbd.0.at/ = <http://hint.atkbd.0.at/>>=3D"atkbdc" >>> hint.atkbd.0.irq=3D"1" >>> hint.atkbdc.0.at <http://hint.atkbdc.0.at/> = <http://hint.atkbdc.0.at/ <http://hint.atkbdc.0.at/>>=3D"isa" >>> hint.atkbdc.0.port=3D"0x060" >>> hint.atrtc.0.at <http://hint.atrtc.0.at/> <http://hint.atrtc.0.at/ = <http://hint.atrtc.0.at/>>=3D"isa" >>> hint.atrtc.0.irq=3D"8" >>> hint.atrtc.0.port=3D"0x70" >>> hint.attimer.0.at <http://hint.attimer.0.at/> = <http://hint.attimer.0.at/ <http://hint.attimer.0.at/>>=3D"isa" >>> hint.attimer.0.irq=3D"0" >>> hint.attimer.0.port=3D"0x40" >>> hint.fd.0.at <http://hint.fd.0.at/> <http://hint.fd.0.at/ = <http://hint.fd.0.at/>>=3D"fdc0" >>> hint.fd.0.drive=3D"0" >>> hint.fd.1.at <http://hint.fd.1.at/> <http://hint.fd.1.at/ = <http://hint.fd.1.at/>>=3D"fdc0" >>> hint.fd.1.drive=3D"1" >>> hint.fdc.0.at <http://hint.fdc.0.at/> <http://hint.fdc.0.at/ = <http://hint.fdc.0.at/>>=3D"isa" >>> hint.fdc.0.drq=3D"2" >>> hint.fdc.0.irq=3D"6" >>> hint.fdc.0.port=3D"0x3F0" >>> hint.p4tcc.0.disabled=3D"1" >>> hint.ppc.0.at <http://hint.ppc.0.at/> <http://hint.ppc.0.at/ = <http://hint.ppc.0.at/>>=3D"isa" >>> hint.ppc.0.irq=3D"7" >>> hint.psm.0.at <http://hint.psm.0.at/> <http://hint.psm.0.at/ = <http://hint.psm.0.at/>>=3D"atkbdc" >>> hint.psm.0.irq=3D"12" >>> hint.sc.0.at <http://hint.sc.0.at/> <http://hint.sc.0.at/ = <http://hint.sc.0.at/>>=3D"isa" >>> hint.sc.0.flags=3D"0x100" >>> hint.smbios.0.mem=3D"0x4d580000" >>> hint.uart.0.at <http://hint.uart.0.at/> <http://hint.uart.0.at/ = <http://hint.uart.0.at/>>=3D"isa" >>> hint.uart.0.flags=3D"0x10" >>> hint.uart.0.irq=3D"4" >>> hint.uart.0.port=3D"0x3F8" >>> hint.uart.1.at <http://hint.uart.1.at/> <http://hint.uart.1.at/ = <http://hint.uart.1.at/>>=3D"isa" >>> hint.uart.1.irq=3D"3" >>> hint.uart.1.port=3D"0x2F8" >>> hw.ata.atapi_dma=3D"1" >>> hw.ibrs_disable=3D"0" >>> hw.pci.allow_unsupported_io_range=3D"1" >>> hw.psm.elantech_support=3D"1" >>> hw.psm.trackpoint_support=3D"1" >>> kern.hz=3D"8192" >>> kern.ipc.semmni=3D"40" >>> kern.ipc.semmns=3D"300" >>> kern.ipc.shm_use_phys=3D"1" >>> kern.ipc.shmmni=3D"1024" >>> kern.ipc.shmseg=3D"1024" >>> kern.maxfiles=3D"250000" >>> kern.vty=3D"vt" >>> kernel=3D"kernel" >>> kernel_options=3D"" >>> kernel_path=3D"/boot/kernel" >>> kernelname=3D"/boot/kernel/kernel" >>> kernels=3D"kernel kernel.old" >>> kernels_autodetect=3D"YES" >>> loaddev=3D"zfs:zsysS05/ROOT/default:" >>> loader_conf_files=3D"/boot/device.hints /boot/loader.conf = /boot/loader.conf.local" >>> machdep.mitigations.taa.enable=3D"3" >>> module_blacklist=3D"drm drm2 radeonkms i915kms amdgpu" >>> = module_path=3D"/boot/kernel;/boot/modules;/boot/dtb;/boot/dtb/overlays" >>> net.graph.maxdata=3D"65536" >>> nextboot_conf=3D"/boot/nextboot.conf" >>> nextboot_enable=3D"NO" >>> script.lang=3D"lua" >>> smbios.bios.reldate=3D"11/04/2019" >>> smbios.bios.vendor=3D"LENOVO" >>> smbios.bios.version=3D"N2CET48W (1.31 )" >>> smbios.chassis.maker=3D"LENOVO" >>> smbios.chassis.serial=3D"********" >>> smbios.chassis.tag=3D"No Asset Information" >>> smbios.chassis.version=3D"None" >>> smbios.memory.enabled=3D"33554432" >>> smbios.planar.location=3D"Not Available" >>> smbios.planar.maker=3D"LENOVO" >>> smbios.planar.product=3D"20M9CTO1WW" >>> smbios.planar.serial=3D"***********" >>> smbios.planar.tag=3D"Not Available" >>> smbios.planar.version=3D"SDK0J40697 WIN" >>> smbios.socket.enabled=3D"1" >>> smbios.socket.populated=3D"1" >>> smbios.system.family=3D"ThinkPad P52" >>> smbios.system.maker=3D"LENOVO" >>> smbios.system.product=3D"20M9CTO1WW" >>> smbios.system.serial=3D"********" >>> smbios.system.sku=3D"LENOVO_MT_20M9_BU_Think_FM_ThinkPad P52" >>> smbios.system.uuid=3D"********-****-****-****-************" >>> smbios.system.version=3D"ThinkPad P52" >>> smbios.version=3D"3.1" >>> twiddle_divisor=3D"1" >>> verbose_loading=3D"NO" >>> vfs.root.mountfrom=3D"zfs:zsysS05/ROOT/default" >>> vfs.zfs.abd_chunk_size=3D"1024" >>> vfs.zfs.prefetch_disable=3D"1" >>> vm.pmap.pti=3D"1" >>> zfs_be_active=3D"zfs:zsysS05/ROOT/default" >>> zfs_be_currpage=3D"1" >>> zfs_be_root=3D"zsysS05/ROOT" >>>=20 >>>=20 >>> =3D=3D=3D `kenv` output except hardware serial No and UUID above =3D=3D= =3D >>>=20 >>>=20 >>>>=20 >>>>=20 >>>>>=20 >>>>>>=20 >>>>>> 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.=20 >>>>> 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/>>>? >>>>=20 >>>>=20 >>>> 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. >>>>=20 >>>>=20 >>>>>=20 >>>>> 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. >>>>=20 >>>> BIOS version is ok. >>>>=20 >>>> rgds, >>>> toomas >>>>=20 >>>>>=20 >>>>>>=20 >>>>>> rgds, >>>>>> toomas >>>>>>=20 >>>>>>=20 >>>>>>>=20 >>>>>>> [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/comme= nts/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/comm= ents/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/comme= nts/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/com= ments/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/comme= nts/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/comm= ents/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/comme= nts/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/>>>> >>>>>>>>>>=20 >>>>>>>>>> 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. >>>>>>>>>>=20 >>>>>>>>>>=20 >>>>>>>>>>> Author: tsoome >>>>>>>>>>> Date: Sat Mar 14 06:36:03 2020 >>>>>>>>>>> New Revision: 358989 >>>>>>>>>>> URL: https://svnweb.freebsd.org/changeset/base/358989 >>>>>>>>>>>=20 >>>>>>>>>>> Log: >>>>>>>>>>> loader: add comconsole implementation on top of SIO protocol >>>>>>>>>>>=20 >>>>>>>>>>> Provide comconsole on top of SIO for arm platforms (x86 does = use bios >>>>>>>>>> version). >>>>>>>>>>>=20 >>>>>>>>>>> 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 >>>>>>>>>>>=20 >>>>>>>>>>> Modified: head/stand/efi/libefi/efi_console.c >>>>>>>>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>>>>>>>> --- 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 >>>>>>>>>>> { >>>>>>>>>>> } >>>>>>>>>>>=20 >>>>>>>>>>> +/* >>>>>>>>>>> + * Set up conin/conout/coninex to make sure we have input = ready. >>>>>>>>>>> + */ >>>>>>>>>>> static void >>>>>>>>>>> efi_cons_probe(struct console *cp) >>>>>>>>>>> { >>>>>>>>>>> + EFI_STATUS status; >>>>>>>>>>> + >>>>>>>>>>> + conout =3D ST->ConOut; >>>>>>>>>>> + conin =3D ST->ConIn; >>>>>>>>>>> + >>>>>>>>>>> + status =3D BS->OpenProtocol(ST->ConsoleInHandle, >>>>>>>>>> &simple_input_ex_guid, >>>>>>>>>>> + (void **)&coninex, IH, NULL, >>>>>>>>>> EFI_OPEN_PROTOCOL_GET_PROTOCOL); >>>>>>>>>>> + if (status !=3D EFI_SUCCESS) >>>>>>>>>>> + coninex =3D NULL; >>>>>>>>>>> + >>>>>>>>>>> cp->c_flags |=3D C_PRESENTIN | C_PRESENTOUT; >>>>>>>>>>> } >>>>>>>>>>>=20 >>>>>>>>>>> @@ -889,15 +902,7 @@ efi_cons_init(int arg) >>>>>>>>>>> if (conin !=3D NULL) >>>>>>>>>>> return (0); >>>>>>>>>>>=20 >>>>>>>>>>> - conout =3D ST->ConOut; >>>>>>>>>>> - conin =3D ST->ConIn; >>>>>>>>>>> - >>>>>>>>>>> conout->EnableCursor(conout, TRUE); >>>>>>>>>>> - status =3D BS->OpenProtocol(ST->ConsoleInHandle, >>>>>>>>>> &simple_input_ex_guid, >>>>>>>>>>> - (void **)&coninex, IH, NULL, >>>>>>>>>> EFI_OPEN_PROTOCOL_GET_PROTOCOL); >>>>>>>>>>> - if (status !=3D EFI_SUCCESS) >>>>>>>>>>> - coninex =3D NULL; >>>>>>>>>>> - >>>>>>>>>>> if (efi_cons_update_mode()) >>>>>>>>>>> return (0); >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Modified: head/stand/efi/loader/arch/arm/Makefile.inc >>>>>>>>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>>>>>>>> --- 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$ >>>>>>>>>>>=20 >>>>>>>>>>> SRCS+=3D exec.c \ >>>>>>>>>>> + efiserialio.c \ >>>>>>>>>>> start.S >>>>>>>>>>>=20 >>>>>>>>>>> HAVE_FDT=3Dyes >>>>>>>>>>=20 >>>>>>>>>> (Snip) >>>>>>>>>>=20 >>>>>>>>>>> @@ -930,7 +936,6 @@ main(int argc, CHAR16 *argv[]) >>>>>>>>>>> if (!has_kbd && (howto & RB_PROBE)) >>>>>>>>>>> howto |=3D RB_SERIAL | RB_MULTIPLE; >>>>>>>>>>> howto &=3D ~RB_PROBE; >>>>>>>>>>> - uhowto =3D parse_uefi_con_out(); >>>>>>>>>>>=20 >>>>>>>>>>> /* >>>>>>>>>>> * Read additional environment variables from the boot = device's >>>>>>>>>>=20 >>>>>>>>>> --=20 >>>>>>>>>> Tomoaki AOKI <junchoon@dec.sakura.ne.jp> >>>>=20 >>>=20 >>>=20 >>> --=20 >>> Tomoaki AOKI <junchoon@dec.sakura.ne.jp = <mailto:junchoon@dec.sakura.ne.jp> <mailto:junchoon@dec.sakura.ne.jp = <mailto:junchoon@dec.sakura.ne.jp>>> >>=20 >=20 >=20 > --=20 > Tomoaki AOKI <junchoon@dec.sakura.ne.jp = <mailto:junchoon@dec.sakura.ne.jp>>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?889F68BB-59AE-4381-8947-10B769CF7008>