Date: Mon, 23 Jul 2018 10:56:04 +0300 From: Toomas Soome <tsoome@me.com> To: "O. Hartmann" <ohartmann@walstatt.org> Cc: freebsd-current <freebsd-current@freebsd.org> Subject: Re: [UEFI] Boot issues on some UEFI implementations Message-ID: <80523BE6-C035-482D-B134-23812183DE83@me.com> In-Reply-To: <20180723092735.12a5d2a8@freyja.zeit4.iv.bundesimmobilien.de> References: <20180713130001.219a0a84@freyja.zeit4.iv.bundesimmobilien.de> <68505F98-E840-4148-9E48-BDB350F7431A@me.com> <20180713164447.42430301@thor.intern.walstatt.dynvpn.de> <680FBB42-75BF-427F-AA3B-6D864E83ED1F@me.com> <20180723092735.12a5d2a8@freyja.zeit4.iv.bundesimmobilien.de>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 23 Jul 2018, at 10:27, O. Hartmann <ohartmann@walstatt.org> wrote: >=20 > On Fri, 13 Jul 2018 18:44:23 +0300 > Toomas Soome <tsoome@me.com <mailto:tsoome@me.com>> wrote: >=20 >>> On 13 Jul 2018, at 17:44, O. Hartmann <o.hartmann@walstatt.org = <mailto:o.hartmann@walstatt.org>> wrote: >>>=20 >>> -----BEGIN PGP SIGNED MESSAGE----- >>> Hash: SHA512 >>>=20 >>> Am Fri, 13 Jul 2018 14:26:51 +0300 >>> Toomas Soome <tsoome@me.com <mailto:tsoome@me.com> = <mailto:tsoome@me.com <mailto:tsoome@me.com>>> schrieb: >>>=20 >>>>> On 13 Jul 2018, at 14:00, O. Hartmann <ohartmann@walstatt.org> = wrote: >>>>>=20 >>>>> The problem is some kind of weird. I face UEFI boot problems on = GPT drives >>>>> where the first partition begins at block 40 of the hdd/ssd. >>>>>=20 >>>>> I have two host in private use based on an >>>>> outdated ASRock Z77-Pro4-M and Z77-Pro4 mainboard (IvyBridge, = Socket >>>>> LGA1155). Both boards are equipted with the lates official = available AMI >>>>> firmware revision, dating to 2013. This is for the Z77-Pro4-M = revision >>>>> 2.0 (2013/7/23) and for the Z77 Pro4 revision 1.8 (2013/7/17). For = both >>>>> boards a BETA revision for the Spectre/Meltdown mitigation is = available, >>>>> but I didn't test that. But please read. >>>>>=20 >>>>> The third box I realised this problem is a brand new Fujitsu = Esprimo >>>>> Q956, also AMI firmware, at V5.0.0.11 R 1.26.0 for 3413-A1x, date >>>>> 05/25/2018 (or 20180525). >>>>>=20 >>>>> Installing on any kind of HDD or SSD manually or via bsdinstall = the OS >>>>> using UEFI-only boot method on a GPT partitioned device fails. The = ASRock >>>>> boards jump immediately into the firmware, the Fujitsu offers some = kind >>>>> of CPU/Memory/HDD test facility. >>>>>=20 >>>>> If on both type of vendor/boards CSM is disabled and UEFI boot = only is >>>>> implied, the MBR partitioned FreeBSD installation USB flash device = does >>>>> boot in UEFI! I guess I can assume this when the well known clumsy = 80x25 >>>>> char console suddenly gets bright and shiny with a much higher = resoltion >>>>> as long the GPU supports EFI GOP. Looking with gpart at the USB = flash >>>>> drives reveals that the EFI partition starts at block 1 of the = device and >>>>> the device has a MBR layout. I haven't found a way to force the = GPT >>>>> scheme, when initialised via gpart, to let the partitions start at = block >>>>> 1. This might be a naiv thinking, so please be patient with me. >>>>>=20 >>>>> I do not know whether this is a well-known issue. On the ASRock = boards, I >>>>> tried years ago some LinuxRed Hat and Suse with UEFI and that = worked - >>>>> FreeBSD not. I gave up on that that time. Now, having the very = same >>>>> issues with a new Fujitsu system, leaves me with the impression = that >>>>> FreeBSD's UEFI implementation might have problems I'm not aware = of. >>>>>=20 >>>>> Can someone shed some light onto this?=20 >>>>>=20 >>>>=20 >>>> The first thing to check is if the secure boot is disabled. We do = not >>>> support secure boot at all at this time. =20 >>>=20 >>> Secure boot is in every scenario disabled! >>>=20 >>>>=20 >>>> If you have efi or bios version running - you can check from either >>>> console variable value (it can have efi or vidconsole or = comconsole) or >>>> better yet, see if efi-version is set (show efi-version) - if = efi-version >>>> is not set, it is BIOS loader running. Another indirect way is to = see >>>> lsdev -v, with device paths present, it is uefi:) =20 >>>=20 >>> What are you talking about? >>> What is the point of entry - running system, loader? >>>=20 >>> sysct machdep.bootmethod: BIOS >>>=20 >>> This makes me quite sure that the system has booted via BIOS - as = I'm sure >>> since I've checked that many times. UEFI doesn't work on those = systems with >>> FreeBSD. I'm not sure antmore, but I tried also Windows 7 on those >>> mainboards booting via UEFI - and I might recall that they failed = also. I >>> also recall that there were issues with earlier UEFI versions = regarding >>> booting only Windows 8/8.1 - and nothing else, but the fact that = Linux >>> worked confuses me a bit. >>>=20 >>> If this ASRock crap (never ever again this brand!) doesn't work at = all - >>> who cares, I intend to purchase new server grade hardware. But the = more >>> puzzling issue is with the Fujitsu, which I consider serious and = from the >>> behaviour the Fujitsu failure looks exactly like the ASRock - = Windows 7 >>> works, RedHat 7.5 works (I assume I can trust the Firmware settings = when I >>> disable CSM support, that the Firmware will only EFI/UEFI capable = loader? >>> Or is there a ghosty override somwhere to be expected?). Also on = ASRock >>> disabling CSM should ensure not booting a dual-bootstrap-capable = system. >>> This said, on the recent Fujitsu, it seems to boil down to a FreeBSD >>> UEFI-firmware interaction problem, while the ASRock is still under >>> suspicion to be broken by design.=20 >>>>=20 >>>> GPT partitions can never start from disk absolute sector 1; this is >>>> because at sector 0 there is MBR (for compatibility), sector 1 is = GPT >>>> table and then sectors 2-33 have GPT partition table entries, so = the first >>>> possible data sector is 34 (absolute 34). Thats assuming 512B = sectors. >>>> For details see UEFI 2.7 Chapter 5.3.1 page 131. =20 >>>=20 >>> Thanks for the explanation. That implies the installer did right, = gpart did >>> also right and therefore there must be an issue with the stuff = located >>> within the EFI partition?=20 >>=20 >> Ok, so, it is not about UEFI bootcode but BIOS, and if we reach BIOS = loader >> at all or not - that is, if the BIOS bootstrap is actually caring to = read the >> MBR code and start it, since once the MBR code is started, it is all = about >> our code. >=20 > I'm getting confused a bit here. Do you mean by "BIOS" the CSM? or do = you mean > that specific portion of the UEFI firmware, which looks for the proper = UEFI > partition? >=20 BIOS as either native or CSM. Note that from boot code point of view the = CSM boot *is* BIOS boot, we have no access to UEFI features. >=20 > The boxes in question, most notably the more recent Fujitsu Esprimo = Q956, > refuse booting UEFI, even if properly setup (in terms of what FreeBSD = provides > on recent CURRENT) is applied and CSM is switched off in the firmware. = Again: > GPT partition scheme. >=20 > The system boots properly if a second partition of type "freebsd-boot" = is > applied and bootcode is properly applied via "gpart bootcode -b = /boot/pmbr > -p /boot/gptboot -i 2 ada0" (ada0 is the device).=20 >>=20 >> btw, you can try to validate the installed boot blocks by using = recent enough >> loader (usb or iso) and then you can use from OK prompt: >=20 > lsdev provides me with the follwoing informations (CSM enabled): >=20 > OK lsdev > disk devices: > disk0: BIOS DRIVE C ... >=20 > disk0p1: EFI > disk0p2: FreeBSD BOOT > disk0p3: FreeBSD SWAP > disk0p4: FreeBSD ZFS > zfs devices: > zfs:zroot >=20 > OK chain disk0 > open failed (so for disk0p{1-4}. >=20 > OK chain zroot > failed to read disk (just for completeness) chain command does use only device name (such as disk0: or disk0p2: ), = but not zfs pool as device. I just found I haven=E2=80=99t ported the = code to read the file. the point for chain command test is to see if the normal read and = execute would work, so in your case please try: chain disk0: to read pmbr (512B) and execute it. The expected outcome would be that = pmbr boot code would browse the GPT, read stage1 from disk0p2: and = execute it; stage1 would detect FreeBSD ZFS from disk0p4: and load and = execute /boot/loader. If that will happen, it means the boot code in our = stages is just fine, but the bios (CSM) does not load pmbr=E2=80=A6. if = thats true, it would mean that you either need to use UEFI boot or need = to have some hack to fool the BIOS or just not use GPT on that machine = with CSM. rgds, toomas >>=20 >> OK chain diskX: >>=20 >> (replace X by correct disk number from lsdev) to read and start the = MBR code. >> If that is working, then its really about BIOS refusing to read the = MBR and >> execute it. >=20 > See above. >=20 > I do not get that far to the loader if CSM is disabled (pure UEFI). = The same on > the ASROCK boards.=20 >=20 > The ASRock systems boot off of an SSD with GPT partition scheme and = UFS > filesystem only (running recent 12-CURRENT), while the Esprimo box is = also an > SSD, but GPT/ZFS (11.2-RELENG). >=20 > I do not doubt the principle here, since a bunch of Fujitsu servers = around here > boot off 12-CURRENT and 11.2-RELENG from GPT/UFS SSDs as well as = GPT/ZFS SSDs. > Not problem so far. >=20 > I checked out for the most recent Firmware for the ASRock boards and = applied > the may, 2018 Spectre/Meltdown mitigation images found in the BETA = section. No > changes for boot at all. >=20 > Can I do something to help? >=20 >>=20 >> rgds, >> toomas >>=20 >=20 > Kind regards, > oh > _______________________________________________ > freebsd-current@freebsd.org <mailto:freebsd-current@freebsd.org> = mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-current = <https://lists.freebsd.org/mailman/listinfo/freebsd-current> > To unsubscribe, send any mail to = "freebsd-current-unsubscribe@freebsd.org = <mailto:freebsd-current-unsubscribe@freebsd.org>"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?80523BE6-C035-482D-B134-23812183DE83>