19 #include <soc/ramstage.h>
20 #include <soc/systemagent.h>
45 #define MWAIT_RES(state, sub_state) \
47 .addrl = (((state) << 4) | (sub_state)), \
48 .space_id = ACPI_ADDRESS_SPACE_FIXED, \
49 .bit_width = ACPI_FFIXEDHW_VENDOR_INTEL, \
50 .bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT, \
51 .access_size = ACPI_FFIXEDHW_FLAG_HW_COORD, \
139 int is_s0ix_enable =
config->s0ix_enable;
141 if (is_s0ix_enable) {
149 for (i = 0; i < *entries; i++) {
151 map[i].
ctype = i + 1;
191 const bool emit_igd =
193 gfx_vtbar && gfxvten &&
198 const unsigned long tmp = current;
211 const unsigned long tmp = current;
226 const unsigned long tmp = current;
238 unsigned long current,
unsigned long acpi_create_dmar_ds_ioapic(unsigned long current, u8 enumeration_id, u8 bus, u8 dev, u8 fn)
unsigned long acpi_create_dmar_rmrr(unsigned long current, u16 segment, u64 bar, u64 limit)
void acpi_dmar_drhd_fixup(unsigned long base, unsigned long current)
void acpi_add_table(acpi_rsdp_t *rsdp, void *table)
Add an ACPI table to the RSDT (and XSDT) structure, recalculate length and checksum.
unsigned long acpi_create_dmar_ds_msi_hpet(unsigned long current, u8 enumeration_id, u8 bus, u8 dev, u8 fn)
unsigned long acpi_create_dmar_ds_pci(unsigned long current, u8 bus, u8 dev, u8 fn)
void acpi_create_dmar(acpi_dmar_t *dmar, enum dmar_flags flags, unsigned long(*acpi_fill_dmar)(unsigned long))
void acpi_dmar_rmrr_fixup(unsigned long base, unsigned long current)
unsigned long acpi_create_dmar_drhd(unsigned long current, u8 flags, u16 segment, u64 bar)
void * memcpy(void *dest, const void *src, size_t n)
void sa_fill_gnvs(struct global_nvs *gnvs)
uintptr_t sa_get_tolud_base(void)
uintptr_t sa_get_gsm_base(void)
#define printk(level,...)
#define C_STATE_LATENCY_FROM_LAT_REG(reg)
bool is_devfn_enabled(unsigned int devfn)
static uintptr_t acpi_align_current(uintptr_t current)
static __always_inline uint32_t read32p(const uintptr_t addr)
#define DSX_EN_LAN_WAKE_PIN
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define MP_IRQ_POLARITY_LOW
#define MP_IRQ_POLARITY_HIGH
bool soc_vtd_enabled(void)
const acpi_cstate_t * soc_get_cstate_map(size_t *entries)
unsigned long sa_write_acpi_tables(const struct device *dev, unsigned long current, struct acpi_rsdp *rsdp)
int soc_madt_sci_irq_polarity(int sci)
void soc_power_states_generation(int core_id, int cores_per_package)
void soc_fill_gnvs(struct global_nvs *gnvs)
uint32_t soc_read_sci_irq_select(void)
static int deep_s3_enabled(void)
uintptr_t soc_read_pmc_base(void)
void generate_p_state_entries(int core, int cores_per_package)
__weak void acpi_fill_soc_wake(uint32_t *pm1_en, uint32_t *gpe0_en, const struct chipset_power_state *ps)
static unsigned long soc_fill_dmar(unsigned long current)
static int cstate_set_non_s0ix[]
#define MWAIT_RES(state, sub_state)
static int cstate_set_s0ix[]
static acpi_cstate_t cstate_map[NUM_C_STATES]
uint32_t prev_sleep_state