3 #ifndef AMD_BLOCK_ESPI_H
4 #define AMD_BLOCK_ESPI_H
9 #define ESPI_OFFSET_FROM_BAR 0x10000
11 #define ESPI_DECODE 0x40
12 #define ESPI_DECODE_MMIO_RANGE_EN(range) (1 << (((range) & 3) + 12))
13 #define ESPI_DECODE_IO_RANGE_EN(range) (1 << (((range) & 3) + 8))
14 #define ESPI_DECODE_IO_0x80_EN (1 << 2)
15 #define ESPI_DECODE_IO_0X60_0X64_EN (1 << 1)
16 #define ESPI_DECODE_IO_0X2E_0X2F_EN (1 << 0)
18 #define ESPI_IO_BASE_REG0 0x44
19 #define ESPI_IO_BASE_REG1 0x48
20 #define ESPI_IO_SIZE0 0x4c
21 #define ESPI_MMIO_BASE_REG0 0x50
22 #define ESPI_MMIO_BASE_REG1 0x54
23 #define ESPI_MMIO_BASE_REG2 0x58
24 #define ESPI_MMIO_BASE_REG3 0x5c
25 #define ESPI_MMIO_SIZE_REG0 0x60
26 #define ESPI_MMIO_SIZE_REG1 0x64
28 #define ESPI_IO_RANGE_BASE(range) (ESPI_IO_BASE_REG0 + ((range) & 3) * 2)
29 #define ESPI_IO_RANGE_SIZE(range) (ESPI_IO_SIZE0 + ((range) & 3))
30 #define ESPI_MMIO_RANGE_BASE(range) (ESPI_MMIO_BASE_REG0 + ((range) & 3) * 4)
31 #define ESPI_MMIO_RANGE_SIZE(range) (ESPI_MMIO_SIZE_REG0 + ((range) & 3) * 2)
33 #define ESPI_GENERIC_IO_WIN_COUNT 4
34 #define ESPI_GENERIC_IO_MAX_WIN_SIZE 0x100
35 #define ESPI_GENERIC_MMIO_WIN_COUNT 4
36 #define ESPI_GENERIC_MMIO_MAX_WIN_SIZE 0x10000
38 #define ESPI_SLAVE0_CONFIG 0x68
39 #define ESPI_CRC_CHECKING_EN (1 << 31)
40 #define ESPI_ALERT_MODE (1 << 30)
42 #define ESPI_IO_MODE_SHIFT 28
43 #define ESPI_IO_MODE_MASK (0x3 << ESPI_IO_MODE_SHIFT)
44 #define ESPI_IO_MODE_VALUE(x) ((x) << ESPI_IO_MODE_SHIFT)
46 #define ESPI_OP_FREQ_SHIFT 25
47 #define ESPI_OP_FREQ_MASK (0x7 << ESPI_OP_FREQ_SHIFT)
48 #define ESPI_OP_FREQ_VALUE(x) ((x) << ESPI_OP_FREQ_SHIFT)
50 #define ESPI_PERIPH_CH_EN (1 << 3)
51 #define ESPI_VW_CH_EN (1 << 2)
52 #define ESPI_OOB_CH_EN (1 << 1)
53 #define ESPI_FLASH_CH_EN (1 << 0)
58 #define ESPI_VW_IRQ_LEVEL_HIGH(x) (1 << (x))
59 #define ESPI_VW_IRQ_LEVEL_LOW(x) (0 << (x))
60 #define ESPI_VW_IRQ_EDGE_HIGH(x) (1 << (x))
61 #define ESPI_VW_IRQ_EDGE_LOW(x) (0 << (x))
cb_err
coreboot error codes
enum cb_err espi_open_io_window(uint16_t base, size_t size)
void mb_set_up_early_espi(void)
void espi_update_static_bar(uintptr_t bar)
#define ESPI_GENERIC_IO_WIN_COUNT
enum cb_err espi_open_mmio_window(uint32_t base, size_t size)
void configure_espi_with_mb_hook(void)
#define ESPI_OP_FREQ_VALUE(x)
enum cb_err espi_setup(void)
@ ESPI_ALERT_PIN_PUSH_PULL
@ ESPI_ALERT_PIN_OPEN_DRAIN
#define ESPI_IO_MODE_VALUE(x)
uint32_t std_io_decode_bitmap
struct espi_config::@401 generic_io_range[ESPI_GENERIC_IO_WIN_COUNT]
enum espi_alert_pin alert_pin
uint32_t crc_check_enable
uint32_t subtractive_decode
enum espi_op_freq op_freq_mhz
enum espi_io_mode io_mode