summaryrefslogtreecommitdiff
path: root/lib/aarch64
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2016-01-19 17:52:28 +0000
committerSoby Mathew <soby.mathew@arm.com>2016-02-01 10:10:09 +0000
commitd30ac1c36f79588e7384cc56c69f885147a4286f (patch)
treede065c02470d752eaddddc4df77fbb491f48f5fe /lib/aarch64
parent870d881ced126bd492fe96f6a7bedd0d869dd23a (diff)
Use tf_printf() for debug logs from xlat_tables.c
The debug prints used to debug translation table setup in xlat_tables.c used the `printf()` standard library function instead of the stack optimized `tf_printf()` API. DEBUG_XLAT_TABLE option was used to enable debug logs within xlat_tables.c and it configured a much larger stack size for the platform in case it was enabled. This patch modifies these debug prints within xlat_tables.c to use tf_printf() and modifies the format specifiers to be compatible with tf_printf(). The debug prints are now enabled if the VERBOSE prints are enabled in Trusted Firmware via LOG_LEVEL build option. The much larger stack size definition when DEBUG_XLAT_TABLE is defined is no longer required and the platform ports are modified to remove this stack size definition. Change-Id: I2f7d77ea12a04b827fa15e2adc3125b1175e4c23
Diffstat (limited to 'lib/aarch64')
-rw-r--r--lib/aarch64/xlat_tables.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/aarch64/xlat_tables.c b/lib/aarch64/xlat_tables.c
index b00dc0be..2f2ca814 100644
--- a/lib/aarch64/xlat_tables.c
+++ b/lib/aarch64/xlat_tables.c
@@ -33,17 +33,21 @@
#include <assert.h>
#include <bl_common.h>
#include <cassert.h>
+#include <debug.h>
#include <platform_def.h>
#include <string.h>
#include <xlat_tables.h>
-
-#ifndef DEBUG_XLAT_TABLE
-#define DEBUG_XLAT_TABLE 0
-#endif
-
-#if DEBUG_XLAT_TABLE
-#define debug_print(...) printf(__VA_ARGS__)
+#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
+#define LVL0_SPACER ""
+#define LVL1_SPACER " "
+#define LVL2_SPACER " "
+#define LVL3_SPACER " "
+#define get_level_spacer(level) \
+ (((level) == 0) ? LVL0_SPACER : \
+ (((level) == 1) ? LVL1_SPACER : \
+ (((level) == 2) ? LVL2_SPACER : LVL3_SPACER)))
+#define debug_print(...) tf_printf(__VA_ARGS__)
#else
#define debug_print(...) ((void)0)
#endif
@@ -74,12 +78,12 @@ static mmap_region_t mmap[MAX_MMAP_REGIONS + 1];
static void print_mmap(void)
{
-#if DEBUG_XLAT_TABLE
+#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
debug_print("mmap:\n");
mmap_region_t *mm = mmap;
while (mm->size) {
- debug_print(" %010lx %010lx %10lx %x\n", mm->base_va,
- mm->base_pa, mm->size, mm->attr);
+ debug_print(" VA:0x%lx PA:0x%lx size:0x%lx attr:0x%x\n",
+ mm->base_va, mm->base_pa, mm->size, mm->attr);
++mm;
};
debug_print("\n");
@@ -209,8 +213,8 @@ static mmap_region_t *init_xlation_table(mmap_region_t *mm,
continue;
}
- debug_print(" %010lx %8lx " + 6 - 2 * level, base_va,
- level_size);
+ debug_print("%s VA:0x%lx size:0x%x ", get_level_spacer(level),
+ base_va, level_size);
if (mm->base_va >= base_va + level_size) {
/* Next region is after area so nothing to map yet */