coreboot-kgpe-d16/payloads/libpayload/drivers/Makefile.inc
Julius Werner 4fda9bd0ec libpayload: Replace majority of timer drivers with a generic one
Currently every non-x86 platform supported by libpayload needs to
provide its own timer driver. Most of the ones we have accumulated there
look almost identical: For the frequency, return a preset constant. For
the value, read a 32-bit register, possibly read another 32-bit register
and shift+OR it with the previous one, then return that.

Let's replace this with a single .c file that can easily handle all of
those cases. Menuconfig convenience can still be maintained by providing
several presets that select different defaults for the driver's
configuration options (register address(es) and frequency).

Removes an "enabled" check from Samsung MCT driver since coreboot always
unconditionally enables that timer anyway.

CQ-DEPEND=CL:344809
BRANCH=None
BUG=None
TEST=Booted Oak and Veyron, observed how dev-mode delay was still ~30s

Change-Id: I61cb7d2ffd4902aa841c57f9afa9cd991f770acd
Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Commit-Id: a036af6
Original-Change-Id: I9784e7c6aa5abd6d92478ea7ec1cf42c9a437546
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/347749
Reviewed-on: https://review.coreboot.org/17023
Tested-by: build bot (Jenkins)
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
2016-10-17 22:43:37 +02:00

115 lines
4.6 KiB
Makefile

##
## This file is part of the libpayload project.
##
## Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
## Copyright (C) 2008 Advanced Micro Devices, Inc.
## Copyright (C) 2008 coresystems GmbH
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
## 1. Redistributions of source code must retain the above copyright
## notice, this list of conditions and the following disclaimer.
## 2. Redistributions in binary form must reproduce the above copyright
## notice, this list of conditions and the following disclaimer in the
## documentation and/or other materials provided with the distribution.
## 3. The name of the author may not be used to endorse or promote products
## derived from this software without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
libc-$(CONFIG_LP_PCI) += pci.c
libc-$(CONFIG_LP_SPEAKER) += speaker.c
libc-$(CONFIG_LP_8250_SERIAL_CONSOLE) += serial/8250.c serial/serial.c
libc-$(CONFIG_LP_S5P_SERIAL_CONSOLE) += serial/s5p.c serial/serial.c
libc-$(CONFIG_LP_IPQ806X_SERIAL_CONSOLE) += serial/ipq806x.c serial/serial.c
libc-$(CONFIG_LP_IPQ40XX_SERIAL_CONSOLE) += serial/ipq40xx.c serial/serial.c
libc-$(CONFIG_LP_BG4CD_SERIAL_CONSOLE) += serial/bg4cd.c serial/serial.c
libc-$(CONFIG_LP_PC_KEYBOARD) += keyboard.c
libc-$(CONFIG_LP_CBMEM_CONSOLE) += cbmem_console.c
libc-$(CONFIG_LP_NVRAM) += nvram.c
libc-$(CONFIG_LP_NVRAM) += options.c
# Timer drivers
ifneq ($(CONFIG_LP_TIMER_GENERIC_HZ),0)
libc-y += timer/generic.c
endif
libc-$(CONFIG_LP_TIMER_RDTSC) += timer/rdtsc.c
libc-$(CONFIG_LP_TIMER_IMG_PISTACHIO) += timer/img_pistachio.c
libc-$(CONFIG_LP_TIMER_ARMADA38X) += timer/armada38x.c
libc-$(CONFIG_LP_TIMER_MVMAP2315) += timer/mvmap2315.c
# Video console drivers
libc-$(CONFIG_LP_VIDEO_CONSOLE) += video/video.c
libc-$(CONFIG_LP_VGA_VIDEO_CONSOLE) += video/vga.c
# Geode LX console drivers
libc-$(CONFIG_LP_GEODELX_VIDEO_CONSOLE) += video/geodelx.c
libc-$(CONFIG_LP_GEODELX_VIDEO_CONSOLE) += video/font8x16.c
# coreboot generic framebuffer driver
libc-$(CONFIG_LP_COREBOOT_VIDEO_CONSOLE) += video/corebootfb.c
libc-$(CONFIG_LP_COREBOOT_VIDEO_CONSOLE) += video/font8x16.c
# cbgfx: coreboot graphics library
libc-y += video/graphics.c
# AHCI/ATAPI driver
libc-$(CONFIG_LP_STORAGE) += storage/storage.c
libc-$(CONFIG_LP_STORAGE_AHCI) += storage/ahci.c
libc-$(CONFIG_LP_STORAGE_AHCI) += storage/ahci_common.c
ifeq ($(CONFIG_LP_STORAGE_ATA),y)
libc-$(CONFIG_LP_STORAGE_ATA) += storage/ata.c
libc-$(CONFIG_LP_STORAGE_ATA) += storage/ahci_ata.c
endif
ifeq ($(CONFIG_LP_STORAGE_ATAPI),y)
libc-$(CONFIG_LP_STORAGE_ATAPI) += storage/atapi.c
libc-$(CONFIG_LP_STORAGE_ATAPI) += storage/ahci_atapi.c
endif
# USB stack
libc-$(CONFIG_LP_USB) += usb/usbinit.c
libc-$(CONFIG_LP_USB) += usb/usb.c
libc-$(CONFIG_LP_USB) += usb/usb_dev.c
libc-$(CONFIG_LP_USB) += usb/quirks.c
libc-$(CONFIG_LP_USB_GEN_HUB) += usb/generic_hub.c
libc-$(CONFIG_LP_USB_HUB) += usb/usbhub.c
libc-$(CONFIG_LP_USB_UHCI) += usb/uhci.c
libc-$(CONFIG_LP_USB_UHCI) += usb/uhci_rh.c
libc-$(CONFIG_LP_USB_OHCI) += usb/ohci.c
libc-$(CONFIG_LP_USB_OHCI) += usb/ohci_rh.c
libc-$(CONFIG_LP_USB_EHCI) += usb/ehci.c
libc-$(CONFIG_LP_USB_EHCI) += usb/ehci_rh.c
libc-$(CONFIG_LP_USB_XHCI) += usb/xhci.c
libc-$(CONFIG_LP_USB_XHCI) += usb/xhci_debug.c
libc-$(CONFIG_LP_USB_XHCI) += usb/xhci_devconf.c
libc-$(CONFIG_LP_USB_XHCI) += usb/xhci_events.c
libc-$(CONFIG_LP_USB_XHCI) += usb/xhci_commands.c
libc-$(CONFIG_LP_USB_XHCI) += usb/xhci_rh.c
libc-$(CONFIG_LP_USB_HID) += usb/usbhid.c
libc-$(CONFIG_LP_USB_MSC) += usb/usbmsc.c
libc-$(CONFIG_LP_USB_DWC2) += usb/dwc2.c
libc-$(CONFIG_LP_USB_DWC2) += usb/dwc2_rh.c
# USB device stack
libc-$(CONFIG_LP_UDC) += udc/udc.c
libc-$(CONFIG_LP_UDC_CI) += udc/chipidea.c
libc-$(CONFIG_LP_UDC_DWC2) += udc/dwc2.c
# used by both USB HID and keyboard
libc-y += hid.c