dm: timer: normalise SPL and TPL support

To fully support DM timer in SPL and TPL, we need a few things cleaned
up and normalised:
- inclusion of the uclass and drivers should be an all-or-nothing
  decision for each stage and under control of $(SPL_TPL_)TIMER
  instead of having the two-level configuration with TIMER and
  $(SPL_TPL_)TIMER_SUPPORT
- when $(SPL_TPL_)TIMER is enabled, the ARMv8 generic timer code can
  not be compiled in

This normalises configuration to $(SPL_TPL_)TIMER and moves the config
options to drivers/timer/Kconfig (and cleans up the collateral damage
to some defconfigs that had SPL_TIMER_SUPPORT enabled).

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
master
Philipp Tomsich 7 years ago
parent b1a16002f2
commit e9e5d9d29f
  1. 2
      arch/arm/cpu/armv8/Makefile
  2. 8
      common/spl/Kconfig
  3. 2
      configs/chromebook_link64_defconfig
  4. 2
      configs/qemu-x86_64_defconfig
  5. 3
      drivers/Makefile
  6. 18
      drivers/timer/Kconfig
  7. 2
      drivers/timer/Makefile

@ -8,7 +8,9 @@
extra-y := start.o
obj-y += cpu.o
ifndef CONFIG_$(SPL_TPL_)TIMER
obj-y += generic_timer.o
endif
obj-y += cache_v8.o
obj-y += exceptions.o
obj-y += cache.o

@ -603,14 +603,6 @@ config SPL_SPI_SUPPORT
enable SPI drivers that are needed for other purposes also, such
as a SPI PMIC.
config SPL_TIMER_SUPPORT
bool "Support timer drivers"
help
Enable support for timer drivers in SPL. These can be used to get
a timer value when in SPL, or perhaps for implementing a delay
function. This enables the drivers in drivers/timer as part of an
SPL build.
config SPL_USB_HOST_SUPPORT
bool "Support USB host drivers"
help

@ -27,7 +27,7 @@ CONFIG_SPL_NET_SUPPORT=y
CONFIG_SPL_PCI_SUPPORT=y
CONFIG_SPL_PCH_SUPPORT=y
CONFIG_SPL_RTC_SUPPORT=y
CONFIG_SPL_TIMER_SUPPORT=y
CONFIG_SPL_TIMER=y
CONFIG_HUSH_PARSER=y
CONFIG_CMD_CPU=y
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set

@ -26,7 +26,7 @@ CONFIG_SPL_NET_SUPPORT=y
CONFIG_SPL_PCI_SUPPORT=y
CONFIG_SPL_PCH_SUPPORT=y
CONFIG_SPL_RTC_SUPPORT=y
CONFIG_SPL_TIMER_SUPPORT=y
CONFIG_SPL_TIMER=y
CONFIG_HUSH_PARSER=y
CONFIG_CMD_CPU=y
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set

@ -15,6 +15,7 @@ obj-$(CONFIG_$(SPL_TPL_)RAM) += ram/
obj-$(CONFIG_$(SPL_TPL_)SERIAL_SUPPORT) += serial/
obj-$(CONFIG_$(SPL_TPL_)SPI_FLASH_SUPPORT) += mtd/spi/
obj-$(CONFIG_$(SPL_TPL_)SPI_SUPPORT) += spi/
obj-$(CONFIG_$(SPL_TPL_)TIMER) += timer/
ifndef CONFIG_TPL_BUILD
ifdef CONFIG_SPL_BUILD
@ -38,7 +39,6 @@ obj-$(CONFIG_SPL_USBETH_SUPPORT) += net/phy/
obj-$(CONFIG_SPL_PCI_SUPPORT) += pci/
obj-$(CONFIG_SPL_PCH_SUPPORT) += pch/
obj-$(CONFIG_SPL_RTC_SUPPORT) += rtc/
obj-$(CONFIG_SPL_TIMER_SUPPORT) += timer/
obj-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += usb/musb-new/
obj-$(CONFIG_SPL_USB_GADGET_SUPPORT) += usb/gadget/
obj-$(CONFIG_SPL_USB_GADGET_SUPPORT) += usb/gadget/udc/
@ -83,7 +83,6 @@ obj-y += scsi/
obj-y += sound/
obj-y += spmi/
obj-y += sysreset/
obj-y += timer/
obj-y += tpm/
obj-y += video/
obj-y += watchdog/

@ -9,6 +9,24 @@ config TIMER
will be used. The timer is usually a 32 bits free-running up
counter. There may be no real tick, and no timer interrupt.
config SPL_TIMER
bool "Enable driver model for timer drivers in SPL"
depends on TIMER && SPL
help
Enable support for timer drivers in SPL. These can be used to get
a timer value when in SPL, or perhaps for implementing a delay
function. This enables the drivers in drivers/timer as part of an
SPL build.
config TPL_TIMER
bool "Enable driver model for timer drivers in TPL"
depends on TIMER && TPL
help
Enable support for timer drivers in TPL. These can be used to get
a timer value when in TPL, or perhaps for implementing a delay
function. This enables the drivers in drivers/timer as part of an
TPL build.
config TIMER_EARLY
bool "Allow timer to be used early in U-Boot"
depends on TIMER

@ -4,7 +4,7 @@
# SPDX-License-Identifier: GPL-2.0+
#
obj-$(CONFIG_TIMER) += timer-uclass.o
obj-y += timer-uclass.o
obj-$(CONFIG_ALTERA_TIMER) += altera_timer.o
obj-$(CONFIG_SANDBOX_TIMER) += sandbox_timer.o
obj-$(CONFIG_X86_TSC_TIMER) += tsc_timer.o

Loading…
Cancel
Save