diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index d91b9b7f3a3d9d659027c45c2f2e1825d59286af..367922579cb1731c604ed65300e5d303e02beac2 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -36,6 +36,13 @@
 static struct list_head mmc_devices;
 static int cur_dev_num = -1;
 
+int __board_mmc_getcd(u8 *cd, struct mmc *mmc) {
+	return -1;
+}
+
+int board_mmc_getcd(u8 *cd, struct mmc *mmc)__attribute__((weak,
+	alias("__board_mmc_getcd")));
+
 int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
 {
 	return mmc->send_cmd(mmc, cmd, data);
diff --git a/include/mmc.h b/include/mmc.h
index 2dc69abb68e9fc3c1909cbfceb894055947cd24c..8973bc76583ad5affaacfb4259c7b7f194a7f76e 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -272,6 +272,7 @@ int mmc_init(struct mmc *mmc);
 int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size);
 struct mmc *find_mmc_device(int dev_num);
 void print_mmc_devices(char separator);
+int board_mmc_getcd(u8 *cd, struct mmc *mmc);
 
 #ifndef CONFIG_GENERIC_MMC
 int mmc_legacy_init(int verbose);