[PATCH v2 4/7] drivers: firmware: ti_sci: Get SCI revision only if TIFS/SYSFW is up

Neha Malcom Francis n-francis at ti.com
Thu Sep 7 16:14:04 CEST 2023


While setting up necessary dependent clocks and power domains, we end up
probing the ti_sci driver before TIFS/SYSFW has been loaded in the case
of legacy boot flow devices. This leads to panic when getting the SCI
revision. Return the revision only if it is combined boot flow. Also
ensure that after TIFS/SYSFW comes up we run ti_sci_cmd_get_revision
again so we print the revision right.

Signed-off-by: Neha Malcom Francis <n-francis at ti.com>
---
 drivers/firmware/ti_sci.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c
index 72f572d824..6a85d202f2 100644
--- a/drivers/firmware/ti_sci.c
+++ b/drivers/firmware/ti_sci.c
@@ -2703,6 +2703,9 @@ struct ti_sci_handle *ti_sci_get_handle_from_sysfw(struct udevice *sci_dev)
 	if (!handle)
 		return ERR_PTR(-EINVAL);
 
+	/* May have been skipped in case TIFS/SYSFW had come up later */
+	ti_sci_cmd_get_revision(handle);
+
 	return handle;
 }
 
@@ -2825,7 +2828,11 @@ static int ti_sci_probe(struct udevice *dev)
 	list_add_tail(&info->list, &ti_sci_list);
 	ti_sci_setup_ops(info);
 
-	ret = ti_sci_cmd_get_revision(&info->handle);
+	/* Get SCI revision ONLY if we are real */
+	if (!IS_ENABLED(CONFIG_K3_DM_FW))
+		ret = ti_sci_cmd_get_revision(&info->handle);
+	else
+		ret = 0;
 
 	INIT_LIST_HEAD(&info->dev_list);
 
-- 
2.34.1



More information about the U-Boot mailing list