> From: Heinrich Schuchardt <xypron.g...@gmx.de> > Date: Sat, 4 Aug 2018 14:21:17 +0200 > > On 08/03/2018 12:07 AM, Mark Kettenis wrote: > >> Date: Thu, 2 Aug 2018 22:55:23 +0200 (CEST) > >> From: Mark Kettenis <mark.kette...@xs4all.nl> > >> > >> I can no longer boot OpenBSD on the orangepi pc2. The kernel faults > >> somewhere in the EFI detection code, almost certainly where it looks > >> through the configuration table entries looking for the ACPI table. > >> I've bisected this resulting in: > >> > >> > >> 4182a129ef735bfd6c54788affe1b649ab85b851 is the first bad commit > >> commit 4182a129ef735bfd6c54788affe1b649ab85b851 > >> Author: Heinrich Schuchardt <xypron.g...@gmx.de> > >> Date: Thu Jun 28 12:45:32 2018 +0200 > >> > >> efi_loader: allocate configuration table array > >> > >> The system table contains a link to the list of configurations tables. > >> These include the device tree, SMBIOS table, and the ACPI table. > >> > >> This array is currently statically linked. With the patch it is > >> allocated > >> as EFI_RUNTIME_SERVICES_DATA. Due to the structure of the system table > >> we > >> cannot work with a linked list here. > >> > >> Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > >> Reviewed-by: Bin Meng <bmeng...@gmail.com> > >> Signed-off-by: Alexander Graf <ag...@suse.de> > > > > So after this commit, the ConfigurationTable field of the system table > > is no longer translated from a physical address into a virtual address > > when the SerVirtualAddressMap() runtime service gets called. > > > > The way SetVirtualAddressMap() is implemented is actually quite nify. > > It "relocates" the relevant bits by processing the ELF relocations for > > everything that is marked as __efi_runtime_data. This magically > > modifies all the pointers in the system table that reference other > > symbols, such as firmware_vendor, efi_runtime_services and > > efi_conf_table. But since the diff replaces the reference to > > efi_conf_table with a dynamically updated pointer, there no longer is > > a relocation for the tables member. > > > >>From the commit message it isn't abvious what is being fixed. I think > > the commit should be reverted. > > > Hello Mark, > > thanks for pointing out the following requirement from the UEFI spec > that is not correctly implemented: > > "Several fields of the EFI System Table must be converted from physical > pointers to virtual pointers using the ConvertPointer() service. These > fields include FirmwareVendor, RuntimeServices, and ConfigurationTable."
Sorry, but that functionality was implemented and it still works for the FirmwareVendor and RuntimeServices fields. Your commit introduced a regression by breaking this functionality for the ConfigurationTable field. This regression should really be fixed before 2018.09 gets released. > I am currently testing a patch for this. Great. Although I still don't understand what your commit is trying to fix. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot