coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
vr_config.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 /* VR Settings for each domain */
4 
5 #ifndef _SOC_VR_CONFIG_H_
6 #define _SOC_VR_CONFIG_H_
7 
8 #include <fsp/api.h>
9 
10 struct vr_config {
11 
12  /* The below settings will take effect when this is set to 1 for that domain. */
14 
15  /* AC and DC Loadline.
16  They are in 1/100 mOhms (ie. 1250 = 12.50 mOhms) and range is 0-6249. */
19 
20  /* VR Icc Max limit.
21  Range is from 0-255A in 1/4 A units (400 = 100A). */
23 
24  /* Thermal Design Current time window.
25  Defined in milli seconds and range 1ms to 448s. */
27 
28  /* Thermal Design Current current limit.
29  Defined in 1/8A units and range is 0-4095. 1000 = 125A. */
31 };
32 
33 #define VR_CFG_AMP(i) (uint16_t)((i) * 4)
34 #define VR_CFG_MOHMS(i) (uint16_t)((i) * 100)
35 #define VR_CFG_TDC_AMP(i) (uint16_t)((i) * 8)
36 
37 /* VrConfig Settings for 4 domains
38  * 0 = IA core, 1 = GT
39  */
40 enum vr_domain {
44 };
45 
46 #define VR_CFG_ALL_DOMAINS_LOADLINE(ia, gt) \
47  { \
48  [VR_DOMAIN_IA] = VR_CFG_MOHMS(ia), \
49  [VR_DOMAIN_GT] = VR_CFG_MOHMS(gt), \
50  }
51 
52 #define VR_CFG_ALL_DOMAINS_ICC(ia, gt) \
53  { \
54  [VR_DOMAIN_IA] = VR_CFG_AMP(ia), \
55  [VR_DOMAIN_GT] = VR_CFG_AMP(gt), \
56  }
57 
58 #define VR_CFG_ALL_DOMAINS_TDC(ia, gt) \
59  { \
60  [VR_DOMAIN_IA] = ia, \
61  [VR_DOMAIN_GT] = gt, \
62  }
63 
64 #define VR_CFG_ALL_DOMAINS_TDC_CURRENT(ia, gt) \
65  { \
66  [VR_DOMAIN_IA] = VR_CFG_TDC_AMP(ia), \
67  [VR_DOMAIN_GT] = VR_CFG_TDC_AMP(gt), \
68  }
69 
70 void fill_vr_domain_config(FSP_S_CONFIG *s_cfg, int domain, const struct vr_config *cfg);
71 #endif
void fill_vr_domain_config(FSP_S_CONFIG *s_cfg, int domain, const struct vr_config *cfg)
Definition: vr_config.c:113
vr_domain
Definition: vr_config.h:40
@ VR_DOMAIN_GT
Definition: vr_config.h:42
@ NUM_VR_DOMAINS
Definition: vr_config.h:43
@ VR_DOMAIN_IA
Definition: vr_config.h:41
#define FSP_S_CONFIG
Definition: fsp_upd.h:9
unsigned short uint16_t
Definition: stdint.h:11
unsigned int uint32_t
Definition: stdint.h:14
uint32_t tdc_timewindow
Definition: vr_config.h:26
uint16_t icc_max
Definition: vr_config.h:22
uint16_t tdc_currentlimit
Definition: vr_config.h:30
bool vr_config_enable
Definition: vr_config.h:13
uint16_t ac_loadline
Definition: vr_config.h:17
uint16_t dc_loadline
Definition: vr_config.h:18