Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Nov 2017 09:50:20 -0500 (EST)
From:      Keith White <kwhite@eecs.uottawa.ca>
To:        Keith White <kwhite@eecs.uottawa.ca>
Cc:        freebsd-arm@freebsd.org, imp@freebsd.org
Subject:   Re: RPI3 fails to boot: boot1.efi as bootaa64.efi on RPI3 [patch]
Message-ID:  <alpine.BSF.2.21.1711120948430.60035@e6220>
In-Reply-To: <alpine.BSF.2.21.1711120758120.59718@e6220>
References:  <alpine.BSF.2.21.1711120758120.59718@e6220>

next in thread | previous in thread | raw e-mail | index | archive | help
Umm, forget it.  I see it's fixed now (r325681).

...keith

On Sun, 12 Nov 2017, Keith White wrote:

> I've tried FreeBSD-12.0-CURRENT-arm64-aarch64-RPI3-20171030-r325156.img
> and it fails to boot with an error similar to one reported by Mark Millard
> in https://lists.freebsd.org/pipermail/freebsd-arm/2017-September/016643.html
> (Synchronous abort after displaying Load Path).
>
> After I sprinkled some printf()s in boot1.c, it appears that
> efi_devpath_name() may return NULL on this platform.
>
> The following "works for me".  Salt to taste.
>
> ...keith
>
> Index: /usr/src/sys/boot/efi/boot1/boot1.c
> ===================================================================
> --- /usr/src/sys/boot/efi/boot1/boot1.c (revision 325521)
> +++ /usr/src/sys/boot/efi/boot1/boot1.c (working copy)
> @@ -460,9 +460,11 @@
>        imgpath = NULL;
>        if (status == EFI_SUCCESS) {
>                text = efi_devpath_name(img->FilePath);
> -               printf("   Load Path: %S\n", text);
> -               efi_setenv_freebsd_wcs("Boot1Path", text);
> -               efi_free_devpath_name(text);
> +               if (text != NULL) { /* XXX aarch64 RPI3 */
> +                       printf("   Load Path: %S\n", text);
> +                       efi_setenv_freebsd_wcs("Boot1Path", text);
> +                       efi_free_devpath_name(text);
> +               }
>
>                status = BS->HandleProtocol(img->DeviceHandle, 
> &DevicePathGUID,
>                    (void **)&imgpath);
> @@ -471,9 +473,11 @@
>                            EFI_ERROR_CODE(status));
>                } else {
>                        text = efi_devpath_name(imgpath);
> -                       printf("   Load Device: %S\n", text);
> -                       efi_setenv_freebsd_wcs("Boot1Dev", text);
> -                       efi_free_devpath_name(text);
> +                       if (text != NULL) { /* XXX aarch64 RPI3 */
> +                               printf("   Load Device: %S\n", text);
> +                               efi_setenv_freebsd_wcs("Boot1Dev", text);
> +                               efi_free_devpath_name(text);
> +                       }
>                }
>
>        }
>
> _______________________________________________
> freebsd-arm@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.21.1711120948430.60035>