5 Commits

Author SHA1 Message Date
Michael D Kinney
12a908e09c PrmPkg/Samples: Update INF files for GCC/CLANG
* Remove redundant /DLL option from MSFT
* Use VERSION_STRING from [Defines] section to set
  the PE/COFF optional header image version fields.
  The use of the MSFT linker /VERSION option is
  removed and replaced with the GenFw --image-version
  option to use same method for all tool chains and
  provide better error checking.
* Add CLANGPDB tool chain family support that matches
  MSFT settings.
* Add GCC family tool chain support that overrides
  OBJCOPY_STRIPFLAGS to nothing to prevent symbols
  from being stripped from PRM Modules so the
  PRM Export Descriptor Structure can be found by
  GENFW when the --prm option is used.
* Remove all -Wl, options that are not compatible
  across all support tool chains. This also removes
  the need to list the PRM Export Descriptor Structure
  and PRM Handler APIs in the INF file and instead
  depend in GENFW with --prm option to find these
  symbols and generate the PE/COFF DLL export section.

Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-10-17 06:23:17 +00:00
Abdul Lateef Attar
9006a9b5e4 PrmPkg: Correct the flags for X64 GCC compiler
Correct the GCC GenFw and ld flag to build PRM run time modules.
These changes are made for X64 GCC compiler, current present for AARCH64 only.
Adds addition _X64_OBJCOPY_STRIPFLAG for X64 to retain required symbol
during objcopy.

Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-03-27 04:54:29 +00:00
Jose Marinho
21200d9fe6 PrmPkg: Build Prm Samples with GCC for AARCH64
- Add the --prm flag to the GENFW_FLAGS
- Add the --no-gc-section to the linker flags so that apparently
unreferenced symbols are not prematurely removed from the .dll which
is used to generate the Prm module .efi.
- Force the linker to maintain the PrmModuleExportDescriptor symbol.
- Force the linker to maintain the PRM handler funtion's symbol.

Signed-off-by: Jose Marinho <jose.marinho@arm.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
2022-08-08 22:43:51 +00:00
Liu
f96517f4d0 PrmPkg: Export major/minor version in PRM module PE COFF header
PRMT ACPI defined major version and minor version for each PRM module.

PRM module will build its major/minor version in its PE COFF header.
In boot time, PRM loader will collect the major/minor version from PE COFF
header and fill them into PRMT ACPI table.

Cc: Andrew Fish <afish@apple.com>
Cc: Kang Gao <kang.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Michael Kubacki <michael.kubacki@microsoft.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Liu Yun <yun.y.liu@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Liu Yun <yun.y.liu@intel.com>
Acked-by: Michael D Kinney <michael.d.kinney@intel.com>
Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
Acked-by: Leif Lindholm <quic_llindhol@quicinc.com>
Reviewed-by: Ankit Sinha <ankit.sinha@intel.com>
2022-04-05 00:42:38 +00:00
Michael Kubacki
7c41ec47ca PrmPkg: Add initial PrmSampleContextBufferModule
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3812

Adds a sample PRM module that demonstrates:
  1. How to write a PRM module
  2. How to use a basic PRM OS services
  3. How to use a basic PRM module configuration library
  4. How to use a context buffer during PRM handler execution

Cc: Andrew Fish <afish@apple.com>
Cc: Kang Gao <kang.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Michael Kubacki <michael.kubacki@microsoft.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Liu Yun <yun.y.liu@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Acked-by: Michael D Kinney <michael.d.kinney@intel.com>
Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
Acked-by: Leif Lindholm <quic_llindhol@quicinc.com>
Reviewed-by: Ankit Sinha <ankit.sinha@intel.com>
2022-04-05 00:42:38 +00:00