Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Apr 2019 10:18:51 +0300
From:      Toomas Soome <tsoome@me.com>
To:        Harry Schmalzbauer <freebsd@omnilan.de>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: EFI loader doesn't handle md_preload (md_image) correct?
Message-ID:  <2417CFDF-9744-4600-853D-4A3759CB3137@me.com>
In-Reply-To: <30f7b617-1814-ad21-a445-a62758150dc3@omnilan.de>
References:  <591B12C6.4040301@omnilan.de> <DD0FE9CA-48C9-4A77-81FD-8CA139D95543@me.com> <591B1A8B.6070803@omnilan.de> <591B1EA4.600@omnilan.de> <FEF74507-4A04-49DD-A763-6733E18CCE66@me.com> <591B2523.6040101@omnilan.de> <7CF3AC8F-A778-40AE-B457-9B96AE5B4719@me.com> <591B284B.6070204@omnilan.de> <30f7b617-1814-ad21-a445-a62758150dc3@omnilan.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Yes, I still do remember it, just need to find time to port the feature.=20

Of course the root cause there is much more complicated (we can not assume t=
o have contigous space above 1MB), but we mostly can cope...

Sent from my iPhone

> On 8 Apr 2019, at 09:44, Harry Schmalzbauer <freebsd@omnilan.de> wrote:
>=20
>> Am 16.05.2017 um 18:26 schrieb Harry Schmalzbauer:
>> Bez=C3=BCglich Toomas Soome's Nachricht vom 16.05.2017 18:20 (localtime):=

>>>> On 16. mai 2017, at 19:13, Harry Schmalzbauer <freebsd@omnilan.de> wrot=
e:
>>>>=20
>>>> Bez=C3=BCglich Toomas Soome's Nachricht vom 16.05.2017 18:00 (localtime=
):
>>>>>> On 16. mai 2017, at 18:45, Harry Schmalzbauer <freebsd@omnilan.de
>>>>>> <mailto:freebsd@omnilan.de>> wrote:
>>>>>>=20
>>>>>> Bez=C3=BCglich Harry Schmalzbauer's Nachricht vom 16.05.2017 17:28 (l=
ocaltime):
>>>>>>> Bez=C3=BCglich Toomas Soome's Nachricht vom 16.05.2017 16:57 (localt=
ime):
>>>>>>>>> On 16. mai 2017, at 17:55, Harry Schmalzbauer <freebsd@omnilan.de
>>>>>>>>> <mailto:freebsd@omnilan.de>> wrote:
>>>>>>>>>=20
>>>>>>>>> Hello,
>>>>>>>>>=20
>>>>>>>>> unfortunately I had some trouble with my preferred MFS-root setups=
.
>>>>>>>>> It seems EFI loader doesn't handle type md_image correctly.
>>>>>>>>>=20
>>>>>>>>> If I load any md_image with loader invoked by gptboot or gptzfsboo=
t,
>>>>>>>>> 'lsmod'
>>>>>>>>> shows "elf kernel", "elf obj module(s)" and "md_image".
>>>>>>>>>=20
>>>>>>>>> Using the same loader.conf, but EFI loader, the md_image-file is
>>>>>>>>> prompted and sems to be loaded, but not registered.  There's no
>>>>>>>>> md_image
>>>>>>>>> with 'lsmod', hence it's not astonsihing that kernel doesn't attac=
h md0
>>>>>>>>> so booting fails since there's no rootfs.
>>>>>>>>>=20
>>>>>>>>> Any help highly appreciated, hope Toomas doesn't mind beeing
>>>>>>>>> initially CC'd.
>>>>>>>>>=20
>>>>>>>>> Thanks,
>>>>>>>>>=20
>>>>>>>>> -harry
>>>>>>>> The first question is, how large is the md_image and what other
>>>>>>>> modules are loaded?
>>>>>>> Thanks for your quick response.
>>>>>>>=20
>>>>>>> The images are 50-500MB uncompressed (provided by gzip compressed fi=
le).
>>>>>>> Small ammount of elf modules, 5, each ~50kB.
>>>>>> On the real HW, there's vmm and some more:
>>>>>> Id Refs Address             Size Name
>>>>>> 1   46 0xffffffff80200000   16M kernel
>>>>>> 2    1 0xffffffff8121d000   86K unionfs.ko
>>>>>> 3    1 0xffffffff81233000  3.1M zfs.ko
>>>>>> 4    2 0xffffffff81545000   51K opensolaris.ko
>>>>>> 5    7 0xffffffff81552000  279K usb.ko
>>>>>> 6    1 0xffffffff81598000   67K ukbd.ko
>>>>>> 7    1 0xffffffff815a9000   51K umass.ko
>>>>>> 8    1 0xffffffff815b6000   46K aesni.ko
>>>>>> 9    1 0xffffffff815c3000   54K uhci.ko
>>>>>> 10    1 0xffffffff815d1000   65K ehci.ko
>>>>>> 11    1 0xffffffff815e2000   15K cc_htcp.ko
>>>>>> 12    1 0xffffffff815e6000  3.4M vmm.ko
>>>>>> 13    1 0xffffffffa3a21000   12K ums.ko
>>>>>> 14    1 0xffffffffa3a24000  9.1K uhid.ko
>>>>>>=20
>>>>>> Providing md_image uncompressed doesn't change anything.
>>>>>>=20
>>>>>> Will deploy a /usr separated rootfs, which is only ~100MB uncompresse=
d
>>>>>> and see if that changes anything.
>>>>>> That's all I can provide, code is far beyond my knowledge...
>>>>>>=20
>>>>>> -harry
>>>>>=20
>>>>> The issue is, that current UEFI implementation is using 64MB staging
>>>>> memory for loading the kernel and modules and files. When the boot is
>>>>> called, the relocation code will put the bits from staging area into t=
he
>>>>> final places. The BIOS version does not need such staging area, and th=
at
>>>>> will explain the difference.
>>>>>=20
>>>>> I actually have different implementation to address the same problem,
>>>>> but thats for illumos case, and will need some work to make it usable
>>>>> for freebsd; the idea is actually simple - allocate staging area per
>>>>> loaded file and relocate the bits into the place by component, not as
>>>>> continuous large chunk (this would also allow to avoid the mines like
>>>>> planted by hyperv;), but right now there is no very quick real solutio=
n
>>>>> other than just build efi loader with larger staging size.
>>>> Ic, thanks for the explanation.
>>>> While not aware about the purpose of the staging area nor the
>>>> consequences of enlarging it, do you think it's feasable increasing it
>>>> to 768Mib?
>>>>=20
>>>> At least now I have an idea baout the issue and an explanation why
>>>> reducing md_imgae to 100MB hasn't helped =E2=80=93 still more than 64..=
.
>>>>=20
>>>> Any quick hint where to define the staging area size highly appreciated=
,
>>>> fi there are no hard objections against a 768MB size.
>>>>=20
>>>> -harry
>>> The problem is that before UEFI Boot Services are not switched off, the m=
emory is managed (and owned) by the firmware,
>> Hmm, I've been expecting something like that (owend by firmware) ;-)
>>=20
>> So I'll stay with CSM for now, and will happily be an early adopter if
>> you need someone to try anything (-stable mergable).
>=20
> Hello Toomas,
>=20
> thanks for your ongoing FreeBSD commits, saw your recent libstand improvem=
ents and the efiloader commit.
> Which remembers me nagging the skilled ones for my unmet needs ;-)
>=20
> I guess nobody had time to look at the MFS-root limitation with EFI vs. BI=
OS.
> If you have any news/plans, please share.
> The ability to boot via EFI gives a much better console experience/usabili=
ty for admins, but on MFS-root system, I'm still forced to use the old loade=
r path, because of the 64MB size limit.
>=20
> Do you think there's a chance that this will be resolved for FreeBSD?
>=20
> Thanks,
>=20
> -harry
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2417CFDF-9744-4600-853D-4A3759CB3137>