coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <arch/io.h>
4 #include <stdint.h>
5 #include <console/console.h>
6 #include <cf9_reset.h>
7 #include <device/pci_ops.h>
8 #include <timestamp.h>
9 #include <romstage_handoff.h>
10 #include "ironlake.h"
11 #include <arch/romstage.h>
12 #include <device/pci_def.h>
13 #include <device/device.h>
19 
20 /*
21  * Platform has no romstage entry point under mainboard directory,
22  * so this one is named with prefix mainboard.
23  */
25 {
26  int s3resume = 0;
27  u8 spd_addrmap[4] = {};
28 
29  /* TODO, make this configurable */
31 
33 
34  s3resume = southbridge_detect_s3_resume();
35  if (s3resume) {
36  u8 reg8 = pci_read_config8(PCI_DEV(0, 0x1f, 0), 0xa2);
37  if (!(reg8 & 0x20)) {
38  s3resume = 0;
39  printk(BIOS_DEBUG, "Bad resume from S3 detected.\n");
40  }
41  }
42 
44 
46 
47  chipset_init(s3resume);
48 
50 
51  mainboard_get_spd_map(spd_addrmap);
52 
53  raminit(s3resume, spd_addrmap);
54 
56 
58 
59  romstage_handoff_init(s3resume);
60 }
void intel_early_me_status(void)
Definition: early_me.c:26
void early_thermal_init(void)
Definition: early_thermal.c:14
#define printk(level,...)
Definition: stdlib.h:16
void raminit(struct romstage_params *params)
Definition: raminit.c:15
__weak void mainboard_pre_raminit(struct romstage_params *params)
Definition: romstage.c:133
static __always_inline u8 pci_read_config8(const struct device *dev, u16 reg)
Definition: pci_ops.h:46
#define IRONLAKE_MOBILE
Definition: ironlake.h:16
void timestamp_add_now(enum timestamp_id id)
Definition: timestamp.c:141
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
void mainboard_romstage_entry(void)
Definition: romstage.c:6
void mainboard_get_spd_map(u8 *spd_addrmap)
Definition: romstage.c:55
void ironlake_early_initialization(int chipset_type)
Definition: early_init.c:77
void chipset_init(const int s3resume)
Definition: raminit.c:2860
#define PCI_DEV(SEGBUS, DEV, FN)
Definition: pci_type.h:14
int romstage_handoff_init(int is_s3_resume)
void early_pch_init(void)
Definition: early_pch.c:299
int southbridge_detect_s3_resume(void)
Definition: pmclib.c:18
uint8_t u8
Definition: stdint.h:45
@ TS_INITRAM_END
@ TS_INITRAM_START