From nobody Fri Dec 22 14:15:42 2023 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SxTqK6VkGz55H2r for <freebsd-current@mlmmj.nyi.freebsd.org>; Fri, 22 Dec 2023 14:15:57 +0000 (UTC) (envelope-from tsoome@me.com) Received: from mr85p00im-zteg06021901.me.com (mr85p00im-zteg06021901.me.com [17.58.23.194]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4SxTqK36vRz3FZZ for <freebsd-current@freebsd.org>; Fri, 22 Dec 2023 14:15:57 +0000 (UTC) (envelope-from tsoome@me.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1703254556; bh=zeNhZ3eLtxD0sPuHiblaNS4y1oA0WH+4/zrj6bwVelw=; h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:To; b=Qs5jsLw6dcFi2J5aHdo1wIV5HVTpH0glXmNvNpUSLdHhhCAJB3DXKfNBjBzxVT6Bk tjExqwXKjvv54QaMApda8ovs813FUVVUsgMVF2ZbIbsenFoGWM6vh9wd7m4a0rE/zU zcoEIlOcrpXe5Ac/jMLV8LO7eJaJ+HqLDnSTgl8qfVH5p98jVG8yDQXayGk0uFUbwP EdoLc1O40ZfEIkfCYVBLZUo7UimEii0YUkr2P2NVKM1ReA6E8AVXcr2spPZyzDgXqQ VERUQkk1HwIvINgulbPUf1cW2cfsiQlhn90+CI15d20YaP975NEX+/WvA4YZHshpDT YXmhoj2cFhM4Q== Received: from smtpclient.apple (mr38p00im-dlb-asmtp-mailmevip.me.com [17.57.152.18]) by mr85p00im-zteg06021901.me.com (Postfix) with ESMTPSA id AC637740135; Fri, 22 Dec 2023 14:15:54 +0000 (UTC) From: Toomas Soome <tsoome@me.com> Message-Id: <6276D9E8-D1D6-4ED5-96FB-BBF2875E079E@me.com> Content-Type: multipart/alternative; boundary="Apple-Mail=_5A2DCD88-A445-469A-B59B-FB51C305F959" List-Id: Discussions about the use of FreeBSD-current <freebsd-current.freebsd.org> List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: <mailto:freebsd-current+help@freebsd.org> List-Post: <mailto:freebsd-current@freebsd.org> List-Subscribe: <mailto:freebsd-current+subscribe@freebsd.org> List-Unsubscribe: <mailto:freebsd-current+unsubscribe@freebsd.org> Sender: owner-freebsd-current@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.300.61.1.2\)) Subject: Re: symlink to /boot/loader.efi Date: Fri, 22 Dec 2023 16:15:42 +0200 In-Reply-To: <ZYWYMRNWKYhCslVc@kib.kiev.ua> Cc: Mark Millard <marklmi@yahoo.com>, Tomoaki AOKI <junchoon@dec.sakura.ne.jp>, Current FreeBSD <freebsd-current@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> References: <AF65AD57-5D93-4FC2-84E8-58E1D7C0C3BC.ref@yahoo.com> <AF65AD57-5D93-4FC2-84E8-58E1D7C0C3BC@yahoo.com> <94C108FE-3D2F-4116-B071-810F64DECEC4@me.com> <ZYWYMRNWKYhCslVc@kib.kiev.ua> X-Mailer: Apple Mail (2.3774.300.61.1.2) X-Proofpoint-GUID: 7_kSmVwDg8beUQNGTSPYwe-Ytsd4PUAm X-Proofpoint-ORIG-GUID: 7_kSmVwDg8beUQNGTSPYwe-Ytsd4PUAm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-22_08,2023-12-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2308100000 definitions=main-2312220105 X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:714, ipnet:17.58.16.0/20, country:US] X-Spamd-Bar: ---- X-Rspamd-Queue-Id: 4SxTqK36vRz3FZZ --Apple-Mail=_5A2DCD88-A445-469A-B59B-FB51C305F959 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On 22. Dec 2023, at 16:07, Konstantin Belousov <kostikbel@gmail.com> = wrote: >=20 > On Fri, Dec 22, 2023 at 11:36:24AM +0200, Toomas Soome wrote: >>=20 >>=20 >>> On 22. Dec 2023, at 11:09, Mark Millard <marklmi@yahoo.com> wrote: >>>=20 >>> Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp> wrote on >>> Date: Thu, 21 Dec 2023 23:21:00 UTC : >>>=20 >>>> On Thu, 21 Dec 2023 14:22:14 +0100 >>>> Dimitry Andric <dim@FreeBSD.org> wrote: >>>>=20 >>>>> Yeah, my procedure is the same as yours: I first copy = /boot/efi/efi/freebsd/loader.efi to /boot/efi/efi/freebsd/loader.old, = then copy the freshly built and installed /boot/loader.efi to = /boot/efi/efi/freebsd/loader.efi. I don't see a technical reason why = this could not be just another step in the installworld procedure. >>>>>=20 >>>>> That said, I am unsure if the pathname /boot/efi/efi is always the = same, at least for all UEFI systems. It is the default layout when you = do a regular install with recent installer onto a UEFI system, but some = users may use completely different mount points. So you should still = have some way of configuring the default location for loader = installation. >>>>>=20 >>>>> Also, on default installations a fallback entry named = /boot/efi/efi/boot/bootx64.efi is made, essentially another copy of = loader.efi but with a different name. Namely, the default name that UEFI = (on x86_64 at least) searches for, if it doesn't know anything else. = I.e. if it isn't configured via efibootmgr(8), or the EFI variables have = been junked for some reason. It might make sense to also update that = file. >>>>>=20 >>>>> -Dimitry >>>>=20 >>>> Just an idea. >>>>=20 >>>> It would be nice if loader.efi (hopefully, boot1.efi,too) could = pass >>>> "where am I placed?" info, maybe via kenv. >>>>=20 >>>> Would need boot1.efi to pass something (ideally, "where am I booted >>>> from?", but "boot1_used=3D1" is sufficient). >>>>=20 >>>> To do so, loader.efi can confirm whether it was loaded via = boot1.efi or >>>> directly from UEFI firmware. If nothing is passed to it, it can = probe >>>> "where it is?" using UEFI call and set it, otherwise, it should >>>> be /boot/loader.efi, so nothing is needed to do. >>>=20 >>> To my knowledge aarch64 and armv7 never use the copy in >>> /boot/loader.efi during a boot. It has to have been copied >>> into the appropriate msdosfs such that it has an >>> appropriate path and name there. That is what is found >>> and used during the boot. >>=20 >>=20 >> All UEFI systems start from ESP (EFI System Partition). The only good = reason to install boot1.efi there is when you have very small ESP and = need to save that space - and in that case the boot1.esp will search and = execute /boot/loader.efi. >>=20 > No, this is not the only good reason, or even the least important = reason. >=20 > boot1.efi is extremely convenient for the normal (*) configuration = where > machine is dedicated for a single FreeBSD system. It finds and = chain-load > real loader.efi from the first UFS GPT partition which I always assign = to > the root. This means that I do not need to care about updating = loader.efi > at all, it is done during normal installworld. >=20 > * at least for me >=20 > I use this setup for >5 years on all my disk-booting machines. Yes, that one is also [good] reason, however, I personally do consider = it missing feature of bectl/beadm activate;) rgds, toomas >=20 >> The problem about boot1.efi (or any other UEFI chainload) is that = loading file and executing it will not replace current program in = memory, but will add new one, this may be problem with systems with = minimal memory configurations. And yes, boot1.efi is not really platform = specific - it is just another EFI application - one can build and use it = on arm (or any other) systems and then it will load and start = /boot/loader.efi. >>=20 >> starting loader directly from ESP has few advantages =E2=80=94 you = wont waste memory for boot1.efi, you save a bit of boot time, you can = use auxiliary files from ESP to pass some information to loader.efi (for = example to tell where your rootfs is in case of multiboot setups). >>=20 >> the boot1.efi could be a bit more appealing if it would be able to = load and start kernel directly, allowing to build very memory limited = setups, but then again, it does sound like very specific corner case. >>=20 >> rgds, >> toomas >>=20 >>=20 >>>=20 >>>> If no related kenv is set and freebsd-boot partition exists, it = should >>>> be booted with legacy (BIOS) boot. >>>=20 >>> If there even is a "legacy (BIOS) boot" is a platform >>> specific issue as far as I know. >>>=20 >>>> The easiest to be set by loader.efi and/or boot1.efi would be raw = UEFI >>>> device path. So would need analyzing where actually is on booted >>>> FreeBBSD environment. >>>=20 >>> See the earlier point about aarch64 and armv7 not using >>> /boot/* files while loading the FreeBSD loader: the >>> FreeBSD loader variant used is the first stage able to >>> look inside UFS or ZFS file systems. Loading and >>> starting the FreeBSD loader happens before that stage >>> in those types of contexts. >>>=20 >>>> . . . >>>=20 >>> Also, to my knowledge, powerpc (32-bit), powerpc64, and >>> powerpc64le do not involve any variant of loader.efi or >>> UEFI/ACPI or UEFI/DeviceTriee in their boot sequnces. >>> Again: more platform specific rather than generic. >>>=20 >>> =3D=3D=3D >>> Mark Millard >>> marklmi at yahoo.com --Apple-Mail=_5A2DCD88-A445-469A-B59B-FB51C305F959 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"content-type" content=3D"text/html; = charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;"><br = id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote = type=3D"cite"><div>On 22. Dec 2023, at 16:07, Konstantin Belousov = <kostikbel@gmail.com> wrote:</div><br = class=3D"Apple-interchange-newline"><div><meta charset=3D"UTF-8"><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; = font-size: 12px; font-style: normal; font-variant-caps: normal; = font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">On Fri, Dec 22, 2023 at = 11:36:24AM +0200, Toomas Soome wrote:</span><br style=3D"caret-color: = rgb(0, 0, 0); font-family: Hack-Regular; font-size: 12px; font-style: = normal; font-variant-caps: normal; font-weight: 400; letter-spacing: = normal; text-align: start; text-indent: 0px; text-transform: none; = white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"><blockquote type=3D"cite" style=3D"font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"><br><br><blockquote type=3D"cite">On 22. Dec = 2023, at 11:09, Mark Millard <marklmi@yahoo.com> = wrote:<br><br>Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp> wrote = on<br>Date: Thu, 21 Dec 2023 23:21:00 UTC :<br><br><blockquote = type=3D"cite">On Thu, 21 Dec 2023 14:22:14 +0100<br>Dimitry Andric = <dim@FreeBSD.org> wrote:<br><br><blockquote type=3D"cite">Yeah, my = procedure is the same as yours: I first copy = /boot/efi/efi/freebsd/loader.efi to /boot/efi/efi/freebsd/loader.old, = then copy the freshly built and installed /boot/loader.efi to = /boot/efi/efi/freebsd/loader.efi. I don't see a technical reason why = this could not be just another step in the installworld = procedure.<br><br>That said, I am unsure if the pathname /boot/efi/efi = is always the same, at least for all UEFI systems. It is the default = layout when you do a regular install with recent installer onto a UEFI = system, but some users may use completely different mount points. So you = should still have some way of configuring the default location for = loader installation.<br><br>Also, on default installations a fallback = entry named /boot/efi/efi/boot/bootx64.efi is made, essentially another = copy of loader.efi but with a different name. Namely, the default name = that UEFI (on x86_64 at least) searches for, if it doesn't know anything = else. I.e. if it isn't configured via efibootmgr(8), or the EFI = variables have been junked for some reason. It might make sense to also = update that file.<br><br>-Dimitry<br></blockquote><br>Just an = idea.<br><br>It would be nice if loader.efi (hopefully, boot1.efi,too) = could pass<br>"where am I placed?" info, maybe via kenv.<br><br>Would = need boot1.efi to pass something (ideally, "where am I booted<br>from?", = but "boot1_used=3D1" is sufficient).<br><br>To do so, loader.efi can = confirm whether it was loaded via boot1.efi or<br>directly from UEFI = firmware. If nothing is passed to it, it can probe<br>"where it is?" = using UEFI call and set it, otherwise, it should<br>be /boot/loader.efi, = so nothing is needed to do.<br></blockquote><br>To my knowledge aarch64 = and armv7 never use the copy in<br>/boot/loader.efi during a boot. It = has to have been copied<br>into the appropriate msdosfs such that it has = an<br>appropriate path and name there. That is what is found<br>and used = during the boot.<br></blockquote><br><br>All UEFI systems start from ESP = (EFI System Partition). The only good reason to install boot1.efi there = is when you have very small ESP and need to save that space - and in = that case the boot1.esp will search and execute = /boot/loader.efi.<br><br></blockquote><span style=3D"caret-color: rgb(0, = 0, 0); font-family: Hack-Regular; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;">No, = this is not the only good reason, or even the least important = reason.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">boot1.efi is extremely = convenient for the normal (*) configuration where</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; = font-size: 12px; font-style: normal; font-variant-caps: normal; = font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">machine is dedicated for = a single FreeBSD system. It finds and chain-load</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; = font-size: 12px; font-style: normal; font-variant-caps: normal; = font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">real loader.efi from the = first UFS GPT partition which I always assign to</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; = font-size: 12px; font-style: normal; font-variant-caps: normal; = font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">the root. This = means that I do not need to care about updating loader.efi</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; = font-size: 12px; font-style: normal; font-variant-caps: normal; = font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">at all, it is done = during normal installworld.</span><br style=3D"caret-color: rgb(0, 0, = 0); font-family: Hack-Regular; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"><br style=3D"caret-color: rgb(0, 0, 0); = font-family: Hack-Regular; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); = font-family: Hack-Regular; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;">* at = least for me</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;">I use this setup for = >5 years on all my disk-booting machines.</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; = font-size: 12px; font-style: normal; font-variant-caps: normal; = font-weight: 400; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;"></div></blockquote><div><br></div><div>Yes, that one is also = [good] reason, however, I personally do consider it missing feature of = bectl/beadm = activate;)</div><div><br></div><div>rgds,</div><div>toomas</div><div><br><= /div><br><blockquote type=3D"cite"><div><br style=3D"caret-color: rgb(0, = 0, 0); font-family: Hack-Regular; font-size: 12px; font-style: normal; = font-variant-caps: normal; font-weight: 400; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"><blockquote type=3D"cite" style=3D"font-family: = Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;">The problem about boot1.efi (or any other UEFI = chainload) is that loading file and executing it will not replace = current program in memory, but will add new one, this may be problem = with systems with minimal memory configurations. And yes, boot1.efi is = not really platform specific - it is just another EFI application - one = can build and use it on arm (or any other) systems and then it will load = and start /boot/loader.efi.<br><br>starting loader directly from ESP has = few advantages =E2=80=94 you wont waste memory for boot1.efi, you save a = bit of boot time, you can use auxiliary files from ESP to pass some = information to loader.efi (for example to tell where your rootfs is in = case of multiboot setups).<br><br>the boot1.efi could be a bit more = appealing if it would be able to load and start kernel directly, = allowing to build very memory limited setups, but then again, it does = sound like very specific corner = case.<br><br>rgds,<br>toomas<br><br><br><blockquote = type=3D"cite"><br><blockquote type=3D"cite">If no related kenv is set = and freebsd-boot partition exists, it should<br>be booted with legacy = (BIOS) boot.<br></blockquote><br>If there even is a "legacy (BIOS) boot" = is a platform<br>specific issue as far as I know.<br><br><blockquote = type=3D"cite">The easiest to be set by loader.efi and/or boot1.efi would = be raw UEFI<br>device path. So would need analyzing where actually is on = booted<br>FreeBBSD environment.<br></blockquote><br>See the earlier = point about aarch64 and armv7 not using<br>/boot/* files while loading = the FreeBSD loader: the<br>FreeBSD loader variant used is the first = stage able to<br>look inside UFS or ZFS file systems. Loading = and<br>starting the FreeBSD loader happens before that stage<br>in those = types of contexts.<br><br><blockquote type=3D"cite">. . = .<br></blockquote><br>Also, to my knowledge, powerpc (32-bit), = powerpc64, and<br>powerpc64le do not involve any variant of loader.efi = or<br>UEFI/ACPI or UEFI/DeviceTriee in their boot sequnces.<br>Again: = more platform specific rather than generic.<br><br>=3D=3D=3D<br>Mark = Millard<br>marklmi at = yahoo.com</blockquote></blockquote></div></blockquote></div><br></body></h= tml>= --Apple-Mail=_5A2DCD88-A445-469A-B59B-FB51C305F959--