x86: apl: Add Kconfig and Makefile
authorSimon Glass <sjg@chromium.org>
Mon, 9 Dec 2019 00:40:17 +0000 (17:40 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Sun, 15 Dec 2019 03:44:29 +0000 (11:44 +0800)
Add basic plumbing to allow Apollo Lake support to be used.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/Kconfig
arch/x86/cpu/Makefile
arch/x86/cpu/apollolake/Kconfig [new file with mode: 0644]

index 1d08cb24fb5bcca9838ed46d15397ebd31d971d7..89b93e5de25aa7228a7699ec373efa189697a089 100644 (file)
@@ -106,6 +106,7 @@ source "board/google/Kconfig"
 source "board/intel/Kconfig"
 
 # platform-specific options below
+source "arch/x86/cpu/apollolake/Kconfig"
 source "arch/x86/cpu/baytrail/Kconfig"
 source "arch/x86/cpu/braswell/Kconfig"
 source "arch/x86/cpu/broadwell/Kconfig"
index 0e90a38dc5efbd27c9fcf27a7472e75bdc152163..5b40838e60af126a5e26bf31892c78e2337eea96 100644 (file)
@@ -41,6 +41,7 @@ extra-y += call32.o
 endif
 
 obj-y += intel_common/
+obj-$(CONFIG_INTEL_APOLLOLAKE) += apollolake/
 obj-$(CONFIG_INTEL_BAYTRAIL) += baytrail/
 obj-$(CONFIG_INTEL_BRASWELL) += braswell/
 obj-$(CONFIG_INTEL_BROADWELL) += broadwell/
diff --git a/arch/x86/cpu/apollolake/Kconfig b/arch/x86/cpu/apollolake/Kconfig
new file mode 100644 (file)
index 0000000..fcff176
--- /dev/null
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Copyright 2019 Google LLC
+#
+
+config INTEL_APOLLOLAKE
+       bool
+       select FSP_VERSION2
+       select HAVE_FSP
+       select ARCH_MISC_INIT
+       select USE_CAR
+       select INTEL_PMC
+       select TPL_X86_TSC_TIMER_NATIVE
+       select SPL_PCH_SUPPORT
+       select TPL_PCH_SUPPORT
+       select PCH_SUPPORT
+       select P2SB
+       imply ENABLE_MRC_CACHE
+       imply AHCI_PCI
+       imply SCSI
+       imply SCSI_AHCI
+       imply SPI_FLASH
+       imply USB
+       imply USB_EHCI_HCD
+       imply TPL
+       imply SPL
+       imply TPL_X86_16BIT_INIT
+       imply TPL_OF_PLATDATA
+       imply ACPI_PMC
+       imply MMC
+       imply DM_MMC
+       imply MMC_PCI
+       imply MMC_SDHCI
+       imply CMD_MMC
+       imply VIDEO_FSP
+       imply PINCTRL_INTEL
+       imply PINCTRL_INTEL_APL
+       imply HAVE_VBT
+       imply HAVE_X86_FIT
+       imply INTEL_GPIO
+       imply SMP
+
+if INTEL_APOLLOLAKE
+
+config DCACHE_RAM_BASE
+       default 0xfef00000
+
+config DCACHE_RAM_SIZE
+       default 0xc0000
+
+config DCACHE_RAM_MRC_VAR_SIZE
+       default 0xb0000
+
+config CPU_SPECIFIC_OPTIONS
+       def_bool y
+       select SMM_TSEG
+       select X86_RAMTEST
+
+config SMM_TSEG_SIZE
+       hex
+       default 0x800000
+
+config MMCONF_BASE_ADDRESS
+       hex
+       default 0xe0000000
+
+config TPL_SIZE_LIMIT
+       default 0x7800
+
+config CPU_ADDR_BITS
+       default 39
+
+config APL_SPI_FLASH_BOOT
+       bool "Support booting with SPI-flash driver instead memory-mapped SPI"
+       select TPL_SPI_FLASH_SUPPORT
+       select TPL_SPI_SUPPORT
+       help
+         This enables SPI and SPI flash in TPL. Without the this only
+         available boot method is to use memory-mapped SPI. Since this is
+         actually fast and produces a TPL which is 7KB smaller, memory-mapped
+         SPI is the default.
+
+config APL_BOOT_FROM_FAST_SPI_FLASH
+       bool "Boot using SPI flash driver"
+       select APL_SPI_FLASH_BOOT
+       help
+         This option is separate from APL_SPI_FLASH_BOOT since it is useful to
+         be able to compare booting speed with the same build. Enable this to
+         use the SPI-flash driver to load SPL, U-Boot and FSP-M. For technical
+         reasons FSP-S is currently always loaded from memory-mapped SPI. See
+         Apollo Lake's arch_fsp_init_r() for details about that.
+
+config VBT_ADDR
+       default 0xff3f1000
+
+endif