aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/fsp_baytrail/chip.h
blob: 7e868629f39c322f37755166d06d94d25dfae8ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/*
 * This file is part of the coreboot project.
 *
 * Copyright (C) 2013 Google Inc.
 * Copyright (C) 2013-2014 Sage Electronic Engineering, LLC.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 */

#ifndef _FSP_BAYTRAIL_CHIP_H_
#define _FSP_BAYTRAIL_CHIP_H_

#include <arch/acpi.h>

/* The devicetree parser expects chip.h to reside directly in the path
 * specified by the devicetree. */

struct soc_intel_fsp_baytrail_config {

/* ***** UPD Configuration ***** */

	/* Spd addresses */
	uint8_t  MrcInitSPDAddr1;
	uint8_t  MrcInitSPDAddr2;
	#define SPD_ADDR_DEFAULT	0x00
	#define SPD_ADDR_DISABLED	0xFF

	/* SataMode
	 *  NOTE: These are offset by 1 to set 0 as "use default".  This is so that
	 *  if the register value is not set in the devicetree.cb file, the default
	 *  value gets used.  This is fixed up in the chipset_fsp_util.c code.
	 *
	 *  0x0 "IDE"
	 *  0x1 "AHCI"
	 */
	uint8_t  SataMode;
	#define SATA_MODE_DEFAULT	0x00
	#define SATA_MODE_IDE		0x01
	#define SATA_MODE_AHCI		0x02

	/*
	 * MrcInitTsegSize
	 *  0x01, "1 MB"
	 *  0x02, "2 MB"
	 *  0x04, "4 MB"
	 *  0x08, "8 MB"
	 */
	uint16_t MrcInitTsegSize;
	#define TSEG_SIZE_DEFAULT	0
	#define TSEG_SIZE_1_MB		1
	#define TSEG_SIZE_2_MB		2
	#define TSEG_SIZE_4_MB		4
	#define TSEG_SIZE_8_MB		8

	/*
	 * MrcInitMmioSize
	 *  0x400, "1.0 GB"s
	 *  0x600, "1.5 GB"
	 *  0x800, "2.0 GB"
	 */
	uint16_t MrcInitMmioSize;
	#define MMIO_SIZE_DEFAULT	0x00
	#define MMIO_SIZE_1_0_GB	0x400
	#define MMIO_SIZE_1_5_GB	0x600
	#define MMIO_SIZE_2_0_GB	0x800

	/*
	 * eMMCBootMode
	 *   NOTE: These are offset by 1 to set 0 as "use default".  This is so that
	 *   if the register value is not set in the devicetree.cb file, the default
	 *   value gets used.  This is fixed up in the chipset_fsp_util.c code
	 *
	 *   0x0 "Disabled"
	 *   0x1 "Auto"
	 *   0x2 "eMMC 4.1"
	 *   0x3 "eMMC 4.5"
	 */
	uint8_t  eMMCBootMode;
	#define EMMC_USE_DEFAULT		0
	#define EMMC_DISABLED			1
	#define EMMC_AUTO				2
	#define EMMC_4_1				3
	#define EMMC_4_5				4
	#define EMMC_FOLLOWS_DEVICETREE	5

	/*
	 * IgdDvmt50PreAlloc
	 *  0x01, "32 MB"
	 *  0x02, "64 MB"
	 *  0x03, "96 MB"
	 *  0x04, "128 MB"
	 *  0x05, "160 MB"
	 *  0x06, "192 MB"
	 *  0x07, "224 MB"
	 *  0x08, "256 MB"
	 *  0x09, "288 MB"
	 *  0x0A, "320 MB"
	 *  0x0B, "352 MB"
	 *  0x0C, "384 MB"
	 *  0x0D, "416 MB"
	 *  0x0E, "448 MB"
	 *  0x0F, "480 MB"
	 *  0x10, "512 MB"
	 */
	uint8_t  IgdDvmt50PreAlloc;
	#define IGD_MEMSIZE_DEFAULT	0x00
	#define IGD_MEMSIZE_32MB	0x01
	#define IGD_MEMSIZE_64MB	0x02
	#define IGD_MEMSIZE_96MB	0x03
	#define IGD_MEMSIZE_128MB	0x04
	#define IGD_MEMSIZE_160MB	0x05
	#define IGD_MEMSIZE_192MB	0x06
	#define IGD_MEMSIZE_224MB	0x07
	#define IGD_MEMSIZE_256MB	0x08
	#define IGD_MEMSIZE_288MB	0x09
	#define IGD_MEMSIZE_320MB	0x0A
	#define IGD_MEMSIZE_352MB	0x0B
	#define IGD_MEMSIZE_384MB	0x0C
	#define IGD_MEMSIZE_416MB	0x0D
	#define IGD_MEMSIZE_448MB	0x0E
	#define IGD_MEMSIZE_480MB	0x0F
	#define IGD_MEMSIZE_512MB	0x10
	#define IGD_MEMSIZE_MULTIPLIER	32

	/*
	 * Selection 0x1 , "128 MB"
	 * Selection 0x2 , "256 MB"
	 * Selection 0x3 , "512 MB"
	 */
	uint8_t  ApertureSize;
	#define APERTURE_SIZE_DEFAULT	0
	#define APERTURE_SIZE_128MB		1
	#define APERTURE_SIZE_256MB		2
	#define APERTURE_SIZE_512MB		3
	#define APERTURE_SIZE_BASE		64

	/*
	 * Selection 0x1 , "1 MB"
	 * Selection 0x2 , "2 MB"
	 */
	uint8_t  GttSize;
	#define GTT_SIZE_DEFAULT	0
	#define GTT_SIZE_1MB		1
	#define GTT_SIZE_2MB		2

	/*
	 *  Enable PCI Mode for LPSS SIO devices.
	 *  If disabled, LPSS SIO devices will run in ACPI mode.
	 */
	uint8_t  LpssSioEnablePciMode;
	#define LPSS_PCI_MODE_DEFAULT	0x00
	#define LPSS_PCI_MODE_DISABLE	0x01
	#define LPSS_PCI_MODE_ENABLE	0x02

	/* modifiers for various enables */
	uint8_t  AzaliaAutoEnable;
	#define AZALIA_FOLLOWS_DEVICETREE	0
	#define AZALIA_FSP_AUTO_ENABLE		1

	uint8_t  LpeAcpiModeEnable;
	#define LPE_ACPI_MODE_DISABLED	1
	#define LPE_ACPI_MODE_ENABLED	2

/* ***** ACPI configuration ***** */
	/* Options for these are in src/arch/x86/include/arch/acpi.h */
	uint8_t  fadt_pm_profile;
	uint16_t fadt_boot_arch;

};

extern struct chip_operations soc_intel_fsp_baytrail_ops;
#endif /* _FSP_BAYTRAIL_CHIP_H_ */