coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
setup_heci_uma.c File Reference
Include dependency graph for setup_heci_uma.c:

Go to the source code of this file.

Data Structures

union  uma_reply
 

Macros

#define HECIDEV   PCI_DEV(0, 0x16, 0)
 

Functions

static void wait_heci_ready (void)
 
static void wait_heci_cb_avail (int len)
 
static void send_heci_packet_dword (u8 *payload, size_t length)
 
static void send_heci_packet (struct mei_header *head, u8 *payload)
 
static void send_heci_message (u8 *msg, int len, u8 hostaddress, u8 clientaddress)
 
static int recv_heci_packet (struct mei_header *head, u32 *packet, u32 *packet_size)
 
static int recv_heci_message (union uma_reply *message, u32 *message_size)
 
static void send_heci_uma_message (const u64 heci_uma_addr, const unsigned int heci_uma_size)
 
void setup_heci_uma (u64 heci_uma_addr, unsigned int heci_uma_size)
 

Variables

union uma_reply __packed
 

Macro Definition Documentation

◆ HECIDEV

#define HECIDEV   PCI_DEV(0, 0x16, 0)

Definition at line 12 of file setup_heci_uma.c.

Function Documentation

◆ recv_heci_message()

static int recv_heci_message ( union uma_reply message,
u32 message_size 
)
static

Definition at line 138 of file setup_heci_uma.c.

References uma_reply::dwords, mei_header::is_complete, and recv_heci_packet().

Referenced by send_heci_uma_message().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ recv_heci_packet()

static int recv_heci_packet ( struct mei_header head,
u32 packet,
u32 packet_size 
)
static

Definition at line 87 of file setup_heci_uma.c.

References DEFAULT_HECIBAR, mei_header::length, mei_header::raw, read32(), and write32().

Referenced by recv_heci_message().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_heci_message()

static void send_heci_message ( u8 msg,
int  len,
u8  hostaddress,
u8  clientaddress 
)
static

Definition at line 61 of file setup_heci_uma.c.

References mei_header::client_address, DEFAULT_HECIBAR, mei_header::host_address, mei_header::is_complete, mei_header::length, read32(), mei_header::reserved, send_heci_packet(), and wait_heci_ready().

Referenced by send_heci_uma_message().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_heci_packet()

static void send_heci_packet ( struct mei_header head,
u8 payload 
)
static

Definition at line 51 of file setup_heci_uma.c.

References DEFAULT_HECIBAR, DIV_ROUND_UP, mei_header::length, read32(), send_heci_packet_dword(), wait_heci_cb_avail(), and write32().

Referenced by send_heci_message().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_heci_packet_dword()

static void send_heci_packet_dword ( u8 payload,
size_t  length 
)
static

Definition at line 40 of file setup_heci_uma.c.

References DEFAULT_HECIBAR, length, memcpy(), MIN, and write32().

Referenced by send_heci_packet().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_heci_uma_message()

static void send_heci_uma_message ( const u64  heci_uma_addr,
const unsigned int  heci_uma_size 
)
static

Definition at line 166 of file setup_heci_uma.c.

References uma_reply::command, die(), MKHI_SET_UMA, recv_heci_message(), and send_heci_message().

Referenced by setup_heci_uma().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_heci_uma()

void setup_heci_uma ( u64  heci_uma_addr,
unsigned int  heci_uma_size 
)

Definition at line 201 of file setup_heci_uma.c.

References dmibar_clrbits32, dmibar_read16(), dmibar_write32(), DMIVC0RCTL, DMIVC1RCTL, DMIVCMRCTL, DMIVCMRSTS, DMIVCPRCTL, HECIDEV, mchbar_write32(), pci_read_config32(), pci_write_config32(), pci_write_config8(), RCBA16, RCBA32, send_heci_uma_message(), and VCMNP.

Referenced by raminit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wait_heci_cb_avail()

static void wait_heci_cb_avail ( int  len)
static

Definition at line 24 of file setup_heci_uma.c.

References DEFAULT_HECIBAR, raw, and read32().

Referenced by send_heci_packet().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wait_heci_ready()

static void wait_heci_ready ( void  )
static

Definition at line 15 of file setup_heci_uma.c.

References DEFAULT_HECIBAR, read32(), and write32().

Referenced by send_heci_message().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ __packed