commonlib/storage: Add common eMMC functions
Now that multiple platforms are trying to initialize eMMC in coreboot instead of depthcharge, lets move common functionality into commonlib instead of copying the same functionality between multiple platforms. Note for consistency, changed name of set_early_mmc_wake_status() to mmc_set_early_wake_status(). Also adding an mmc_send_cmd1() function for retrieving the Operating Conditions Register (OCR) contents. BUG=b:218406702 BRANCH=None TEST=emerge-herobrine coreboot chromeos-bootimage flash onto villager device and make sure still boots ChromeOS Change-Id: Id00535b05bbd379081712601ef10e762c1831747 Signed-off-by: Shelley Chen <shchen@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/71827 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include <cbmem.h>
|
||||
#include <commonlib/storage/sd_mmc.h>
|
||||
#include <commonlib/sd_mmc_ctrlr.h>
|
||||
#include <commonlib/sdhci.h>
|
||||
@@ -41,22 +40,6 @@ static void disable_mmc_controller_bar(void)
|
||||
~(PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY));
|
||||
}
|
||||
|
||||
static void set_early_mmc_wake_status(int32_t status)
|
||||
{
|
||||
int32_t *ms_cbmem;
|
||||
|
||||
ms_cbmem = cbmem_add(CBMEM_ID_MMC_STATUS, sizeof(int));
|
||||
|
||||
if (ms_cbmem == NULL) {
|
||||
printk(BIOS_ERR,
|
||||
"%s: Failed to add early mmc wake status to cbmem!\n",
|
||||
__func__);
|
||||
return;
|
||||
}
|
||||
|
||||
*ms_cbmem = status;
|
||||
}
|
||||
|
||||
int early_mmc_wake_hw(void)
|
||||
{
|
||||
struct storage_media media;
|
||||
@@ -108,7 +91,7 @@ int early_mmc_wake_hw(void)
|
||||
|
||||
disable_mmc_controller_bar();
|
||||
|
||||
set_early_mmc_wake_status(1);
|
||||
mmc_set_early_wake_status(1);
|
||||
return 0;
|
||||
|
||||
out_err:
|
||||
|
Reference in New Issue
Block a user