Kyösti Mälkki has uploaded this change for review.

View Change

[WIP] soc/amd/common: Use static allocation for params

Lifetime of the structure is the duration of call to
AGESA. There is no need to allocate and release these
from AGESA's internal heap for every single call.

Change-Id: Ibef6ca8481f926d4e18e1aef5136e69f5834feb1
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
---
M src/soc/amd/common/block/pi/agesawrapper.c
1 file changed, 22 insertions(+), 12 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/89/31489/1
diff --git a/src/soc/amd/common/block/pi/agesawrapper.c b/src/soc/amd/common/block/pi/agesawrapper.c
index 821535d..e769a45 100644
--- a/src/soc/amd/common/block/pi/agesawrapper.c
+++ b/src/soc/amd/common/block/pi/agesawrapper.c
@@ -410,6 +410,26 @@

}

+union AMD_MAX_ALLOC_PARAMS {
+ AMD_INTERFACE_PARAMS p1;
+ AMD_RESET_PARAMS p2;
+ AMD_EARLY_PARAMS p3;
+ AMD_POST_PARAMS p4;
+ AMD_RESUME_PARAMS p5;
+ AMD_ENV_PARAMS p6;
+ AMD_MID_PARAMS p7;
+ AMD_LATE_PARAMS p8;
+#if 1
+ AMD_RTB_PARAMS p9;
+#else
+ AMD_S3SAVE_PARAMS p10;
+#endif
+ AMD_S3LATE_PARAMS p11;
+ AMD_S3FINAL_PARAMS p12;
+};
+
+static union AMD_MAX_ALLOC_PARAMS sp;
+
AGESA_STATUS agesa_execute_state(AGESA_STRUCT_NAME func)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
@@ -417,19 +437,9 @@
AMD_CONFIG_PARAMS *StdHeader = &template;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_INTERFACE_PARAMS *aip = &AmdParamStruct;
- union {
- AMD_RESET_PARAMS ResetParams;
- AMD_S3LATE_PARAMS S3LateParams;
- AMD_S3FINAL_PARAMS S3FinalParams;
- } sp;

- if ((func == AMD_INIT_RESET) || (func == AMD_S3LATE_RESTORE) ||
- (func == AMD_S3FINAL_RESTORE)) {
- memset(&sp, 0, sizeof(sp));
- amd_create_struct(aip, func, &sp, sizeof(sp));
- } else {
- amd_create_struct(aip, func, NULL, 0);
- }
+ memset(&sp, 0, sizeof(sp));
+ amd_create_struct(aip, func, &sp, sizeof(sp));

StdHeader = aip->NewStructPtr;
StdHeader->Func = func;

To view, visit change 31489. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ibef6ca8481f926d4e18e1aef5136e69f5834feb1
Gerrit-Change-Number: 31489
Gerrit-PatchSet: 1
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki@gmail.com>
Gerrit-MessageType: newchange