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
Michael Kubacki
a298a84478
PrmPkg: Apply uncrustify changes
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3737
Apply uncrustify changes to .c/.h files in PrmPkg.
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
Michael Kubacki
f3c11224b5
PrmPkg: Changes for edk2 repo transition
...
Updates the Readme.md files to remove information that was specific
to the package in edk2-staging and adds key definitions being added
for PRM support in the ACPI Specification.
Adds PrmPkg/PrmPkg.ci.yaml to support CI.
Adds PrmPkg to .pytool/CISettings.py.
Adds PrmPkg maintainers to Maintainers.txt.
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
Michael Kubacki
88f3d734f5
PrmPkg: Remove the concept of OS services
...
OS services are no longer supported as of the current PRM design.
1. Removes OS services from PrmSampleHardwareAccessModule
2. Removes the PrmOsServices.h file
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
Michael Kubacki
050b2ba27d
PrmPkg/Samples: Remove PrmSamplePrintModule
...
This sample module is removed since it directly depends on OS
services which are no longer supported as of the current PRM
design.
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
Michael Kubacki
17b2d64ced
PrmPkg/Samples: Remove PrmSampleMemoryAllocationModule
...
Removes PrmSampleMemoryAllocationModule since the module depends
upon the deprecated concept of OS services.
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
Michael Kubacki
d10b8dc5d8
PrmPkg/Samples/Readme.md: Add initial file
...
Adds a Readme.md file for the Samples to help a user get started
building and using the PRM sample modules.
Includes a reference to the Samples/Readme.md file in the top-level
file to help make the reader aware the file exists.
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
Michael Kubacki
fec018624c
PrmPkg/HardwareAccessModuleConfigLib: Add initial library
...
Adds a PRM module configuration library for PrmSampleHardwareAccessModule
that demonstrates marking a runtime MMIO range. In the case of this
sample module, the range used is for HPET.
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
Michael Kubacki
7217263514
PrmPkg/SampleAcpiParameterBufferModule: Add initial module
...
Adds a new PRM module called SampleAcpiParameterBufferModule that
demonstrates how a PRM module can use an ACPI parameter buffer with
a PRM handler.
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
Michael Kubacki
4c8486fd72
PrmPkg/PrmSampleHardwareAccessModule: Add non-print PRM handlers
...
For each PRM handler that is currently present, a corresponding PRM
handler is added that does not print. This allows a caller to execute
a sample hardware access PRM handler without requiring that caller to
provide a debug print service.
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
Michael Kubacki
c1a7a50f67
PrmPkg/PrmSampleContextBufferModule: Remove OS debug print requirement
...
Removes the expectation that the parameter buffer contain an OS
debug print service at the beginning of the buffer. All supporting
code related to printing is also removed.
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
Michael Kubacki
0797989c5d
PrmPkg: Remove ALLOCATE_CONTEXT_BUFFER_IN_FW build flag
...
The POR is firmly to use an OS allocated context buffer now so the
build flag that allows firmware to allocate the context buffer
is removed along with supporting code.
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
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
e846797662
PrmPkg: Add ALLOCATE_CONTEXT_BUFFER_IN_FW build option
...
There's currently two approaches being considered for how to allocate the
context buffer passed to PRM handlers:
1. The context buffer is allocated and populated in firmware. As such, the
FW converts all pointers internal to the buffer to virtual memory
addresses at the virtual address change event. A single context buffer
pointer is given to the OS via the PRM ACPI table and the OS converts
this single physical address to a virtual address when it passes the
context buffer as a pointer to PRM handlers.
2. The context buffer is allocated and populated in the OS. The OS gets
all the information needed to populate the context buffer from other
pre-existing resources (mainly physical addresses in the PRM ACPI
table). The OS converts all the physical addresses to virtual addresses,
allocates the context buffer instances, and fills in the information.
The OS passes the context buffer virtual address to PRM handlers.
The prior behavior was (1). The current POR behavior has moved to (2).
Until (2) is used more widely, it can be kept around with fairly minimal
overhead via a build flag in a few places.
So the default behavior is now (2) (the expected permanent behavior) with
(1) easily enabled by defining "ALLOCATE_CONTEXT_BUFFER_IN_FW" in the
compiler defined macros. A DSC define was added in PrmPkg.dsc to set this
compiler macro in the package build.
At some point in the future, all code (and some peripheral code)
surrounded with this build flag can be removed if (2) is fully
decided upon.
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
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
Michael Kubacki
27b1a840e4
PrmPkg: Add initial PrmSampleHardwareAccessModule
...
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 multiple PRM handlers in a module
3. How to use a basic PRM OS service
4. MSR access at OS runtime
Note: This module contains a PRM handler to read from the HPET MMIO
range but the memory map changes needed for this to succeed
are currently not implemented. These will be implemented in a
future change.
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
Michael Kubacki
c63905aba7
PrmPkg: Add initial PrmSampleMemoryAllocationModule
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3812
DEPRECATED: This module is no longer relevant since OS Services that
allow memory allocation have been removed. It is still present in the
source tree in the event dynamic memory allocation at OS runtime is
needed again.
Adds a sample PRM module that demonstrates:
1. How to write a PRM module
2. How to use a basic PRM OS service
3. How to dynamically allocate memory at OS runtime
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
Michael Kubacki
9276e0d2b9
PrmPkg: Add initial PrmSamplePrintModule
...
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3812
Adds a simple sample PRM module that demonstrates:
1. How to write a PRM module
2. How to use multiple PRM handlers in a module
3. How to use a basic PRM OS service
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