console: Add format-checking __printf() to die()

Code changes are necessary because `-Wformat` warns about empty
format strings by default.

Change-Id: Ic8021b70f4cd4875b06f196f88b84940c9a79fe0
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75147
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/src/device/device_util.c b/src/device/device_util.c
index c5e03f2..b37d1d9 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -405,11 +405,8 @@
 
 	/* See if there is a resource with the appropriate index. */
 	resource = probe_resource(dev, index);
-	if (!resource) {
-		printk(BIOS_EMERG, "%s missing resource: %02x\n",
-		       dev_path(dev), index);
-		die("");
-	}
+	if (!resource)
+		die("%s missing resource: %02x\n", dev_path(dev), index);
 	return resource;
 }
 
diff --git a/src/device/smbus_ops.c b/src/device/smbus_ops.c
index 12aaf99..d08965c 100644
--- a/src/device/smbus_ops.c
+++ b/src/device/smbus_ops.c
@@ -8,11 +8,8 @@
 struct bus *get_pbus_smbus(struct device *dev)
 {
 	struct bus *const pbus = i2c_link(dev);
-	if (!pbus->dev->ops->ops_smbus_bus) {
-		printk(BIOS_ALERT, "%s Cannot find SMBus bus operations",
-		       dev_path(dev));
-		die("");
-	}
+	if (!pbus->dev->ops->ops_smbus_bus)
+		die("%s Cannot find SMBus bus operations", dev_path(dev));
 	return pbus;
 }
 
diff --git a/src/include/console/console.h b/src/include/console/console.h
index c69efcd..fb257ba1 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -18,7 +18,7 @@
 void arch_post_code(u8 value);
 void soc_post_code(uint8_t value);
 
-void __noreturn die(const char *fmt, ...);
+void __noreturn __printf(1, 2) die(const char *fmt, ...);
 #define die_with_post_code(value, fmt, ...) \
 	do { post_code(value); die(fmt, ##__VA_ARGS__); } while (0)
 
diff --git a/src/soc/intel/xeon_sp/chip_common.c b/src/soc/intel/xeon_sp/chip_common.c
index f6805b2..a9b1260 100644
--- a/src/soc/intel/xeon_sp/chip_common.c
+++ b/src/soc/intel/xeon_sp/chip_common.c
@@ -40,8 +40,7 @@
 		/* both 64-bit and 32-bit use below 4GB address space */
 		return RES_TYPE_NONPREF_MEM;
 	}
-	printk(BIOS_ERR, "Invalid resource type 0x%llx\n", flags);
-	die("");
+	die("Invalid resource type 0x%llx\n", flags);
 }
 
 static bool need_assignment(uint64_t flags)