From owner-svn-src-head@freebsd.org Fri Mar 20 12:59:20 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 310C7266A6E for ; Fri, 20 Mar 2020 12:59:20 +0000 (UTC) (envelope-from tsoome@me.com) Received: from pv50p00im-ztdg10012101.me.com (pv50p00im-ztdg10012101.me.com [17.58.6.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 48kP470BQKz4BBW for ; Fri, 20 Mar 2020 12:59:18 +0000 (UTC) (envelope-from tsoome@me.com) Received: from nazgul.lan (148-52-235-80.sta.estpak.ee [80.235.52.148]) by pv50p00im-ztdg10012101.me.com (Postfix) with ESMTPSA id C08458404C9; Fri, 20 Mar 2020 12:59:12 +0000 (UTC) From: Toomas Soome Message-Id: <889F68BB-59AE-4381-8947-10B769CF7008@me.com> Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Subject: Re: svn commit: r358989 - in head/stand/efi: libefi loader loader/arch/arm loader/arch/arm64 Date: Fri, 20 Mar 2020 14:59:10 +0200 In-Reply-To: <20200320202906.8fcd15f65de67d54d31c5547@dec.sakura.ne.jp> Cc: Ruslan Garipov , svn-src-head@freebsd.org To: junchoon@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> <944c641f-b570-1420-6b63-96374217d795@gmail.com> <4ABF87AE-948F-43A8-940A-744FC2F4DE4D@me.com> <20200319213329.f354314a9a72e1419d76d2ba@dec.sakura.ne.jp> <20200320202906.8fcd15f65de67d54d31c5547@dec.sakura.ne.jp> X-Mailer: Apple Mail (2.3608.60.0.2.5) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2020-03-20_03:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1908290000 definitions=main-2003200056 X-Rspamd-Queue-Id: 48kP470BQKz4BBW X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.52 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:17.58.0.0/16]; FREEMAIL_FROM(0.00)[me.com]; MV_CASE(0.50)[]; URI_COUNT_ODD(1.00)[169]; DKIM_TRACE(0.00)[me.com:+]; DMARC_POLICY_ALLOW(-0.50)[me.com,quarantine]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[me.com]; RCVD_IN_DNSWL_LOW(-0.10)[49.6.58.17.list.dnswl.org : 127.0.5.1]; ASN(0.00)[asn:714, ipnet:17.58.0.0/20, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[148.52.235.80.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.93)[-0.930,0]; R_DKIM_ALLOW(-0.20)[me.com:s=1a1hai]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_LONG(-0.99)[-0.993,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.00)[ip: (-3.44), ipnet: 17.58.0.0/20(-2.00), asn: 714(-2.38), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; DWL_DNSWL_LOW(-1.00)[me.com.dwl.dnswl.org : 127.0.5.1]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FREEMAIL_CC(0.00)[gmail.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Mar 2020 12:59:20 -0000 > On 20. Mar 2020, at 13:29, Tomoaki AOKI = 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 " > 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 =3D"atkbdc" > hint.atkbd.0.irq=3D"1" > hint.atkbdc.0.at =3D"isa" > hint.atkbdc.0.port=3D"0x060" > hint.atrtc.0.at =3D"isa" > hint.atrtc.0.irq=3D"8" > hint.atrtc.0.port=3D"0x70" > hint.attimer.0.at =3D"isa" > hint.attimer.0.irq=3D"0" > hint.attimer.0.port=3D"0x40" > hint.fd.0.at =3D"fdc0" > hint.fd.0.drive=3D"0" > hint.fd.1.at =3D"fdc0" > hint.fd.1.drive=3D"1" > 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 =3D"isa" > hint.ppc.0.irq=3D"7" > hint.psm.0.at =3D"atkbdc" > hint.psm.0.irq=3D"12" > hint.sc.0.at =3D"isa" > hint.sc.0.flags=3D"0x100" > hint.smbios.0.mem=3D"0x4d580000" > 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 =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 >=3D"atkbdc" >>> hint.atkbd.0.irq=3D"1" >>> hint.atkbdc.0.at = >=3D"isa" >>> hint.atkbdc.0.port=3D"0x060" >>> hint.atrtc.0.at >=3D"isa" >>> hint.atrtc.0.irq=3D"8" >>> hint.atrtc.0.port=3D"0x70" >>> hint.attimer.0.at = >=3D"isa" >>> hint.attimer.0.irq=3D"0" >>> hint.attimer.0.port=3D"0x40" >>> hint.fd.0.at >=3D"fdc0" >>> hint.fd.0.drive=3D"0" >>> hint.fd.1.at >=3D"fdc0" >>> hint.fd.1.drive=3D"1" >>> 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 >=3D"isa" >>> hint.ppc.0.irq=3D"7" >>> hint.psm.0.at >=3D"atkbdc" >>> hint.psm.0.irq=3D"12" >>> hint.sc.0.at >=3D"isa" >>> hint.sc.0.flags=3D"0x100" >>> hint.smbios.0.mem=3D"0x4d580000" >>> 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 >=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 = > >>? >>>>=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/ = >>>>>>> >>>>>>>>>>=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 >>>>=20 >>>=20 >>>=20 >>> --=20 >>> Tomoaki AOKI >> >>=20 >=20 >=20 > --=20 > Tomoaki AOKI >