blob: 3f7febc462d7187e1452472cee760736dea7b442 [file] [log] [blame]
Angel Pons32859fc2020-04-02 23:48:27 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Marc Jones8ae8c882007-12-19 01:32:08 +00002
Elyes HAOUAS400ce552018-10-12 10:54:30 +02003/* This file applies to AMD64 products.
4 * The definitions come from the AMD64 Programmers Manual vol2
5 * Revision 3.30 and/or the device's BKDG.
6 */
7
Stefan Reinauer991f1842015-11-22 23:40:29 +01008#ifndef CPU_AMD_MSR_H
9#define CPU_AMD_MSR_H
Marc Jones8ae8c882007-12-19 01:32:08 +000010
Patrick Georgi3d5bb232010-05-09 21:15:13 +000011#include <cpu/x86/msr.h>
12
Elyes HAOUAS400ce552018-10-12 10:54:30 +020013#define MC4_MISC0 0x00000413
14#define MC4_MISC1 0xC0000408
15#define MC4_MISC2 0xC0000409
16#define FS_Base 0xC0000100
Jason Gleneskbc521432020-09-14 05:22:47 -070017#define HWCR_MSR 0xC0010015
Felix Held357cc652020-07-09 00:04:22 +020018#define SMM_LOCK (1 << 0)
Jason Gleneskbc521432020-09-14 05:22:47 -070019#define NB_CFG_MSR 0xC001001f
Elyes HAOUAS400ce552018-10-12 10:54:30 +020020#define FidVidStatus 0xC0010042
Felix Held4f51c942021-07-13 02:39:09 +020021#define MC0_CTL_MASK 0xC0010044
Felix Held71b918d2021-07-13 18:31:40 +020022#define MC_CTL_MASK(bank) (MC0_CTL_MASK + (bank))
Elyes HAOUAS400ce552018-10-12 10:54:30 +020023#define MSR_INTPEND 0xC0010055
24#define MMIO_CONF_BASE 0xC0010058
25#define MMIO_RANGE_EN (1 << 0)
Marshall Dawson914e6b42019-07-01 09:56:12 -050026#define MMIO_BUS_RANGE_SHIFT 2
Elyes HAOUAS400ce552018-10-12 10:54:30 +020027 /* P-state Current Limit Register */
28#define PS_LIM_REG 0xC0010061
29 /* P-state Maximum Value shift position */
30#define PS_MAX_VAL_SHFT 4
Jason Gleneskbc521432020-09-14 05:22:47 -070031#define PS_LIM_MAX_VAL_MASK (0x7 << PS_MAX_VAL_SHFT)
32#define MAX_PSTATES 8
33
Elyes HAOUAS400ce552018-10-12 10:54:30 +020034 /* P-state Control Register */
35#define PS_CTL_REG 0xC0010062
36 /* P-state Control Register CMD Mask OFF */
37#define PS_CMD_MASK_OFF ~(7)
38 /* P-state Status Mask */
39#define PS_STS_MASK 7
40 /* P-state Status Register */
41#define PS_STS_REG 0xC0010063
42#define PSTATE_0_MSR 0xC0010064
Felix Held0a466042023-02-27 23:56:39 +010043#define PSTATE_MSR(pstate) (PSTATE_0_MSR + (pstate))
Felix Heldc04d3ddb2023-07-17 22:59:02 +020044#define PSTATE_MSR_COUNT 8
Felix Held78633e32023-03-07 03:08:27 +010045
Elyes HAOUAS1a5f1c82018-10-31 08:06:12 +010046#define MSR_PATCH_LOADER 0xC0010020
47
Elyes HAOUAS400ce552018-10-12 10:54:30 +020048#define MSR_COFVID_STS 0xC0010071
49#define MSR_CSTATE_ADDRESS 0xC0010073
Jason Gleneskbc521432020-09-14 05:22:47 -070050#define MSR_CSTATE_ADDRESS_MASK 0xFFFF
51
Elyes HAOUAS400ce552018-10-12 10:54:30 +020052#define OSVW_ID_Length 0xC0010140
53#define OSVW_Status 0xC0010141
54
Rudolf Marekb5b3b3b2011-07-02 16:36:17 +020055#define SMM_BASE_MSR 0xC0010111
56#define SMM_ADDR_MSR 0xC0010112
57#define SMM_MASK_MSR 0xC0010113
Elyes HAOUAS400ce552018-10-12 10:54:30 +020058#define SMM_TSEG_VALID (1 << 1)
59#define SMM_TSEG_WB (6 << 12)
Rudolf Marekb5b3b3b2011-07-02 16:36:17 +020060
Elyes HAOUAS400ce552018-10-12 10:54:30 +020061#define CPU_ID_FEATURES_MSR 0xC0011004
62#define CPU_ID_EXT_FEATURES_MSR 0xC0011005
63#define CPU_ID_HYPER_EXT_FEATURES 0xC001100d
64#define LOGICAL_CPUS_NUM_MSR 0xC001100d
Marc Jones8ae8c882007-12-19 01:32:08 +000065#define LS_CFG_MSR 0xC0011020
66#define IC_CFG_MSR 0xC0011021
67#define DC_CFG_MSR 0xC0011022
68#define BU_CFG_MSR 0xC0011023
Timothy Pearson730a0432015-10-16 13:51:51 -050069#define FP_CFG_MSR 0xC0011028
70#define DE_CFG_MSR 0xC0011029
Marco Schmidtc263b442009-06-06 11:21:52 +000071#define BU_CFG2_MSR 0xC001102A
Timothy Pearson730a0432015-10-16 13:51:51 -050072#define BU_CFG3_MSR 0xC001102B
73#define EX_CFG_MSR 0xC001102C
74#define LS_CFG2_MSR 0xC001102D
75#define IBS_OP_DATA3_MSR 0xC0011037
Raul E Rangelec264282020-06-04 16:42:50 -060076#define S3_RESUME_EIP_MSR 0xC00110E0
Felix Helde09294f2021-02-17 22:22:21 +010077#define PSP_ADDR_MSR 0xc00110a2
Marc Jones8ae8c882007-12-19 01:32:08 +000078
Elyes HAOUAS400ce552018-10-12 10:54:30 +020079#define CORE_PERF_BOOST_CTRL 0x15c
Marc Jones8ae8c882007-12-19 01:32:08 +000080
Stefan Reinauer991f1842015-11-22 23:40:29 +010081#endif /* CPU_AMD_MSR_H */