diff --git a/common/tf_printf.c b/common/tf_printf.c
index c1d4188900b402bd88029fd5a59c944c3301ebfa..9a7667a5f0b025b74bb6df562c923d8d51b0f0c8 100644
--- a/common/tf_printf.c
+++ b/common/tf_printf.c
@@ -69,6 +69,7 @@ static void string_print(const char *str)
  * %ld and %lld - signed 64 bit decimal format
  * %lu and %llu - unsigned 64 bit decimal format
  * %p - pointer format
+ * %z - size_t format
  * Exits on all other formats.
  *******************************************************************/
 
@@ -124,6 +125,11 @@ loop:
 
 				unsigned_num_print(unum, 16);
 				break;
+			case 'z':
+				if (sizeof(size_t) == 8)
+					bit64 = 1;
+				fmt++;
+				goto loop;
 			case 'l':
 				bit64 = 1;
 				fmt++;