aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatwey V. Kornilov2021-08-05 22:06:05 +0300
committerTom Rini2021-08-21 18:23:02 -0400
commitc091f65234cfed79cfe738a7a6e0e1bd574ba9e2 (patch)
tree0c2ea50a76f369c7d0c34091820eadf42e4c980f
parent55a202f64b1537f1cdbd0486cde10a5b6d4eef3c (diff)
tiny-printf: Handle %pM format when CONFIG_SPL_NET_SUPPORT is enabled
%pM format string is used to print MAC-address and this is required while SPL network boot. This patch fixes the SPL boot issues like the following: Trying to boot from USB eth ## Error: flags type check failure for "ethaddr" <= "40309614M" (type: m) ## Error inserting "ethaddr" variable, errno=1 eth0: eth_cpsw## Error: flags type check failure for "eth1addr" <= "81f01114M" (type: m) ## Error inserting "eth1addr" variable, errno=1 , eth1: usb_ether eth_cpsw Waiting for PHY auto negotiation to complete......... TIMEOUT ! Problem booting with BOOTP SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ### Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--lib/tiny-printf.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/lib/tiny-printf.c b/lib/tiny-printf.c
index 8fc7e48d994..89aaa854771 100644
--- a/lib/tiny-printf.c
+++ b/lib/tiny-printf.c
@@ -9,8 +9,9 @@
*/
#include <common.h>
-#include <stdarg.h>
+#include <log.h>
#include <serial.h>
+#include <stdarg.h>
#include <linux/ctype.h>
struct printf_info {
@@ -269,20 +270,19 @@ static int _vprintf(struct printf_info *info, const char *fmt, va_list va)
}
break;
case 'p':
-#ifdef DEBUG
- pointer(info, fmt, va_arg(va, void *));
- /*
- * Skip this because it pulls in _ctype which is
- * 256 bytes, and we don't generally implement
- * pointer anyway
- */
- while (isalnum(fmt[0]))
- fmt++;
- break;
-#else
+ if (CONFIG_IS_ENABLED(NET_SUPPORT) || _DEBUG) {
+ pointer(info, fmt, va_arg(va, void *));
+ /*
+ * Skip this because it pulls in _ctype which is
+ * 256 bytes, and we don't generally implement
+ * pointer anyway
+ */
+ while (isalnum(fmt[0]))
+ fmt++;
+ break;
+ }
islong = true;
/* no break */
-#endif
case 'x':
if (islong) {
num = va_arg(va, unsigned long);