@ -10,6 +10,8 @@
# include <dm.h>
# include <log.h>
static char log_fmt_chars [ LOGF_COUNT ] = " clFLfm " ;
static int do_log_level ( cmd_tbl_t * cmdtp , int flag , int argc ,
char * const argv [ ] )
{
@ -21,11 +23,48 @@ static int do_log_level(cmd_tbl_t *cmdtp, int flag, int argc,
return 0 ;
}
static int do_log_format ( cmd_tbl_t * cmdtp , int flag , int argc ,
char * const argv [ ] )
{
int i ;
if ( argc > 1 ) {
const char * str = argv [ 1 ] ;
if ( ! strcmp ( str , " default " ) ) {
gd - > log_fmt = LOGF_DEFAULT ;
} else if ( ! strcmp ( str , " all " ) ) {
gd - > log_fmt = LOGF_ALL ;
} else {
gd - > log_fmt = 0 ;
for ( ; * str ; str + + ) {
char * ptr = strchr ( log_fmt_chars , * str ) ;
if ( ! ptr ) {
printf ( " Invalid log char '%c' \n " , * str ) ;
return CMD_RET_FAILURE ;
}
gd - > log_fmt | = 1 < < ( ptr - log_fmt_chars ) ;
}
}
} else {
printf ( " Log format: " ) ;
for ( i = 0 ; i < LOGF_COUNT ; i + + ) {
if ( gd - > log_fmt & ( 1 < < i ) )
printf ( " %c " , log_fmt_chars [ i ] ) ;
}
printf ( " \n " ) ;
}
return 0 ;
}
static cmd_tbl_t log_sub [ ] = {
U_BOOT_CMD_MKENT ( level , CONFIG_SYS_MAXARGS , 1 , do_log_level , " " , " " ) ,
# ifdef CONFIG_LOG_TEST
U_BOOT_CMD_MKENT ( test , 2 , 1 , do_log_test , " " , " " ) ,
# endif
U_BOOT_CMD_MKENT ( format , CONFIG_SYS_MAXARGS , 1 , do_log_format , " " , " " ) ,
} ;
static int do_log ( cmd_tbl_t * cmdtp , int flag , int argc , char * const argv [ ] )
@ -52,6 +91,10 @@ static char log_help_text[] =
# ifdef CONFIG_LOG_TEST
" log test - run log tests \n "
# endif
" log format <fmt> - set log output format. <fmt> is a string where \n "
" \t each letter indicates something that should be displayed: \n "
" \t c=category, l=level, F=file, L=line number, f=function, m=msg \n "
" \t or 'default', equivalent to 'fm', or 'all' for all "
;
# endif