summaryrefslogtreecommitdiff
path: root/src/include/cpu/amd/mtrr.h
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2023-04-20 14:25:13 +0200
committerFelix Held <felix-coreboot@felixheld.de>2024-08-15 21:42:32 +0000
commit1c25c63c78512916bb61c693be64dcc78c2ee72e (patch)
tree7925ef6991f1eff3e119b89c058c1945af0cb387 /src/include/cpu/amd/mtrr.h
parentc6889816d8ae8c0f15b7707820e6c40c311d5393 (diff)
include/cpu/amd/mtrr: rename TOP_MEM(2) and remove workaround
Both AGESA.h and cpu/amd/mtrr.h defined TOP_MEM and TOP_MEM2, but since it was defined as unsigned long in AGESA.h, a workaround was needed in cpu/amd/mtrr.h to not have the build fail due to a non-identical redefinition of TOP_MEM and TOP_MEM2. Just removing the workaround without reaming the defines isn't trivially possible, since the stoneyridge romstage.c still ends up including both definitions which can't be easily worked around. Now all non-vendorcode coreboot code uses TOP_MEM_MSR and TOP_MEM2_MSR while the vendorcode part uses TOP_MEM and TOP_MEM2 to avoid this. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: Ibad72dac17bd0b05734709d42c6802b7c8a87455 Reviewed-on: https://review.coreboot.org/c/coreboot/+/74619 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
Diffstat (limited to 'src/include/cpu/amd/mtrr.h')
-rw-r--r--src/include/cpu/amd/mtrr.h13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/include/cpu/amd/mtrr.h b/src/include/cpu/amd/mtrr.h
index 32a7949b19..9a60f3c8bf 100644
--- a/src/include/cpu/amd/mtrr.h
+++ b/src/include/cpu/amd/mtrr.h
@@ -30,13 +30,8 @@
#define IORRBase_MSR(reg) (0xC0010016 + 2 * (reg))
#define IORRMask_MSR(reg) (0xC0010016 + 2 * (reg) + 1)
-#if defined(__ASSEMBLER__)
-#define TOP_MEM 0xC001001A
-#define TOP_MEM2 0xC001001D
-#else
-#define TOP_MEM 0xC001001Aul
-#define TOP_MEM2 0xC001001Dul
-#endif
+#define TOP_MEM_MSR 0xC001001A
+#define TOP_MEM2_MSR 0xC001001D
#if !defined(__ASSEMBLER__)
@@ -68,12 +63,12 @@ static __always_inline void wrmsr_amd(unsigned int index, msr_t msr)
static inline uint32_t get_top_of_mem_below_4gb(void)
{
- return rdmsr(TOP_MEM).lo;
+ return rdmsr(TOP_MEM_MSR).lo;
}
static inline uint64_t get_top_of_mem_above_4gb(void)
{
- msr_t msr = rdmsr(TOP_MEM2);
+ msr_t msr = rdmsr(TOP_MEM2_MSR);
return (uint64_t)msr.hi << 32 | msr.lo;
}
#endif