summaryrefslogtreecommitdiff
path: root/src/northbridge/amd/agesa/family15rl
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2014-10-20 07:41:20 +0300
committerKyösti Mälkki <kyosti.malkki@gmail.com>2014-12-03 08:10:36 +0100
commitb139b5efcc7f1caf541156fa8d213e3eaf231603 (patch)
treedd0eca6c35ceaa3d841fb65358aab90c068beb4e /src/northbridge/amd/agesa/family15rl
parent13fdf36ef9f7d03135c2f0984967f56a6cda13ce (diff)
downloadcoreboot-b139b5efcc7f1caf541156fa8d213e3eaf231603.tar.xz
AGESA: Common agesawrapper for S3 resume
Change-Id: I27cd073331659e47d241a0ce249b2d080b4bab5c Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/7162 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/northbridge/amd/agesa/family15rl')
-rw-r--r--src/northbridge/amd/agesa/family15rl/agesawrapper.c127
-rw-r--r--src/northbridge/amd/agesa/family15rl/northbridge.c7
2 files changed, 5 insertions, 129 deletions
diff --git a/src/northbridge/amd/agesa/family15rl/agesawrapper.c b/src/northbridge/amd/agesa/family15rl/agesawrapper.c
index 4f2e5357ed..768541171b 100644
--- a/src/northbridge/amd/agesa/family15rl/agesawrapper.c
+++ b/src/northbridge/amd/agesa/family15rl/agesawrapper.c
@@ -260,9 +260,6 @@ AGESA_STATUS agesawrapper_amdinitmid(void)
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct;
- /* Enable MMIO on AMD CPU Address Map Controller */
- agesawrapper_amdinitcpuio();
-
LibAmdMemFill(&AmdParamStruct, 0, sizeof(AMD_INTERFACE_PARAMS), &(AmdParamStruct.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_MID;
@@ -345,127 +342,3 @@ AGESA_STATUS agesawrapper_amdlaterunaptask(UINT32 Func, UINT32 Data, VOID * Conf
return status;
}
-
-AGESA_STATUS agesawrapper_amdinitresume(void)
-{
- AGESA_STATUS status;
- AMD_INTERFACE_PARAMS AmdParamStruct;
- AMD_RESUME_PARAMS *AmdResumeParamsPtr;
- S3_DATA_TYPE S3DataType;
-
- LibAmdMemFill(&AmdParamStruct, 0, sizeof(AMD_INTERFACE_PARAMS), &(AmdParamStruct.StdHeader));
-
- AmdParamStruct.AgesaFunctionName = AMD_INIT_RESUME;
- AmdParamStruct.AllocationMethod = PreMemHeap;
- AmdParamStruct.StdHeader.AltImageBasePtr = 0;
- AmdParamStruct.StdHeader.CalloutPtr = (CALLOUT_ENTRY) & GetBiosCallout;
- AmdParamStruct.StdHeader.Func = 0;
- AmdParamStruct.StdHeader.ImageBasePtr = 0;
- AmdCreateStruct(&AmdParamStruct);
-
- AmdResumeParamsPtr = (AMD_RESUME_PARAMS *) AmdParamStruct.NewStructPtr;
-
- AmdResumeParamsPtr->S3DataBlock.NvStorageSize = 0;
- AmdResumeParamsPtr->S3DataBlock.VolatileStorageSize = 0;
- S3DataType = S3DataTypeNonVolatile;
- OemAgesaGetS3Info(S3DataType,
- (u32 *) & AmdResumeParamsPtr->S3DataBlock.NvStorageSize,
- (void **)&AmdResumeParamsPtr->S3DataBlock.NvStorage);
-
- status = AmdInitResume((AMD_RESUME_PARAMS *) AmdParamStruct.NewStructPtr);
-
- AGESA_EVENTLOG(status, AmdParamStruct.StdHeader.HeapStatus);
- AmdReleaseStruct(&AmdParamStruct);
-
- return status;
-}
-
-AGESA_STATUS agesawrapper_amds3laterestore(void)
-{
- AGESA_STATUS Status;
- AMD_INTERFACE_PARAMS AmdInterfaceParams;
- AMD_S3LATE_PARAMS AmdS3LateParams;
- AMD_S3LATE_PARAMS *AmdS3LateParamsPtr;
- S3_DATA_TYPE S3DataType;
-
- agesawrapper_amdinitcpuio();
- LibAmdMemFill(&AmdS3LateParams, 0, sizeof(AMD_S3LATE_PARAMS), &(AmdS3LateParams.StdHeader));
- AmdInterfaceParams.StdHeader.ImageBasePtr = 0;
- AmdInterfaceParams.AllocationMethod = ByHost;
- AmdInterfaceParams.AgesaFunctionName = AMD_S3LATE_RESTORE;
- AmdInterfaceParams.NewStructPtr = &AmdS3LateParams;
- AmdInterfaceParams.StdHeader.CalloutPtr = (CALLOUT_ENTRY) & GetBiosCallout;
- AmdS3LateParamsPtr = &AmdS3LateParams;
- AmdInterfaceParams.NewStructSize = sizeof(AMD_S3LATE_PARAMS);
-
- AmdCreateStruct(&AmdInterfaceParams);
-
- AmdS3LateParamsPtr->S3DataBlock.VolatileStorageSize = 0;
- S3DataType = S3DataTypeVolatile;
-
- OemAgesaGetS3Info(S3DataType,
- (u32 *) & AmdS3LateParamsPtr->S3DataBlock.VolatileStorageSize,
- (void **)&AmdS3LateParamsPtr->S3DataBlock.VolatileStorage);
-
- Status = AmdS3LateRestore(AmdS3LateParamsPtr);
- AGESA_EVENTLOG(Status, AmdInterfaceParams.StdHeader.HeapStatus);
- ASSERT(Status == AGESA_SUCCESS);
-
- return Status;
-}
-
-#ifndef __PRE_RAM__
-
-AGESA_STATUS agesawrapper_amdS3Save(void)
-{
- AGESA_STATUS Status;
- AMD_S3SAVE_PARAMS *AmdS3SaveParamsPtr;
- AMD_INTERFACE_PARAMS AmdInterfaceParams;
- S3_DATA_TYPE S3DataType;
-
- LibAmdMemFill(&AmdInterfaceParams, 0, sizeof(AMD_INTERFACE_PARAMS), &(AmdInterfaceParams.StdHeader));
-
- AmdInterfaceParams.StdHeader.ImageBasePtr = 0;
- AmdInterfaceParams.StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- AmdInterfaceParams.StdHeader.CalloutPtr = (CALLOUT_ENTRY) & GetBiosCallout;
- AmdInterfaceParams.AllocationMethod = PostMemDram;
- AmdInterfaceParams.AgesaFunctionName = AMD_S3_SAVE;
- AmdInterfaceParams.StdHeader.AltImageBasePtr = 0;
- AmdInterfaceParams.StdHeader.Func = 0;
-
- AmdCreateStruct(&AmdInterfaceParams);
- AmdS3SaveParamsPtr = (AMD_S3SAVE_PARAMS *) AmdInterfaceParams.NewStructPtr;
- AmdS3SaveParamsPtr->StdHeader = AmdInterfaceParams.StdHeader;
-
- Status = AmdS3Save(AmdS3SaveParamsPtr);
- AGESA_EVENTLOG(Status, AmdInterfaceParams.StdHeader.HeapStatus);
- ASSERT(Status == AGESA_SUCCESS);
-
- S3DataType = S3DataTypeNonVolatile;
- printk(BIOS_DEBUG, "NvStorageSize=%x, NvStorage=%x\n",
- (unsigned int)AmdS3SaveParamsPtr->S3DataBlock.NvStorageSize,
- (unsigned int)AmdS3SaveParamsPtr->S3DataBlock.NvStorage);
-
- Status = OemAgesaSaveS3Info(S3DataType,
- AmdS3SaveParamsPtr->S3DataBlock.NvStorageSize,
- AmdS3SaveParamsPtr->S3DataBlock.NvStorage);
-
- printk(BIOS_DEBUG, "VolatileStorageSize=%x, VolatileStorage=%x\n",
- (unsigned int)AmdS3SaveParamsPtr->S3DataBlock.VolatileStorageSize,
- (unsigned int)AmdS3SaveParamsPtr->S3DataBlock.VolatileStorage);
-
- if (AmdS3SaveParamsPtr->S3DataBlock.VolatileStorageSize != 0) {
- S3DataType = S3DataTypeVolatile;
-
- Status = OemAgesaSaveS3Info(S3DataType,
- AmdS3SaveParamsPtr->S3DataBlock.VolatileStorageSize,
- AmdS3SaveParamsPtr->S3DataBlock.VolatileStorage);
- }
- OemAgesaSaveMtrr();
-
- AmdReleaseStruct(&AmdInterfaceParams);
-
- return Status;
-}
-
-#endif /* #ifndef __PRE_RAM__ */
diff --git a/src/northbridge/amd/agesa/family15rl/northbridge.c b/src/northbridge/amd/agesa/family15rl/northbridge.c
index a0f299b0c1..c5924d2847 100644
--- a/src/northbridge/amd/agesa/family15rl/northbridge.c
+++ b/src/northbridge/amd/agesa/family15rl/northbridge.c
@@ -700,9 +700,12 @@ static void domain_enable_resources(struct device *dev)
AGESAWRAPPER(fchs3laterestore);
/* Must be called after PCI enumeration and resource allocation */
- if (!acpi_is_wakeup_s3())
- AGESAWRAPPER(amdinitmid);
+ if (!acpi_is_wakeup_s3()) {
+ /* Enable MMIO on AMD CPU Address Map Controller */
+ agesawrapper_amdinitcpuio();
+ AGESAWRAPPER(amdinitmid);
+ }
printk(BIOS_DEBUG, " ader - leaving %s.\n", __func__);
}