Date: Mon, 2 Dec 2019 09:23:42 +0100 From: Harry Schmalzbauer <freebsd@omnilan.de> To: FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org> Subject: Re: UEFI ISO boot not working in 12.1 ? Message-ID: <d52d3278-c96f-aa36-3ec3-5370568b467b@omnilan.de> In-Reply-To: <CACNAnaHvDe6d-YZDy1N8dfUX4cV%2BDj-%2BKq5eP=L=SEaYzVn9PA@mail.gmail.com> References: <20191106191711.GK1177@westeros.distal.com> <20191106210256.GL1177@westeros.distal.com> <CANCZdfobLkYeezJQtz38KE%2BTELaiY5M2JfpUy0POzYPdwsGcCA@mail.gmail.com> <1db62ff2-e7df-5bef-7c6d-424f4367370a@freebsd.org> <CAKr6gn0rV8n%2B9g0i9hm0fNYPDx5EcvVFR60QS554M8qFTW9gqg@mail.gmail.com> <24bd3c37-e834-9599-acd9-2f4966916eae@freebsd.org> <CAKr6gn0qeMiKnB_xj-pD4h8gbBWK39Sxh5YS7tTyUfatKww1wQ@mail.gmail.com> <20191107195325.GO1177@westeros.distal.com> <20191109164233.GB1053@westeros.distal.com> <CACNAnaHvDe6d-YZDy1N8dfUX4cV%2BDj-%2BKq5eP=L=SEaYzVn9PA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------7ED70A944226CF0887322411 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Am 09.11.2019 um 18:24 schrieb Kyle Evans: > On Sat, Nov 9, 2019 at 10:42 AM Chris Ross <cross+freebsd@distal.com> wrote: >> On Thu, Nov 07, 2019 at 02:53:25PM -0500, Chris Ross wrote: >>>>> On Thu, Nov 7, 2019 at 9:46 AM Julian Elischer <julian@freebsd.org> wrote: >>>>>> You could try some bisection back along the 12 branch.. >>> Yeah. I was hoping for an easier path, but. I can try slogging back >>> through stable-12 a month or two at a time. >> Okay. I spent a bunch of time moving around stable-12 by date, and >> an ISO build from stable-12 as of 2019-10-14 works (rev 353483), and >> 2019-10-15 (rev 353541) does not. … >> That helps- thanks! I'm CC'ing tsoome@, as this is basically just >> r353501 in that range. Can you give the latest -CURRENT snapshot boot >> as another data point? I can confirm that reverting r353501 on stable/12 from yesterday solves my problem with booting the setup media. (My symptoms on ESXi 6.7 guest using SATA vODD: r355263 loads kernel/modules but stucks with 100%CPU while trying to hand over to kernel) My svn skills are as lousy as my C skills, but to me it seems like a mismerge. The attached patch (against r355263, stable/12 from yesterday _without_ reverting r353501!) solves my problem. But please could someone familiar with svn&code inspect what happened and verify/correct/commit the fix. Solving my problem doesn't mean my approach is correct. I don't know HandleProtocol() nor OpenProtocol() nor did I read the code trying to understand what's happening in "proto.c". I just text-edited a obvious cannotbe… Maby I missed a lot of things… In case attachment won't make it to the list (white space nits to be expected): Index: stand/efi/boot1/proto.c =================================================================== --- stand/efi/boot1/proto.c (Revision 355263) +++ stand/efi/boot1/proto.c (Arbeitskopie) @@ -61,7 +61,7 @@ int preferred; /* Figure out if we're dealing with an actual partition. */ - status = BS->HandleProtocol(h, &DevicePathGUID, (void **)&devpath); + status = OpenProtocolByHandle(h, &DevicePathGUID, (void **)&devpath); if (status == EFI_UNSUPPORTED) return (0); @@ -77,7 +77,7 @@ efi_free_devpath_name(text); } #endif - status = BS->HandleProtocol(h, &BlockIoProtocolGUID, (void **)&blkio); + status = OpenProtocolByHandle(h, &BlockIoProtocolGUID, (void **)&blkio); if (status == EFI_UNSUPPORTED) return (0); Index: stand/efi/gptboot/proto.c =================================================================== --- stand/efi/gptboot/proto.c (Revision 355263) +++ stand/efi/gptboot/proto.c (Arbeitskopie) @@ -146,7 +146,7 @@ EFI_STATUS status; /* Figure out if we're dealing with an actual partition. */ - status = BS->HandleProtocol(h, &DevicePathGUID, (void **)&devpath); + status = OpenProtocolByHandle(h, &DevicePathGUID, (void **)&devpath); if (status != EFI_SUCCESS) return; #ifdef EFI_DEBUG @@ -169,7 +169,7 @@ return; } } - status = BS->HandleProtocol(h, &BlockIoProtocolGUID, (void **)&blkio); + status = OpenProtocolByHandle(h, &BlockIoProtocolGUID, (void **)&blkio); if (status != EFI_SUCCESS) { DPRINTF("Can't get the block I/O protocol block\n"); return; But reading this thread leaves one question: Does 12.1-RELEASE refuse to boot on regular ESXi UEFI guests!? Thanks, -Harry (resent due to ?expired? subscription…; original message was addressed to all other recipients) --------------7ED70A944226CF0887322411 Content-Type: text/x-patch; name="efiloader_MFCfix-HandleProtocol2OpenProtocol.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="efiloader_MFCfix-HandleProtocol2OpenProtocol.patch" Index: stand/efi/boot1/proto.c =================================================================== --- stand/efi/boot1/proto.c (Revision 355263) +++ stand/efi/boot1/proto.c (Arbeitskopie) @@ -61,7 +61,7 @@ int preferred; /* Figure out if we're dealing with an actual partition. */ - status = BS->HandleProtocol(h, &DevicePathGUID, (void **)&devpath); + status = OpenProtocolByHandle(h, &DevicePathGUID, (void **)&devpath); if (status == EFI_UNSUPPORTED) return (0); @@ -77,7 +77,7 @@ efi_free_devpath_name(text); } #endif - status = BS->HandleProtocol(h, &BlockIoProtocolGUID, (void **)&blkio); + status = OpenProtocolByHandle(h, &BlockIoProtocolGUID, (void **)&blkio); if (status == EFI_UNSUPPORTED) return (0); Index: stand/efi/gptboot/proto.c =================================================================== --- stand/efi/gptboot/proto.c (Revision 355263) +++ stand/efi/gptboot/proto.c (Arbeitskopie) @@ -146,7 +146,7 @@ EFI_STATUS status; /* Figure out if we're dealing with an actual partition. */ - status = BS->HandleProtocol(h, &DevicePathGUID, (void **)&devpath); + status = OpenProtocolByHandle(h, &DevicePathGUID, (void **)&devpath); if (status != EFI_SUCCESS) return; #ifdef EFI_DEBUG @@ -169,7 +169,7 @@ return; } } - status = BS->HandleProtocol(h, &BlockIoProtocolGUID, (void **)&blkio); + status = OpenProtocolByHandle(h, &BlockIoProtocolGUID, (void **)&blkio); if (status != EFI_SUCCESS) { DPRINTF("Can't get the block I/O protocol block\n"); return; --------------7ED70A944226CF0887322411--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d52d3278-c96f-aa36-3ec3-5370568b467b>