coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
p2sb.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef SOC_INTEL_COMMON_BLOCK_P2SB_H
4 #define SOC_INTEL_COMMON_BLOCK_P2SB_H
5 
6 #include <stddef.h>
7 #include <stdint.h>
8 
9 #define PCH_P2SB_E0 0xe0
10 #define P2SB_E0_MASKLOCK (1 << 1)
11 #define PCH_P2SB_IBDF 0x6c
12 #define PCH_P2SB_HBDF 0x70
13 
14 enum {
24 };
25 
26 void p2sb_unhide(void);
27 void p2sb_hide(void);
29 void p2sb_enable_bar(void);
30 void p2sb_configure_hpet(void);
31 
32 /*
33  * Functions to access IOE P2SB.
34  * pid argument: SBI port Id
35  */
36 void ioe_p2sb_enable_bar(void);
39 
40 union p2sb_bdf {
41  struct {
42  uint16_t fn : 3;
45  };
47 };
48 
50 void p2sb_set_hpet_bdf(union p2sb_bdf bdf);
52 void p2sb_set_ioapic_bdf(union p2sb_bdf bdf);
53 
54 /* SOC overrides */
55 /*
56  * Each SoC should implement EP Mask register to disable SB access
57  * Input:
58  * ep_mask: An array to be filled by SoC code with EP mask register.
59  * count: number of element in EP mask array.
60  */
61 void p2sb_soc_get_sb_mask(uint32_t *ep_mask, size_t count);
62 
63 #endif /* SOC_INTEL_COMMON_BLOCK_P2SB_H */
void ioe_p2sb_sbi_write(uint8_t pid, uint16_t reg, uint32_t val)
Definition: ioe_p2sb.c:19
union p2sb_bdf p2sb_get_ioapic_bdf(void)
Definition: p2sb.c:59
@ P2SB_EP_MASK_7_REG
Definition: p2sb.h:22
@ P2SB_EP_MASK_5_REG
Definition: p2sb.h:20
@ P2SB_EP_MASK_6_REG
Definition: p2sb.h:21
@ P2SB_EP_MASK_1_REG
Definition: p2sb.h:16
@ P2SB_EP_MASK_0_REG
Definition: p2sb.h:15
@ P2SB_EP_MASK_3_REG
Definition: p2sb.h:18
@ P2SB_EP_MASK_MAX_REG
Definition: p2sb.h:23
@ P2SB_EP_MASK_2_REG
Definition: p2sb.h:17
@ P2SB_EP_MASK_4_REG
Definition: p2sb.h:19
void p2sb_set_ioapic_bdf(union p2sb_bdf bdf)
Definition: p2sb.c:73
void p2sb_hide(void)
Definition: p2sb.c:83
void p2sb_disable_sideband_access(void)
Definition: p2sb.c:107
union p2sb_bdf p2sb_get_hpet_bdf(void)
Definition: p2sb.c:40
void p2sb_set_hpet_bdf(union p2sb_bdf bdf)
Definition: p2sb.c:54
void p2sb_soc_get_sb_mask(uint32_t *ep_mask, size_t count)
Definition: p2sb.c:12
void p2sb_enable_bar(void)
Definition: p2sb.c:19
void p2sb_configure_hpet(void)
Definition: p2sb.c:29
void p2sb_unhide(void)
Definition: p2sb.c:78
uint32_t ioe_p2sb_sbi_read(uint8_t pid, uint16_t reg)
Definition: ioe_p2sb.c:14
void ioe_p2sb_enable_bar(void)
Definition: ioe_p2sb.c:24
unsigned short uint16_t
Definition: stdint.h:11
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8
u8 val
Definition: sys.c:300
Definition: p2sb.h:40
uint16_t dev
Definition: p2sb.h:43
uint16_t fn
Definition: p2sb.h:42
uint16_t raw
Definition: p2sb.h:46
uint16_t bus
Definition: p2sb.h:44
#define count
typedef void(X86APIP X86EMU_intrFuncs)(int num)