coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ramstage.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <baseboard/variants.h>
4 #include <chip.h>
5 #include <device/device.h>
6 #include <device/pci_ids.h>
7 #include <device/pci_ops.h>
10 #include <fw_config.h>
12 
13 const struct cpu_power_limits limits[] = {
14  /* SKU_ID, TDP (Watts), pl1_min, pl1_max, pl2_min, pl2_max, pl4 */
15  { PCI_DID_INTEL_ADL_P_ID_10, 15, 15000, 15000, 55000, 55000, 123000 },
16  { PCI_DID_INTEL_ADL_P_ID_7, 15, 15000, 15000, 55000, 55000, 123000 },
17  { PCI_DID_INTEL_ADL_P_ID_6, 15, 15000, 15000, 55000, 55000, 123000 },
18  { PCI_DID_INTEL_ADL_P_ID_5, 28, 28000, 28000, 64000, 64000, 90000 },
19 };
20 
21 const struct system_power_limits sys_limits[] = {
22  /* SKU_ID, TDP (Watts), psys_pl2 (Watts) */
23  { PCI_DID_INTEL_ADL_P_ID_10, 15, 135 },
24  { PCI_DID_INTEL_ADL_P_ID_7, 15, 135 },
25  { PCI_DID_INTEL_ADL_P_ID_6, 15, 135 },
26  { PCI_DID_INTEL_ADL_P_ID_5, 28, 230 },
27 };
28 
29 const struct psys_config psys_config = {
30  .efficiency = 97,
31  .psys_imax_ma = 11000,
32  .bj_volts_mv = 19500
33 };
34 
35 const char *mainboard_vbt_filename(void)
36 {
37  if (fw_config_probe(FW_CONFIG(DB_OPT, OPT_HDMI)))
38  return "vbt-moli_HDMI.bin";
39  else if (fw_config_probe(FW_CONFIG(DB_OPT, OPT_DP)))
40  return "vbt-moli_DP.bin";
41  return "vbt-moli.bin";
42 }
43 
45 {
46  size_t total_entries = ARRAY_SIZE(limits);
48  variant_update_power_limits(limits, total_entries);
49 }
#define ARRAY_SIZE(a)
Definition: helpers.h:12
#define FW_CONFIG(__field, __option)
Definition: fw_config.h:28
bool fw_config_probe(const struct fw_config *match)
Definition: fw_config.c:62
void variant_update_power_limits(const struct cpu_power_limits *limits, size_t num_entries)
Definition: ramstage.c:51
void variant_update_psys_power_limits(const struct cpu_power_limits *limits, const struct system_power_limits *sys_limits, size_t num_entries, const struct psys_config *config_psys)
Definition: ramstage.c:96
void variant_devtree_update(void)
Definition: ramstage.c:63
const struct system_power_limits sys_limits[]
Definition: ramstage.c:24
const struct cpu_power_limits limits[]
Definition: ramstage.c:11
const char * mainboard_vbt_filename(void)
Definition: ramstage.c:35
#define PCI_DID_INTEL_ADL_P_ID_7
Definition: pci_ids.h:4069
#define PCI_DID_INTEL_ADL_P_ID_5
Definition: pci_ids.h:4067
#define PCI_DID_INTEL_ADL_P_ID_10
Definition: pci_ids.h:4072
#define PCI_DID_INTEL_ADL_P_ID_6
Definition: pci_ids.h:4068
unsigned int efficiency
Definition: variants.h:62