coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
variants.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef __BASEBOARD_VARIANTS_H__
4 #define __BASEBOARD_VARIANTS_H__
5 
6 #include <chip.h>
7 #include <soc/gpio.h>
8 #include <soc/meminit.h>
9 #include <stdint.h>
10 
11 /* The next set of functions return the gpio table and fill in the number of entries for
12  * each table.
13  */
14 
15 const struct pad_config *variant_gpio_table(size_t *num);
16 const struct pad_config *variant_gpio_override_table(size_t *num);
17 const struct pad_config *variant_early_gpio_table(size_t *num);
18 const struct pad_config *variant_romstage_gpio_table(size_t *num);
19 
20 const struct mb_cfg *variant_memory_params(void);
22 int variant_memory_sku(void);
23 bool variant_is_half_populated(void);
25 void variant_fill_ssdt(const struct device *dev);
26 
27 enum s0ix_entry {
30 };
31 
32 void variant_generate_s0ix_hook(enum s0ix_entry entry);
33 
34 /* Modify devictree settings during ramstage */
35 void variant_devtree_update(void);
36 
37 void variant_update_descriptor(void);
38 
42  unsigned int pl1_min_power;
43  unsigned int pl1_max_power;
44  unsigned int pl2_min_power;
45  unsigned int pl2_max_power;
46  unsigned int pl4_power;
47 };
48 
52  /* PsysPL2 in Watts */
53  unsigned int psys_pl2_power;
54 };
55 
56 struct psys_config {
57  /*
58  * The efficiency of type-c chargers
59  * For example, 'efficiency = 97' means setting 97% of max power to account for
60  * cable loss and FET Rdson loss in the path from the source.
61  */
62  unsigned int efficiency;
63 
64  /* The maximum current maps to the Psys signal */
65  unsigned int psys_imax_ma;
66 
67  /* The voltage of barrel jack */
68  unsigned int bj_volts_mv;
69 };
70 
71 /* Modify Power Limit devictree settings during ramstage */
73  size_t num_entries);
74 
75 
76 /*
77  * Modify Power Limit and PsysPL devictree settings during ramstage.
78  * Note, this function must be called in front of calling variant_update_power_limits.
79  */
81  const struct system_power_limits *sys_limits,
82  size_t num_entries,
83  const struct psys_config *config);
84 
85 void variant_init(void);
86 void variant_finalize(void);
87 
88 #endif /*__BASEBOARD_VARIANTS_H__ */
const struct pad_config * variant_gpio_override_table(size_t *num)
Definition: gpio.c:198
void variant_get_spd_info(struct mem_spd *spd_info)
Definition: memory.c:32
void variant_generate_s0ix_hook(enum s0ix_entry entry)
Definition: mainboard.c:163
void variant_finalize(void)
Definition: mainboard.c:184
void variant_fill_ssdt(const struct device *dev)
Definition: mainboard.c:158
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)
Definition: ramstage.c:96
bool variant_is_half_populated(void)
Definition: memory.c:27
const struct pad_config * variant_romstage_gpio_table(size_t *num)
Definition: gpio.c:210
void variant_update_descriptor(void)
Definition: bootblock.c:19
void variant_init(void)
Definition: mainboard.c:67
const struct pad_config * variant_gpio_table(size_t *num)
Definition: gpio.c:406
s0ix_entry
Definition: variants.h:27
@ S0IX_EXIT
Definition: variants.h:28
@ S0IX_ENTRY
Definition: variants.h:29
const struct mb_cfg * variant_memory_params(void)
Definition: memory.c:67
void variant_update_power_limits(const struct cpu_power_limits *limits, size_t num_entries)
Definition: ramstage.c:51
void variant_devtree_update(void)
Definition: mainboard.c:86
void variant_update_soc_chip_config(struct soc_intel_alderlake_config *config)
Definition: mainboard.c:62
const struct pad_config * variant_early_gpio_table(size_t *num)
Definition: gpio.c:204
int variant_memory_sku(void)
Definition: memory.c:74
const struct system_power_limits sys_limits[]
Definition: ramstage.c:24
const struct cpu_power_limits limits[]
Definition: ramstage.c:11
enum board_config config
Definition: memory.c:448
unsigned short uint16_t
Definition: stdint.h:11
uint8_t u8
Definition: stdint.h:45
unsigned int pl1_min_power
Definition: variants.h:42
unsigned int pl4_power
Definition: variants.h:46
unsigned int pl1_max_power
Definition: variants.h:43
unsigned int pl2_max_power
Definition: variants.h:45
uint16_t mchid
Definition: variants.h:40
unsigned int pl2_min_power
Definition: variants.h:44
Definition: device.h:107
Definition: meminit.h:71
unsigned int psys_imax_ma
Definition: variants.h:65
unsigned int efficiency
Definition: variants.h:62
unsigned int bj_volts_mv
Definition: variants.h:68
Definition: spd.h:11
uint16_t mchid
Definition: variants.h:50
unsigned int psys_pl2_power
Definition: variants.h:53