16 #include <soc/iomap.h>
18 #include <soc/pci_devs.h>
19 #include <soc/romstage.h>
67 for (
int i = 0; i < num_channels; i++)
74 const int mrc_ver_reg = 0xf0;
97 (reg & (1 << 22)) ?
"LP" :
"");
146 }
else if (s3resume) {
166 mrc_entry = (
void *)(
uintptr_t)CONFIG_MRC_BIN_ADDRESS;
186 if (s3resume && !cbmem_was_initted) {
#define assert(statement)
uint32_t iosf_dunit_ch1_read(int reg)
uint32_t iosf_dunit_read(int reg)
uint32_t iosf_dunit_ch0_read(int reg)
static void * cbfs_map(const char *name, size_t *size_out)
int cbmem_recovery(int s3resume)
#define printk(level,...)
void do_putchar(unsigned char byte)
enum cb_err spd_add_smbios17(const u8 channel, const u8 slot, const u16 selected_freq, const struct dimm_attr_ddr3_st *info)
Fill cbmem with information for SMBIOS type 17.
int spd_decode_ddr3(struct dimm_attr_ddr3_st *dimm, spd_raw_data spd)
Decode the raw SPD data.
void raminit(struct romstage_params *params)
spd_status
Result of the SPD decoding process.
Utilities for decoding DDR3 SPDs.
static __always_inline void pci_write_config32(const struct device *dev, u16 reg, u32 val)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
static __always_inline u8 pci_read_config8(const struct device *dev, u16 reg)
static __always_inline void pci_write_config16(const struct device *dev, u16 reg, u16 val)
static __always_inline void pci_write_config8(const struct device *dev, u16 reg, u8 val)
#define SMBUS_BASE_ADDRESS
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_CRIT
BIOS_CRIT - Recovery unlikely.
int mrc_cache_stash_data(int type, uint32_t version, const void *data, size_t size)
Returns < 0 on error, 0 on success.
void * mrc_cache_current_mmap_leak(int type, uint32_t version, size_t *data_size)
mrc_cache_mmap_leak
int ABI_X86(* mrc_wrapper_entry_t)(struct mrc_params *)
#define PCI_BASE_ADDRESS_4
#define PCI_DEV(SEGBUS, DEV, FN)
#define POST_RESUME_FAILURE
Resume from suspend failed.
static int prev_sleep_state(const struct chipset_power_state *ps)
static void enable_smbus(void)
static void score_select_func(int pad, int func)
static void populate_smbios_tables(void *dram_data, int speed, int num_channels)
static u8 spd_buf[NUM_CHANNELS][SPD_SIZE]
int smbus_enable_iobar(uintptr_t base)
uintptr_t smbus_base(void)
static void ABI_X86 send_to_console(unsigned char b)
static void print_dram_info(void *dram_data)
void * dram_data[NUM_CHANNELS]
int spd_addrs[NUM_CHANNELS]
void ABI_X86(* console_out)(unsigned char byte)
struct mrc_mainboard_params mainboard