blob: 664add2c8c706939fac0de0c6f52696eed9d97c6 [file] [log] [blame]
Aamir Bohra3ee54bb2018-10-17 11:55:01 +05301config SOC_INTEL_ICELAKE
2 bool
3 help
4 Intel Icelake support
5
6if SOC_INTEL_ICELAKE
7
8config CPU_SPECIFIC_OPTIONS
9 def_bool y
10 select ACPI_INTEL_HARDWARE_SLEEP_VALUES
11 select ARCH_BOOTBLOCK_X86_32
12 select ARCH_RAMSTAGE_X86_32
13 select ARCH_ROMSTAGE_X86_32
14 select ARCH_VERSTAGE_X86_32
15 select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if BOOT_DEVICE_SPI_FLASH
16 select BOOT_DEVICE_SUPPORTS_WRITES
17 select C_ENVIRONMENT_BOOTBLOCK
18 select CACHE_MRC_SETTINGS
19 select CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM
20 select COMMON_FADT
21 select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
22 select GENERIC_GPIO_LIB
23 select HAVE_FSP_GOP
24 select INTEL_DESCRIPTOR_MODE_CAPABLE
25 select HAVE_MONOTONIC_TIMER
26 select HAVE_SMI_HANDLER
27 select IDT_IN_EVERY_STAGE
28 select INTEL_GMA_ACPI
29 select INTEL_GMA_ADD_VBT if RUN_FSP_GOP
30 select IOAPIC
31 select MRC_SETTINGS_PROTECT
32 select PARALLEL_MP
33 select PARALLEL_MP_AP_WORK
34 select PLATFORM_USES_FSP2_0
35 select POSTCAR_CONSOLE
36 select POSTCAR_STAGE
37 select REG_SCRIPT
38 select SMM_TSEG
39 select SMP
40 select SOC_AHCI_PORT_IMPLEMENTED_INVERT
41 select PMC_GLOBAL_RESET_ENABLE_LOCK
42 select SOC_INTEL_COMMON
43 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
44 select SOC_INTEL_COMMON_BLOCK
45 select SOC_INTEL_COMMON_BLOCK_ACPI
46 select SOC_INTEL_COMMON_BLOCK_CHIP_CONFIG
47 select SOC_INTEL_COMMON_BLOCK_CPU
48 select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
49 select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
50 select SOC_INTEL_COMMON_BLOCK_HDA
51 select SOC_INTEL_COMMON_BLOCK_SA
52 select SOC_INTEL_COMMON_BLOCK_SMM
53 select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
54 select SOC_INTEL_COMMON_PCH_BASE
55 select SOC_INTEL_COMMON_RESET
56 select SSE2
57 select SUPPORT_CPU_UCODE_IN_CBFS
58 select TSC_CONSTANT_RATE
59 select TSC_MONOTONIC_TIMER
60 select UDELAY_TSC
61 select UDK_2017_BINDING
62 select DISPLAY_FSP_VERSION_INFO
63
64config UART_DEBUG
65 bool "Enable UART debug port."
66 default n
67 select CONSOLE_SERIAL
68 select BOOTBLOCK_CONSOLE
69 select DRIVERS_UART
70 select DRIVERS_UART_8250MEM_32
71 select NO_UART_ON_SUPERIO
72
73config UART_FOR_CONSOLE
74 int "Index for LPSS UART port to use for console"
75 default 2 if DRIVERS_UART_8250MEM_32
76 default 0
77 help
78 Index for LPSS UART port to use for console:
79 0 = LPSS UART0, 1 = LPSS UART1, 2 = LPSS UART2
80
81config DCACHE_RAM_BASE
82 default 0xfef00000
83
84config DCACHE_RAM_SIZE
85 default 0x40000
86 help
87 The size of the cache-as-ram region required during bootblock
88 and/or romstage.
89
90config DCACHE_BSP_STACK_SIZE
91 hex
92 default 0x4000
93 help
94 The amount of anticipated stack usage in CAR by bootblock and
95 other stages.
96
97config IFD_CHIPSET
98 string
99 default "icl"
100
101config IED_REGION_SIZE
102 hex
103 default 0x400000
104
105config HEAP_SIZE
106 hex
107 default 0x8000
108
109config MAX_ROOT_PORTS
110 int
111 default 16
112
113config SMM_TSEG_SIZE
114 hex
115 default 0x800000
116
117config SMM_RESERVED_SIZE
118 hex
119 default 0x200000
120
121config PCR_BASE_ADDRESS
122 hex
123 default 0xfd000000
124 help
125 This option allows you to select MMIO Base Address of sideband bus.
126
127config CPU_BCLK_MHZ
128 int
129 default 100
130
131config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
132 int
133 default 120
134
135config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
136 int
137 default 133
138
139config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
140 int
141 default 3
142
143config SOC_INTEL_I2C_DEV_MAX
144 int
145 default 6
146
147# Clock divider parameters for 115200 baud rate
148config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
149 hex
150 default 0x30
151
152config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
153 hex
154 default 0xc35
155
156config CHROMEOS
157 select CHROMEOS_RAMOOPS_DYNAMIC
158
159config VBOOT
160 select VBOOT_SEPARATE_VERSTAGE
161 select VBOOT_OPROM_MATTERS
162 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
163 select VBOOT_STARTS_IN_BOOTBLOCK
164 select VBOOT_VBNV_CMOS
165 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
166
167config C_ENV_BOOTBLOCK_SIZE
168 hex
169 default 0x8000
170
171config CBFS_SIZE
172 hex
173 default 0x200000
174
175choice
176 prompt "Cache-as-ram implementation"
177 default USE_ICELAKE_CAR_NEM_ENHANCED if MAINBOARD_HAS_CHROMEOS
178 default USE_ICELAKE_FSP_CAR
179 help
180 This option allows you to select how cache-as-ram (CAR) is set up.
181
182config USE_ICELAKE_CAR_NEM_ENHANCED
183 bool "Enhanced Non-evict mode"
184 select SOC_INTEL_COMMON_BLOCK_CAR
185 select INTEL_CAR_NEM_ENHANCED
186 help
187 A current limitation of NEM (Non-Evict mode) is that code and data
188 sizes are derived from the requirement to not write out any modified
189 cache line. With NEM, if there is no physical memory behind the
190 cached area, the modified data will be lost and NEM results will be
191 inconsistent. ENHANCED NEM guarantees that modified data is always
192 kept in cache while clean data is replaced.
193
194config USE_ICELAKE_FSP_CAR
195 bool "Use FSP CAR"
196 select FSP_CAR
197 help
198 Use FSP APIs to initialize and tear down the Cache-As-Ram.
199
200endchoice
201
202config FSP_HEADER_PATH
Patrick Georgic6382cd2018-10-26 22:03:17 +0200203 string "Location of FSP headers"
Aamir Bohra3ee54bb2018-10-17 11:55:01 +0530204 default "src/vendorcode/intel/fsp/fsp2_0/icelake/"
205
206config FSP_FD_PATH
207 string
208 depends on FSP_USE_REPO
209 default "3rdparty/fsp/IceLakeFspBinPkg/Fsp.fd"
210
211endif