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>