coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
BiosCallOuts.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <device/azalia.h>
4 #include <AGESA.h>
5 #include <console/console.h>
8 #include <FchPlatform.h>
9 
11 {
12  {AGESA_DO_RESET, agesa_Reset },
13  {AGESA_READ_SPD, agesa_ReadSpd },
14  {AGESA_READ_SPD_RECOVERY, agesa_NoopUnsupported },
15  {AGESA_RUNFUNC_ONAP, agesa_RunFuncOnAp },
16  {AGESA_GET_IDS_INIT_DATA, agesa_EmptyIdsInitData },
17  {AGESA_HOOKBEFORE_DQS_TRAINING, agesa_NoopSuccess },
18  {AGESA_HOOKBEFORE_EXIT_SELF_REF, agesa_NoopSuccess },
19  {AGESA_GNB_GFX_GET_VBIOS_IMAGE, agesa_GfxGetVbiosImage }
20 };
22 
23 /**
24  * CODEC Initialization Table for Azalia HD Audio using Realtek ALC662 chip (from linux, running under vendor bios)
25  */
26 const CODEC_ENTRY Alc662_VerbTbl[] =
27 {
28  { 0x14, 0x01014410 },
29  { 0x15, 0x411111f0 },
30  { 0x16, 0x411111f0 },
31  { 0x18, 0x01a19c30 },
32  { 0x19, 0x02a19c40 },
33  { 0x1a, 0x0181343f },
34  { 0x1b, 0x02214c20 },
35  { 0x1c, 0x411111f0 },
36  { 0x1d, 0x4004c601 },
37  { 0x1e, 0x411111f0 },
38  { 0xff, 0xffffffff }
39 };
40 
41 static const CODEC_TBL_LIST CodecTableList[] =
42 {
43  {0x10ec0662, (CODEC_ENTRY*)&Alc662_VerbTbl[0]},
44  {(UINT32)0x0FFFFFFFF, (CODEC_ENTRY*)0x0FFFFFFFFUL}
45 };
46 
47 #define FAN_INPUT_INTERNAL_DIODE 0
48 #define FAN_INPUT_TEMP0 1
49 #define FAN_INPUT_TEMP1 2
50 #define FAN_INPUT_TEMP2 3
51 #define FAN_INPUT_TEMP3 4
52 #define FAN_INPUT_TEMP0_FILTER 5
53 #define FAN_INPUT_ZERO 6
54 #define FAN_INPUT_DISABLED 7
55 
56 #define FAN_AUTOMODE (1 << 0)
57 #define FAN_LINEARMODE (1 << 1)
58 #define FAN_STEPMODE ~(1 << 1)
59 #define FAN_POLARITY_HIGH (1 << 2)
60 #define FAN_POLARITY_LOW ~(1 << 2)
61 
62 /* Normally, 4-wire fan runs at 25KHz and 3-wire fan runs at 100Hz */
63 #define FREQ_28KHZ 0x0
64 #define FREQ_25KHZ 0x1
65 #define FREQ_23KHZ 0x2
66 #define FREQ_21KHZ 0x3
67 #define FREQ_29KHZ 0x4
68 #define FREQ_18KHZ 0x5
69 #define FREQ_100HZ 0xF7
70 #define FREQ_87HZ 0xF8
71 #define FREQ_58HZ 0xF9
72 #define FREQ_44HZ 0xFA
73 #define FREQ_35HZ 0xFB
74 #define FREQ_29HZ 0xFC
75 #define FREQ_22HZ 0xFD
76 #define FREQ_14HZ 0xFE
77 #define FREQ_11HZ 0xFF
78 
79 void board_FCH_InitReset(struct sysinfo *cb_NA, FCH_RESET_DATA_BLOCK *FchParams_reset)
80 {
81  FchParams_reset->LegacyFree = CONFIG(HUDSON_LEGACY_FREE);
82  FchParams_reset->Mode = 6;
83 }
84 
85 void board_FCH_InitEnv(struct sysinfo *cb_NA, FCH_DATA_BLOCK *FchParams_env)
86 {
87  /* Azalia Controller OEM Codec Table Pointer */
88  FchParams_env->Azalia.AzaliaOemCodecTablePtr = (CODEC_TBL_LIST *)(&CodecTableList[0]);
89 
90  /* Fan Control */
91  FchParams_env->Imc.ImcEnable = FALSE;
92  FchParams_env->Hwm.HwMonitorEnable = FALSE;
93  FchParams_env->Hwm.HwmFchtsiAutoPoll = FALSE;/* 1 enable, 0 disable TSI Auto Polling */
94 
95  FchParams_env->Sata.SataClass = CONFIG_HUDSON_SATA_MODE;
96 
97  switch ((SATA_CLASS)CONFIG_HUDSON_SATA_MODE) {
98  case SataLegacyIde:
99  case SataRaid:
100  case SataAhci:
101  case SataAhci7804:
102  FchParams_env->Sata.SataIdeMode = FALSE;
103  printk(BIOS_DEBUG, "AHCI or RAID or IDE = %x\n", CONFIG_HUDSON_SATA_MODE);
104  break;
105 
106  case SataIde2Ahci:
107  case SataIde2Ahci7804:
108  default: /* SataNativeIde */
109  FchParams_env->Sata.SataIdeMode = TRUE;
110  printk(BIOS_DEBUG, "IDE2AHCI = %x\n", CONFIG_HUDSON_SATA_MODE);
111  break;
112  }
113 }
#define ARRAY_SIZE(a)
Definition: helpers.h:12
#define printk(level,...)
Definition: stdlib.h:16
AGESA_STATUS agesa_RunFuncOnAp(UINT32 Func, UINTN Data, VOID *ConfigPtr)
Definition: def_callouts.c:102
AGESA_STATUS agesa_EmptyIdsInitData(UINT32 Func, UINTN Data, VOID *ConfigPtr)
Definition: def_callouts.c:58
AGESA_STATUS agesa_NoopUnsupported(UINT32 Func, UINTN Data, VOID *ConfigPtr)
Definition: def_callouts.c:48
AGESA_STATUS agesa_NoopSuccess(UINT32 Func, UINTN Data, VOID *ConfigPtr)
Definition: def_callouts.c:53
AGESA_STATUS agesa_Reset(UINT32 Func, UINTN Data, VOID *ConfigPtr)
Definition: def_callouts.c:66
@ CONFIG
Definition: dsi_common.h:201
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
const int BiosCalloutsLen
Definition: BiosCallOuts.c:25
const BIOS_CALLOUT_STRUCT BiosCallouts[]
Definition: BiosCallOuts.c:13
void board_FCH_InitReset(struct sysinfo *cb_NA, FCH_RESET_DATA_BLOCK *FchParams_reset)
Definition: BiosCallOuts.c:157
void board_FCH_InitEnv(struct sysinfo *cb_NA, FCH_DATA_BLOCK *FchParams_env)
Definition: BiosCallOuts.c:161
const CODEC_ENTRY Alc662_VerbTbl[]
CODEC Initialization Table for Azalia HD Audio using Realtek ALC662 chip (from linux,...
Definition: BiosCallOuts.c:26
static const CODEC_TBL_LIST CodecTableList[]
Definition: BiosCallOuts.c:41
AGESA_STATUS agesa_GfxGetVbiosImage(UINT32 Func, UINTN FchData, VOID *ConfigPrt)
AGESA_STATUS agesa_ReadSpd(uint32_t Func, uintptr_t Data, void *ConfigPtr)
Definition: BiosCallOuts.c:81