coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
finalize.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
bootstate.h
>
4
#include <
commonlib/console/post_codes.h
>
5
#include <
console/console.h
>
6
#include <
cpu/x86/smm.h
>
7
#include <
device/mmio.h
>
8
#include <
device/pci.h
>
9
#include <
intelblocks/lpc_lib.h
>
10
#include <
intelblocks/pcr.h
>
11
#include <
intelblocks/pmclib.h
>
12
#include <
intelblocks/tco.h
>
13
#include <
intelblocks/thermal.h
>
14
#include <soc/p2sb.h>
15
#include <soc/pci_devs.h>
16
#include <soc/pcr_ids.h>
17
#include <soc/pm.h>
18
#include <soc/smbus.h>
19
#include <soc/soc_chip.h>
20
#include <soc/systemagent.h>
21
#include <
spi-generic.h
>
22
23
#define CAMERA1_CLK 0x8000
/* Camera 1 Clock */
24
#define CAMERA2_CLK 0x8080
/* Camera 2 Clock */
25
#define CAM_CLK_EN (1 << 1)
26
#define MIPI_CLK (1 << 0)
27
#define HDPLL_CLK (0 << 0)
28
29
static
void
pch_enable_isclk
(
void
)
30
{
31
pcr_or32
(
PID_ISCLK
,
CAMERA1_CLK
,
CAM_CLK_EN
|
MIPI_CLK
);
32
pcr_or32
(
PID_ISCLK
,
CAMERA2_CLK
,
CAM_CLK_EN
|
MIPI_CLK
);
33
}
34
35
static
void
pch_handle_sideband
(
config_t
*
config
)
36
{
37
if
(
config
->pch_isclk)
38
pch_enable_isclk
();
39
}
40
41
static
void
pch_finalize
(
void
)
42
{
43
config_t
*
config
=
config_of_soc
();
44
45
/* TCO Lock down */
46
tco_lockdown
();
47
48
/*
49
* Set low maximum temp threshold value used for dynamic thermal sensor
50
* shutdown consideration.
51
*
52
* If Dynamic Thermal Shutdown is enabled then PMC logic shuts down the
53
* thermal sensor when CPU is in a C-state and DTS Temp <= LTT.
54
*/
55
pch_thermal_configuration
();
56
57
pch_handle_sideband
(
config
);
58
59
pmc_clear_pmcon_sts
();
60
}
61
62
static
void
soc_finalize
(
void
*unused)
63
{
64
printk
(
BIOS_DEBUG
,
"Finalizing chipset.\n"
);
65
66
pch_finalize
();
67
apm_control
(
APM_CNT_FINALIZE
);
68
69
/* Indicate finalize step with post code */
70
post_code
(
POST_OS_BOOT
);
71
}
72
73
BOOT_STATE_INIT_ENTRY
(
BS_OS_RESUME
,
BS_ON_ENTRY
,
soc_finalize
,
NULL
);
74
BOOT_STATE_INIT_ENTRY
(
BS_PAYLOAD_LOAD
,
BS_ON_EXIT
,
soc_finalize
,
NULL
);
PID_ISCLK
#define PID_ISCLK
Definition:
pcr_ids.h:26
bootstate.h
BS_PAYLOAD_LOAD
@ BS_PAYLOAD_LOAD
Definition:
bootstate.h:88
BS_OS_RESUME
@ BS_OS_RESUME
Definition:
bootstate.h:86
BS_ON_ENTRY
@ BS_ON_ENTRY
Definition:
bootstate.h:95
BS_ON_EXIT
@ BS_ON_EXIT
Definition:
bootstate.h:96
pcr.h
pcr_or32
void pcr_or32(uint8_t pid, uint16_t offset, uint32_t ordata)
Definition:
pcr.c:184
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
smm.h
APM_CNT_FINALIZE
#define APM_CNT_FINALIZE
Definition:
smm.h:24
config_of_soc
#define config_of_soc()
Definition:
device.h:394
mmio.h
BIOS_DEBUG
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition:
loglevel.h:128
lpc_lib.h
config
enum board_config config
Definition:
memory.c:448
pci.h
post_code
#define post_code(value)
Definition:
post_code.h:12
post_codes.h
POST_OS_BOOT
#define POST_OS_BOOT
Final code before OS boots.
Definition:
post_codes.h:414
apm_control
int apm_control(u8 cmd)
Definition:
smi_trigger.c:31
BOOT_STATE_INIT_ENTRY
BOOT_STATE_INIT_ENTRY(BS_OS_RESUME, BS_ON_ENTRY, soc_finalize, NULL)
pmclib.h
pmc_clear_pmcon_sts
void pmc_clear_pmcon_sts(void)
tco.h
tco_lockdown
void tco_lockdown(void)
Definition:
tco.c:50
thermal.h
pch_thermal_configuration
void pch_thermal_configuration(void)
Definition:
thermal_pci.c:13
CAMERA2_CLK
#define CAMERA2_CLK
Definition:
finalize.c:24
pch_handle_sideband
static void pch_handle_sideband(config_t *config)
Definition:
finalize.c:35
soc_finalize
static void soc_finalize(void *unused)
Definition:
finalize.c:62
CAM_CLK_EN
#define CAM_CLK_EN
Definition:
finalize.c:25
pch_finalize
static void pch_finalize(void)
Definition:
finalize.c:41
MIPI_CLK
#define MIPI_CLK
Definition:
finalize.c:26
CAMERA1_CLK
#define CAMERA1_CLK
Definition:
finalize.c:23
pch_enable_isclk
static void pch_enable_isclk(void)
Definition:
finalize.c:29
spi-generic.h
NULL
#define NULL
Definition:
stddef.h:19
ec_kontron_it8516e_config
Definition:
chip.h:8
src
soc
intel
icelake
finalize.c
Generated by
1.9.1