coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
psp_smm_gen2.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <soc/smi.h>
4 #include <amdblocks/acpimmio.h>
5 #include <amdblocks/psp.h>
6 #include <amdblocks/smi.h>
7 
9 {
10  if (!trig)
11  return;
12 
18 }
19 
21 {
22  if (!reg)
23  return;
24 
29  reg->smi_enb.expect_value = 0;
30 
36 
38  reg->psp_smi_en.address += sizeof(uint32_t) * SMITYPE_PSP / 16;
41  reg->psp_smi_en.reg_bit_mask = SMI_MODE_MASK << (2 * SMITYPE_PSP % 16);
42  reg->psp_smi_en.expect_value = SMI_MODE_SMI << (2 * SMITYPE_PSP % 16);
43 }
uint8_t *MAYBE_CONST acpimmio_smi
#define SMM_TRIGGER_DWORD
Definition: psp.h:13
#define SMM_TRIGGER_MEM
Definition: psp.h:9
void soc_fill_smm_trig_info(struct smm_trigger_info *trig)
Definition: psp_smm_gen2.c:8
void soc_fill_smm_reg_info(struct smm_register_info *reg)
Definition: psp_smm_gen2.c:20
#define SMITRG0_EOS
Definition: smi.h:165
#define SMI_MODE_MASK
Definition: smi.h:180
#define SMITYPE_PSP
Definition: smi.h:80
#define SMI_REG_CONTROL0
Definition: smi.h:169
#define SMITRG0_SMIENB
Definition: smi.h:167
#define SMI_REG_SMITRIG0
Definition: smi.h:163
#define SMITRIG0_PSP
Definition: smi.h:164
@ SMI_MODE_SMI
Definition: smi.h:10
unsigned int uint32_t
Definition: stdint.h:14
unsigned long uintptr_t
Definition: stdint.h:21
struct smm_register eos
Definition: psp.h:33
struct smm_register psp_smi_en
Definition: psp.h:34
struct smm_register smi_enb
Definition: psp.h:32
uint64_t address
Definition: psp.h:24
uint32_t address_type
Definition: psp.h:25
uint32_t value_width
Definition: psp.h:26
uint32_t expect_value
Definition: psp.h:28
uint32_t reg_bit_mask
Definition: psp.h:27
uint32_t value_and_mask
Definition: psp.h:19
uint32_t address_type
Definition: psp.h:17
uint32_t value_width
Definition: psp.h:18
uint32_t value_or_mask
Definition: psp.h:20
uint64_t address
Definition: psp.h:16