[PATCH v6 5/8] soc: qcom: cmd-db: Allow boot without CMD DB data
Balaji Selvanathan via U-Boot <[email protected]> Mon, 03 Aug 2026 21:28:50 +0530
| Newsgroups | gmane.comp.boot-loaders.u-boot |
|---|---|
| Message-ID | <[email protected]> |
In snagboot mode, XBL loads U-Boot directly without populating CMD DB. The cmd-db driver fails to bind when CMD DB magic is invalid, blocking boot even when CMD DB is not strictly required. Use QCOM_SNAGBOOT_MODE config to allow the driver to bind successfully when CMD DB data is absent. When QCOM_SNAGBOOT_MODE is enabled and CMD DB data is present, we log a warning. Signed-off-by: Balaji Selvanathan <[email protected]> --- Changes in v5: - Remove QCOM_COMMAND_DB_OPTIONAL definition from Kconfig as its now not used Changes in v4: - Removed QCOM_COMMAND_DB_OPTIONAL as now we use CONFIG_QCOM_SNAGBOOT_MODE - Drop these warnings if snagboot mode is enabled since that's the expected case - Log a warning if snagboot is enabled and we do have a valid cmd-db, since that isn't an expected usecase Changes in v3: - Used "if (IS_ENABLED(CONFIG_QCOM_COMMAND_DB_OPTIONAL))" instead of #ifdef Changes in v2: - No changes --- drivers/soc/qcom/cmd-db.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/cmd-db.c b/drivers/soc/qcom/cmd-db.c index d0a6047b8a6..c94a90a2903 100644 --- a/drivers/soc/qcom/cmd-db.c +++ b/drivers/soc/qcom/cmd-db.c @@ -252,8 +252,19 @@ static int cmd_db_bind(struct udevice *dev) cmd_db_header = base; if (!cmd_db_magic_matches(cmd_db_header)) { - log_err("%s: Invalid Command DB Magic\n", __func__); - return -EINVAL; + if (IS_ENABLED(CONFIG_QCOM_SNAGBOOT_MODE)) { + /* Missing CMD DB is expected in snagboot mode */ + cmd_db_header = NULL; + return 0; + } else { + log_err("%s: Invalid Command DB Magic\n", __func__); + return -EINVAL; + } + } + + if (IS_ENABLED(CONFIG_QCOM_SNAGBOOT_MODE)) { + log_warning("%s: CMD DB found in snagboot mode - this is unexpected\n", + __func__); } return 0; -- 2.34.1