coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
state_machine.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <amdblocks/biosram.h>
4 
5 #include <Porting.h>
6 #include <AGESA.h>
9 
10 void platform_BeforeInitReset(struct sysinfo *cb, AMD_RESET_PARAMS *Reset)
11 {
12 }
13 
14 void platform_BeforeInitEarly(struct sysinfo *cb, AMD_EARLY_PARAMS *Early)
15 {
16 }
17 
18 void platform_BeforeInitPost(struct sysinfo *cb, AMD_POST_PARAMS *Post)
19 {
20  AGESA_STATUS status;
21 
22  Post->MemConfig.BottomIo = (UINT16)(MIN(0xE0000000,
23  MAX(0x28000000, CONFIG_BOTTOMIO_POSITION)) >> 24) & 0xF8;
24 
25  if (CONFIG(ENABLE_MRC_CACHE)) {
26  status = OemInitResume(&Post->MemConfig.MemContext);
27  if (status == AGESA_SUCCESS)
28  Post->MemConfig.MemRestoreCtl = 1;
29  }
30 }
31 
32 void platform_AfterInitPost(struct sysinfo *cb, AMD_POST_PARAMS *Post)
33 {
34  backup_top_of_low_cacheable(Post->MemConfig.Sub4GCacheTop);
35 }
36 
37 void platform_BeforeInitResume(struct sysinfo *cb, AMD_RESUME_PARAMS *Resume)
38 {
39  OemInitResume(&Resume->S3DataBlock);
40 }
41 
42 void platform_AfterInitResume(struct sysinfo *cb, AMD_RESUME_PARAMS *Resume)
43 {
44 }
45 
46 void platform_BeforeInitEnv(struct sysinfo *cb, AMD_ENV_PARAMS *Env)
47 {
48  EmptyHeap();
49 }
50 
51 void platform_AfterInitEnv(struct sysinfo *cb, AMD_ENV_PARAMS *Env)
52 {
53 }
54 
55 void platform_BeforeS3LateRestore(struct sysinfo *cb, AMD_S3LATE_PARAMS *S3Late)
56 {
57  OemS3LateRestore(&S3Late->S3DataBlock);
58 }
59 
60 void platform_AfterS3LateRestore(struct sysinfo *cb, AMD_S3LATE_PARAMS *S3Late)
61 {
62  amd_initcpuio();
63 }
64 
65 void platform_BeforeInitMid(struct sysinfo *cb, AMD_MID_PARAMS *Mid)
66 {
67  amd_initcpuio();
68 }
69 
70 void platform_BeforeInitLate(struct sysinfo *cb, AMD_LATE_PARAMS *Late)
71 {
72 }
73 
74 void platform_AfterInitLate(struct sysinfo *cb, AMD_LATE_PARAMS *Late)
75 {
76 }
77 
78 void platform_AfterS3Save(struct sysinfo *cb, AMD_S3SAVE_PARAMS *S3Save)
79 {
80  OemS3Save(&S3Save->S3DataBlock);
81 }
#define AGESA_SUCCESS
Definition: Amd.h:38
unsigned int AGESA_STATUS
Definition: Amd.h:36
void amd_initcpuio(void)
Definition: fixme.c:11
void backup_top_of_low_cacheable(uintptr_t ramtop)
Definition: biosram.c:61
#define MIN(a, b)
Definition: helpers.h:37
#define MAX(a, b)
Definition: helpers.h:40
void EmptyHeap(void)
Definition: heapmanager.c:36
@ CONFIG
Definition: dsi_common.h:201
void platform_BeforeInitReset(struct sysinfo *cb, AMD_RESET_PARAMS *Reset)
Definition: state_machine.c:17
void platform_AfterInitLate(struct sysinfo *cb, AMD_LATE_PARAMS *Late)
Definition: state_machine.c:99
void platform_BeforeS3LateRestore(struct sysinfo *cb, AMD_S3LATE_PARAMS *S3Late)
Definition: state_machine.c:78
void platform_BeforeInitMid(struct sysinfo *cb, AMD_MID_PARAMS *Mid)
Definition: state_machine.c:87
void platform_AfterS3LateRestore(struct sysinfo *cb, AMD_S3LATE_PARAMS *S3Late)
Definition: state_machine.c:83
void platform_BeforeInitEnv(struct sysinfo *cb, AMD_ENV_PARAMS *Env)
Definition: state_machine.c:68
void platform_BeforeInitLate(struct sysinfo *cb, AMD_LATE_PARAMS *Late)
Definition: state_machine.c:95
void platform_BeforeInitPost(struct sysinfo *cb, AMD_POST_PARAMS *Post)
Definition: state_machine.c:48
void platform_BeforeInitEarly(struct sysinfo *cb, AMD_EARLY_PARAMS *Early)
Definition: state_machine.c:44
void platform_AfterInitPost(struct sysinfo *cb, AMD_POST_PARAMS *Post)
Definition: state_machine.c:54
void platform_BeforeInitResume(struct sysinfo *cb, AMD_RESUME_PARAMS *Resume)
Definition: state_machine.c:59
void platform_AfterInitEnv(struct sysinfo *cb, AMD_ENV_PARAMS *Env)
Definition: state_machine.c:73
void platform_AfterInitResume(struct sysinfo *cb, AMD_RESUME_PARAMS *Resume)
Definition: state_machine.c:64
void platform_AfterS3Save(struct sysinfo *cb, AMD_S3SAVE_PARAMS *S3Save)
AGESA_STATUS OemS3LateRestore(AMD_S3_PARAMS *dataBlock)
Definition: oem_s3.c:63
AGESA_STATUS OemInitResume(AMD_S3_PARAMS *dataBlock)
Definition: oem_s3.c:47
AGESA_STATUS OemS3Save(AMD_S3_PARAMS *dataBlock)