coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
uncore.c File Reference
#include <cbmem.h>
#include <console/console.h>
#include <cpu/x86/lapic_def.h>
#include <device/pci.h>
#include <device/pci_ids.h>
#include <soc/acpi.h>
#include <soc/iomap.h>
#include <soc/pci_devs.h>
#include <soc/ramstage.h>
#include <soc/util.h>
#include <fsp/util.h>
#include <security/intel/txt/txt_platform.h>
#include <security/intel/txt/txt.h>
#include <stdint.h>
Include dependency graph for uncore.c:

Go to the source code of this file.

Data Structures

struct  map_entry
 

Enumerations

enum  {
  TOHM_REG , MMIOL_REG , MMCFG_BASE_REG , MMCFG_LIMIT_REG ,
  TOLM_REG , ME_BASE_REG , ME_LIMIT_REG , TSEG_BASE_REG ,
  TSEG_LIMIT_REG , NUM_MAP_ENTRIES
}
 

Functions

static void read_map_entry (struct device *dev, struct map_entry *entry, uint64_t *result)
 
static void mc_read_map_entries (struct device *dev, uint64_t *values)
 
static void mc_report_map_entries (struct device *dev, uint64_t *values)
 
static void configure_dpr (struct device *dev)
 
static void mc_add_dram_resources (struct device *dev, int *res_count)
 
static void mmapvtd_read_resources (struct device *dev)
 
static void mmapvtd_init (struct device *dev)
 
static void vtd_read_resources (struct device *dev)
 
static void dmi3_init (struct device *dev)
 
static void iio_dfx_global_init (struct device *dev)
 

Variables

static struct map_entry memory_map [NUM_MAP_ENTRIES]
 
static struct device_operations mmapvtd_ops
 
static const unsigned short mmapvtd_ids []
 
static const struct pci_driver mmapvtd_driver __pci_driver
 
static struct device_operations vtd_ops
 
static struct device_operations dmi3_ops
 
static const unsigned short iio_dfx_global_ids []
 
static struct device_operations iio_dfx_global_ops
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TOHM_REG 
MMIOL_REG 
MMCFG_BASE_REG 
MMCFG_LIMIT_REG 
TOLM_REG 
ME_BASE_REG 
ME_LIMIT_REG 
TSEG_BASE_REG 
TSEG_LIMIT_REG 
NUM_MAP_ENTRIES 

Definition at line 26 of file uncore.c.

Function Documentation

◆ configure_dpr()

static void configure_dpr ( struct device dev)
static

Definition at line 94 of file uncore.c.

References ALIGN_UP, cbmem_top(), dpr_register::epm, dpr_register::lock, MiB, pci_read_config32(), pci_write_config32(), dpr_register::raw, dpr_register::size, dpr_register::top, and VTD_LTDPR.

Referenced by mc_add_dram_resources().

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

◆ dmi3_init()

static void dmi3_init ( struct device dev)
static

Definition at line 324 of file uncore.c.

References CONFIG, DMIRCBAR, ERRINJCON, pci_and_config32(), pci_or_config16(), and skip_intel_txt_lockdown().

Here is the call graph for this function:

◆ iio_dfx_global_init()

static void iio_dfx_global_init ( struct device dev)
static

Definition at line 352 of file uncore.c.

References CONFIG, IIO_DFX_LCK_CTL, IIO_DFX_TSWCTL0, pci_or_config16(), pci_read_config16(), pci_write_config16(), and skip_intel_txt_lockdown().

Here is the call graph for this function:

◆ mc_add_dram_resources()

◆ mc_read_map_entries()

static void mc_read_map_entries ( struct device dev,
uint64_t values 
)
static

Definition at line 78 of file uncore.c.

References memory_map, NUM_MAP_ENTRIES, and read_map_entry().

Referenced by mc_add_dram_resources().

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

◆ mc_report_map_entries()

static void mc_report_map_entries ( struct device dev,
uint64_t values 
)
static

Definition at line 85 of file uncore.c.

References BIOS_DEBUG, map_entry::description, memory_map, NUM_MAP_ENTRIES, and printk.

Referenced by mc_add_dram_resources().

Here is the caller graph for this function:

◆ mmapvtd_init()

static void mmapvtd_init ( struct device dev)
static

Definition at line 277 of file uncore.c.

◆ mmapvtd_read_resources()

static void mmapvtd_read_resources ( struct device dev)
static

Definition at line 266 of file uncore.c.

References mc_add_dram_resources(), and pci_dev_read_resources().

Here is the call graph for this function:

◆ read_map_entry()

static void read_map_entry ( struct device dev,
struct map_entry entry,
uint64_t result 
)
static

Definition at line 52 of file uncore.c.

References map_entry::is_64_bit, map_entry::is_limit, mask, map_entry::mask_bits, pci_read_config32(), map_entry::reg, and value.

Referenced by mc_read_map_entries().

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

◆ vtd_read_resources()

static void vtd_read_resources ( struct device dev)
static

Definition at line 303 of file uncore.c.

Variable Documentation

◆ __pci_driver

static const struct pci_driver iio_dfx_global_driver __pci_driver
static
Initial value:
= {
.ops = &mmapvtd_ops,
.vendor = PCI_VID_INTEL,
.devices = mmapvtd_ids
}
#define PCI_VID_INTEL
Definition: pci_ids.h:2157
static const unsigned short mmapvtd_ids[]
Definition: uncore.c:292
static struct device_operations mmapvtd_ops
Definition: uncore.c:281

Definition at line 292 of file uncore.c.

◆ dmi3_ops

struct device_operations dmi3_ops
static
Initial value:
= {
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
.init = dmi3_init,
.ops_pci = &soc_pci_ops,
}
void pci_dev_enable_resources(struct device *dev)
Definition: pci_device.c:721
void pci_dev_read_resources(struct device *dev)
Definition: pci_device.c:534
void pci_dev_set_resources(struct device *dev)
Definition: pci_device.c:691
struct pci_operations soc_pci_ops
Definition: chip.c:51
static void dmi3_init(struct device *dev)
Definition: uncore.c:324

Definition at line 324 of file uncore.c.

◆ iio_dfx_global_ids

const unsigned short iio_dfx_global_ids[]
static
Initial value:
= {
0x202d,
0x203d,
0
}

Definition at line 366 of file uncore.c.

◆ iio_dfx_global_ops

struct device_operations iio_dfx_global_ops
static
Initial value:
= {
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
.ops_pci = &soc_pci_ops,
}
static void iio_dfx_global_init(struct device *dev)
Definition: uncore.c:352

Definition at line 366 of file uncore.c.

◆ memory_map

struct map_entry memory_map[NUM_MAP_ENTRIES]
static
Initial value:
= {
}
#define MAP_ENTRY_LIMIT_32(reg_, mask_bits_, desc_)
Definition: iomap.h:15
#define MAP_ENTRY_LIMIT_64(reg_, desc_)
Definition: northbridge.c:189
#define MAP_ENTRY_BASE_64(reg_, desc_)
Definition: northbridge.c:188
#define MAP_ENTRY_BASE_32(reg_, desc_)
Definition: northbridge.c:187
#define VTD_TOLM_CSR
Definition: pci_devs.h:104
#define VTD_MMCFG_LIMIT_CSR
Definition: pci_devs.h:109
#define VTD_TOHM_CSR
Definition: pci_devs.h:110
#define VTD_TSEG_BASE_CSR
Definition: pci_devs.h:105
#define VTD_MMCFG_BASE_CSR
Definition: pci_devs.h:108
#define VTD_ME_BASE_CSR
Definition: pci_devs.h:112
#define VTD_MMIOL_CSR
Definition: pci_devs.h:111
#define VTD_ME_LIMIT_CSR
Definition: pci_devs.h:113
#define VTD_TSEG_LIMIT_CSR
Definition: pci_devs.h:106
@ MMIOL_REG
Definition: uncore.c:28
@ ME_BASE_REG
Definition: uncore.c:32
@ TOLM_REG
Definition: uncore.c:31
@ TSEG_BASE_REG
Definition: uncore.c:34
@ MMCFG_LIMIT_REG
Definition: uncore.c:30
@ ME_LIMIT_REG
Definition: uncore.c:33
@ TSEG_LIMIT_REG
Definition: uncore.c:35
@ TOHM_REG
Definition: uncore.c:27
@ MMCFG_BASE_REG
Definition: uncore.c:29

Definition at line 1 of file uncore.c.

Referenced by mc_read_map_entries(), and mc_report_map_entries().

◆ mmapvtd_ids

const unsigned short mmapvtd_ids[]
static
Initial value:
= {
0
}
#define MMAP_VTD_CFG_REG_DEVID
Definition: pci_devs.h:139

Definition at line 292 of file uncore.c.

◆ mmapvtd_ops

struct device_operations mmapvtd_ops
static
Initial value:
= {
.read_resources = mmapvtd_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
.init = mmapvtd_init,
.ops_pci = &soc_pci_ops,
}
static void mmapvtd_read_resources(struct device *dev)
Definition: uncore.c:266
static void mmapvtd_init(struct device *dev)
Definition: uncore.c:277

Definition at line 277 of file uncore.c.

◆ vtd_ops

struct device_operations vtd_ops
static
Initial value:
= {
.read_resources = vtd_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
.ops_pci = &soc_pci_ops,
}
static void vtd_read_resources(struct device *dev)
Definition: uncore.c:303

Definition at line 303 of file uncore.c.