From a953f371ddc0cebf2b3b9d1eebeb857e0567c709 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Wed, 10 Nov 2010 00:14:32 +0000 Subject: Debugging facility improvements. - Hook up malloc() debug code via CONFIG_DEBUG_MALLOC. Only show it in menuconfig if at least DEBUG or SPEW are selected as loglevel, as this code does additional printk(BIOS_DEBUG, ...) calls which would otherwise not be visible anyway. - Similarly, make DEBUG_CAR and REALMODE_DEBUG only visible if thr DEBUG or SPEW loglevel is selected. - Get rid of a custom "debug" macro, use printk() as usual. Signed-off-by: Uwe Hermann Acked-by: Peter Stuge git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6054 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/Kconfig | 23 +++++++++++++++++++++-- src/lib/cbmem.c | 17 +++++++---------- src/lib/malloc.c | 7 ++++--- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/Kconfig b/src/Kconfig index a61efe1a8e..b25a19e044 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -502,10 +502,13 @@ config DEBUG_RAM_SETUP config HAVE_DEBUG_CAR def_bool n +# Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional +# printk(BIOS_DEBUG, ...) calls. config DEBUG_CAR bool "Output verbose Cache-as-RAM debug messages" default n - depends on HAVE_DEBUG_CAR + depends on HAVE_DEBUG_CAR && \ + (DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8) help This option enables additional CAR related debug messages. @@ -553,10 +556,26 @@ config DEBUG_SMM_RELOCATION If unsure, say N. +# Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional +# printk(BIOS_DEBUG, ...) calls. +config DEBUG_MALLOC + bool "Output verbose malloc debug messages" + default n + depends on DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8 + help + This option enables additional malloc related debug messages. + + Note: This option will increase the size of the coreboot image. + + If unsure, say N. + +# Only visible if debug level is DEBUG (7) or SPEW (8) as it does additional +# printk(BIOS_DEBUG, ...) calls. config REALMODE_DEBUG bool "Enable debug messages for option ROM execution" default n - depends on PCI_OPTION_ROM_RUN_REALMODE + depends on PCI_OPTION_ROM_RUN_REALMODE && \ + (DEFAULT_CONSOLE_LOGLEVEL_7 || DEFAULT_CONSOLE_LOGLEVEL_8) help This option enables additional x86emu related debug messages. diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c index 7e3e20123a..5490a1fef6 100644 --- a/src/lib/cbmem.c +++ b/src/lib/cbmem.c @@ -22,12 +22,6 @@ #include #include -#if 1 -#define debug(x...) printk(BIOS_DEBUG, x) -#else -#define debug(x...) -#endif - // The CBMEM TOC reserves 512 bytes to keep // the other entries somewhat aligned. // Increase if MAX_CBMEM_ENTRIES exceeds 21 @@ -68,10 +62,11 @@ void cbmem_init(u64 baseaddr, u64 size) bss_cbmem_toc = cbmem_toc; #endif - debug("Initializing CBMEM area to 0x%llx (%lld bytes)\n", baseaddr, size); + printk(BIOS_DEBUG, "Initializing CBMEM area to 0x%llx (%lld bytes)\n", + baseaddr, size); if (size < (64 * 1024)) { - debug("Increase CBMEM size!!\n"); + printk(BIOS_DEBUG, "Increase CBMEM size!\n"); for (;;) ; } @@ -90,7 +85,9 @@ int cbmem_reinit(u64 baseaddr) struct cbmem_entry *cbmem_toc; cbmem_toc = (struct cbmem_entry *)(unsigned long)baseaddr; - debug("Re-Initializing CBMEM area to 0x%lx\n", (unsigned long)baseaddr); + printk(BIOS_DEBUG, "Re-Initializing CBMEM area to 0x%lx\n", + (unsigned long)baseaddr); + #ifndef __PRE_RAM__ bss_cbmem_toc = cbmem_toc; #endif @@ -135,7 +132,7 @@ void *cbmem_add(u32 id, u64 size) return NULL; } - debug("Adding CBMEM entry as no. %d\n", i); + printk(BIOS_DEBUG, "Adding CBMEM entry as no. %d\n", i); cbmem_toc[i] = (struct cbmem_entry) { .magic = CBMEM_MAGIC, diff --git a/src/lib/malloc.c b/src/lib/malloc.c index 2ed23ad795..ac038ecd44 100644 --- a/src/lib/malloc.c +++ b/src/lib/malloc.c @@ -1,11 +1,12 @@ #include #include -#if 0 -#define MALLOCDBG(x) -#else +#if CONFIG_DEBUG_MALLOC #define MALLOCDBG(x...) printk(BIOS_SPEW, x) +#else +#define MALLOCDBG(x) #endif + extern unsigned char _heap, _eheap; static void *free_mem_ptr = &_heap; /* Start of heap */ static void *free_mem_end_ptr = &_eheap; /* End of heap */ -- cgit v1.2.3