[coreboot-gerrit] Patch set updated for coreboot: 434099c Yabel : Add tracing option needed by i915tool.

Denis Carikli (GNUtoo@no-log.org) gerrit at coreboot.org
Tue Jun 4 04:56:38 CEST 2013


Denis Carikli (GNUtoo at no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3277

-gerrit

commit 434099c7480af2298e239803f50f9c13151b845c
Author: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
Date:   Wed May 15 00:19:49 2013 +0200

    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 at no-log.org>
---
 src/Kconfig                      | 9 +++++++++
 src/device/oprom/yabel/biosemu.c | 9 +++++++++
 src/device/oprom/yabel/debug.h   | 9 +++++++++
 src/device/oprom/yabel/io.c      | 1 +
 4 files changed, 28 insertions(+)

diff --git a/src/Kconfig b/src/Kconfig
index 24de7d2..7eeadd8 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -902,6 +902,15 @@ config X86EMU_DEBUG_IO
 
 	  If unsure, say N.
 
+config X86EMU_DEBUG_TIMINGS
+	bool "Output timing informations"
+	default n
+	depends on X86EMU_DEBUG && UDELAY_LAPIC && LAPIC_MONOTONIC_TIMER
+	help
+	  Print Timing informations. This is needed by i915tool.
+
+	  If unsure, say N.
+
 config DEBUG_TPM
 	bool "Output verbose TPM debug messages"
 	default n
diff --git a/src/device/oprom/yabel/biosemu.c b/src/device/oprom/yabel/biosemu.c
index 2a2ca31..f42d4e1 100644
--- a/src/device/oprom/yabel/biosemu.c
+++ b/src/device/oprom/yabel/biosemu.c
@@ -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);
diff --git a/src/device/oprom/yabel/debug.h b/src/device/oprom/yabel/debug.h
index 9361553..2e714a3 100644
--- a/src/device/oprom/yabel/debug.h
+++ b/src/device/oprom/yabel/debug.h
@@ -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) }
diff --git a/src/device/oprom/yabel/io.c b/src/device/oprom/yabel/io.c
index d1172dc..1142333 100644
--- a/src/device/oprom/yabel/io.c
+++ b/src/device/oprom/yabel/io.c
@@ -12,6 +12,7 @@
  *****************************************************************************/
 
 #include <types.h>
+#include <delay.h>
 #include "compat/rtas.h"
 #include "compat/time.h"
 #include "device.h"



More information about the coreboot-gerrit mailing list