diff options
Diffstat (limited to 'src/soc/amd/common')
-rw-r--r-- | src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h | 9 | ||||
-rw-r--r-- | src/soc/amd/common/block/include/amdblocks/s3_resume.h | 21 | ||||
-rw-r--r-- | src/soc/amd/common/block/pi/heapmanager.c | 5 |
3 files changed, 33 insertions, 2 deletions
diff --git a/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h b/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h index 2302889e6b..8a9474eb0d 100644 --- a/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h +++ b/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h @@ -18,11 +18,18 @@ #define __CALLOUTS_AMD_AGESA_H__ #include <amdblocks/agesawrapper.h> +#include <amdblocks/s3_resume.h> -#define BIOS_HEAP_START_ADDRESS 0x010000000 #define BIOS_HEAP_SIZE 0x30000 #define BSP_STACK_BASE_ADDR 0x30000 +struct cbmem_usage { + uint8_t heap_base[BIOS_HEAP_SIZE]; +#if IS_ENABLED(CONFIG_HAVE_ACPI_RESUME) + uint8_t s3_vol_data[S3_VOLATILE_SIZE]; +#endif +}; + typedef struct _BIOS_HEAP_MANAGER { UINT32 StartOfAllocatedNodes; UINT32 StartOfFreedNodes; diff --git a/src/soc/amd/common/block/include/amdblocks/s3_resume.h b/src/soc/amd/common/block/include/amdblocks/s3_resume.h new file mode 100644 index 0000000000..567b0a8c40 --- /dev/null +++ b/src/soc/amd/common/block/include/amdblocks/s3_resume.h @@ -0,0 +1,21 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2017 Advanced Micro Devices, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __AMD_S3_RESUME_H__ +#define __AMD_S3_RESUME_H__ + +#define S3_VOLATILE_SIZE 0x6000 + +#endif /* __AMD_S3_RESUME_H__ */ diff --git a/src/soc/amd/common/block/pi/heapmanager.c b/src/soc/amd/common/block/pi/heapmanager.c index 862ba3d524..f139a7fcb6 100644 --- a/src/soc/amd/common/block/pi/heapmanager.c +++ b/src/soc/amd/common/block/pi/heapmanager.c @@ -21,7 +21,10 @@ static void *GetHeapBase(void) { - return cbmem_add(CBMEM_ID_RESUME_SCRATCH, BIOS_HEAP_SIZE); + struct cbmem_usage *heap; + heap = (struct cbmem_usage *)cbmem_add(CBMEM_ID_RESUME_SCRATCH, + sizeof(struct cbmem_usage)); + return &heap->heap_base; } static void EmptyHeap(int unused) |