From 1ea7cce8ae8fbc8a14a3ddfdee3f81a5e0e50031 Mon Sep 17 00:00:00 2001 From: Lee Leahy Date: Fri, 7 Apr 2017 12:07:46 -0700 Subject: mainboard/intel/galileo: Add SD controller configuration Configure the SD controller to handle the SD card slot. * Galileo supports a removable SD card slot. * Set SD card initialization frequency to 100 MHz. * Set default removable delays. * Build SD/MMC components by default TEST=Build and run on Galileo Gen2 Change-Id: Iaf4faa40fe01eca98abffa2681f61fd8e059f0c4 Signed-off-by: Lee Leahy Reviewed-on: https://review.coreboot.org/19212 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- src/mainboard/intel/galileo/Kconfig | 8 ++++++++ src/mainboard/intel/galileo/Makefile.inc | 2 ++ src/mainboard/intel/galileo/sd.c | 34 ++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 src/mainboard/intel/galileo/sd.c (limited to 'src/mainboard') diff --git a/src/mainboard/intel/galileo/Kconfig b/src/mainboard/intel/galileo/Kconfig index 0ab682c827..4ae412f5d6 100644 --- a/src/mainboard/intel/galileo/Kconfig +++ b/src/mainboard/intel/galileo/Kconfig @@ -179,4 +179,12 @@ config FMDFILE When an FMD descriptionn file is specified, the build system uses it instead of creating a default FMAP file. +config ENABLE_SD_TESTING + bool "Enable SD card testing" + default y + select DRIVERS_STORAGE_SD + select SDHC_DEBUG + select STORAGE_LOG + select STORAGE_TEST + endif # BOARD_INTEL_QUARK diff --git a/src/mainboard/intel/galileo/Makefile.inc b/src/mainboard/intel/galileo/Makefile.inc index f2fda318c0..25f672e5f7 100644 --- a/src/mainboard/intel/galileo/Makefile.inc +++ b/src/mainboard/intel/galileo/Makefile.inc @@ -26,6 +26,7 @@ verstage-$(CONFIG_VBOOT) += vboot.c romstage-y += gpio.c romstage-y += reg_access.c +romstage-$(CONFIG_DRIVERS_STORAGE_SD) += sd.c romstage-$(CONFIG_VBOOT) += vboot.c postcar-y += gpio.c @@ -33,3 +34,4 @@ postcar-y += reg_access.c ramstage-y += gpio.c ramstage-y += reg_access.c +ramstage-$(CONFIG_DRIVERS_STORAGE_SD) += sd.c diff --git a/src/mainboard/intel/galileo/sd.c b/src/mainboard/intel/galileo/sd.c new file mode 100644 index 0000000000..d13b318679 --- /dev/null +++ b/src/mainboard/intel/galileo/sd.c @@ -0,0 +1,34 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2017 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include + +void soc_sd_mmc_controller_quirks(struct sd_mmc_ctrlr *ctrlr) +{ + /* Specify the additional driver support */ + ctrlr->caps |= DRVR_CAP_REMOVABLE; + + /* ADMA currently not working on Quark */ + ctrlr->caps &= ~DRVR_CAP_AUTO_CMD12; + + /* Set initialization clock frequency */ + ctrlr->f_min = 100 * CLOCK_KHZ; + + /* Set the initialization delays */ + ctrlr->mdelay_before_cmd0 = 1; + ctrlr->mdelay_after_cmd0 = 2; +} -- cgit v1.2.3