diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 545cfecc12b0e52ad8e2fd0852e6d01e3806e64a..4233d36b72288c7fb611826aacc65eff2892693a 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -373,6 +373,9 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		saddr = argv[1];
 
 		addr = simple_strtoul(saddr, NULL, 16);
+		/* Check that a numeric value was passed */
+		if (!addr && *saddr != '0')
+			return CMD_RET_USAGE;
 
 		if (argc > 2) {
 			sfdt = argv[2];