# This file is part of the coreboot project. # SPDX-License-Identifier: GPL-2.0-only config SOC_INTEL_QUARK bool help Intel Quark support if SOC_INTEL_QUARK config CPU_SPECIFIC_OPTIONS def_bool y select ARCH_BOOTBLOCK_X86_32 select ARCH_RAMSTAGE_X86_32 select ARCH_ROMSTAGE_X86_32 select ARCH_VERSTAGE_X86_32 select NO_MMCONF_SUPPORT select REG_SCRIPT select PLATFORM_USES_FSP2_0 select SOC_INTEL_COMMON select SOC_INTEL_COMMON_RESET select SOC_SETS_MSRS select SPI_FLASH select UART_OVERRIDE_REFCLK select UDELAY_TSC select TSC_MONOTONIC_TIMER select UNCOMPRESSED_RAMSTAGE select USE_MARCH_586 select NO_SMM ##### # Debug serial output # The following options configure the debug serial port ##### config ENABLE_BUILTIN_HSUART0 bool "Enable built-in HSUART0" default n select NO_UART_ON_SUPERIO select DRIVERS_UART_8250MEM_32 help The Quark SoC has two HSUART. Choose this option to configure the pads and enable HSUART0, which can be used for the debug console. config ENABLE_BUILTIN_HSUART1 bool "Enable built-in HSUART1" default n depends on ! ENABLE_BUILTIN_HSUART0 select NO_UART_ON_SUPERIO select DRIVERS_UART_8250MEM_32 help The Quark SoC has two HSUART. Choose this option to configure the pads and enable HSUART1, which can be used for the debug console. config TTYS0_BASE hex "HSUART Base Address" default 0xA0019000 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1 help Memory mapped MMIO of HSUART. config TTYS0_LCS int default 3 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1 # Console: PCI UART bus 0 << 20, device 20 << 15, function x << 12 # Valid bit, PCI UART in use: 1 << 31 config UART_PCI_ADDR hex default 0x800a1000 if ENABLE_BUILTIN_HSUART0 default 0x800a5000 if ENABLE_BUILTIN_HSUART1 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1 ##### # Debug support # The following options provide debug support for the Quark coreboot # code. The SD LED is used as a binary marker to determine if a # specific point in the execution flow has been reached. ##### config ENABLE_DEBUG_LED bool default n help Enable the use of the SD LED for early debugging before serial output is available. Setting this LED indicates that control has reached the desired check point. config ENABLE_DEBUG_LED_ESRAM bool "SD LED indicates ESRAM initialized" default n select ENABLE_DEBUG_LED help Indicate that ESRAM has been successfully initialized. If the SD LED does not light then the ESRAM initialization needs to be debugged. config ENABLE_DEBUG_LED_BOOTBLOCK_ENTRY bool "SD LED indicates bootblock.c successfully entered" default n select ENABLE_DEBUG_LED help Indicate that bootblock_c_entry was entered. If the SD LED does not light then debug the code between ESRAM and bootblock_c_entry. config ENABLE_DEBUG_LED_SOC_EARLY_INIT_ENTRY bool "SD LED indicates bootblock_soc_early_init successfully entered" default n select ENABLE_DEBUG_LED help Indicate that bootblock_soc_early_init was entered. If the SD LED does not light then debug the code in bootblock_main_with_timestamp. config ENABLE_DEBUG_LED_SOC_EARLY_INIT_EXIT bool "SD LED indicates bootblock_soc_early_init successfully exited" default n select ENABLE_DEBUG_LED help Indicate that bootblock_soc_early_init exited. If the SD LED does not light then debug the scripts in bootblock_soc_early_init. config ENABLE_DEBUG_LED_SOC_INIT_ENTRY bool "SD LED indicates bootblock_soc_init successfully entered" default n select ENABLE_DEBUG_LED help Indicate that bootblock_soc_init was entered. If the SD LED does not light then debug the code in bootblock_mainboard_early_init and console_init. If the SD LED does light but there is no serial then debug the serial port configuration and initialization. ##### # ESRAM layout # Specify the portion of the ESRAM for coreboot to use as its data area. ##### config DCACHE_RAM_BASE hex default 0x80000000 config DCACHE_RAM_SIZE hex default 0x40000 config DISPLAY_ESRAM_LAYOUT bool "Display ESRAM layout" default n help Select this option to display coreboot's use of ESRAM. ##### # Flash layout # Specify the size of the coreboot file system in the read-only # (recovery) portion of the flash part. ##### config CBFS_SIZE hex default 0x200000 help Specify the size of the coreboot file system in the read-only (recovery) portion of the flash part. On Quark systems the firmware image stores more than just coreboot, including: - The chipset microcode (RMU) binary file located at 0xFFF00000 - Intel Trusted Execution Engine firmware ##### # FSP binary # The following options control the FSP binary file placement in # the flash image and ESRAM. This file is required by the Quark # SoC code to boot coreboot and its payload. ##### config FSP_ESRAM_LOC hex default 0x80040000 help The location in ESRAM where a copy of the FSP binary is placed. config FSP_M_FILE string default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP_M.fd" config FSP_S_FILE string default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP_S.fd" ##### # RMU binary # The following options control the Quark chipset microcode file # placement in the flash image. This file is required to bring # the Quark processor out of reset. ##### config ADD_RMU_FILE bool "Should the RMU binary be added to the flash image?" default n help The RMU file is required to get the chip out of reset. config RMU_FILE string default "3rdparty/blobs/soc/intel/quark/rmu.bin" depends on ADD_RMU_FILE help The path and filename of the Intel Quark RMU binary. config RMU_LOC hex default 0xfff00000 depends on ADD_RMU_FILE help The location in CBFS that the RMU is located. It must match the strap-determined base address. config DCACHE_BSP_STACK_SIZE hex default 0x4000 config C_ENV_BOOTBLOCK_SIZE hex default 0x8000 ##### # Test support ##### config STORAGE_TEST bool "Test SD/MMC/eMMC card or device access" default n select COMMONLIB_STORAGE select SDHCI_CONTROLLER help Read block 0 from each parition of the storage device. User must also enable one or both of COMMONLIB_STORAGE_SD or COMMONLIB_STORAGE_MMC. config STORAGE_LOG bool "Log and display SD/MMC commands" default n depends on STORAGE_TEST ##### # I2C debug support ##### config I2C_DEBUG bool "Enable I2C debugging" default n help Display the I2C segments and controller errors endif # SOC_INTEL_QUARK