--- /dev/null
+menu "Bootloader config"
+
+choice BOOTLOADER_LOG_LEVEL
+ bool "Bootloader log verbosity"
+ default BOOTLOADER_LOG_LEVEL_NOTICE
+ help
+ Specify how much output to see in the bootloader logs.
+
+ Note that if MTDO is HIGH on reset, all early boot output
+ (including bootloader logs) are suppressed.
+config BOOTLOADER_LOG_LEVEL_NONE
+ bool "No output"
+config BOOTLOADER_LOG_LEVEL_ERROR
+ bool "Error"
+config BOOTLOADER_LOG_LEVEL_WARN
+ bool "Warning"
+config BOOTLOADER_LOG_LEVEL_INFO
+ bool "Info"
+config BOOTLOADER_LOG_LEVEL_NOTICE
+ bool "Notice"
+config BOOTLOADER_LOG_LEVEL_DEBUG
+ bool "Debug"
+endchoice
+
+config BOOTLOADER_LOG_COLORS
+ bool "Use ANSI terminal colors in bootloader log output"
+ default "y"
+ help
+ Enable ANSI terminal color codes in bootloader output.
+
+ In order to view these, your terminal program must support ANSI color codes.
+
+endmenu
{
#endif
+#include "sdkconfig.h"
+#define BOOT_LOG_LEVEL_NONE (0)
#define BOOT_LOG_LEVEL_ERROR (1)
#define BOOT_LOG_LEVEL_WARN (2)
#define BOOT_LOG_LEVEL_INFO (3)
#define BOOT_LOG_LEVEL_NOTICE (4)
#define BOOT_LOG_LEVEL_DEBUG (5)
-#define Black 0;30
-#define Red 0;31
-#define Green 0;32
-#define Brown 0;33
-#define Blue 0;34
-#define Purple 0;35
-#define Cyan 0;36
+#define Black "30"
+#define Red "31"
+#define Green "32"
+#define Brown "33"
+#define Blue "34"
+#define Purple "35"
+#define Cyan "36"
-// TODO: move BOOT_LOG_LEVEL into menuconfig
-//#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_ERROR
-#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_NOTICE
+#if CONFIG_BOOTLOADER_LOG_COLORS
+#define LOG_COLOR(COLOR) "\033[0;"COLOR"m"
+#define LOG_BOLD(COLOR) "\033[1;"COLOR"m"
+#define LOG_RESET_COLOR "\033[0m"
+#else
+#define LOG_COLOR(...)
+#define LOG_BOLD(...)
+#define LOG_RESET_COLOR ""
+#endif
+
+// BOOT_LOG_LEVEL defined by make menuconfig
+#if CONFIG_BOOTLOADER_LOG_LEVEL_NONE
+#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_NONE
+#elif CONFIG_BOOTLOADER_LOG_LEVEL_ERROR
+#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_ERROR
+#elif CONFIG_BOOTLOADER_LOG_LEVEL_WARN
+#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_WARN
+#elif CONFIG_BOOTLOADER_LOG_LEVEL_INFO
+#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_INFO
+#elif CONFIG_BOOTLOADER_LOG_LEVEL_NOTICE
+#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_NOTICE
+#elif CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG
+#define BOOT_LOG_LEVEL BOOT_LOG_LEVEL_DEBUG
+#else
+#error "No bootloader log level set in menuconfig!"
+#endif
//printf("\033[0;36m[NOTICE][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#define log_notice(format, ...) \
do{\
if(BOOT_LOG_LEVEL >= BOOT_LOG_LEVEL_NOTICE){\
- ets_printf("\033[0;36m" format "\r\n", ##__VA_ARGS__);\
- ets_printf("\033[0m"); \
+ ets_printf(LOG_COLOR(Cyan) format "\r\n", ##__VA_ARGS__); \
+ ets_printf(LOG_RESET_COLOR); \
}\
}while(0)
#define log_info(format, ...) \
do{\
if(BOOT_LOG_LEVEL >= BOOT_LOG_LEVEL_INFO){\
- ets_printf("\033[1;36m" format "\r\n", ##__VA_ARGS__);\
- ets_printf("\033[0m"); \
+ ets_printf(LOG_BOLD(Cyan) format "\r\n", ##__VA_ARGS__); \
+ ets_printf(LOG_RESET_COLOR); \
}\
}while(0)
#define log_error(format, ...) \
do{\
if(BOOT_LOG_LEVEL >= BOOT_LOG_LEVEL_ERROR){\
- ets_printf("\033[0;31m[ERROR][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
- ets_printf("\033[0m"); \
+ ets_printf(LOG_COLOR(Red) "[ERROR][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+ ets_printf(LOG_RESET_COLOR); \
}\
}while(0)
#define log_warn(format, ...) \
do{\
if(BOOT_LOG_LEVEL >= BOOT_LOG_LEVEL_WARN){\
- ets_printf("\033[1;33m[WARN][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
- ets_printf("\033[0m"); \
+ ets_printf(LOG_BOLD(Brown) "[WARN][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+ ets_printf(LOG_RESET_COLOR); \
}\
}while(0)
#define log_debug(format, ...) \
do{\
if(BOOT_LOG_LEVEL >= BOOT_LOG_LEVEL_DEBUG){\
- ets_printf("\033[1;32m[DEBUG][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
- ets_printf("\033[0m"); \
+ ets_printf(LOG_BOLD(Green) "[DEBUG][%s][%s][%d]\n" format "\r\n", __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+ ets_printf(LOG_RESET_COLOR); \
}\
}while(0)
}
#endif
-#endif /* __BOOT_LOGGING_H__ */
\ No newline at end of file
+#endif /* __BOOT_LOGGING_H__ */