diff --git a/boot/bootdev-uclass.c b/boot/bootdev-uclass.c
index 97f75cb..0ef3daf 100644
--- a/boot/bootdev-uclass.c
+++ b/boot/bootdev-uclass.c
@@ -450,14 +450,37 @@
 	return 0;
 }
 
+static int default_get_bootflow(struct udevice *dev, struct bootflow_iter *iter,
+				struct bootflow *bflow)
+{
+	struct udevice *blk;
+	int ret;
+
+	ret = bootdev_get_sibling_blk(dev, &blk);
+	/*
+	 * If there is no media, indicate that no more partitions should be
+	 * checked
+	 */
+	if (ret == -EOPNOTSUPP)
+		ret = -ESHUTDOWN;
+	if (ret)
+		return log_msg_ret("blk", ret);
+	assert(blk);
+	ret = bootdev_find_in_blk(dev, blk, iter, bflow);
+	if (ret)
+		return log_msg_ret("find", ret);
+
+	return 0;
+}
+
 int bootdev_get_bootflow(struct udevice *dev, struct bootflow_iter *iter,
 			 struct bootflow *bflow)
 {
 	const struct bootdev_ops *ops = bootdev_get_ops(dev);
 
-	if (!ops->get_bootflow)
-		return -ENOSYS;
 	bootflow_init(bflow, dev, iter->method);
+	if (!ops->get_bootflow)
+		return default_get_bootflow(dev, iter, bflow);
 
 	return ops->get_bootflow(dev, iter, bflow);
 }
diff --git a/drivers/mmc/mmc_bootdev.c b/drivers/mmc/mmc_bootdev.c
index b4f41fb..037b67b 100644
--- a/drivers/mmc/mmc_bootdev.c
+++ b/drivers/mmc/mmc_bootdev.c
@@ -11,30 +11,6 @@
 #include <dm.h>
 #include <mmc.h>
 
-static int mmc_get_bootflow(struct udevice *dev, struct bootflow_iter *iter,
-			    struct bootflow *bflow)
-{
-	struct udevice *mmc_dev = dev_get_parent(dev);
-	struct udevice *blk;
-	int ret;
-
-	ret = mmc_get_blk(mmc_dev, &blk);
-	/*
-	 * If there is no media, indicate that no more partitions should be
-	 * checked
-	 */
-	if (ret == -EOPNOTSUPP)
-		ret = -ESHUTDOWN;
-	if (ret)
-		return log_msg_ret("blk", ret);
-	assert(blk);
-	ret = bootdev_find_in_blk(dev, blk, iter, bflow);
-	if (ret)
-		return log_msg_ret("find", ret);
-
-	return 0;
-}
-
 static int mmc_bootdev_bind(struct udevice *dev)
 {
 	struct bootdev_uc_plat *ucp = dev_get_uclass_plat(dev);
@@ -45,7 +21,6 @@
 }
 
 struct bootdev_ops mmc_bootdev_ops = {
-	.get_bootflow	= mmc_get_bootflow,
 };
 
 static const struct udevice_id mmc_bootdev_ids[] = {
diff --git a/drivers/usb/host/usb_bootdev.c b/drivers/usb/host/usb_bootdev.c
index b85f699..b2d157f 100644
--- a/drivers/usb/host/usb_bootdev.c
+++ b/drivers/usb/host/usb_bootdev.c
@@ -11,29 +11,6 @@
 #include <dm.h>
 #include <usb.h>
 
-static int usb_get_bootflow(struct udevice *dev, struct bootflow_iter *iter,
-			    struct bootflow *bflow)
-{
-	struct udevice *blk;
-	int ret;
-
-	ret = bootdev_get_sibling_blk(dev, &blk);
-	/*
-	 * If there is no media, indicate that no more partitions should be
-	 * checked
-	 */
-	if (ret == -EOPNOTSUPP)
-		ret = -ESHUTDOWN;
-	if (ret)
-		return log_msg_ret("blk", ret);
-	assert(blk);
-	ret = bootdev_find_in_blk(dev, blk, iter, bflow);
-	if (ret)
-		return log_msg_ret("find", ret);
-
-	return 0;
-}
-
 static int usb_bootdev_bind(struct udevice *dev)
 {
 	struct bootdev_uc_plat *ucp = dev_get_uclass_plat(dev);
@@ -44,7 +21,6 @@
 }
 
 struct bootdev_ops usb_bootdev_ops = {
-	.get_bootflow	= usb_get_bootflow,
 };
 
 static const struct udevice_id usb_bootdev_ids[] = {
diff --git a/include/bootdev.h b/include/bootdev.h
index d0ca51c..1e91d41 100644
--- a/include/bootdev.h
+++ b/include/bootdev.h
@@ -50,7 +50,10 @@
 /** struct bootdev_ops - Operations for the bootdev uclass */
 struct bootdev_ops {
 	/**
-	 * get_bootflow() - get a bootflow
+	 * get_bootflow() - get a bootflow (optional)
+	 *
+	 * If this is NULL then the default implementaton is used, which is
+	 * default_get_bootflow()
 	 *
 	 * @dev:	Bootflow device to check
 	 * @iter:	Provides current dev, part, method to get. Should update
