diff --git a/drivers/core/device.c b/drivers/core/device.c index d9ce546c0c..56b96b9b43 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -36,6 +36,14 @@ DECLARE_GLOBAL_DATA_PTR; +static int dummy_post_bind(struct udevice *dev) +{ + if (ofnode_pre_reloc(dev_ofnode(dev))) + dev_or_flags(dev, DM_FLAG_PRE_RELOC); + + return 0; +} + static int device_bind_common(struct udevice *parent, const struct driver *drv, const char *name, void *plat, ulong driver_data, ofnode node, @@ -178,6 +186,10 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv, ret = uc->uc_drv->post_bind(dev); if (ret) goto fail_uclass_post_bind; + } else { + ret = dummy_post_bind(dev); + if (ret) + goto fail_uclass_post_bind; } if (parent)