summaryrefslogtreecommitdiffstats
path: root/include/debug_ll.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/debug_ll.h')
-rw-r--r--include/debug_ll.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/include/debug_ll.h b/include/debug_ll.h
index c7445731d6..f0034ba06a 100644
--- a/include/debug_ll.h
+++ b/include/debug_ll.h
@@ -1,4 +1,5 @@
-/* debug_ll.h
+/*
+ * debug_ll.h
*
* written by Marc Singer
* 12 Feb 2005
@@ -20,9 +21,16 @@
#define __INCLUDE_DEBUG_LL_H__
#if defined (CONFIG_DEBUG_LL)
+
+/*
+ * mach/debug_ll.h should implement PUTC_LL. This can be a macro or a static
+ * inline function. Note that several SoCs expect the UART to be initialized
+ * by a debugger or a first stage bootloader. You won't see anything without
+ * this initialization. Depending on the PUTC_LL implementation the board might
+ * also hang in PUTC_LL without proper initialization.
+ */
# include <mach/debug_ll.h>
-#define PUTC_LL(x) putc(x)
# define PUTHEX_LL(value) ({ unsigned long v = (unsigned long) (value); \
int i; unsigned char ch; \
for (i = 8; i--; ) {\
@@ -30,6 +38,11 @@
ch += (ch >= 10) ? 'a' - 10 : '0';\
PUTC_LL (ch); }})
+/*
+ * Be careful with PUTS_LL, it only works if the binary is running at the
+ * link address which often is not the case during early startup. If in doubt
+ * don't use it.
+ */
static __inline__ void PUTS_LL(const char * str)
{
while (*str) {