summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2021-02-15 13:08:43 +0100
committerPatrick Georgi <pgeorgi@google.com>2021-03-18 08:11:03 +0000
commit5dfb3314b436fd5edf6f65112f34d7d8e3f1a162 (patch)
treefd5564cf0f2a0b68992d8707777e68e250a59c61 /src
parent3419aaebf06195afb943b77a20d56e69bd8d2431 (diff)
cpu/x86/smm: Move relocatable stub params
These stub params need to be synced with the code in smm_stub.S and are consumed by both the smmloader and smmloader_v2. So it is better to have the definition located in one place. Change-Id: Ide3e0cb6dea3359fa9ae660eab627499832817c9 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/50761 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r--src/cpu/x86/smm/smm_module_loader.c12
-rw-r--r--src/cpu/x86/smm/smm_module_loaderv2.c12
-rw-r--r--src/include/cpu/x86/smm.h12
3 files changed, 12 insertions, 24 deletions
diff --git a/src/cpu/x86/smm/smm_module_loader.c b/src/cpu/x86/smm/smm_module_loader.c
index 876fde6733..a4ace43880 100644
--- a/src/cpu/x86/smm/smm_module_loader.c
+++ b/src/cpu/x86/smm/smm_module_loader.c
@@ -26,18 +26,6 @@ __attribute__((aligned(16)));
* The components are assumed to consist of one consecutive region.
*/
-/* These parameters are used by the SMM stub code. A pointer to the params
- * is also passed to the C-base handler. */
-struct smm_stub_params {
- u32 stack_size;
- u32 stack_top;
- u32 c_handler;
- u32 c_handler_arg;
- u32 fxsave_area;
- u32 fxsave_area_size;
- struct smm_runtime runtime;
-} __packed;
-
/*
* The stub is the entry point that sets up protected mode and stacks for each
* CPU. It then calls into the SMM handler module. It is encoded as an rmodule.
diff --git a/src/cpu/x86/smm/smm_module_loaderv2.c b/src/cpu/x86/smm/smm_module_loaderv2.c
index cd44f93cc9..8e02fa8316 100644
--- a/src/cpu/x86/smm/smm_module_loaderv2.c
+++ b/src/cpu/x86/smm/smm_module_loaderv2.c
@@ -27,18 +27,6 @@ __attribute__((aligned(16)));
* The components are assumed to consist of one consecutive region.
*/
-/* These parameters are used by the SMM stub code. A pointer to the params
- * is also passed to the C-base handler. */
-struct smm_stub_params {
- u32 stack_size;
- u32 stack_top;
- u32 c_handler;
- u32 c_handler_arg;
- u32 fxsave_area;
- u32 fxsave_area_size;
- struct smm_runtime runtime;
-} __packed;
-
/*
* The stub is the entry point that sets up protected mode and stacks for each
* CPU. It then calls into the SMM handler module. It is encoded as an rmodule.
diff --git a/src/include/cpu/x86/smm.h b/src/include/cpu/x86/smm.h
index cd83bdf4bd..30accb3041 100644
--- a/src/include/cpu/x86/smm.h
+++ b/src/include/cpu/x86/smm.h
@@ -81,6 +81,18 @@ struct smm_module_params {
const uintptr_t *canary;
};
+/* These parameters are used by the SMM stub code. A pointer to the params
+ * is also passed to the C-base handler. */
+struct smm_stub_params {
+ u32 stack_size;
+ u32 stack_top;
+ u32 c_handler;
+ u32 c_handler_arg;
+ u32 fxsave_area;
+ u32 fxsave_area_size;
+ struct smm_runtime runtime;
+} __packed;
+
/* smm_handler_t is called with arg of smm_module_params pointer. */
typedef asmlinkage void (*smm_handler_t)(void *);