Commit c091f652 authored by Matwey V. Kornilov's avatar Matwey V. Kornilov Committed by Tom Rini
Browse files

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: default avatarMatwey V. Kornilov <matwey.kornilov@gmail.com>
Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
parent 55a202f6
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment