Yabel : Add tracing option needed by i915tool.
This patch was made by listenning to what Ron Minnich told me to do on #coreboot IRC channel on Freenode with my adaptations on top. i915tool is at https://code.google.com/p/i915tool/ , the one in coreboot is outdated. Change-Id: I13cd684f4c290114836fbd7babd461153e8d6124 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> Reviewed-on: http://review.coreboot.org/3277 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
parent
67f556c296
commit
4cdc5d6fc6
|
@ -902,6 +902,15 @@ config X86EMU_DEBUG_IO
|
|||
|
||||
If unsure, say N.
|
||||
|
||||
config X86EMU_DEBUG_TIMINGS
|
||||
bool "Output timing information"
|
||||
default n
|
||||
depends on X86EMU_DEBUG && UDELAY_LAPIC && HAVE_MONOTONIC_TIMER
|
||||
help
|
||||
Print timing information needed by i915tool.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config DEBUG_TPM
|
||||
bool "Output verbose TPM debug messages"
|
||||
default n
|
||||
|
|
|
@ -31,6 +31,10 @@
|
|||
#include <device/device.h>
|
||||
#include "compat/rtas.h"
|
||||
|
||||
#if CONFIG_X86EMU_DEBUG_TIMINGS
|
||||
struct mono_time zero;
|
||||
#endif
|
||||
|
||||
static X86EMU_memFuncs my_mem_funcs = {
|
||||
my_rdb, my_rdw, my_rdl,
|
||||
my_wrb, my_wrw, my_wrl
|
||||
|
@ -99,6 +103,11 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
|
|||
#endif
|
||||
|
||||
#endif
|
||||
#if CONFIG_X86EMU_DEBUG_TIMINGS
|
||||
/* required for i915tool compatible output */
|
||||
zero.microseconds = 0;
|
||||
#endif
|
||||
|
||||
if (biosmem_size < MIN_REQUIRED_VMEM_SIZE) {
|
||||
printf("Error: Not enough virtual memory: %x, required: %x!\n",
|
||||
biosmem_size, MIN_REQUIRED_VMEM_SIZE);
|
||||
|
|
|
@ -13,8 +13,12 @@
|
|||
#ifndef _BIOSEMU_DEBUG_H_
|
||||
#define _BIOSEMU_DEBUG_H_
|
||||
|
||||
#include <timer.h>
|
||||
#include <types.h>
|
||||
|
||||
#if CONFIG_X86EMU_DEBUG_TIMINGS
|
||||
extern struct mono_time zero;
|
||||
#endif
|
||||
extern u32 debug_flags;
|
||||
// from x86emu...needed for debugging
|
||||
extern void x86emu_dump_xregs(void);
|
||||
|
@ -73,7 +77,12 @@ static inline void set_ci(void) {};
|
|||
#define DEBUG_PRINTF(_x...) printf(_x);
|
||||
// prints the CS:IP before the printout, NOTE: actually its CS:IP of the _next_ instruction
|
||||
// to be executed, since the x86emu advances CS:IP _before_ actually executing an instruction
|
||||
|
||||
#if CONFIG_X86EMU_DEBUG_TIMINGS
|
||||
#define DEBUG_PRINTF_CS_IP(_x...) DEBUG_PRINTF("[%08lx]%x:%x ", (current_time_from(&zero)).microseconds, M.x86.R_CS, M.x86.R_IP); DEBUG_PRINTF(_x);
|
||||
#else
|
||||
#define DEBUG_PRINTF_CS_IP(_x...) DEBUG_PRINTF("%x:%x ", M.x86.R_CS, M.x86.R_IP); DEBUG_PRINTF(_x);
|
||||
#endif
|
||||
|
||||
#define DEBUG_PRINTF_IO(_x...) CHECK_DBG(DEBUG_IO) { DEBUG_PRINTF_CS_IP(_x) }
|
||||
#define DEBUG_PRINTF_MEM(_x...) CHECK_DBG(DEBUG_MEM) { DEBUG_PRINTF_CS_IP(_x) }
|
||||
|
|
Loading…
Reference in New Issue