coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gm45.h File Reference
#include <stdint.h>
#include "memmap.h"
#include <northbridge/intel/common/fixed_bars.h>
#include <device/device.h>
Include dependency graph for gm45.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  timings_t
 
struct  dimminfo_t
 
struct  sysinfo_t
 
struct  blc_pwm_t
 

Macros

#define TOTAL_CHANNELS   2
 
#define CHANNEL_IS_POPULATED(dimms, idx)   (dimms[idx].card_type != 0)
 
#define CHANNEL_IS_CARDF(dimms, idx)   (dimms[idx].card_type == 0xf)
 
#define IF_CHANNEL_POPULATED(dimms, idx)   if (dimms[idx].card_type != 0)
 
#define FOR_EACH_CHANNEL(idx)    for (idx = 0; idx < TOTAL_CHANNELS; ++idx)
 
#define FOR_EACH_POPULATED_CHANNEL(dimms, idx)    FOR_EACH_CHANNEL(idx) IF_CHANNEL_POPULATED(dimms, idx)
 
#define RANKS_PER_CHANNEL   4 /* Only two may be populated */
 
#define IF_RANK_POPULATED(dimms, ch, r)    if (dimms[ch].card_type && ((r) < dimms[ch].ranks))
 
#define FOR_EACH_RANK_IN_CHANNEL(r)    for (r = 0; r < RANKS_PER_CHANNEL; ++r)
 
#define FOR_EACH_POPULATED_RANK_IN_CHANNEL(dimms, ch, r)    FOR_EACH_RANK_IN_CHANNEL(r) IF_RANK_POPULATED(dimms, ch, r)
 
#define FOR_EACH_RANK(ch, r)    FOR_EACH_CHANNEL(ch) FOR_EACH_RANK_IN_CHANNEL(r)
 
#define FOR_EACH_POPULATED_RANK(dimms, ch, r)    FOR_EACH_RANK(ch, r) IF_RANK_POPULATED(dimms, ch, r)
 
#define DDR3_MAX_CAS   18
 
#define CMOS_READ_TRAINING   0x80 /* 16 bytes */
 
#define CMOS_WRITE_TRAINING   0x90 /* 16 bytes (could be reduced to 10 bytes) */
 
#define D0F0_EPBAR_LO   0x40
 
#define D0F0_EPBAR_HI   0x44
 
#define D0F0_MCHBAR_LO   0x48
 
#define D0F0_MCHBAR_HI   0x4c
 
#define D0F0_GGC   0x52
 
#define D0F0_DEVEN   0x54
 
#define D0F0_PCIEXBAR_LO   0x60
 
#define D0F0_PCIEXBAR_HI   0x64
 
#define D0F0_DMIBAR_LO   0x68
 
#define D0F0_DMIBAR_HI   0x6c
 
#define D0F0_PMBASE   0x78
 
#define D0F0_PAM(x)   (0x90 + (x)) /* 0-6 */
 
#define D0F0_REMAPBASE   0x98
 
#define D0F0_REMAPLIMIT   0x9a
 
#define D0F0_SMRAM   0x9d
 
#define D0F0_ESMRAMC   0x9e
 
#define D0F0_TOM   0xa0
 
#define D0F0_TOUUD   0xa2
 
#define D0F0_TOLUD   0xb0
 
#define D0F0_SKPD   0xdc /* Scratchpad Data */
 
#define D0F0_CAPID0   0xe0
 
#define PEG_CAP   0xa2
 
#define SLOTCAP   0xb4
 
#define PEGLC   0xec
 
#define D1F0_VCCAP   0x104
 
#define D1F0_VC0RCTL   0x114
 
#define GCFGC_PCIDEV   PCI_DEV(0, 2, 0)
 
#define GCFGC_OFFSET   0xf0
 
#define GCFGC_CR_SHIFT   0
 
#define GCFGC_CR_MASK   (0xf << GCFGC_CR_SHIFT)
 
#define GCFGC_CS_SHIFT   8
 
#define GCFGC_CS_MASK   (0xf << GCFGC_CS_SHIFT)
 
#define GCFGC_CD_SHIFT   12
 
#define GCFGC_CD_MASK   (0x1 << GCFGC_CD_SHIFT)
 
#define GCFGC_UPDATE_SHIFT   5
 
#define GCFGC_UPDATE   (0x1 << GCFGC_UPDATE_SHIFT)
 
#define HPLLVCO_MCHBAR   0x0c0f
 
#define PMSTS_MCHBAR   0x0f14 /* Self refresh channel status */
 
#define PMSTS_WARM_RESET   (1 << 1)
 
#define PMSTS_BOTH_SELFREFRESH   (1 << 0)
 
#define CLKCFG_MCHBAR   0x0c00
 
#define CLKCFG_FSBCLK_SHIFT   0
 
#define CLKCFG_FSBCLK_MASK   (7 << CLKCFG_FSBCLK_SHIFT)
 
#define CLKCFG_MEMCLK_SHIFT   4
 
#define CLKCFG_MEMCLK_MASK   (7 << CLKCFG_MEMCLK_SHIFT)
 
#define CLKCFG_UPDATE   (1 << 12)
 
#define SSKPD_MCHBAR   0x0c1c
 
#define SSKPD_CLK_SHIFT   0
 
#define SSKPD_CLK_MASK   (7 << SSKPD_CLK_SHIFT)
 
#define DCC_MCHBAR   0x200
 
#define DCC_NO_CHANXOR   (1 << 10)
 
#define DCC_INTERLEAVED   (1 << 1)
 
#define DCC_CMD_SHIFT   16
 
#define DCC_CMD_MASK   (7 << DCC_CMD_SHIFT)
 
#define DCC_CMD_NOP   (1 << DCC_CMD_SHIFT)
 
#define DCC_SET_MREG   (3 << DCC_CMD_SHIFT)
 
#define DCC_SET_EREG   (4 << DCC_CMD_SHIFT)
 
#define DCC_SET_EREG_SHIFT   21
 
#define DCC_SET_EREG_MASK   (DCC_CMD_MASK | (3 << DCC_SET_EREG_SHIFT))
 
#define DCC_SET_EREGx(x)
 
#define CxDRA_MCHBAR(x)   (0x1208 + ((x) * 0x0100))
 
#define CxDRA_PAGESIZE_SHIFT(r)   ((r) * 4) /* Per rank r */
 
#define CxDRA_PAGESIZE_MASKr(r)   (0x7 << CxDRA_PAGESIZE_SHIFT(r))
 
#define CxDRA_PAGESIZE_MASK   0x0000ffff
 
#define CxDRA_PAGESIZE(r, p)
 
#define CxDRA_BANKS_SHIFT(r)   (((r) * 3) + 16)
 
#define CxDRA_BANKS_MASKr(r)   (0x3 << CxDRA_BANKS_SHIFT(r))
 
#define CxDRA_BANKS_MASK   0x07ff0000
 
#define CxDRA_BANKS(r, b)
 
#define CxDRBy_MCHBAR(x, r)   (0x1200 + ((x) * 0x0100) + (((r) / 2) * 4))
 
#define CxDRBy_BOUND_SHIFT(r)   (((r) % 2) * 16)
 
#define CxDRBy_BOUND_MASK(r)   (0x1fc << CxDRBy_BOUND_SHIFT(r))
 
#define CxDRBy_BOUND_MB(r, b)
 
#define CxDRC0_MCHBAR(x)   (0x1230 + ((x) * 0x0100))
 
#define CxDRC0_RANKEN0   (1 << 24) /* Rank Enable */
 
#define CxDRC0_RANKEN1   (1 << 25)
 
#define CxDRC0_RANKEN2   (1 << 26)
 
#define CxDRC0_RANKEN3   (1 << 27)
 
#define CxDRC0_RANKEN(r)   (1 << (24 + (r)))
 
#define CxDRC0_RANKEN_MASK   (0xf << 24)
 
#define CxDRC0_RMS_SHIFT   8 /* Refresh Mode Select */
 
#define CxDRC0_RMS_MASK   (7 << CxDRC0_RMS_SHIFT)
 
#define CxDRC0_RMS_78US   (2 << CxDRC0_RMS_SHIFT)
 
#define CxDRC0_RMS_39US   (3 << CxDRC0_RMS_SHIFT)
 
#define CxDRC1_MCHBAR(x)   (0x1234 + ((x) * 0x0100))
 
#define CxDRC1_SSDS_SHIFT   24
 
#define CxDRC1_SSDS_MASK   (0xff << CxDRC1_SSDS_SHIFT)
 
#define CxDRC1_DS   (0x91 << CxDRC1_SSDS_SHIFT)
 
#define CxDRC1_SS   (0xb1 << CxDRC1_SSDS_SHIFT)
 
#define CxDRC1_NOTPOP(r)   (1 << (16 + (r))) /* Write 1 for Not Populated */
 
#define CxDRC1_NOTPOP_MASK   (0xf << 16)
 
#define CxDRC1_MUSTWR   (3 << 11)
 
#define CxDRC2_MCHBAR(x)   (0x1238 + ((x) * 0x0100))
 
#define CxDRC2_NOTPOP(r)   (1 << (24 + (r))) /* Write 1 for Not Populated */
 
#define CxDRC2_NOTPOP_MASK   (0xf << 24)
 
#define CxDRC2_MUSTWR   (1 << 12)
 
#define CxDRC2_CLK1067MT   (1 << 0)
 
#define CxDRT0_MCHBAR(x)   (0x1210 + ((x) * 0x0100))
 
#define CxDRT0_BtB_WtP_SHIFT   26
 
#define CxDRT0_BtB_WtP_MASK   (0x1f << CxDRT0_BtB_WtP_SHIFT)
 
#define CxDRT0_BtB_WtR_SHIFT   20
 
#define CxDRT0_BtB_WtR_MASK   (0x1f << CxDRT0_BtB_WtR_SHIFT)
 
#define CxDRT1_MCHBAR(x)   (0x1214 + ((x) * 0x0100))
 
#define CxDRT2_MCHBAR(x)   (0x1218 + ((x) * 0x0100))
 
#define CxDRT3_MCHBAR(x)   (0x121c + ((x) * 0x0100))
 
#define CxDRT4_MCHBAR(x)   (0x1220 + ((x) * 0x0100))
 
#define CxDRT5_MCHBAR(x)   (0x1224 + ((x) * 0x0100))
 
#define CxDRT6_MCHBAR(x)   (0x1228 + ((x) * 0x0100))
 
#define CxDCLKDIS_MCHBAR(x)   (0x120c + ((x) * 0x0100))
 
#define CxDCLKDIS_MASK   3
 
#define CxDCLKDIS_ENABLE   3 /* Always enable both clock pairs. */
 
#define CxODT_HIGH(x)   (0x124c + ((x) * 0x0100))
 
#define CxODT_LOW(x)   (0x1248 + ((x) * 0x0100))
 
#define CxWRTy_MCHBAR(ch, s)   (0x1470 + ((ch) * 0x0100) + ((3 - (s)) * 4))
 
#define CxGTEW(x)   (0x1270 + ((x) * 0x100))
 
#define CxGTC(x)   (0x1274 + ((x) * 0x100))
 
#define CxDTPEW(x)   (0x1278 + ((x) * 0x100))
 
#define CxDTAEW(x)   (0x1280 + ((x) * 0x100))
 
#define CxDTC(x)   (0x1288 + ((x) * 0x100))
 
#define DMIVCECH   0x000 /* 32bit */
 
#define DMIPVCCAP1   0x004 /* 32bit */
 
#define DMIVC0RCAP   0x010 /* 32bit */
 
#define DMIVC0RCTL   0x014 /* 32bit */
 
#define DMIVC0RSTS   0x01a /* 16bit */
 
#define VC0NP   (1 << 1)
 
#define DMIVC1RCAP   0x01c /* 32bit */
 
#define DMIVC1RCTL   0x020 /* 32bit */
 
#define DMIVC1RSTS   0x026 /* 16bit */
 
#define VC1NP   (1 << 1)
 
#define DMIESD   0x044 /* 32bit */
 
#define DMILE1D   0x050 /* 32bit */
 
#define DMILE1A   0x058 /* 64bit */
 
#define DMILE2D   0x060 /* 32bit */
 
#define DMILE2A   0x068 /* 64bit */
 
#define DMILCAP   0x084 /* 32bit */
 
#define DMILCTL   0x088 /* 16bit */
 
#define DMILSTS   0x08a /* 16bit */
 
#define EPPVCCAP1   0x004 /* 32bit */
 
#define EPPVCCTL   0x00c /* 32bit */
 
#define EPVC0RCAP   0x010 /* 32bit */
 
#define EPVC0RCTL   0x014 /* 32bit */
 
#define EPVC0RSTS   0x01a /* 16bit */
 
#define EPVC1RCAP   0x01c /* 32bit */
 
#define EPVC1RCTL   0x020 /* 32bit */
 
#define EPVC1RSTS   0x026 /* 16bit */
 
#define EPVC1MTS   0x028 /* 32bit */
 
#define EPVC1ITC   0x02c /* 32bit */
 
#define EPVC1IST   0x038 /* 64bit */
 
#define EPESD   0x044 /* 32bit */
 
#define EPLE1D   0x050 /* 32bit */
 
#define EPLE1A   0x058 /* 64bit */
 
#define EPLE2D   0x060 /* 32bit */
 
#define EPLE2A   0x068 /* 64bit */
 
#define EP_PORTARB(x)   (0x100 + 4 * (x)) /* 256bit */
 

Enumerations

enum  fsb_clock_t { FSB_CLOCK_1067MHz = 0 , FSB_CLOCK_800MHz = 1 , FSB_CLOCK_667MHz = 2 }
 
enum  stepping_t {
  STEPPING_A0 = 0 , STEPPING_A1 = 1 , STEPPING_A2 = 2 , STEPPING_A3 = 3 ,
  STEPPING_B0 = 4 , STEPPING_B1 = 5 , STEPPING_B2 = 6 , STEPPING_B3 = 7 ,
  STEPPING_CONVERSION_A1 = 9
}
 
enum  gmch_gfx_t {
  GMCH_GM45 = 0 , GMCH_GM47 , GMCH_GM49 , GMCH_GE45 ,
  GMCH_GL40 , GMCH_GL43 , GMCH_GS40 , GMCH_GS45 ,
  GMCH_PM45 , GMCH_UNKNOWN
}
 
enum  mem_clock_t {
  MEM_CLOCK_533MHz = 0 , MEM_CLOCK_400MHz = 1 , MEM_CLOCK_333MHz = 2 , MEM_CLOCK_1067MT = 0 ,
  MEM_CLOCK_800MT = 1 , MEM_CLOCK_667MT = 2
}
 
enum  ddr_t { DDR1 = 1 , DDR2 = 2 , DDR3 = 3 }
 
enum  channel_mode_t { CHANNEL_MODE_SINGLE , CHANNEL_MODE_DUAL_ASYNC , CHANNEL_MODE_DUAL_INTERLEAVED }
 
enum  chip_width_t { CHIP_WIDTH_x4 = 0 , CHIP_WIDTH_x8 = 1 , CHIP_WIDTH_x16 = 2 , CHIP_WIDTH_x32 = 3 }
 
enum  chip_capacity_t {
  CHIP_CAP_256M = 0 , CHIP_CAP_512M = 1 , CHIP_CAP_1G = 2 , CHIP_CAP_2G = 3 ,
  CHIP_CAP_4G = 4 , CHIP_CAP_8G = 5 , CHIP_CAP_16G = 6
}
 
enum  { VCO_2666 = 4 , VCO_3200 = 0 , VCO_4000 = 1 , VCO_5333 = 2 }
 

Functions

void gm45_early_init (void)
 
void gm45_early_reset (void)
 
void enter_raminit_or_reset (void)
 
void get_gmch_info (sysinfo_t *)
 
void raminit (sysinfo_t *, int s3resume)
 
void raminit_thermal (const sysinfo_t *)
 
void init_igd (const sysinfo_t *const)
 
void init_pm (const sysinfo_t *, int do_freq_scaling_cfg)
 
void igd_compute_ggc (sysinfo_t *const sysinfo)
 
int raminit_read_vco_index (void)
 
u32 raminit_get_rank_addr (unsigned int channel, unsigned int rank)
 
void raminit_rcomp_calibration (stepping_t stepping)
 
void raminit_reset_readwrite_pointers (void)
 
void raminit_receive_enable_calibration (const timings_t *, const dimminfo_t *)
 
void raminit_write_training (const mem_clock_t, const dimminfo_t *, int s3resume)
 
void raminit_read_training (const dimminfo_t *, int s3resume)
 
void gm45_late_init (stepping_t)
 
u32 decode_igd_memory_size (u32 gms)
 Decodes used Graphics Mode Select (GMS) to kilobytes. More...
 
u32 decode_igd_gtt_size (u32 gsm)
 Decodes used Graphics Stolen Memory (GSM) to kilobytes. More...
 
u32 decode_tseg_size (u8 esmramc)
 
void init_iommu (void)
 
void mb_setup_superio (void)
 
void get_mb_spd_addrmap (u8 spd_addrmap[4])
 
void mb_pre_raminit_setup (sysinfo_t *)
 
void mb_post_raminit_setup (void)
 
int get_blc_values (const struct blc_pwm_t **entries)
 
u16 get_blc_pwm_freq_value (const char *edid_ascii_string)
 
unsigned long northbridge_write_acpi_tables (const struct device *device, unsigned long start, struct acpi_rsdp *rsdp)
 

Macro Definition Documentation

◆ CHANNEL_IS_CARDF

#define CHANNEL_IS_CARDF (   dimms,
  idx 
)    (dimms[idx].card_type == 0xf)

Definition at line 134 of file gm45.h.

◆ CHANNEL_IS_POPULATED

#define CHANNEL_IS_POPULATED (   dimms,
  idx 
)    (dimms[idx].card_type != 0)

Definition at line 133 of file gm45.h.

◆ CLKCFG_FSBCLK_MASK

#define CLKCFG_FSBCLK_MASK   (7 << CLKCFG_FSBCLK_SHIFT)

Definition at line 231 of file gm45.h.

◆ CLKCFG_FSBCLK_SHIFT

#define CLKCFG_FSBCLK_SHIFT   0

Definition at line 230 of file gm45.h.

◆ CLKCFG_MCHBAR

#define CLKCFG_MCHBAR   0x0c00

Definition at line 229 of file gm45.h.

◆ CLKCFG_MEMCLK_MASK

#define CLKCFG_MEMCLK_MASK   (7 << CLKCFG_MEMCLK_SHIFT)

Definition at line 233 of file gm45.h.

◆ CLKCFG_MEMCLK_SHIFT

#define CLKCFG_MEMCLK_SHIFT   4

Definition at line 232 of file gm45.h.

◆ CLKCFG_UPDATE

#define CLKCFG_UPDATE   (1 << 12)

Definition at line 234 of file gm45.h.

◆ CMOS_READ_TRAINING

#define CMOS_READ_TRAINING   0x80 /* 16 bytes */

Definition at line 164 of file gm45.h.

◆ CMOS_WRITE_TRAINING

#define CMOS_WRITE_TRAINING   0x90 /* 16 bytes (could be reduced to 10 bytes) */

Definition at line 165 of file gm45.h.

◆ CxDCLKDIS_ENABLE

#define CxDCLKDIS_ENABLE   3 /* Always enable both clock pairs. */

Definition at line 323 of file gm45.h.

◆ CxDCLKDIS_MASK

#define CxDCLKDIS_MASK   3

Definition at line 322 of file gm45.h.

◆ CxDCLKDIS_MCHBAR

#define CxDCLKDIS_MCHBAR (   x)    (0x120c + ((x) * 0x0100))

Definition at line 321 of file gm45.h.

◆ CxDRA_BANKS

#define CxDRA_BANKS (   r,
 
)
Value:
/* for number of banks b */ \
(((b) << (CxDRA_BANKS_SHIFT(r) - 3)) & CxDRA_BANKS_MASKr(r))
#define CxDRA_BANKS_SHIFT(r)
Definition: gm45.h:263
#define CxDRA_BANKS_MASKr(r)
Definition: gm45.h:264

Definition at line 266 of file gm45.h.

◆ CxDRA_BANKS_MASK

#define CxDRA_BANKS_MASK   0x07ff0000

Definition at line 265 of file gm45.h.

◆ CxDRA_BANKS_MASKr

#define CxDRA_BANKS_MASKr (   r)    (0x3 << CxDRA_BANKS_SHIFT(r))

Definition at line 264 of file gm45.h.

◆ CxDRA_BANKS_SHIFT

#define CxDRA_BANKS_SHIFT (   r)    (((r) * 3) + 16)

Definition at line 263 of file gm45.h.

◆ CxDRA_MCHBAR

#define CxDRA_MCHBAR (   x)    (0x1208 + ((x) * 0x0100))

Definition at line 257 of file gm45.h.

◆ CxDRA_PAGESIZE

#define CxDRA_PAGESIZE (   r,
 
)
Value:
/* for log2(dimm page size in bytes) p */ \
((((p) - 10) << CxDRA_PAGESIZE_SHIFT(r)) & CxDRA_PAGESIZE_MASKr(r))
#define CxDRA_PAGESIZE_SHIFT(r)
Definition: gm45.h:258
#define CxDRA_PAGESIZE_MASKr(r)
Definition: gm45.h:259

Definition at line 261 of file gm45.h.

◆ CxDRA_PAGESIZE_MASK

#define CxDRA_PAGESIZE_MASK   0x0000ffff

Definition at line 260 of file gm45.h.

◆ CxDRA_PAGESIZE_MASKr

#define CxDRA_PAGESIZE_MASKr (   r)    (0x7 << CxDRA_PAGESIZE_SHIFT(r))

Definition at line 259 of file gm45.h.

◆ CxDRA_PAGESIZE_SHIFT

#define CxDRA_PAGESIZE_SHIFT (   r)    ((r) * 4) /* Per rank r */

Definition at line 258 of file gm45.h.

◆ CxDRBy_BOUND_MASK

#define CxDRBy_BOUND_MASK (   r)    (0x1fc << CxDRBy_BOUND_SHIFT(r))

Definition at line 276 of file gm45.h.

◆ CxDRBy_BOUND_MB

#define CxDRBy_BOUND_MB (   r,
 
)
Value:
/* for boundary in MB b */ \
((((b) >> 5) << CxDRBy_BOUND_SHIFT(r)) & CxDRBy_BOUND_MASK(r))
#define CxDRBy_BOUND_SHIFT(r)
Definition: gm45.h:275
#define CxDRBy_BOUND_MASK(r)
Definition: gm45.h:276

Definition at line 277 of file gm45.h.

◆ CxDRBy_BOUND_SHIFT

#define CxDRBy_BOUND_SHIFT (   r)    (((r) % 2) * 16)

Definition at line 275 of file gm45.h.

◆ CxDRBy_MCHBAR

#define CxDRBy_MCHBAR (   x,
 
)    (0x1200 + ((x) * 0x0100) + (((r) / 2) * 4))

Definition at line 274 of file gm45.h.

◆ CxDRC0_MCHBAR

#define CxDRC0_MCHBAR (   x)    (0x1230 + ((x) * 0x0100))

Definition at line 280 of file gm45.h.

◆ CxDRC0_RANKEN

#define CxDRC0_RANKEN (   r)    (1 << (24 + (r)))

Definition at line 285 of file gm45.h.

◆ CxDRC0_RANKEN0

#define CxDRC0_RANKEN0   (1 << 24) /* Rank Enable */

Definition at line 281 of file gm45.h.

◆ CxDRC0_RANKEN1

#define CxDRC0_RANKEN1   (1 << 25)

Definition at line 282 of file gm45.h.

◆ CxDRC0_RANKEN2

#define CxDRC0_RANKEN2   (1 << 26)

Definition at line 283 of file gm45.h.

◆ CxDRC0_RANKEN3

#define CxDRC0_RANKEN3   (1 << 27)

Definition at line 284 of file gm45.h.

◆ CxDRC0_RANKEN_MASK

#define CxDRC0_RANKEN_MASK   (0xf << 24)

Definition at line 286 of file gm45.h.

◆ CxDRC0_RMS_39US

#define CxDRC0_RMS_39US   (3 << CxDRC0_RMS_SHIFT)

Definition at line 290 of file gm45.h.

◆ CxDRC0_RMS_78US

#define CxDRC0_RMS_78US   (2 << CxDRC0_RMS_SHIFT)

Definition at line 289 of file gm45.h.

◆ CxDRC0_RMS_MASK

#define CxDRC0_RMS_MASK   (7 << CxDRC0_RMS_SHIFT)

Definition at line 288 of file gm45.h.

◆ CxDRC0_RMS_SHIFT

#define CxDRC0_RMS_SHIFT   8 /* Refresh Mode Select */

Definition at line 287 of file gm45.h.

◆ CxDRC1_DS

#define CxDRC1_DS   (0x91 << CxDRC1_SSDS_SHIFT)

Definition at line 295 of file gm45.h.

◆ CxDRC1_MCHBAR

#define CxDRC1_MCHBAR (   x)    (0x1234 + ((x) * 0x0100))

Definition at line 292 of file gm45.h.

◆ CxDRC1_MUSTWR

#define CxDRC1_MUSTWR   (3 << 11)

Definition at line 299 of file gm45.h.

◆ CxDRC1_NOTPOP

#define CxDRC1_NOTPOP (   r)    (1 << (16 + (r))) /* Write 1 for Not Populated */

Definition at line 297 of file gm45.h.

◆ CxDRC1_NOTPOP_MASK

#define CxDRC1_NOTPOP_MASK   (0xf << 16)

Definition at line 298 of file gm45.h.

◆ CxDRC1_SS

#define CxDRC1_SS   (0xb1 << CxDRC1_SSDS_SHIFT)

Definition at line 296 of file gm45.h.

◆ CxDRC1_SSDS_MASK

#define CxDRC1_SSDS_MASK   (0xff << CxDRC1_SSDS_SHIFT)

Definition at line 294 of file gm45.h.

◆ CxDRC1_SSDS_SHIFT

#define CxDRC1_SSDS_SHIFT   24

Definition at line 293 of file gm45.h.

◆ CxDRC2_CLK1067MT

#define CxDRC2_CLK1067MT   (1 << 0)

Definition at line 305 of file gm45.h.

◆ CxDRC2_MCHBAR

#define CxDRC2_MCHBAR (   x)    (0x1238 + ((x) * 0x0100))

Definition at line 301 of file gm45.h.

◆ CxDRC2_MUSTWR

#define CxDRC2_MUSTWR   (1 << 12)

Definition at line 304 of file gm45.h.

◆ CxDRC2_NOTPOP

#define CxDRC2_NOTPOP (   r)    (1 << (24 + (r))) /* Write 1 for Not Populated */

Definition at line 302 of file gm45.h.

◆ CxDRC2_NOTPOP_MASK

#define CxDRC2_NOTPOP_MASK   (0xf << 24)

Definition at line 303 of file gm45.h.

◆ CxDRT0_BtB_WtP_MASK

#define CxDRT0_BtB_WtP_MASK   (0x1f << CxDRT0_BtB_WtP_SHIFT)

Definition at line 310 of file gm45.h.

◆ CxDRT0_BtB_WtP_SHIFT

#define CxDRT0_BtB_WtP_SHIFT   26

Definition at line 309 of file gm45.h.

◆ CxDRT0_BtB_WtR_MASK

#define CxDRT0_BtB_WtR_MASK   (0x1f << CxDRT0_BtB_WtR_SHIFT)

Definition at line 312 of file gm45.h.

◆ CxDRT0_BtB_WtR_SHIFT

#define CxDRT0_BtB_WtR_SHIFT   20

Definition at line 311 of file gm45.h.

◆ CxDRT0_MCHBAR

#define CxDRT0_MCHBAR (   x)    (0x1210 + ((x) * 0x0100))

Definition at line 308 of file gm45.h.

◆ CxDRT1_MCHBAR

#define CxDRT1_MCHBAR (   x)    (0x1214 + ((x) * 0x0100))

Definition at line 313 of file gm45.h.

◆ CxDRT2_MCHBAR

#define CxDRT2_MCHBAR (   x)    (0x1218 + ((x) * 0x0100))

Definition at line 314 of file gm45.h.

◆ CxDRT3_MCHBAR

#define CxDRT3_MCHBAR (   x)    (0x121c + ((x) * 0x0100))

Definition at line 315 of file gm45.h.

◆ CxDRT4_MCHBAR

#define CxDRT4_MCHBAR (   x)    (0x1220 + ((x) * 0x0100))

Definition at line 316 of file gm45.h.

◆ CxDRT5_MCHBAR

#define CxDRT5_MCHBAR (   x)    (0x1224 + ((x) * 0x0100))

Definition at line 317 of file gm45.h.

◆ CxDRT6_MCHBAR

#define CxDRT6_MCHBAR (   x)    (0x1228 + ((x) * 0x0100))

Definition at line 318 of file gm45.h.

◆ CxDTAEW

#define CxDTAEW (   x)    (0x1280 + ((x) * 0x100))

Definition at line 335 of file gm45.h.

◆ CxDTC

#define CxDTC (   x)    (0x1288 + ((x) * 0x100))

Definition at line 336 of file gm45.h.

◆ CxDTPEW

#define CxDTPEW (   x)    (0x1278 + ((x) * 0x100))

Definition at line 334 of file gm45.h.

◆ CxGTC

#define CxGTC (   x)    (0x1274 + ((x) * 0x100))

Definition at line 333 of file gm45.h.

◆ CxGTEW

#define CxGTEW (   x)    (0x1270 + ((x) * 0x100))

Definition at line 332 of file gm45.h.

◆ CxODT_HIGH

#define CxODT_HIGH (   x)    (0x124c + ((x) * 0x0100))

Definition at line 326 of file gm45.h.

◆ CxODT_LOW

#define CxODT_LOW (   x)    (0x1248 + ((x) * 0x0100))

Definition at line 327 of file gm45.h.

◆ CxWRTy_MCHBAR

#define CxWRTy_MCHBAR (   ch,
  s 
)    (0x1470 + ((ch) * 0x0100) + ((3 - (s)) * 4))

Definition at line 330 of file gm45.h.

◆ D0F0_CAPID0

#define D0F0_CAPID0   0xe0

Definition at line 192 of file gm45.h.

◆ D0F0_DEVEN

#define D0F0_DEVEN   0x54

Definition at line 177 of file gm45.h.

◆ D0F0_DMIBAR_HI

#define D0F0_DMIBAR_HI   0x6c

Definition at line 181 of file gm45.h.

◆ D0F0_DMIBAR_LO

#define D0F0_DMIBAR_LO   0x68

Definition at line 180 of file gm45.h.

◆ D0F0_EPBAR_HI

#define D0F0_EPBAR_HI   0x44

Definition at line 173 of file gm45.h.

◆ D0F0_EPBAR_LO

#define D0F0_EPBAR_LO   0x40

Definition at line 172 of file gm45.h.

◆ D0F0_ESMRAMC

#define D0F0_ESMRAMC   0x9e

Definition at line 187 of file gm45.h.

◆ D0F0_GGC

#define D0F0_GGC   0x52

Definition at line 176 of file gm45.h.

◆ D0F0_MCHBAR_HI

#define D0F0_MCHBAR_HI   0x4c

Definition at line 175 of file gm45.h.

◆ D0F0_MCHBAR_LO

#define D0F0_MCHBAR_LO   0x48

Definition at line 174 of file gm45.h.

◆ D0F0_PAM

#define D0F0_PAM (   x)    (0x90 + (x)) /* 0-6 */

Definition at line 183 of file gm45.h.

◆ D0F0_PCIEXBAR_HI

#define D0F0_PCIEXBAR_HI   0x64

Definition at line 179 of file gm45.h.

◆ D0F0_PCIEXBAR_LO

#define D0F0_PCIEXBAR_LO   0x60

Definition at line 178 of file gm45.h.

◆ D0F0_PMBASE

#define D0F0_PMBASE   0x78

Definition at line 182 of file gm45.h.

◆ D0F0_REMAPBASE

#define D0F0_REMAPBASE   0x98

Definition at line 184 of file gm45.h.

◆ D0F0_REMAPLIMIT

#define D0F0_REMAPLIMIT   0x9a

Definition at line 185 of file gm45.h.

◆ D0F0_SKPD

#define D0F0_SKPD   0xdc /* Scratchpad Data */

Definition at line 191 of file gm45.h.

◆ D0F0_SMRAM

#define D0F0_SMRAM   0x9d

Definition at line 186 of file gm45.h.

◆ D0F0_TOLUD

#define D0F0_TOLUD   0xb0

Definition at line 190 of file gm45.h.

◆ D0F0_TOM

#define D0F0_TOM   0xa0

Definition at line 188 of file gm45.h.

◆ D0F0_TOUUD

#define D0F0_TOUUD   0xa2

Definition at line 189 of file gm45.h.

◆ D1F0_VC0RCTL

#define D1F0_VC0RCTL   0x114

Definition at line 201 of file gm45.h.

◆ D1F0_VCCAP

#define D1F0_VCCAP   0x104

Definition at line 200 of file gm45.h.

◆ DCC_CMD_MASK

#define DCC_CMD_MASK   (7 << DCC_CMD_SHIFT)

Definition at line 244 of file gm45.h.

◆ DCC_CMD_NOP

#define DCC_CMD_NOP   (1 << DCC_CMD_SHIFT)

Definition at line 245 of file gm45.h.

◆ DCC_CMD_SHIFT

#define DCC_CMD_SHIFT   16

Definition at line 243 of file gm45.h.

◆ DCC_INTERLEAVED

#define DCC_INTERLEAVED   (1 << 1)

Definition at line 242 of file gm45.h.

◆ DCC_MCHBAR

#define DCC_MCHBAR   0x200

Definition at line 240 of file gm45.h.

◆ DCC_NO_CHANXOR

#define DCC_NO_CHANXOR   (1 << 10)

Definition at line 241 of file gm45.h.

◆ DCC_SET_EREG

#define DCC_SET_EREG   (4 << DCC_CMD_SHIFT)

Definition at line 249 of file gm45.h.

◆ DCC_SET_EREG_MASK

#define DCC_SET_EREG_MASK   (DCC_CMD_MASK | (3 << DCC_SET_EREG_SHIFT))

Definition at line 251 of file gm45.h.

◆ DCC_SET_EREG_SHIFT

#define DCC_SET_EREG_SHIFT   21

Definition at line 250 of file gm45.h.

◆ DCC_SET_EREGx

#define DCC_SET_EREGx (   x)
Value:
(((x) - 1) << DCC_SET_EREG_SHIFT)) & \
DCC_SET_EREG_MASK)
#define DCC_SET_EREG_SHIFT
Definition: gm45.h:250
#define DCC_SET_EREG
Definition: gm45.h:249
int x
Definition: edid.c:994

Definition at line 252 of file gm45.h.

◆ DCC_SET_MREG

#define DCC_SET_MREG   (3 << DCC_CMD_SHIFT)

Definition at line 247 of file gm45.h.

◆ DDR3_MAX_CAS

#define DDR3_MAX_CAS   18

Definition at line 153 of file gm45.h.

◆ DMIESD

#define DMIESD   0x044 /* 32bit */

Definition at line 356 of file gm45.h.

◆ DMILCAP

#define DMILCAP   0x084 /* 32bit */

Definition at line 363 of file gm45.h.

◆ DMILCTL

#define DMILCTL   0x088 /* 16bit */

Definition at line 364 of file gm45.h.

◆ DMILE1A

#define DMILE1A   0x058 /* 64bit */

Definition at line 359 of file gm45.h.

◆ DMILE1D

#define DMILE1D   0x050 /* 32bit */

Definition at line 358 of file gm45.h.

◆ DMILE2A

#define DMILE2A   0x068 /* 64bit */

Definition at line 361 of file gm45.h.

◆ DMILE2D

#define DMILE2D   0x060 /* 32bit */

Definition at line 360 of file gm45.h.

◆ DMILSTS

#define DMILSTS   0x08a /* 16bit */

Definition at line 365 of file gm45.h.

◆ DMIPVCCAP1

#define DMIPVCCAP1   0x004 /* 32bit */

Definition at line 344 of file gm45.h.

◆ DMIVC0RCAP

#define DMIVC0RCAP   0x010 /* 32bit */

Definition at line 346 of file gm45.h.

◆ DMIVC0RCTL

#define DMIVC0RCTL   0x014 /* 32bit */

Definition at line 347 of file gm45.h.

◆ DMIVC0RSTS

#define DMIVC0RSTS   0x01a /* 16bit */

Definition at line 348 of file gm45.h.

◆ DMIVC1RCAP

#define DMIVC1RCAP   0x01c /* 32bit */

Definition at line 351 of file gm45.h.

◆ DMIVC1RCTL

#define DMIVC1RCTL   0x020 /* 32bit */

Definition at line 352 of file gm45.h.

◆ DMIVC1RSTS

#define DMIVC1RSTS   0x026 /* 16bit */

Definition at line 353 of file gm45.h.

◆ DMIVCECH

#define DMIVCECH   0x000 /* 32bit */

Definition at line 343 of file gm45.h.

◆ EP_PORTARB

#define EP_PORTARB (   x)    (0x100 + 4 * (x)) /* 256bit */

Definition at line 394 of file gm45.h.

◆ EPESD

#define EPESD   0x044 /* 32bit */

Definition at line 387 of file gm45.h.

◆ EPLE1A

#define EPLE1A   0x058 /* 64bit */

Definition at line 390 of file gm45.h.

◆ EPLE1D

#define EPLE1D   0x050 /* 32bit */

Definition at line 389 of file gm45.h.

◆ EPLE2A

#define EPLE2A   0x068 /* 64bit */

Definition at line 392 of file gm45.h.

◆ EPLE2D

#define EPLE2D   0x060 /* 32bit */

Definition at line 391 of file gm45.h.

◆ EPPVCCAP1

#define EPPVCCAP1   0x004 /* 32bit */

Definition at line 371 of file gm45.h.

◆ EPPVCCTL

#define EPPVCCTL   0x00c /* 32bit */

Definition at line 372 of file gm45.h.

◆ EPVC0RCAP

#define EPVC0RCAP   0x010 /* 32bit */

Definition at line 374 of file gm45.h.

◆ EPVC0RCTL

#define EPVC0RCTL   0x014 /* 32bit */

Definition at line 375 of file gm45.h.

◆ EPVC0RSTS

#define EPVC0RSTS   0x01a /* 16bit */

Definition at line 376 of file gm45.h.

◆ EPVC1IST

#define EPVC1IST   0x038 /* 64bit */

Definition at line 385 of file gm45.h.

◆ EPVC1ITC

#define EPVC1ITC   0x02c /* 32bit */

Definition at line 383 of file gm45.h.

◆ EPVC1MTS

#define EPVC1MTS   0x028 /* 32bit */

Definition at line 382 of file gm45.h.

◆ EPVC1RCAP

#define EPVC1RCAP   0x01c /* 32bit */

Definition at line 378 of file gm45.h.

◆ EPVC1RCTL

#define EPVC1RCTL   0x020 /* 32bit */

Definition at line 379 of file gm45.h.

◆ EPVC1RSTS

#define EPVC1RSTS   0x026 /* 16bit */

Definition at line 380 of file gm45.h.

◆ FOR_EACH_CHANNEL

#define FOR_EACH_CHANNEL (   idx)     for (idx = 0; idx < TOTAL_CHANNELS; ++idx)

Definition at line 136 of file gm45.h.

◆ FOR_EACH_POPULATED_CHANNEL

#define FOR_EACH_POPULATED_CHANNEL (   dimms,
  idx 
)     FOR_EACH_CHANNEL(idx) IF_CHANNEL_POPULATED(dimms, idx)

Definition at line 138 of file gm45.h.

◆ FOR_EACH_POPULATED_RANK

#define FOR_EACH_POPULATED_RANK (   dimms,
  ch,
 
)     FOR_EACH_RANK(ch, r) IF_RANK_POPULATED(dimms, ch, r)

Definition at line 150 of file gm45.h.

◆ FOR_EACH_POPULATED_RANK_IN_CHANNEL

#define FOR_EACH_POPULATED_RANK_IN_CHANNEL (   dimms,
  ch,
 
)     FOR_EACH_RANK_IN_CHANNEL(r) IF_RANK_POPULATED(dimms, ch, r)

Definition at line 146 of file gm45.h.

◆ FOR_EACH_RANK

#define FOR_EACH_RANK (   ch,
 
)     FOR_EACH_CHANNEL(ch) FOR_EACH_RANK_IN_CHANNEL(r)

Definition at line 148 of file gm45.h.

◆ FOR_EACH_RANK_IN_CHANNEL

#define FOR_EACH_RANK_IN_CHANNEL (   r)     for (r = 0; r < RANKS_PER_CHANNEL; ++r)

Definition at line 144 of file gm45.h.

◆ GCFGC_CD_MASK

#define GCFGC_CD_MASK   (0x1 << GCFGC_CD_SHIFT)

Definition at line 213 of file gm45.h.

◆ GCFGC_CD_SHIFT

#define GCFGC_CD_SHIFT   12

Definition at line 212 of file gm45.h.

◆ GCFGC_CR_MASK

#define GCFGC_CR_MASK   (0xf << GCFGC_CR_SHIFT)

Definition at line 209 of file gm45.h.

◆ GCFGC_CR_SHIFT

#define GCFGC_CR_SHIFT   0

Definition at line 208 of file gm45.h.

◆ GCFGC_CS_MASK

#define GCFGC_CS_MASK   (0xf << GCFGC_CS_SHIFT)

Definition at line 211 of file gm45.h.

◆ GCFGC_CS_SHIFT

#define GCFGC_CS_SHIFT   8

Definition at line 210 of file gm45.h.

◆ GCFGC_OFFSET

#define GCFGC_OFFSET   0xf0

Definition at line 207 of file gm45.h.

◆ GCFGC_PCIDEV

#define GCFGC_PCIDEV   PCI_DEV(0, 2, 0)

Definition at line 206 of file gm45.h.

◆ GCFGC_UPDATE

#define GCFGC_UPDATE   (0x1 << GCFGC_UPDATE_SHIFT)

Definition at line 215 of file gm45.h.

◆ GCFGC_UPDATE_SHIFT

#define GCFGC_UPDATE_SHIFT   5

Definition at line 214 of file gm45.h.

◆ HPLLVCO_MCHBAR

#define HPLLVCO_MCHBAR   0x0c0f

Definition at line 223 of file gm45.h.

◆ IF_CHANNEL_POPULATED

#define IF_CHANNEL_POPULATED (   dimms,
  idx 
)    if (dimms[idx].card_type != 0)

Definition at line 135 of file gm45.h.

◆ IF_RANK_POPULATED

#define IF_RANK_POPULATED (   dimms,
  ch,
 
)     if (dimms[ch].card_type && ((r) < dimms[ch].ranks))

Definition at line 142 of file gm45.h.

◆ PEG_CAP

#define PEG_CAP   0xa2

Definition at line 197 of file gm45.h.

◆ PEGLC

#define PEGLC   0xec

Definition at line 199 of file gm45.h.

◆ PMSTS_BOTH_SELFREFRESH

#define PMSTS_BOTH_SELFREFRESH   (1 << 0)

Definition at line 227 of file gm45.h.

◆ PMSTS_MCHBAR

#define PMSTS_MCHBAR   0x0f14 /* Self refresh channel status */

Definition at line 225 of file gm45.h.

◆ PMSTS_WARM_RESET

#define PMSTS_WARM_RESET   (1 << 1)

Definition at line 226 of file gm45.h.

◆ RANKS_PER_CHANNEL

#define RANKS_PER_CHANNEL   4 /* Only two may be populated */

Definition at line 141 of file gm45.h.

◆ SLOTCAP

#define SLOTCAP   0xb4

Definition at line 198 of file gm45.h.

◆ SSKPD_CLK_MASK

#define SSKPD_CLK_MASK   (7 << SSKPD_CLK_SHIFT)

Definition at line 238 of file gm45.h.

◆ SSKPD_CLK_SHIFT

#define SSKPD_CLK_SHIFT   0

Definition at line 237 of file gm45.h.

◆ SSKPD_MCHBAR

#define SSKPD_MCHBAR   0x0c1c

Definition at line 236 of file gm45.h.

◆ TOTAL_CHANNELS

#define TOTAL_CHANNELS   2

Definition at line 132 of file gm45.h.

◆ VC0NP

#define VC0NP   (1 << 1)

Definition at line 349 of file gm45.h.

◆ VC1NP

#define VC1NP   (1 << 1)

Definition at line 354 of file gm45.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
VCO_2666 
VCO_3200 
VCO_4000 
VCO_5333 

Definition at line 155 of file gm45.h.

◆ channel_mode_t

Enumerator
CHANNEL_MODE_SINGLE 
CHANNEL_MODE_DUAL_ASYNC 
CHANNEL_MODE_DUAL_INTERLEAVED 

Definition at line 56 of file gm45.h.

◆ chip_capacity_t

Enumerator
CHIP_CAP_256M 
CHIP_CAP_512M 
CHIP_CAP_1G 
CHIP_CAP_2G 
CHIP_CAP_4G 
CHIP_CAP_8G 
CHIP_CAP_16G 

Definition at line 69 of file gm45.h.

◆ chip_width_t

Enumerator
CHIP_WIDTH_x4 
CHIP_WIDTH_x8 
CHIP_WIDTH_x16 
CHIP_WIDTH_x32 

Definition at line 62 of file gm45.h.

◆ ddr_t

enum ddr_t
Enumerator
DDR1 
DDR2 
DDR3 

Definition at line 50 of file gm45.h.

◆ fsb_clock_t

Enumerator
FSB_CLOCK_1067MHz 
FSB_CLOCK_800MHz 
FSB_CLOCK_667MHz 

Definition at line 8 of file gm45.h.

◆ gmch_gfx_t

enum gmch_gfx_t
Enumerator
GMCH_GM45 
GMCH_GM47 
GMCH_GM49 
GMCH_GE45 
GMCH_GL40 
GMCH_GL43 
GMCH_GS40 
GMCH_GS45 
GMCH_PM45 
GMCH_UNKNOWN 

Definition at line 28 of file gm45.h.

◆ mem_clock_t

Enumerator
MEM_CLOCK_533MHz 
MEM_CLOCK_400MHz 
MEM_CLOCK_333MHz 
MEM_CLOCK_1067MT 
MEM_CLOCK_800MT 
MEM_CLOCK_667MT 

Definition at line 41 of file gm45.h.

◆ stepping_t

enum stepping_t
Enumerator
STEPPING_A0 
STEPPING_A1 
STEPPING_A2 
STEPPING_A3 
STEPPING_B0 
STEPPING_B1 
STEPPING_B2 
STEPPING_B3 
STEPPING_CONVERSION_A1 

Definition at line 14 of file gm45.h.

Function Documentation

◆ decode_igd_gtt_size()

u32 decode_igd_gtt_size ( const u32  gsm)

Decodes used Graphics Stolen Memory (GSM) to kilobytes.

Decodes used Graphics Stolen Memory (GSM) to kilobytes.

Definition at line 36 of file memmap.c.

References die().

Referenced by mch_domain_read_resources(), and program_memory_map().

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

◆ decode_igd_memory_size()

u32 decode_igd_memory_size ( u32  gms)

Decodes used Graphics Mode Select (GMS) to kilobytes.

Definition at line 24 of file memmap.c.

References ARRAY_SIZE, and die().

Referenced by intel_gma_init_lvds(), intel_gma_init_vga(), mch_domain_read_resources(), and program_memory_map().

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

◆ decode_tseg_size()

u32 decode_tseg_size ( u8  esmramc)

Definition at line 57 of file memmap.c.

References die().

Referenced by mch_domain_read_resources().

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

◆ enter_raminit_or_reset()

void enter_raminit_or_reset ( void  )

Definition at line 191 of file raminit.c.

References BIOS_INFO, BIOS_WARNING, gm45_early_reset(), PCI_DEV, pci_read_config8(), pci_write_config8(), and printk.

Referenced by mainboard_romstage_entry().

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

◆ get_blc_pwm_freq_value()

u16 get_blc_pwm_freq_value ( const char *  edid_ascii_string)

Definition at line 63 of file gma.c.

References blc_pwm_t::ascii_string, BIOS_DEBUG, BIOS_NOTICE, get_blc_values(), printk, blc_pwm_t::pwm_freq, and strcmp().

Referenced by gma_pm_init_post_vbios(), and mainboard_vbt_filename().

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

◆ get_blc_values()

int get_blc_values ( const struct blc_pwm_t **  entries)

Definition at line 30 of file blc.c.

References ARRAY_SIZE, and blc_entries.

Referenced by get_blc_pwm_freq_value().

Here is the caller graph for this function:

◆ get_gmch_info()

◆ get_mb_spd_addrmap()

void get_mb_spd_addrmap ( u8  spd_addrmap[4])

Definition at line 18 of file romstage.c.

Referenced by mainboard_romstage_entry().

Here is the caller graph for this function:

◆ gm45_early_init()

void gm45_early_init ( void  )

Definition at line 7 of file early_init.c.

References D0F0_DMIBAR_LO, D0F0_EPBAR_LO, D0F0_MCHBAR_LO, D0F0_PAM, D0F0_PMBASE, DEFAULT_PMBASE, PCI_DEV, pci_write_config32(), and pci_write_config8().

Referenced by mainboard_romstage_entry().

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

◆ gm45_early_reset()

◆ gm45_late_init()

void gm45_late_init ( stepping_t  stepping)

Definition at line 272 of file pcie.c.

References D0F0_DEVEN, init_dmi(), init_egress(), init_pcie(), mchbar_read16(), PCI_DEV, pci_read_config8(), setup_aspm(), setup_rcrb(), stepping, and STEPPING_B2.

Referenced by mainboard_romstage_entry().

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

◆ igd_compute_ggc()

void igd_compute_ggc ( sysinfo_t *const  sysinfo)

Definition at line 110 of file igd.c.

References D0F0_CAPID0, sysinfo::enable_igd, get_uint_option(), sysinfo::ggc, MAX, MIN, PCI_DEV, and pci_read_config32().

Referenced by raminit().

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

◆ init_igd()

void init_igd ( const sysinfo_t * const  sysinfo)

Definition at line 99 of file igd.c.

References D0F0_CAPID0, disable_igd(), enable_igd(), sysinfo::enable_igd, sysinfo::enable_peg, PCI_DEV, and pci_read_config8().

Referenced by raminit().

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

◆ init_iommu()

◆ init_pm()

◆ mb_post_raminit_setup()

void mb_post_raminit_setup ( void  )

Definition at line 43 of file romstage.c.

References GPIO_LEVEL_LOW, and set_gpio().

Referenced by mainboard_romstage_entry().

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

◆ mb_pre_raminit_setup()

void mb_pre_raminit_setup ( sysinfo_t sysinfo)

Definition at line 24 of file romstage.c.

References BIOS_DEBUG, CONFIG, sysinfo::enable_igd, sysinfo::enable_peg, get_gpio(), hybrid_graphics_init(), and printk.

Referenced by mainboard_romstage_entry().

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

◆ mb_setup_superio()

void mb_setup_superio ( void  )

Definition at line 18 of file romstage.c.

◆ northbridge_write_acpi_tables()

unsigned long northbridge_write_acpi_tables ( const struct device device,
unsigned long  start,
struct acpi_rsdp rsdp 
)

Definition at line 56 of file acpi.c.

◆ raminit()

◆ raminit_get_rank_addr()

u32 raminit_get_rank_addr ( unsigned int  channel,
unsigned int  rank 
)

Definition at line 1660 of file raminit.c.

References CxDRBy_BOUND_MASK, CxDRBy_BOUND_SHIFT, CxDRBy_MCHBAR, and mchbar_read32().

Referenced by jedec_init(), perform_read_training(), perform_write_training(), and read_dqs_level().

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

◆ raminit_rcomp_calibration()

void raminit_rcomp_calibration ( stepping_t  stepping)

Definition at line 164 of file raminit_rcomp_calibration.c.

References ddr3_lookup_schedule, die(), lookup_and_write(), mchbar_clrbits32, mchbar_read32(), mchbar_setbits32, PULL_DOWN, PULL_UP, stepping, STEPPING_CONVERSION_A1, and udelay().

Referenced by rcomp_initialization().

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

◆ raminit_read_training()

void raminit_read_training ( const dimminfo_t dimms,
int  s3resume 
)

Definition at line 265 of file raminit_read_write_training.c.

References perform_read_training(), raminit_reset_readwrite_pointers(), read_training_restore_results(), and read_training_store_results().

Referenced by raminit().

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

◆ raminit_read_vco_index()

int raminit_read_vco_index ( void  )

Definition at line 733 of file raminit.c.

References die(), HPLLVCO_MCHBAR, mchbar_read8(), VCO_2666, VCO_3200, VCO_4000, and VCO_5333.

Referenced by enable_igd(), and init_freq_scaling().

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

◆ raminit_receive_enable_calibration()

void raminit_receive_enable_calibration ( const timings_t timings,
const dimminfo_t dimms 
)

◆ raminit_reset_readwrite_pointers()

void raminit_reset_readwrite_pointers ( void  )

Definition at line 1677 of file raminit.c.

References mchbar_clrbits32, and mchbar_setbits32.

Referenced by raminit_read_training(), raminit_receive_enable_calibration(), and raminit_write_training().

Here is the caller graph for this function:

◆ raminit_thermal()

◆ raminit_write_training()

void raminit_write_training ( const  mem_clock_t,
const dimminfo_t dimms,
int  s3resume 
)

Definition at line 634 of file raminit_read_write_training.c.

References MEM_CLOCK_1067MT, perform_write_training(), raminit_reset_readwrite_pointers(), write_training_restore_results(), and write_training_store_results().

Referenced by raminit().

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