On Sun, Jul 06, 2025 at 01:22:12PM -0700, Ahmad Khalifa wrote:
> On Sun Jul 6, 2025 at 11:02 PM +0300, Ahmad Khalifa wrote:
> > On Sun Jul 6, 2025 at 10:43 PM +0300, Konstantin Belousov wrote:
> >> On Sun, Jul 06, 2025 at 07:28:21PM +0000, Ahmad Khalifa wrote:
> >>> The branch main has been updated by vexeduxr:
> >>>
> >>> URL: 
> >>> https://cgit.FreeBSD.org/src/commit/?id=85dcdb7aad85498b3f497b8752e69b8612b27cb7
> >>>
> >>> commit 85dcdb7aad85498b3f497b8752e69b8612b27cb7
> >>> Author:     Ahmad Khalifa <vexed...@freebsd.org>
> >>> AuthorDate: 2025-07-06 19:10:25 +0000
> >>> Commit:     Ahmad Khalifa <vexed...@freebsd.org>
> >>> CommitDate: 2025-07-06 19:26:07 +0000
> >>>
> >>>     amd64: allow the mapping of other regions for efirt
> >>>
> >>>     Some BIOSes access data outside of regions marked as "runtime" in 
> >>> their
> >>>     runtime EFI functions. Allow the mapping and preservation of other
> >>>     regions through a tunable.
> >>>
> >>>     The tunable is a bitmap specifying the regions to map. e.g bit 3 would
> >>>     be set to map BootServicesCode.
> >>>
> >>>     Currently allowed regions are:
> >>>     BootServicesCode
> >>>     BootServicesData
> >>>     RuntimeServicesCode
> >>>     RuntimeServicesData
> >>>     ACPIMemoryNVS
> >>>
> >>>     PR:             287422
> >>>     Reviewed by:    kib
> >>>     Approved by:    imp (mentor)
> >>>     Differential Revision:  https://reviews.freebsd.org/D51146
> >>> ---
> >>>  sys/amd64/amd64/efirt_machdep.c | 18 +++++++++++++++++-
> >>>  sys/amd64/amd64/machdep.c       |  8 ++++++--
> >>>  sys/amd64/include/efi.h         |  4 ++++
> >>>  3 files changed, 27 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/sys/amd64/amd64/efirt_machdep.c 
> >>> b/sys/amd64/amd64/efirt_machdep.c
> >>> index 81a28ebe97ee..75c357f6e3df 100644
> >>> --- a/sys/amd64/amd64/efirt_machdep.c
> >>> +++ b/sys/amd64/amd64/efirt_machdep.c
> >>> @@ -56,6 +56,15 @@
> >>>  #include <vm/vm_pager.h>
> >>>  #include <vm/vm_radix.h>
> >>>
> >>> +/* The EFI regions we're allowed to map. */
> >>> +#define EFI_ALLOWED_TYPES_MASK ( \
> >>> +    1u << EFI_MD_TYPE_BS_CODE | 1u << EFI_MD_TYPE_BS_DATA | \
> >>> +    1u << EFI_MD_TYPE_RT_CODE | 1u << EFI_MD_TYPE_RT_DATA | \
> >>> +    1u << EFI_MD_TYPE_FIRMWARE \
> >>> +)
> >>> +
> >>> +uint32_t efi_map_regs;
> >>> +
> >>
> >> Apparently efi_map_regs must be defined in amd64/machdep.c and not in
> >> efirt_machdep.c.  If efirt is compiled as module, efo_map_regs gets
> >> undefined in the kernel.
> >
> > Ah, nice catch. Review opened.
> 
> Hmm, apparently active_efi_ops has this issue too.

I do not think so.

Reply via email to