This patch is from 2009-10-20
authorUwe Hermann <uwe@hermann-uwe.de>
Fri, 5 Mar 2010 10:03:50 +0000 (10:03 +0000)
committerStefan Reinauer <stepan@openbios.org>
Fri, 5 Mar 2010 10:03:50 +0000 (10:03 +0000)
Convert all DEBUG_SMBUS, DEBUG_SMI, and DEBUG_RAM_SETUP custom and
local #defines into globally configurable kconfig options (and Options.lb
options for as long as newconfig still exists) which can be enabled
by the user in the "Debugging" menu.

The respective menu items only appear if a board is selected where the
chipset code actually provides such additional DEBUG output.

All three variables default to 0 / off for now.

Also, drop a small chunk of dead/useless code in the
src/northbridge/via/cn700/raminit.c file, which would otherwise break
compilation.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Reworked to still apply to trunk, added X86EMU_DEBUG (and make the x86emu/yabel
code only work printf instead of a redefined version of printk and
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5185 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

54 files changed:
src/Kconfig
src/console/printk.c
src/cpu/x86/smm/smihandler.c
src/cpu/x86/smm/smiutil.c
src/devices/Kconfig
src/mainboard/amd/dbm690t/romstage.c
src/mainboard/amd/pistachio/romstage.c
src/mainboard/amd/serengeti_cheetah_fam10/romstage.c
src/mainboard/asus/a8n_e/romstage.c
src/mainboard/asus/a8v-e_se/romstage.c
src/mainboard/asus/m2v-mx_se/romstage.c
src/mainboard/kontron/986lcd-m/romstage.c
src/mainboard/msi/ms7135/romstage.c
src/mainboard/msi/ms7260/romstage.c
src/mainboard/msi/ms9185/romstage.c
src/mainboard/msi/ms9282/romstage.c
src/northbridge/amd/amdfam10/debug.c
src/northbridge/amd/amdfam10/raminit_amdmct.c
src/northbridge/amd/amdk8/debug.c
src/northbridge/amd/amdk8/raminit_f.c
src/northbridge/intel/e7501/raminit.c
src/northbridge/intel/i440bx/raminit.c
src/northbridge/intel/i82810/raminit.c
src/northbridge/intel/i82830/raminit.c
src/northbridge/intel/i945/raminit.c
src/northbridge/via/cn700/raminit.c
src/northbridge/via/cx700/cx700_early_smbus.c
src/northbridge/via/cx700/raminit.c
src/northbridge/via/vx800/raminit.c
src/northbridge/via/vx800/vx800_early_smbus.c
src/southbridge/intel/i82801gx/i82801gx_smihandler.c
src/southbridge/via/vt8237r/vt8237r.h
util/x86emu/include/x86emu/fpu_regs.h
util/x86emu/include/x86emu/regs.h
util/x86emu/include/x86emu/x86emu.h
util/x86emu/x86.c
util/x86emu/x86_interrupts.c
util/x86emu/x86emu/debug.c
util/x86emu/x86emu/debug.h
util/x86emu/x86emu/decode.c
util/x86emu/x86emu/fpu.c
util/x86emu/x86emu/ops.c
util/x86emu/x86emu/ops2.c
util/x86emu/x86emu/sys.c
util/x86emu/x86emu/x86emui.h
util/x86emu/yabel/biosemu.c
util/x86emu/yabel/biosemu.h
util/x86emu/yabel/compat/functions.c
util/x86emu/yabel/debug.h
util/x86emu/yabel/device.c
util/x86emu/yabel/interrupt.c
util/x86emu/yabel/io.c
util/x86emu/yabel/mem.c
util/x86emu/yabel/vbe.c

index 266267ca145edd962055441a270d21acca2210d5..96413ffd3f012969e7987b099cec4c61c01f2143 100644 (file)
@@ -609,6 +609,190 @@ config GDB_STUB
          If enabled, you will be able to set breakpoints for gdb debugging.
          See src/arch/i386/lib/c_start.S for details.
 
+config DEBUG_RAM_SETUP
+       bool "Output verbose RAM init debug messages"
+       default n
+       depends on (NORTHBRIDGE_AMD_AMDFAM10 \
+                || NORTHBRIDGE_AMD_AMDK8 \
+                || NORTHBRIDGE_VIA_CN700 \
+                || NORTHBRIDGE_VIA_CX700 \
+                || NORTHBRIDGE_VIA_VX800 \
+                || NORTHBRIDGE_INTEL_E7501 \
+                || NORTHBRIDGE_INTEL_I440BX \
+                || NORTHBRIDGE_INTEL_I82810 \
+                || NORTHBRIDGE_INTEL_I82830 \
+                || NORTHBRIDGE_INTEL_I945)
+       help
+         This option enables additional RAM init related debug messages.
+         It is recommended to enable this when debugging issues on your
+         board which might be RAM init related.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config DEBUG_SMBUS
+       bool "Output verbose SMBus debug messages"
+       default n
+       depends on (SOUTHBRIDGE_VIA_VT8237R \
+                || NORTHBRIDGE_VIA_VX800 \
+                || NORTHBRIDGE_VIA_CX700 \
+                || NORTHBRIDGE_AMD_AMDK8)
+       help
+         This option enables additional SMBus (and SPD) debug messages.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config DEBUG_SMI
+       bool "Output verbose SMI debug messages"
+       default n
+       depends on HAVE_SMI_HANDLER
+       help
+         This option enables additional SMI related debug messages.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG
+       bool "Output verbose x86emu debug messages"
+       default n
+       depends on PCI_OPTION_ROM_RUN_YABEL
+       help
+         This option enables additional x86emu related debug messages.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_JMP
+       bool "Trace JMP/RETF"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print information about JMP and RETF opcodes from x86emu.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_TRACE
+       bool "Trace all opcodes"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print _all_ opcodes that are executed by x86emu.
+         
+         WARNING: This will produce a LOT of output and take a long time.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_PNP
+       bool "Log Plug&Play accesses"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print Plug And Play accesses made by option ROMs.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_DISK
+       bool "Log Disk I/O"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print Disk I/O related messages.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_PMM
+       bool "Log PMM"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print messages related to POST Memory Manager (PMM).
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+
+config X86EMU_DEBUG_VBE
+       bool "Debug VESA BIOS Extensions"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print messages related to VESA BIOS Extension (VBE) functions.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_INT10
+       bool "Redirect INT10 output to console"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Let INT10 (i.e. character output) calls print messages to debug output.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_INTERRUPTS
+       bool "Log intXX calls"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print messages related to interrupt handling.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_CHECK_VMEM_ACCESS
+       bool "Log special memory accesses"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print messages related to accesses to certain areas of the virtual
+         memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_MEM
+       bool "Log all memory accesses"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print memory accesses made by option ROM.
+         Note: This also includes accesses to fetch instructions.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
+config X86EMU_DEBUG_IO
+       bool "Log IO accesses"
+       default n
+       depends on X86EMU_DEBUG
+       help
+         Print I/O accesses made by option ROM.
+
+         Note: This option will increase the size of the coreboot image.
+
+         If unsure, say N.
+
 endmenu
 
 config LIFT_BSP_APIC_ID
index e06468236c4bc62f6c47f1e03e241180d287d769..886e2cfa727061733e4b5daf7a118a577cdf4f72 100644 (file)
@@ -19,8 +19,6 @@
 /* Keep together for sysctl support */
 
 int console_loglevel = CONFIG_DEFAULT_CONSOLE_LOGLEVEL;
-int default_message_loglevel = DEFAULT_MESSAGE_LOGLEVEL;
-int minimum_console_loglevel = MINIMUM_CONSOLE_LOGLEVEL;
 int default_console_loglevel = CONFIG_DEFAULT_CONSOLE_LOGLEVEL;
 
 DECLARE_SPIN_LOCK(console_lock)
index dea0262dcd9c98eae409555f2be4305c9c916cc4..00cae1005f9133d3646e46852bb17e73b1beabc6 100644 (file)
@@ -27,8 +27,6 @@
 
 void southbridge_smi_set_eos(void);
 
-/* To enable SMI define DEBUG_SMI in smiutil.c */
-
 typedef enum { SMI_LOCKED, SMI_UNLOCKED } smi_semaphore;
 
 /* SMI multiprocessing semaphore */
index 95453e8224129f8af24139be0dca54d57013584e..1baaecf2a1c2224d844b8fd65d9c0a9631f3d1ea 100644 (file)
@@ -25,8 +25,6 @@
 #include <cpu/x86/cache.h>
 #include <cpu/x86/smm.h>
 
-// #define DEBUG_SMI
-
 /* ********************* smi_util ************************* */
 
 /* Data */
@@ -119,7 +117,7 @@ void uart_init(void)
 
 void console_init(void)
 {
-#ifdef DEBUG_SMI
+#if CONFIG_DEBUG_SMI
        console_loglevel = CONFIG_DEFAULT_CONSOLE_LOGLEVEL;
        uart_init();
 #else
index 5e13e4e39303eb3d1a928122c2498d83469932c5..151492d6c8c9a3db065f43e91c923386ba68788b 100644 (file)
@@ -74,63 +74,6 @@ config PCI_OPTION_ROM_RUN_YABEL
 
 endchoice
 
-# TODO: Describe better, and/or make a "choice" selection for this.
-config YABEL_DEBUG_FLAGS
-       prompt "Hex value for YABEL debug flags"
-       hex
-       default 0x0
-       depends on PCI_OPTION_ROM_RUN_YABEL
-       help
-         CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
-         to select the following items to debug. 1=on 0=off. After you
-         decide what you want to debug create the binary value, convert to
-         hex and set the option.
-
-         Example for "debug all":
-           CONFIG_YABEL_DEBUG_FLAGS = 0x31FF
-
-         |-DEBUG_JMP - Print info about JMP and RETF opcodes from x86emu
-         ||-DEBUG_TRACE_X86EMU - Print _all_ opcodes that are executed by
-         ||                      x86emu (WARNING: this will produce a LOT
-         ||                      of output)
-         |||-Currently unused
-         ||||-Currently unused
-         |||||-Currently unused
-         ||||||-DEBUG_PNP - Print Plug And Play accesses made by option ROM
-         |||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
-         ||||||||-DEBUG_PMM - Print messages related to POST Memory
-         ||||||||             Manager (PMM)
-         |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension
-         |||||||||             (VBE) functions
-         ||||||||||-DEBUG_PRINT_INT10 - Let INT10 (i.e. character output)
-         ||||||||||                     calls print messages to debug output
-         |||||||||||-DEBUG_INTR - Print messages related to interrupt handling
-         ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to
-         ||||||||||||                           accesses to certain areas of
-         ||||||||||||                           the virtual memory (e.g. BDA
-         ||||||||||||                           (BIOS Data Area) or interrupt
-         ||||||||||||                           vectors)
-         |||||||||||||-DEBUG_MEM - Print memory accesses made by option ROM
-         |||||||||||||             (NOTE: this also includes accesses to
-         |||||||||||||             fetch instructions)
-         ||||||||||||||-DEBUG_IO - Print I/O accesses made by option ROM
-         11000111111111 - Maximum binary value, i.e. "debug all"
-                          (WARNING: This could run for hours)
-
-         DEBUG_IO                      0x0001
-         DEBUG_MEM                     0x0002
-         DEBUG_CHECK_VMEM_ACCESS       0x0004
-         DEBUG_INTR                    0x0008
-         DEBUG_PRINT_INT10             0x0010
-         DEBUG_VBE                     0x0020
-         DEBUG_PMM                     0x0040
-         DEBUG_DISK                    0x0080
-         DEBUG_PNP                     0x0100
-         DEBUG_TRACE_X86EMU            0x1000
-         DEBUG_JMP                     0x2000
-
-         See debug.h for values. 0 is no debug output, 0x31ff is _verbose_.
-
 config YABEL_PCI_ACCESS_OTHER_DEVICES
        prompt "Allow option ROMs to access other devices"
        bool
@@ -150,6 +93,11 @@ config YABEL_VIRTMEM_LOCATION
          YABEL requires 1MB memory for its CPU emulation. This memory is
          normally located at 16MB.
 
+config YABEL_VIRTMEM_LOCATION
+       hex
+       depends on PCI_OPTION_ROM_RUN_YABEL && !EXPERT
+       default 0x1000000
+
 config YABEL_DIRECTHW
        prompt "Direct hardware access"
        bool
index c83759bbad4d99659004b4e475aadc84350391e6..697319356f1d781d3e79116045687b85e1988660 100644 (file)
@@ -57,7 +57,6 @@
 
 #include "cpu/x86/lapic/boot_cpu.c"
 #include "northbridge/amd/amdk8/reset_test.c"
-#include "northbridge/amd/amdk8/debug.c"
 #include "superio/ite/it8712f/it8712f_early_serial.c"
 
 #include "cpu/amd/mtrr/amd_earlymtrr.c"
@@ -67,6 +66,7 @@
 
 #include "southbridge/amd/rs690/rs690_early_setup.c"
 #include "southbridge/amd/sb600/sb600_early_setup.c"
+#include "northbridge/amd/amdk8/debug.c" /* After sb600_early_setup.c! */
 
 /* CAN'T BE REMOVED! crt0.S will use it. I don't know WHY!*/
 static void memreset(int controllers, const struct mem_controller *ctrl)
index 2e5c4a0812e355c909806ed9af9bfe6f0e0be9e5..d440f4d2f92bb6c3aa23805fbdab42c01437de03 100644 (file)
@@ -51,7 +51,6 @@
 
 #include "cpu/x86/lapic/boot_cpu.c"
 #include "northbridge/amd/amdk8/reset_test.c"
-#include "northbridge/amd/amdk8/debug.c"
 #include "superio/ite/it8712f/it8712f_early_serial.c"
 
 #include "cpu/amd/mtrr/amd_earlymtrr.c"
@@ -61,6 +60,7 @@
 
 #include "southbridge/amd/rs690/rs690_early_setup.c"
 #include "southbridge/amd/sb600/sb600_early_setup.c"
+#include "northbridge/amd/amdk8/debug.c" /* After sb600_early_setup.c! */
 
 /* CAN'T BE REMOVED! crt0.S will use it. I don't know WHY!*/
 static void memreset(int controllers, const struct mem_controller *ctrl)
index 67c7dbf551bd67d090ee2ebdde7a21a7a622fd9e..82a404b50be4e5358245ab95fff44d559a45f376 100644 (file)
@@ -29,8 +29,6 @@
 #define RAMINIT_SYSINFO 1
 #define CACHE_AS_RAM_ADDRESS_DEBUG 1
 
-#define DEBUG_SMBUS 1
-
 #define SET_NB_CFG_54 1
 
 //used by raminit
index 8e0ba2925ecc7587985e09d564740e8270d42235..ae70c847f3b537a4c8c905bb113d11f24578a781 100644 (file)
@@ -30,9 +30,6 @@
 /* Used by raminit. */
 #define QRANK_DIMM_SUPPORT 1
 
-/* Turn this on for SMBus debugging output. */
-#define DEBUG_SMBUS 0
-
 #if CONFIG_LOGICAL_CPUS == 1
 #define SET_NB_CFG_54 1
 #endif
index 4ec3aee8134baae7872f5526d060e3dee74f0cf6..b6c3c3f6860c50dcf2bc21980a901b00c8a9d675 100644 (file)
@@ -40,8 +40,6 @@ unsigned int get_sbdn(unsigned bus);
 /* If we want to wait for core1 done before DQS training, set it to 0. */
 #define K8_SET_FIDVID_CORE0_ONLY 1
 
-/* #define DEBUG_SMBUS 1 */
-
 #include <stdint.h>
 #include <string.h>
 #include <device/pci_def.h>
@@ -59,10 +57,10 @@ unsigned int get_sbdn(unsigned bus);
 #include "lib/delay.c"
 #include "cpu/x86/lapic/boot_cpu.c"
 #include "northbridge/amd/amdk8/reset_test.c"
-#include "northbridge/amd/amdk8/debug.c"
 #include "northbridge/amd/amdk8/early_ht.c"
 #include "superio/winbond/w83627ehg/w83627ehg_early_serial.c"
 #include "southbridge/via/vt8237r/vt8237r_early_smbus.c"
+#include "northbridge/amd/amdk8/debug.c" /* After vt8237r_early_smbus.c! */
 #include "cpu/amd/mtrr/amd_earlymtrr.c"
 #include "cpu/x86/bist.h"
 #include "northbridge/amd/amdk8/setup_resource_map.c"
index 13101b021728e6e506a7a2c4fae585ee8214d76d..4f4b481b8ab6358c8a6e97ce412dee32b3772cf8 100644 (file)
@@ -44,8 +44,6 @@ unsigned int get_sbdn(unsigned bus);
 #define K8_REV_F_SUPPORT_F0_F1_WORKAROUND 0
 #endif
 
-/* #define DEBUG_SMBUS 1 */
-
 #include <stdint.h>
 #include <string.h>
 #include <device/pci_def.h>
index 43c9b20bad57f83c9f76dbde910fbd8c61bb7e92..6ea41b6e4ba3f6bd0c7c173c598de762907278a1 100644 (file)
@@ -445,7 +445,7 @@ void real_main(unsigned long bist)
 
 #if !CONFIG_HAVE_ACPI_RESUME
 #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8
-#if defined(DEBUG_RAM_SETUP)
+#if CONFIG_DEBUG_RAM_SETUP
        sdram_dump_mchbar_registers();
 #endif
 
index 6616dc14442d57392f810609d8ec8fa3e7ddbd2d..9477c6e514bf5090f77dc40edc5753c1d98ad552 100644 (file)
@@ -30,9 +30,6 @@
 /* Used by raminit. */
 #define QRANK_DIMM_SUPPORT 1
 
-/* Turn this on for SMBus debugging output. */
-#define DEBUG_SMBUS 0
-
 #if CONFIG_LOGICAL_CPUS == 1
 #define SET_NB_CFG_54 1
 #endif
index 7a8bf13a79e9db56716d34a00f4065e7bbf161cc..a8697b511400d94d1d339b95d88123141ab6bb1b 100644 (file)
@@ -24,7 +24,6 @@
 #define __PRE_RAM__
 
 // #define CACHE_AS_RAM_ADDRESS_DEBUG 1
-// #define DEBUG_SMBUS 1
 // #define RAM_TIMING_DEBUG 1
 // #define DQS_TRAIN_DEBUG 1
 // #define RES_DEBUG 1
index 255815707aa30c4a1a75eeccae9ec130ce3f6a12..4903b3edd78701c579055caa0c3d3f7a055d9031 100644 (file)
@@ -42,8 +42,6 @@
 //if we want to wait for core1 done before DQS training, set it to 0
 #define K8_SET_FIDVID_CORE0_ONLY 1
 
-#define DEBUG_SMBUS 1
-
 #include <stdint.h>
 #include <string.h>
 #include <device/pci_def.h>
index 11c92b81fae9654748e228d46758c8f0b3d70332..b552788a5406b84f81c3d058bf3797a62bea469a 100644 (file)
@@ -38,8 +38,6 @@
 //if we want to wait for core1 done before DQS training, set it to 0
 #define K8_SET_FIDVID_CORE0_ONLY 1
 
-#define DEBUG_SMBUS 1
-
 #include <stdint.h>
 #include <string.h>
 #include <device/pci_def.h>
index bb0f865a0033067f0c7304197486ebbf63d2dca9..7fea9a0483e67bdfa0ebddd40410528c3b0b57d8 100644 (file)
@@ -220,11 +220,7 @@ static void dump_pci_devices_on_bus(u32 busn)
        }
 }
 
-#ifndef DEBUG_SMBUS
-#define DEBUG_SMBUS 0
-#endif
-
-#if DEBUG_SMBUS == 1
+#if CONFIG_DEBUG_SMBUS
 
 static void dump_spd_registers(const struct mem_controller *ctrl)
 {
index 7bd6d4e4e75a56b09583982d0b11699ac925aece..c9f0c27b0b2b750e9d9fdbbb2274a1f44e9baa59 100644 (file)
@@ -23,21 +23,16 @@ static  void print_raminit(const char *strval, u32 val)
        printk_debug("%s%08x\n", strval, val);
 }
 
-
-#define RAMINIT_DEBUG 1
-
-
 static  void print_tx(const char *strval, u32 val)
 {
-#if RAMINIT_DEBUG == 1
+#if CONFIG_DEBUG_RAM_SETUP
        print_raminit(strval, val);
 #endif
 }
 
-
 static  void print_t(const char *strval)
 {
-#if RAMINIT_DEBUG == 1
+#if CONFIG_DEBUG_RAM_SETUP
        print_debug(strval);
 #endif
 }
index f9e9671a3e9004102c99f7324d52dd6e125e54ce..acfd602c6df213932824b78f189535e579052aa5 100644 (file)
@@ -134,11 +134,8 @@ static void dump_pci_devices_on_bus(unsigned busn)
        }
 }
 
-#ifndef DEBUG_SMBUS
-#define DEBUG_SMBUS 0
-#endif
+#if CONFIG_DEBUG_SMBUS
 
-#if DEBUG_SMBUS == 1
 static void dump_spd_registers(const struct mem_controller *ctrl)
 {
        int i;
index a7feb61bf3d5528b226b47de1580feb45a9796b2..aaf60a85a1bb8e0c6e2035f5448f0436df63641d 100644 (file)
@@ -34,9 +34,7 @@
 #define QRANK_DIMM_SUPPORT 0
 #endif
 
-#define RAM_TIMING_DEBUG 0
-
-#if RAM_TIMING_DEBUG == 1
+#if DEBUG_RAM_SETUP
 #define printk_raminit printk_debug
 #else
 #define printk_raminit(fmt, arg...)
index ad6e4623778af532364bda425de6de62090f8520..c1866070ff4d58190e4f7b1565a8555cd2edbb3d 100644 (file)
 // Unfortunately the code seems to chew up several K of space.
 //#define VALIDATE_DIMM_COMPATIBILITY
 
-// Uncomment this to enable local debugging messages
-//#define DEBUG_RAM_CONFIG
-
-#if defined(DEBUG_RAM_CONFIG)
+#if CONFIG_DEBUG_RAM_SETUP
 #define RAM_DEBUG_MESSAGE(x)   print_debug(x)
 #define RAM_DEBUG_HEX32(x)             print_debug_hex32(x)
 #define RAM_DEBUG_HEX8(x)              print_debug_hex8(x)
index 5c560e17de5d14bd07d44402864cd548bca673b5..6a7353608bf5ad1677503d7d465d55d0f7415c2c 100644 (file)
 Macros and definitions.
 -----------------------------------------------------------------------------*/
 
-/* Uncomment this to enable debugging output. */
-#define DEBUG_RAM_SETUP 1
-
 /* Debugging macros. */
-#if defined(DEBUG_RAM_SETUP)
+#if CONFIG_DEBUG_RAM_SETUP
 #define PRINT_DEBUG(x)         print_debug(x)
 #define PRINT_DEBUG_HEX8(x)    print_debug_hex8(x)
 #define PRINT_DEBUG_HEX16(x)   print_debug_hex16(x)
index 570477fb8122dbb0b30e4232774093919f072d12..5ad4e4be739eb35dd164752ac46a6eb62c029741 100644 (file)
 Macros and definitions.
 -----------------------------------------------------------------------------*/
 
-/* Uncomment this to enable debugging output. */
-// #define DEBUG_RAM_SETUP 1
-
 /* Debugging macros. */
-#if defined(DEBUG_RAM_SETUP)
+#if CONFIG_DEBUG_RAM_SETUP
 #define PRINT_DEBUG(x)         print_debug(x)
 #define PRINT_DEBUG_HEX8(x)    print_debug_hex8(x)
 #define PRINT_DEBUG_HEX16(x)   print_debug_hex16(x)
index 2b747158c6dcf918c14716220f69a35caeac3833..9e2f3c4bf17d97aa20787ba7c924c240dcdca679 100644 (file)
 Macros and definitions.
 -----------------------------------------------------------------------------*/
 
-/* Uncomment this to enable debugging output. */
-/* #define DEBUG_RAM_SETUP 1 */
-
 /* Debugging macros. */
-#if defined(DEBUG_RAM_SETUP)
+#if CONFIG_DEBUG_RAM_SETUP
 #define PRINT_DEBUG(x)         print_debug(x)
 #define PRINT_DEBUG_HEX8(x)    print_debug_hex8(x)
 #define PRINT_DEBUG_HEX16(x)   print_debug_hex16(x)
index be63e7adcca321a17c1fac51ad3b1d11ef9a22de..235375673d6d0b884bd3d421a680038286942c88 100644 (file)
 #include "raminit.h"
 #include "i945.h"
 
-#define DEBUG_RAM_SETUP
-
 /* Debugging macros. */
-#if defined(DEBUG_RAM_SETUP)
+#if CONFIG_DEBUG_RAM_SETUP
 #define PRINTK_DEBUG(x...)     printk_debug(x)
 #else
 #define PRINTK_DEBUG(x...)
@@ -73,7 +71,7 @@ static void ram_read32(u32 offset)
        read32(offset);
 }
 
-#ifdef DEBUG_RAM_SETUP
+#if CONFIG_DEBUG_RAM_SETUP
 static void sdram_dump_mchbar_registers(void)
 {
        int i;
index 715305268ec92be72815afe6489fa7f9da9ab9cd..bddb4448fe92cc3a7d4e1c30b12397679a730164 100644 (file)
@@ -25,9 +25,7 @@
 #include <delay.h>
 #include "cn700.h"
 
-// #define DEBUG_RAM_SETUP 1
-
-#ifdef DEBUG_RAM_SETUP
+#ifdef CONFIG_DEBUG_RAM_SETUP
 #define PRINT_DEBUG_MEM(x)             print_debug(x)
 #define PRINT_DEBUG_MEM_HEX8(x)                print_debug_hex8(x)
 #define PRINT_DEBUG_MEM_HEX16(x)       print_debug_hex16(x)
@@ -51,12 +49,6 @@ static void do_ram_command(device_t dev, u8 command)
        reg &= 0xf8;            /* Clear bits 2-0. */
        reg |= command;
        pci_write_config8(dev, DRAM_MISC_CTL, reg);
-
-       PRINT_DEBUG_MEM("    Sending RAM command 0x");
-       PRINT_DEBUG_MEM_HEX8(reg);
-       PRINT_DEBUG_MEM(" to 0x");
-       PRINT_DEBUG_MEM_HEX32(0 + addr_offset);
-       PRINT_DEBUG_MEM("\r\n");
 }
 
 /**
index ed79744db4da9bf58679d34ef76d4e9f6723db38..ccee3b4633c05a2a8ad08f1105c43de4e42ae073 100644 (file)
 #define SMBUS_DELAY()          outb(0x80, 0x80)
 
 /* Debugging macros. */
-
-// #define DEBUG_SMBUS 1
-
-#ifdef DEBUG_SMBUS
+#if CONFIG_DEBUG_SMBUS
 #define PRINT_DEBUG(x)         print_debug(x)
 #define PRINT_DEBUG_HEX16(x)   print_debug_hex16(x)
 #else
@@ -102,7 +99,7 @@ static void smbus_wait_until_ready(void)
                SMBUS_DELAY();
                ++loops;
        }
-#ifdef DEBUG_SMBUS
+#if CONFIG_DEBUG_SMBUS
        /* Some systems seem to have a flakey SMBus. No need to spew a lot of
         * errors on those, once we know that SMBus access is principally
         * working.
@@ -234,7 +231,7 @@ static void enable_smbus(void)
 }
 
 /* Debugging Function */
-#ifdef DEBUG_SMBUS
+#ifdef CONFIG_DEBUG_SMBUS
 static void dump_spd_data(const struct mem_controller *ctrl)
 {
        int dimm, offset, regs;
index ff21e537ca5deebf6281f898ec26d4dcf5821a61..e0277f29bb4cedb0d3ca6ffc3196662b1dfc4610 100644 (file)
 #include <delay.h>
 #include "cx700_registers.h"
 
-// #define DEBUG_RAM_SETUP 1
-
 /* Debugging macros. */
-#if defined(DEBUG_RAM_SETUP)
+#if CONFIG_DEBUG_RAM_SETUP
 #define PRINTK_DEBUG(x...)      printk_debug(x)
 #else
 #define PRINTK_DEBUG(x...)
index ae9777e42c591161c39d78ba3b2c028b9e6d73e5..394cfaeaf90adb016312282337b7820c737d7e05 100644 (file)
@@ -21,9 +21,7 @@
 #include <sdram_mode.h>
 #include <delay.h>
 
-#define DEBUG_RAM_SETUP 1
-
-#ifdef DEBUG_RAM_SETUP
+#if CONFIG_DEBUG_RAM_SETUP
 #define PRINT_DEBUG_MEM(x)             print_debug(x)
 #define PRINT_DEBUG_MEM_HEX8(x)                print_debug_hex8(x)
 #define PRINT_DEBUG_MEM_HEX16(x)       print_debug_hex16(x)
index 6fda8b0e0a08efc658e01d9328bf52e2685b990f..9beb9cf130c4a80aae4d0bf982e4ca5202f9511c 100644 (file)
 
 #define SMBUS_DELAY()          outb(0x80, 0x80)
 
-/* Debugging macros. Only necessary if something isn't working right */
-
-#define DEBUG_SMBUS 1
-
-#ifdef DEBUG_SMBUS
+#ifdef CONFIG_DEBUG_SMBUS
 #define PRINT_DEBUG(x)         print_debug(x)
 #define PRINT_DEBUG_HEX16(x)   print_debug_hex16(x)
 #else
@@ -289,7 +285,7 @@ void smbus_fixup(const struct mem_controller *ctrl)
 }
 
 /* Debugging Function */
-#ifdef DEBUG_SMBUS
+#if CONFIG_DEBUG_SMBUS
 static void dump_spd_data(void)
 {
        int dimm, offset, regs;
index 2717dac2f8e978d4a32839288d4354d2d5f87a1c..38e3304374d1ea52c138667128e377689107a000 100644 (file)
@@ -28,8 +28,6 @@
 #include <device/pci_def.h>
 #include "i82801gx.h"
 
-#define DEBUG_SMI
-
 #define APM_CNT                0xb2
 #define   CST_CONTROL  0x85
 #define   PST_CONTROL  0x80
index d451ee3acadb9c8fbe57de6e16c23a2446e80c8b..780876ce3817e1d8705d881e396a2a02dd3aa983 100644 (file)
@@ -65,7 +65,7 @@
 #define I2C_TRANS_CMD                  0x40
 #define CLOCK_SLAVE_ADDRESS            0x69
 
-#if DEBUG_SMBUS == 1
+#if CONFIG_DEBUG_SMBUS
 #define PRINT_DEBUG(x)         print_debug(x)
 #define PRINT_DEBUG_HEX16(x)   print_debug_hex16(x)
 #else
index 56e9a04d75c18f2df72d1dd2e03f365faeb20b60..7c7df8562bd6f63629b4ca8c04ae405eef65800d 100644 (file)
@@ -102,7 +102,7 @@ struct x86_fpu_registers {
 
 #endif /* X86_FPU_SUPPORT */
 
-#ifdef DEBUG
+#if CONFIG_X86EMU_DEBUG
 # define DECODE_PRINTINSTR32(t,mod,rh,rl)      \
        DECODE_PRINTF(t[(mod<<3)+(rh)]);
 # define DECODE_PRINTINSTR256(t,mod,rh,rl)     \
index df5c6b2d902e80aa094026b835418daa7786b975..516b2ea836c0a037d38741d9f62ad82f9d5e7e41 100644 (file)
@@ -279,7 +279,7 @@ typedef struct {
     u32                         mode;
     volatile int                intr;   /* mask of pending interrupts */
     volatile int                         debug;
-#ifdef DEBUG
+#if CONFIG_X86EMU_DEBUG
     int                         check;
     u16                         saved_ip;
     u16                         saved_cs;
@@ -365,13 +365,6 @@ extern    X86EMU_sysEnv    _X86EMU_env;
 #define X86_CH M.x86.R_CH
 #define X86_DH M.x86.R_DH
 
-               
-/*-------------------------- Function Prototypes --------------------------*/
-
-/* Function to log information at runtime */
-
-//void printk(const char *fmt, ...);
-
 #ifdef  __cplusplus
 }                                              /* End of "C" linkage for C++           */
 #endif
index 22e08a95426de06aaad404053ee277e931806434..493e494927b0cd140658c91e0c6ff71a509ef9f1 100644 (file)
 #ifndef __X86EMU_X86EMU_H
 #define __X86EMU_X86EMU_H
 
-/* FIXME: redefine printk for the moment */
 #include <stddef.h>
 #include <console/console.h>
-#undef printk
-#define printk(x...) do_printk(BIOS_DEBUG, x)
-#if defined(CONFIG_YABEL_DEBUG_FLAGS) && (CONFIG_YABEL_DEBUG_FLAGS != 0)
+#if CONFIG_X86EMU_DEBUG
 #define DEBUG
-#else
-#undef DEBUG
 #endif
 
-#ifdef SCITECH
-#include "scitech.h"
-#define        X86API  _ASMAPI
-#define        X86APIP _ASMAPIP
-typedef int X86EMU_pioAddr;
-#else
 #include "types.h"
 #define        X86API
 #define        X86APIP *
-#endif
 #include "regs.h"
 
 /*---------------------- Macros and type definitions ----------------------*/
@@ -166,9 +154,9 @@ void X86EMU_setMemBase(void *base, size_t size);
 void   X86EMU_exec(void);
 void   X86EMU_halt_sys(void);
 
-#ifdef DEBUG
+#if CONFIG_X86EMU_DEBUG
 #define        HALT_SYS()      \
-       printk("halt_sys: in %s\n", __func__);  \
+       printf("halt_sys: in %s\n", __func__);  \
        X86EMU_halt_sys();
 #else
 #define        HALT_SYS()      X86EMU_halt_sys()
index 5644648b84ff56c369cb4872879ae41d258ffbef..0690b71681656b1a96bff3f8763191a2a7fb856c 100644 (file)
@@ -23,8 +23,6 @@
 #include <arch/io.h>
 #include <arch/registers.h>
 #include <console/console.h>
-#define printk(x...) do_printk(x)
-
 #include <arch/interrupt.h>
 
 #define REALMODE_BASE ((void *)0x600)
index a21a0ab9882a689c5b547c72b2aadbc13476438c..95964f89f2c3ee3f8eda505e1fa28fab893f6c89 100644 (file)
@@ -26,7 +26,6 @@
 #include <console/console.h>
 #include <arch/io.h>
 #include <arch/registers.h>
-#define printk(x...) do_printk(x)
 
 enum {
        PCIBIOS_CHECK = 0xb101,
index 026c03fddd0f1c714c8591296f637a1674763928..b3f4b6ebfb9657fc5eb7d16fa19cbbbb4b521786 100644 (file)
@@ -38,7 +38,6 @@
 ****************************************************************************/
 
 #include "x86emui.h"
-// #include <stdarg.h>
 
 /*----------------------------- Implementation ----------------------------*/
 
@@ -59,7 +58,7 @@ void X86EMU_trace_regs (void)
        }
     }
     if (DEBUG_DECODE() && ! DEBUG_DECODE_NOPRINT()) {
-        printk("%04x:%04x ",M.x86.saved_cs, M.x86.saved_ip);
+        printf("%04x:%04x ",M.x86.saved_cs, M.x86.saved_ip);
         print_encoded_bytes( M.x86.saved_cs, M.x86.saved_ip);
         print_decoded_instruction();
     }
@@ -78,7 +77,7 @@ void x86emu_just_disassemble (void)
      * This routine called if the flag DEBUG_DISASSEMBLE is set kind
      * of a hack!
      */
-    printk("%04x:%04x ",M.x86.saved_cs, M.x86.saved_ip);
+    printf("%04x:%04x ",M.x86.saved_cs, M.x86.saved_ip);
     print_encoded_bytes( M.x86.saved_cs, M.x86.saved_ip);
     print_decoded_instruction();
 }
@@ -162,13 +161,13 @@ void x86emu_inc_decoded_inst_len (int x)
     M.x86.enc_pos += x;
 }
 
-void x86emu_decode_printf (char *x)
+void x86emu_decode_printf (const char *x)
 {
     sprintf(M.x86.decoded_buf+M.x86.enc_str_pos,"%s",x);
     M.x86.enc_str_pos += strlen(x);
 }
 
-void x86emu_decode_printf2 (char *x, int y)
+void x86emu_decode_printf2 (const char *x, int y)
 {
     char temp[100];
     sprintf(temp,x,y);
@@ -189,12 +188,12 @@ static void print_encoded_bytes (u16 s, u16 o)
     for (i=0; i< M.x86.enc_pos; i++) {
         sprintf(buf1+2*i,"%02x", fetch_data_byte_abs(s,o+i));
     }
-    printk("%-20s ",buf1);
+    printf("%-20s ",buf1);
 }
 
 static void print_decoded_instruction (void)
 {
-    printk("%s", M.x86.decoded_buf);
+    printf("%s", M.x86.decoded_buf);
 }
 
 void x86emu_print_int_vect (u16 iv)
@@ -204,7 +203,7 @@ void x86emu_print_int_vect (u16 iv)
     if (iv > 256) return;
     seg   = fetch_data_word_abs(0,iv*4);
     off   = fetch_data_word_abs(0,iv*4+2);
-    printk("%04x:%04x ", seg, off);
+    printf("%04x:%04x ", seg, off);
 }
 
 void X86EMU_dump_memory (u16 seg, u16 off, u32 amt)
@@ -216,12 +215,12 @@ void X86EMU_dump_memory (u16 seg, u16 off, u32 amt)
 
     current = start;
     while (end <= off + amt) {
-        printk("%04x:%04x ", seg, start);
+        printf("%04x:%04x ", seg, start);
         for (i=start; i< off; i++)
-          printk("   ");
+          printf("   ");
         for (       ; i< end; i++)
-          printk("%02x ", fetch_data_byte_abs(seg,i));
-        printk("\n");
+          printf("%02x ", fetch_data_byte_abs(seg,i));
+        printf("\n");
         start = end;
         end = start + 16;
     }
@@ -256,7 +255,7 @@ void x86emu_single_step (void)
     done=0;
     offset = M.x86.saved_ip;
     while (!done) {
-        printk("-");
+        printf("-");
         p = fgets(s, 1023, stdin);
         cmd = parse_line(s, ps, &ntok);
         switch(cmd) {
@@ -310,7 +309,7 @@ void x86emu_single_step (void)
           return;
       case 'P':
           noDecode = (noDecode)?0:1;
-          printk("Toggled decoding to %s\n",(noDecode)?"FALSE":"TRUE");
+          printf("Toggled decoding to %s\n",(noDecode)?"FALSE":"TRUE");
           break;
           case 't':
       case 0:
@@ -368,68 +367,68 @@ int parse_line (char *s, int *ps, int *n)
 
 void x86emu_dump_regs (void)
 {
-    printk("\tAX=%04x  ", M.x86.R_AX );
-    printk("BX=%04x  ", M.x86.R_BX );
-    printk("CX=%04x  ", M.x86.R_CX );
-    printk("DX=%04x  ", M.x86.R_DX );
-    printk("SP=%04x  ", M.x86.R_SP );
-    printk("BP=%04x  ", M.x86.R_BP );
-    printk("SI=%04x  ", M.x86.R_SI );
-    printk("DI=%04x\n", M.x86.R_DI );
-    printk("\tDS=%04x  ", M.x86.R_DS );
-    printk("ES=%04x  ", M.x86.R_ES );
-    printk("SS=%04x  ", M.x86.R_SS );
-    printk("CS=%04x  ", M.x86.R_CS );
-    printk("IP=%04x   ", M.x86.R_IP );
-    if (ACCESS_FLAG(F_OF))    printk("OV ");     /* CHECKED... */
-    else                        printk("NV ");
-    if (ACCESS_FLAG(F_DF))    printk("DN ");
-    else                        printk("UP ");
-    if (ACCESS_FLAG(F_IF))    printk("EI ");
-    else                        printk("DI ");
-    if (ACCESS_FLAG(F_SF))    printk("NG ");
-    else                        printk("PL ");
-    if (ACCESS_FLAG(F_ZF))    printk("ZR ");
-    else                        printk("NZ ");
-    if (ACCESS_FLAG(F_AF))    printk("AC ");
-    else                        printk("NA ");
-    if (ACCESS_FLAG(F_PF))    printk("PE ");
-    else                        printk("PO ");
-    if (ACCESS_FLAG(F_CF))    printk("CY ");
-    else                        printk("NC ");
-    printk("\n");
+    printf("\tAX=%04x  ", M.x86.R_AX );
+    printf("BX=%04x  ", M.x86.R_BX );
+    printf("CX=%04x  ", M.x86.R_CX );
+    printf("DX=%04x  ", M.x86.R_DX );
+    printf("SP=%04x  ", M.x86.R_SP );
+    printf("BP=%04x  ", M.x86.R_BP );
+    printf("SI=%04x  ", M.x86.R_SI );
+    printf("DI=%04x\n", M.x86.R_DI );
+    printf("\tDS=%04x  ", M.x86.R_DS );
+    printf("ES=%04x  ", M.x86.R_ES );
+    printf("SS=%04x  ", M.x86.R_SS );
+    printf("CS=%04x  ", M.x86.R_CS );
+    printf("IP=%04x   ", M.x86.R_IP );
+    if (ACCESS_FLAG(F_OF))    printf("OV ");     /* CHECKED... */
+    else                        printf("NV ");
+    if (ACCESS_FLAG(F_DF))    printf("DN ");
+    else                        printf("UP ");
+    if (ACCESS_FLAG(F_IF))    printf("EI ");
+    else                        printf("DI ");
+    if (ACCESS_FLAG(F_SF))    printf("NG ");
+    else                        printf("PL ");
+    if (ACCESS_FLAG(F_ZF))    printf("ZR ");
+    else                        printf("NZ ");
+    if (ACCESS_FLAG(F_AF))    printf("AC ");
+    else                        printf("NA ");
+    if (ACCESS_FLAG(F_PF))    printf("PE ");
+    else                        printf("PO ");
+    if (ACCESS_FLAG(F_CF))    printf("CY ");
+    else                        printf("NC ");
+    printf("\n");
 }
 
 void x86emu_dump_xregs (void)
 {
-    printk("\tEAX=%08x  ", M.x86.R_EAX );
-    printk("EBX=%08x  ", M.x86.R_EBX );
-    printk("ECX=%08x  ", M.x86.R_ECX );
-    printk("EDX=%08x  \n", M.x86.R_EDX );
-    printk("\tESP=%08x  ", M.x86.R_ESP );
-    printk("EBP=%08x  ", M.x86.R_EBP );
-    printk("ESI=%08x  ", M.x86.R_ESI );
-    printk("EDI=%08x\n", M.x86.R_EDI );
-    printk("\tDS=%04x  ", M.x86.R_DS );
-    printk("ES=%04x  ", M.x86.R_ES );
-    printk("SS=%04x  ", M.x86.R_SS );
-    printk("CS=%04x  ", M.x86.R_CS );
-    printk("EIP=%08x\n\t", M.x86.R_EIP );
-    if (ACCESS_FLAG(F_OF))    printk("OV ");     /* CHECKED... */
-    else                        printk("NV ");
-    if (ACCESS_FLAG(F_DF))    printk("DN ");
-    else                        printk("UP ");
-    if (ACCESS_FLAG(F_IF))    printk("EI ");
-    else                        printk("DI ");
-    if (ACCESS_FLAG(F_SF))    printk("NG ");
-    else                        printk("PL ");
-    if (ACCESS_FLAG(F_ZF))    printk("ZR ");
-    else                        printk("NZ ");
-    if (ACCESS_FLAG(F_AF))    printk("AC ");
-    else                        printk("NA ");
-    if (ACCESS_FLAG(F_PF))    printk("PE ");
-    else                        printk("PO ");
-    if (ACCESS_FLAG(F_CF))    printk("CY ");
-    else                        printk("NC ");
-    printk("\n");
+    printf("\tEAX=%08x  ", M.x86.R_EAX );
+    printf("EBX=%08x  ", M.x86.R_EBX );
+    printf("ECX=%08x  ", M.x86.R_ECX );
+    printf("EDX=%08x  \n", M.x86.R_EDX );
+    printf("\tESP=%08x  ", M.x86.R_ESP );
+    printf("EBP=%08x  ", M.x86.R_EBP );
+    printf("ESI=%08x  ", M.x86.R_ESI );
+    printf("EDI=%08x\n", M.x86.R_EDI );
+    printf("\tDS=%04x  ", M.x86.R_DS );
+    printf("ES=%04x  ", M.x86.R_ES );
+    printf("SS=%04x  ", M.x86.R_SS );
+    printf("CS=%04x  ", M.x86.R_CS );
+    printf("EIP=%08x\n\t", M.x86.R_EIP );
+    if (ACCESS_FLAG(F_OF))    printf("OV ");     /* CHECKED... */
+    else                        printf("NV ");
+    if (ACCESS_FLAG(F_DF))    printf("DN ");
+    else                        printf("UP ");
+    if (ACCESS_FLAG(F_IF))    printf("EI ");
+    else                        printf("DI ");
+    if (ACCESS_FLAG(F_SF))    printf("NG ");
+    else                        printf("PL ");
+    if (ACCESS_FLAG(F_ZF))    printf("ZR ");
+    else                        printf("NZ ");
+    if (ACCESS_FLAG(F_AF))    printf("AC ");
+    else                        printf("NA ");
+    if (ACCESS_FLAG(F_PF))    printf("PE ");
+    else                        printf("PO ");
+    if (ACCESS_FLAG(F_CF))    printf("CY ");
+    else                        printf("NC ");
+    printf("\n");
 }
index f6bab3cf786d635bc442c6be6ee6a79eb7bf91ce..7aac995cc36bf06ba921a761506fbf805cd709fb 100644 (file)
 #ifndef __X86EMU_DEBUG_H
 #define __X86EMU_DEBUG_H
 
-//#define DEBUG 0
-//#undef DEBUG
 /*---------------------- Macros and type definitions ----------------------*/
 
+/* printf is not available in coreboot... use printk */
+#define printf(x...) printk(BIOS_DEBUG, x)
+
 /* checks to be enabled for "runtime" */
 
 #define CHECK_IP_FETCH_F                0x1
        if (DEBUG_TRACECALLREGS())                                                                      \
                x86emu_dump_regs();                                     \
        if (DEBUG_TRACECALL())                                          \
-               printk("%04x:%04x: CALL %s%04x:%04x\n", u , v, s, w, x);
+               printf("%04x:%04x: CALL %s%04x:%04x\n", u , v, s, w, x);
 # define RETURN_TRACE(u,v,w,x,s)                                    \
        if (DEBUG_TRACECALLREGS())                                                                      \
                x86emu_dump_regs();                                     \
        if (DEBUG_TRACECALL())                                          \
-               printk("%04x:%04x: RET %s %04x:%04x\n",u,v,s,w,x);
+               printf("%04x:%04x: RET %s %04x:%04x\n",u,v,s,w,x);
 # define  JMP_TRACE(u,v,w,x,s)                                 \
    if (DEBUG_TRACEJMPREGS()) \
       x86emu_dump_regs(); \
    if (DEBUG_TRACEJMP()) \
-      printk("%04x:%04x: JMP %s%04x:%04x\n", u , v, s, w, x);
+      printf("%04x:%04x: JMP %s%04x:%04x\n", u , v, s, w, x);
 #else
 # define CALL_TRACE(u,v,w,x,s)
 # define RETURN_TRACE(u,v,w,x,s)
 extern "C" {                                   /* Use "C" linkage when in C++ mode */
 #endif
 
-extern void x86emu_inc_decoded_inst_len (int x);
-extern void x86emu_decode_printf (char *x);
-extern void x86emu_decode_printf2 (char *x, int y);
-extern void x86emu_just_disassemble (void);
-extern void x86emu_single_step (void);
-extern void x86emu_end_instr (void);
-extern void x86emu_dump_regs (void);
-extern void x86emu_dump_xregs (void);
-extern void x86emu_print_int_vect (u16 iv);
-extern void x86emu_instrument_instruction (void);
-extern void x86emu_check_ip_access (void);
-extern void x86emu_check_sp_access (void);
-extern void x86emu_check_mem_access (u32 p);
-extern void x86emu_check_data_access (uint s, uint o);
+void x86emu_inc_decoded_inst_len (int x);
+void x86emu_decode_printf (const char *x);
+void x86emu_decode_printf2 (const char *x, int y);
+void x86emu_just_disassemble (void);
+void x86emu_single_step (void);
+void x86emu_end_instr (void);
+void x86emu_dump_regs (void);
+void x86emu_dump_xregs (void);
+void x86emu_print_int_vect (u16 iv);
+void x86emu_instrument_instruction (void);
+void x86emu_check_ip_access (void);
+void x86emu_check_sp_access (void);
+void x86emu_check_mem_access (u32 p);
+void x86emu_check_data_access (uint s, uint o);
+
+void disassemble_forward (u16 seg, u16 off, int n);
 
 #ifdef  __cplusplus
 }                                              /* End of "C" linkage for C++           */
index 2cd62348d73b51ce5e3c0a870546388678b316ef..3d2ba2356652aae02c5e00795a6a65720fce5862 100644 (file)
@@ -77,7 +77,7 @@ next instruction.
 void x86emu_intr_raise(
     u8 intrnum)
 {
-    printk("%s, rasing execption %x\n", __func__, intrnum);
+    printf("%s, raising exeception %x\n", __func__, intrnum);
     x86emu_dump_regs();
     M.x86.intno = intrnum;
     M.x86.intr |= INTR_SYNCH;
@@ -105,12 +105,12 @@ DB(     if (CHECK_IP_FETCH())
         if (M.x86.intr) {
             if (M.x86.intr & INTR_HALTED) {
 DB(             if (M.x86.R_SP != 0) {
-                    printk("halted\n");
+                    printf("halted\n");
                     X86EMU_trace_regs();
                     }
                 else {
                     if (M.x86.debug)
-                        printk("Service completed successfully\n");
+                        printf("Service completed successfully\n");
                     })
                 return;
             }
@@ -286,7 +286,7 @@ _INLINE u32 get_data_segment(void)
         return  M.x86.R_SS;
       default:
 #ifdef  DEBUG
-        printk("error: should not happen:  multiple overrides.\n");
+        printf("error: should not happen:  multiple overrides.\n");
 #endif
         HALT_SYS();
         return 0;
index 85f55c8854a38dfee92c8fda6418001c6db06e13..daa2ffa75a1c518b801e57a03b1304b7e470956a 100644 (file)
@@ -52,7 +52,7 @@ void x86emuOp_esc_coprocess_d8(u8 X86EMU_UNUSED(op1))
 
 #ifdef DEBUG
 
-static char *x86emu_fpu_op_d9_tab[] = {
+static const char *x86emu_fpu_op_d9_tab[] = {
     "FLD\tDWORD PTR ", "ESC_D9\t", "FST\tDWORD PTR ", "FSTP\tDWORD PTR ",
     "FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
 
@@ -63,7 +63,7 @@ static char *x86emu_fpu_op_d9_tab[] = {
     "FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
 };
 
-static char *x86emu_fpu_op_d9_tab1[] = {
+static const char *x86emu_fpu_op_d9_tab1[] = {
     "FLD\t", "FLD\t", "FLD\t", "FLD\t",
     "FLD\t", "FLD\t", "FLD\t", "FLD\t",
 
@@ -296,7 +296,7 @@ void x86emuOp_esc_coprocess_d9(u8 X86EMU_UNUSED(op1))
 
 #ifdef DEBUG
 
-char *x86emu_fpu_op_da_tab[] = {
+static const char *x86emu_fpu_op_da_tab[] = {
     "FIADD\tDWORD PTR ", "FIMUL\tDWORD PTR ", "FICOM\tDWORD PTR ",
     "FICOMP\tDWORD PTR ",
     "FISUB\tDWORD PTR ", "FISUBR\tDWORD PTR ", "FIDIV\tDWORD PTR ",
@@ -386,7 +386,7 @@ void x86emuOp_esc_coprocess_da(u8 X86EMU_UNUSED(op1))
 
 #ifdef DEBUG
 
-char *x86emu_fpu_op_db_tab[] = {
+static const char *x86emu_fpu_op_db_tab[] = {
     "FILD\tDWORD PTR ", "ESC_DB\t19", "FIST\tDWORD PTR ", "FISTP\tDWORD PTR ",
     "ESC_DB\t1C", "FLD\tTBYTE PTR ", "ESC_DB\t1E", "FSTP\tTBYTE PTR ",
 
@@ -505,7 +505,7 @@ void x86emuOp_esc_coprocess_db(u8 X86EMU_UNUSED(op1))
 }
 
 #ifdef DEBUG
-char *x86emu_fpu_op_dc_tab[] = {
+static const char *x86emu_fpu_op_dc_tab[] = {
     "FADD\tQWORD PTR ", "FMUL\tQWORD PTR ", "FCOM\tQWORD PTR ",
     "FCOMP\tQWORD PTR ",
     "FSUB\tQWORD PTR ", "FSUBR\tQWORD PTR ", "FDIV\tQWORD PTR ",
@@ -620,7 +620,7 @@ void x86emuOp_esc_coprocess_dc(u8 X86EMU_UNUSED(op1))
 
 #ifdef DEBUG
 
-static char *x86emu_fpu_op_dd_tab[] = {
+static const char *x86emu_fpu_op_dd_tab[] = {
     "FLD\tQWORD PTR ", "ESC_DD\t29,", "FST\tQWORD PTR ", "FSTP\tQWORD PTR ",
     "FRSTOR\t", "ESC_DD\t2D,", "FSAVE\t", "FSTSW\t",
 
@@ -720,7 +720,7 @@ void x86emuOp_esc_coprocess_dd(u8 X86EMU_UNUSED(op1))
 
 #ifdef DEBUG
 
-static char *x86emu_fpu_op_de_tab[] =
+static const char *x86emu_fpu_op_de_tab[] =
 {
     "FIADD\tWORD PTR ", "FIMUL\tWORD PTR ", "FICOM\tWORD PTR ",
     "FICOMP\tWORD PTR ",
@@ -839,7 +839,7 @@ void x86emuOp_esc_coprocess_de(u8 X86EMU_UNUSED(op1))
 
 #ifdef DEBUG
 
-static char *x86emu_fpu_op_df_tab[] = {
+static const char *x86emu_fpu_op_df_tab[] = {
     /* mod == 00 */
     "FILD\tWORD PTR ", "ESC_DF\t39\n", "FIST\tWORD PTR ", "FISTP\tWORD PTR ",
     "FBLD\tTBYTE PTR ", "FILD\tQWORD PTR ", "FBSTP\tTBYTE PTR ",
index fd7ad32d22829943a323380b7d76e42d7126aa9f..c66da95760632f16db466ca4eac0024a30020ffa 100644 (file)
@@ -77,7 +77,7 @@
 /* constant arrays to do several instructions in just one function */
 
 #ifdef DEBUG
-static char *x86emu_GenOpName[8] = {
+static const char *x86emu_GenOpName[8] = {
     "ADD", "OR", "ADC", "SBB", "AND", "SUB", "XOR", "CMP"};
 #endif
 
@@ -159,7 +159,7 @@ static u32 (*opcD1_long_operation[])(u32 s, u8 d) =
 
 #ifdef DEBUG
 
-static char *opF6_names[8] =
+static const char *opF6_names[8] =
   { "TEST\t", "", "NOT\t", "NEG\t", "MUL\t", "IMUL\t", "DIV\t", "IDIV\t" };
 
 #endif
@@ -178,7 +178,7 @@ static void x86emuOp_illegal_op(
     if (M.x86.R_SP != 0) {
         DECODE_PRINTF("ILLEGAL X86 OPCODE\n");
         TRACE_REGS();
-        DB( printk("%04x:%04x: %02X ILLEGAL X86 OPCODE!\n",
+        DB( printf("%04x:%04x: %02X ILLEGAL X86 OPCODE!\n",
             M.x86.R_CS, M.x86.R_IP-1,op1));
         HALT_SYS();
         }
index a749b59525da2757ca82e259dfc484ae9e8d3df0..f5cb6498b1fb95042545efdc1eaf46a668b7d0c5 100644 (file)
@@ -54,7 +54,7 @@ static void x86emuOp2_illegal_op(u8 op2)
     START_OF_INSTR();
     DECODE_PRINTF("ILLEGAL EXTENDED X86 OPCODE\n");
     TRACE_REGS();
-    printk("%04x:%04x: %02X ILLEGAL EXTENDED X86 OPCODE!\n",
+    printf("%04x:%04x: %02X ILLEGAL EXTENDED X86 OPCODE!\n",
         M.x86.R_CS, M.x86.R_IP-2, op2);
     HALT_SYS();
     END_OF_INSTR();
@@ -105,7 +105,7 @@ static void x86emuOp2_opc_01(u8 op2)
   default:
     DECODE_PRINTF("ILLEGAL EXTENDED X86 OPCODE IN 0F 01\n");
     TRACE_REGS();
-    printk("%04x:%04x: %02X ILLEGAL EXTENDED X86 OPCODE!\n",
+    printf("%04x:%04x: %02X ILLEGAL EXTENDED X86 OPCODE!\n",
         M.x86.R_CS, M.x86.R_IP-2, op2);
     HALT_SYS();
     break;
@@ -1272,7 +1272,7 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
     default:
         DECODE_PRINTF("ILLEGAL EXTENDED X86 OPCODE\n");
         TRACE_REGS();
-        printk("%04x:%04x: %02X%02X ILLEGAL EXTENDED X86 OPCODE EXTENSION!\n",
+        printf("%04x:%04x: %02X%02X ILLEGAL EXTENDED X86 OPCODE EXTENSION!\n",
                 M.x86.R_CS, M.x86.R_IP-3,op2, (mod<<6)|(rh<<3)|rl);
         HALT_SYS();
     }
index b4bed43ba45cfb71e970988d47a931ece5192608..957e0ca63b3e9c2495b681e4e9446de04a0beb8c 100644 (file)
 ****************************************************************************/
 /* $XFree86: xc/extras/x86emu/src/x86emu/sys.c,v 1.5 2000/08/23 22:10:01 tsi Exp $ */
 
+#include <arch/io.h>
 #include <x86emu/x86emu.h>
 #include <x86emu/regs.h>
 #include "debug.h"
 #include "prim_ops.h"
-#if 1 /* Coreboot needs to map prinkf to printk. */
-#include "arch/io.h"
-#else
-#include <sys/io.h>
-#endif
 
 #ifdef IN_MODULE
 #include "xf86_ansic.h"
@@ -69,11 +65,11 @@ static u8 *mem_ptr(u32 addr, int size)
        u8 *retaddr = 0;
 
        if (addr > M.mem_size - size) {
-               DB(printk("mem_ptr: address %#x out of range!\n", addr);)
+               DB(printf("mem_ptr: address %#x out of range!\n", addr);)
                    HALT_SYS();
        }
        if (addr < 0x200) {
-               //printk("%x:%x updating int vector 0x%x\n",
+               //printf("%x:%x updating int vector 0x%x\n",
                //       M.x86.R_CS, M.x86.R_IP, addr >> 2);
        }
        retaddr = (u8 *) (M.mem_base + addr);
@@ -100,7 +96,7 @@ u8 X86API rdb(u32 addr)
 
        val = *ptr;
        DB(if (DEBUG_MEM_TRACE())
-          printk("%#08x 1 -> %#x\n", addr, val);)
+          printf("%#08x 1 -> %#x\n", addr, val);)
                return val;
 }
 
@@ -123,7 +119,7 @@ u16 X86API rdw(u32 addr)
        val = *(u16 *) (ptr);
 
        DB(if (DEBUG_MEM_TRACE())
-          printk("%#08x 2 -> %#x\n", addr, val);)
+          printf("%#08x 2 -> %#x\n", addr, val);)
        return val;
 }
 
@@ -145,7 +141,7 @@ u32 X86API rdl(u32 addr)
                val = *(u32 *) (ptr);
 
        DB(if (DEBUG_MEM_TRACE())
-          printk("%#08x 4 -> %#x\n", addr, val);)
+          printf("%#08x 4 -> %#x\n", addr, val);)
        return val;
 }
 
@@ -165,7 +161,7 @@ void X86API wrb(u32 addr, u8 val)
        *(u8 *) (ptr) = val;
 
        DB(if (DEBUG_MEM_TRACE())
-          printk("%#08x 1 <- %#x\n", addr, val);)
+          printf("%#08x 1 <- %#x\n", addr, val);)
 }
 
 /****************************************************************************
@@ -184,7 +180,7 @@ void X86API wrw(u32 addr, u16 val)
        *(u16 *) (ptr) = val;
 
        DB(if (DEBUG_MEM_TRACE())
-          printk("%#08x 2 <- %#x\n", addr, val);)
+          printf("%#08x 2 <- %#x\n", addr, val);)
 }
 
 /****************************************************************************
@@ -203,7 +199,7 @@ void X86API wrl(u32 addr, u32 val)
        *(u32 *) (ptr) = val;
 
        DB(if (DEBUG_MEM_TRACE())
-          printk("%#08x 4 <- %#x\n", addr, val);)
+          printf("%#08x 4 <- %#x\n", addr, val);)
 
 
 }
@@ -219,7 +215,7 @@ Default PIO byte read function. Doesn't perform real inb.
 static u8 X86API p_inb(X86EMU_pioAddr addr)
 {
        DB(if (DEBUG_IO_TRACE())
-               printk("inb %#04x \n", addr);)
+               printf("inb %#04x \n", addr);)
        return inb(addr);
 }
 
@@ -234,7 +230,7 @@ Default PIO word read function. Doesn't perform real inw.
 static u16 X86API p_inw(X86EMU_pioAddr addr)
 {
        DB(if (DEBUG_IO_TRACE())
-               printk("inw %#04x \n", addr);)
+               printf("inw %#04x \n", addr);)
        return inw(addr);
 }
 
@@ -249,7 +245,7 @@ Default PIO long read function. Doesn't perform real inl.
 static u32 X86API p_inl(X86EMU_pioAddr addr)
 {
        DB(if (DEBUG_IO_TRACE())
-               printk("inl %#04x \n", addr);)
+               printf("inl %#04x \n", addr);)
        return inl(addr);
 }
 
@@ -263,7 +259,7 @@ Default PIO byte write function. Doesn't perform real outb.
 static void X86API p_outb(X86EMU_pioAddr addr, u8 val)
 {
        DB(if (DEBUG_IO_TRACE())
-               printk("outb %#02x -> %#04x \n", val, addr);)
+               printf("outb %#02x -> %#04x \n", val, addr);)
        outb(val, addr);
        return;
 }
@@ -278,7 +274,7 @@ Default PIO word write function. Doesn't perform real outw.
 static void X86API p_outw(X86EMU_pioAddr addr, u16 val)
 {
        DB(if (DEBUG_IO_TRACE())
-               printk("outw %#04x -> %#04x \n", val, addr);)
+               printf("outw %#04x -> %#04x \n", val, addr);)
        outw(val, addr);
        return;
 }
@@ -293,7 +289,7 @@ Default PIO ;ong write function. Doesn't perform real outl.
 static void X86API p_outl(X86EMU_pioAddr addr, u32 val)
 {
        DB(if (DEBUG_IO_TRACE())
-              printk("outl %#08x -> %#04x \n", val, addr);)
+              printf("outl %#08x -> %#04x \n", val, addr);)
 
        outl(val, addr);
        return;
index ff69d5056529cf2196647f25b54df8b7fe5595f5..d693e335f4d8b963fda9f756823ef95d282d13a7 100644 (file)
@@ -74,8 +74,6 @@
 #ifdef IN_MODULE
 #include <xf86_ansic.h>
 #else
-//#include <stdio.h>
-//#include <stdlib.h>
 #include <string.h>
 #endif                                                                                           
 /*--------------------------- Inline Functions ----------------------------*/
index 09a98b50b6f9c698eb7abb2fa968845736ef0119..294d81f27950bedb926d1b0adc1ef8ea77a103e9 100644 (file)
@@ -1,6 +1,7 @@
 /******************************************************************************
  * Copyright (c) 2004, 2008 IBM Corporation
  * Copyright (c) 2008, 2009 Pattrick Hueper <phueper@hueper.net>
+ * Copyright (c) 2010 coresystems GmbH
  * All rights reserved.
  * This program and the accompanying materials
  * are made available under the terms of the BSD License
@@ -12,7 +13,6 @@
  *****************************************************************************/
 
 #include <string.h>
-
 #include <types.h>
 
 #include "debug.h"
@@ -28,9 +28,8 @@
 #include "device.h"
 #include "pmm.h"
 
-#include "compat/rtas.h"
-
 #include <device/device.h>
+#include "compat/rtas.h"
 
 static X86EMU_memFuncs my_mem_funcs = {
        my_rdb, my_rdw, my_rdl,
@@ -57,13 +56,42 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
 {
        u8 *rom_image;
        int i = 0;
-#ifdef DEBUG
-       debug_flags = 0;//DEBUG_PRINT_INT10 | DEBUG_PNP | DEBUG_INTR | DEBUG_CHECK_VMEM_ACCESS | DEBUG_MEM | DEBUG_IO;
-               // | DEBUG_CHECK_VMEM_ACCESS | DEBUG_MEM | DEBUG_IO;
-               // | DEBUG_TRACE_X86EMU | DEBUG_JMP;
+#if CONFIG_X86EMU_DEBUG
+       debug_flags = 0;
+#if defined(CONFIG_X86EMU_DEBUG_JMP) && CONFIG_X86EMU_DEBUG_JMP
+       debug_flags |= DEBUG_JMP;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_TRACE) && CONFIG_X86EMU_DEBUG_TRACE
+       debug_flags |= DEBUG_TRACE_X86EMU;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_PNP) && CONFIG_X86EMU_DEBUG_PNP
+       debug_flags |= DEBUG_PNP;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_DISK) && CONFIG_X86EMU_DEBUG_DISK
+       debug_flags |= DEBUG_DISK;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_PMM) && CONFIG_X86EMU_DEBUG_PMM
+       debug_flags |= DEBUG_PMM;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_VBE) && CONFIG_X86EMU_DEBUG_VBE
+       debug_flags |= DEBUG_VBE;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_INT10) && CONFIG_X86EMU_DEBUG_INT10
+       debug_flags |= DEBUG_PRINT_INT10;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_INTERRUPTS) && CONFIG_X86EMU_DEBUG_INTERRUPTS
+       debug_flags |= DEBUG_INTR;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_CHECK_VMEM_ACCESS) && CONFIG_X86EMU_DEBUG_CHECK_VMEM_ACCESS
+       debug_flags |= DEBUG_CHECK_VMEM_ACCESS;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_MEM) && CONFIG_X86EMU_DEBUG_MEM
+       debug_flags |= DEBUG_MEM;
+#endif
+#if defined(CONFIG_X86EMU_DEBUG_IO) && CONFIG_X86EMU_DEBUG_IO
+       debug_flags |= DEBUG_IO;
+#endif
 
-       /* use CONFIG_YABEL_DEBUG_FLAGS, too... */
-       debug_flags |= CONFIG_YABEL_DEBUG_FLAGS;
 #endif
        if (biosmem_size < MIN_REQUIRED_VMEM_SIZE) {
                printf("Error: Not enough virtual memory: %x, required: %x!\n",
@@ -200,11 +228,11 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
        //TODO: check for further needed EBDA data...
 
        // setup  original ROM BIOS Area (F000:xxxx)
-       char *date = "06/11/99";
+       const char *date = "06/11/99";
        for (i = 0; date[i]; i++)
                my_wrb(0xffff5 + i, date[i]);
        // set up eisa ident string
-       char *ident = "PCI_ISA";
+       const char *ident = "PCI_ISA";
        for (i = 0; ident[i]; i++)
                my_wrb(0xfffd9 + i, ident[i]);
 
@@ -250,14 +278,14 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
        // push a HLT instruction and a pointer to it onto the stack
        // any return will pop the pointer and jump to the HLT, thus
        // exiting (more or less) cleanly
-       push_word(0xf4f4);      //F4=HLT
+       push_word(0xf4f4);      // F4=HLT
        push_word(M.x86.R_SS);
        push_word(M.x86.R_SP + 2);
 
        CHECK_DBG(DEBUG_TRACE_X86EMU) {
                X86EMU_trace_on();
+#if 0
        } else {
-#ifdef DEBUG
                M.x86.debug |= DEBUG_SAVE_IP_CS_F;
                M.x86.debug |= DEBUG_DECODE_F;
                M.x86.debug |= DEBUG_DECODE_NOPRINT_F;
@@ -268,7 +296,7 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
                M.x86.debug |= DEBUG_TRACEJMP_REGS_F;
                M.x86.debug |= DEBUG_TRACECALL_F;
                M.x86.debug |= DEBUG_TRACECALL_REGS_F;
-               }
+       }
 
        DEBUG_PRINTF("Executing Initialization Vector...\n");
        X86EMU_exec();
@@ -278,7 +306,7 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
         * some boot device status in AX (see PNP BIOS Spec Section 3.3
         */
        DEBUG_PRINTF_CS_IP("Option ROM Exit Status: %04x\n", M.x86.R_AX);
-#ifdef DEBUG
+#if defined(CONFIG_X86EMU_DEBUG) && CONFIG_X86EMU_DEBUG
        DEBUG_PRINTF("Exit Status Decode:\n");
        if (M.x86.R_AX & 0x100) {       // bit 8
                DEBUG_PRINTF
@@ -344,14 +372,12 @@ biosemu(u8 *biosmem, u32 biosmem_size, struct device * dev, unsigned long rom_ad
            && (M.x86.R_SP == STACK_START_OFFSET)) {
                DEBUG_PRINTF("Stack is clean, initialization successfull!\n");
        } else {
-               DEBUG_PRINTF
-                   ("Stack unclean, initialization probably NOT COMPLETE!!\n");
+               printf("Stack unclean, initialization probably NOT COMPLETE!\n");
                DEBUG_PRINTF("SS:SP = %04x:%04x, expected: %04x:%04x\n",
                             M.x86.R_SS, M.x86.R_SP, STACK_SEGMENT,
                             STACK_START_OFFSET);
        }
 
-
        // TODO: according to the BIOS Boot Spec initializations may be ended using INT18h and setting
        // the status.
        // We need to implement INT18 accordingly, pseudo code is in specsbbs101.pdf page 30
index fb8dab2b240b175d840fed50615bbadf297c6874..09ace729ec80215587505eaff6275e9a4ce770df 100644 (file)
@@ -46,4 +46,7 @@
 typedef int (* yabel_handleIntFunc)(void);
 extern yabel_handleIntFunc yabel_intFuncArray[256];
 
+struct device;
+
+u32 biosemu(u8 *biosmem, u32 biosmem_size, struct device *dev, unsigned long rom_addr);
 #endif
index 599e82e54ecd2b748a49978fa69744c8cb8f07f9..4d1f1e4fda68cf699f42b0b30bebb902bee56f16 100644 (file)
@@ -17,6 +17,7 @@
 #include <string.h>
 #include <device/device.h>
 #include "../debug.h"
+#include "../biosemu.h"
 
 #define VMEM_SIZE (1024 * 1024) /* 1 MB */
 
@@ -30,8 +31,6 @@ u8* vmem = (u8 *) (16*1024*1024); /* default to 16MB */
 u8* vmem = NULL;
 #endif
 
-u32 biosemu(u8 *biosmem, u32 biosmem_size, struct device *dev,
-           unsigned long rom_addr);
 #if CONFIG_BOOTSPLASH
 void vbe_set_graphics(void);
 #endif
@@ -46,10 +45,10 @@ void run_bios(struct device * dev, unsigned long addr)
 #endif
 
        if (vmem != NULL) {
-               printf("Copying legacy memory from 0x%08x to the lower 1MB\n", vmem);
-               memcpy(0x00000, vmem + 0x00000, 0x400);         // IVT
-               memcpy(0x00400, vmem + 0x00400, 0x100);         // BDA
-               memcpy(0xc0000, vmem + 0xc0000, 0x10000);       // VGA OPROM
+               printf("Copying legacy memory from %p to the lower 1MB\n", vmem);
+               memcpy((void *)0x00000, vmem + 0x00000, 0x400);         // IVT
+               memcpy((void *)0x00400, vmem + 0x00400, 0x100);         // BDA
+               memcpy((void *)0xc0000, vmem + 0xc0000, 0x10000);       // VGA OPROM
        }
 }
 
index 92e78782c3d603633a6aace1b4cb80e873e2f20d..d02930809dea1eb5579dbd8d966c74ed3a9a8e4b 100644 (file)
@@ -21,21 +21,18 @@ extern void x86emu_dump_xregs(void);
 
 /* printf is not available in coreboot... use printk */
 #include <console/console.h>
-/* uurgs... yuck... x86emu/x86emu.h is redefining printk... we include it here
- * and use its redefinition of printk
- * TODO: FIX!!!! */
 #include "x86emu/x86emu.h"
-#define printf printk
+#define printf(x...) printk(BIOS_DEBUG, x)
 
 /* PH: empty versions of set/clr_ci
  * TODO: remove! */
 static inline void clr_ci(void) {};
 static inline void set_ci(void) {};
 
-/* Set CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
- * to select the following items to debug. 1=on 0=off. After you
- * decide what you want to debug create the binary value, convert to hex
- * and set the Option (Ex. CONFIG_YABEL_DEBUG_FLAGS = 0x31FF //Debug All).
+/* debug_flags is a binary switch that allows you to select the following items
+ * to debug. 1=on 0=off. After you decide what you want to debug create the
+ * binary value, convert to hex and set the option. These options can be
+ * selected in Kconfig.
  *
  * |-DEBUG_JMP - print info about JMP and RETF opcodes from x86emu
  * ||-DEBUG_TRACE_X86EMU - print _all_ opcodes that are executed by x86emu (WARNING: this will produce a LOT of output)
@@ -69,9 +66,7 @@ static inline void set_ci(void) {};
 // set to enable tracing of JMPs in x86emu
 #define DEBUG_JMP 0x2000
 
-//#define DEBUG
-//#undef DEBUG
-#ifdef DEBUG
+#if defined(CONFIG_X86EMU_DEBUG) && CONFIG_X86EMU_DEBUG
 
 #define CHECK_DBG(_flag) if (debug_flags & _flag)
 
index 929e97779b71121880da803c6de6959e55dd73b1..7e71a45e97ceb0af6d0524dc6a87b5fd8c6a724e 100644 (file)
@@ -40,7 +40,7 @@ typedef struct {
 #ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
 /* coreboot version */
 
-void
+static void
 biosemu_dev_get_addr_info(void)
 {
        int taa_index = 0;
@@ -112,7 +112,7 @@ biosemu_dev_get_addr_info(void)
        }
        // store last entry index of translate_address_array
        taa_last_entry = taa_index - 1;
-#ifdef DEBUG
+#if defined(CONFIG_X86EMU_DEBUG) && CONFIG_X86EMU_DEBUG
        //dump translate_address_array
        printf("translate_address_array: \n");
        translate_address_t ta;
@@ -195,7 +195,7 @@ biosemu_dev_get_addr_info(void)
        }
        // store last entry index of translate_address_array
        taa_last_entry = taa_index - 1;
-#ifdef DEBUG
+#if defined(CONFIG_X86EMU_DEBUG) && CONFIG_X86EMU_DEBUG
        //dump translate_address_array
        printf("translate_address_array: \n");
        translate_address_t ta;
@@ -210,11 +210,12 @@ biosemu_dev_get_addr_info(void)
 }
 #endif
 
+#ifndef CONFIG_PCI_OPTION_ROM_RUN_YABEL
 // to simulate accesses to legacy VGA Memory (0xA0000-0xBFFFF)
 // we look for the first prefetchable memory BAR, if no prefetchable BAR found,
 // we use the first memory BAR
 // dev_translate_addr will translate accesses to the legacy VGA Memory into the found vmem BAR
-void
+static void
 biosemu_dev_find_vmem_addr(void)
 {
        int i = 0;
@@ -257,7 +258,6 @@ biosemu_dev_find_vmem_addr(void)
        //bios_device.vmem_size = 0;
 }
 
-#ifndef CONFIG_PCI_OPTION_ROM_RUN_YABEL
 void
 biosemu_dev_get_puid(void)
 {
@@ -267,7 +267,7 @@ biosemu_dev_get_puid(void)
 }
 #endif
 
-void
+static void
 biosemu_dev_get_device_vendor_id(void)
 {
 
@@ -334,7 +334,7 @@ biosemu_dev_check_exprom(unsigned long rom_base_addr)
                memcpy(&pci_ds, (void *) (rom_base_addr + pci_ds_offset),
                       sizeof(pci_ds));
                clr_ci();
-#ifdef DEBUG
+#if defined(CONFIG_X86EMU_DEBUG) && CONFIG_X86EMU_DEBUG
                DEBUG_PRINTF("PCI Data Structure @%lx:\n",
                             rom_base_addr + pci_ds_offset);
                dump((void *) &pci_ds, sizeof(pci_ds));
index 79b0899a08a2f1d99af2a5ca8077cfa5cb034d1c..9dc33fa8d1ced5a7541d0468bcbc36c7405cad8e 100644 (file)
@@ -11,6 +11,7 @@
  *     IBM Corporation - initial implementation
  *****************************************************************************/
 
+#include <types.h>
 #include "compat/rtas.h"
 
 #include "biosemu.h"
@@ -18,6 +19,7 @@
 #include "device.h"
 #include "debug.h"
 #include "pmm.h"
+#include "interrupt.h"
 
 #include <x86emu/x86emu.h>
 #include "../x86emu/prim_ops.h"
index 9bb2df4960454162f8b4ca460d31b33586fee1a9..6d36e8078fe92e5bd1c1edc9ba3227bf1622b83d 100644 (file)
@@ -17,6 +17,7 @@
 #include "device.h"
 #include "debug.h"
 #include <x86emu/x86emu.h>
+#include "io.h"
 
 #ifdef CONFIG_PCI_OPTION_ROM_RUN_YABEL
 #include <device/pci.h>
@@ -87,10 +88,7 @@ u8 my_inb(X86EMU_pioAddr addr)
        u8 val;
 
        val = inb(addr);
-#ifdef CONFIG_DEBUG
-       if ((debug_flags & DEBUG_IO) && (addr != 0x40))
-           printk("inb(0x%04x) = 0x%02x\n", addr, val);
-#endif
+       DEBUG_PRINTF_IO("inb(0x%04x) = 0x%02x\n", addr, val);
 
        return val;
 }
@@ -100,11 +98,8 @@ u16 my_inw(X86EMU_pioAddr addr)
        u16 val;
 
        val = inw(addr);
+       DEBUG_PRINTF_IO("inw(0x%04x) = 0x%04x\n", addr, val);
 
-#ifdef CONFIG_DEBUG
-       if (debug_flags & DEBUG_IO)
-               printk("inw(0x%04x) = 0x%04x\n", addr, val);
-#endif
        return val;
 }
 
@@ -113,38 +108,26 @@ u32 my_inl(X86EMU_pioAddr addr)
        u32 val;
 
        val = inl(addr);
+       DEBUG_PRINTF_IO("inl(0x%04x) = 0x%08x\n", addr, val);
 
-#ifdef CONFIG_DEBUG
-       if (debug_flags & DEBUG_IO)
-               printk("inl(0x%04x) = 0x%08x\n", addr, val);
-#endif
        return val;
 }
 
 void my_outb(X86EMU_pioAddr addr, u8 val)
 {
-#ifdef CONFIG_DEBUG
-       if ((debug_flags & DEBUG_IO) && (addr != 0x43))
-               printk("outb(0x%02x, 0x%04x)\n", val, addr);
-#endif
+       DEBUG_PRINTF_IO("outb(0x%02x, 0x%04x)\n", val, addr);
        outb(val, addr);
 }
 
 void my_outw(X86EMU_pioAddr addr, u16 val)
 {
-#ifdef CONFIG_DEBUG
-       if (debug_flags & DEBUG_IO)
-               printk("outw(0x%04x, 0x%04x)\n", val, addr);
-#endif
+       DEBUG_PRINTF_IO("outw(0x%04x, 0x%04x)\n", val, addr);
        outw(val, addr);
 }
 
 void my_outl(X86EMU_pioAddr addr, u32 val)
 {
-#ifdef CONFIG_DEBUG
-       if (debug_flags & DEBUG_IO)
-               printk("outl(0x%08x, 0x%04x)\n", val, addr);
-#endif
+       DEBUG_PRINTF_IO("outl(0x%08x, 0x%04x)\n", val, addr);
        outl(val, addr);
 }
 
index 1cf66ddff74ca69f3abc43e8588caa156bd27ac0..c04f56bfacf71e263addb515b746438a4267836f 100644 (file)
 #include "device.h"
 #include "x86emu/x86emu.h"
 #include "biosemu.h"
+#include "mem.h"
 #include "compat/time.h"
 
 // define a check for access to certain (virtual) memory regions (interrupt handlers, BIOS Data Area, ...)
-#ifdef DEBUG
+#if CONFIG_X86EMU_DEBUG
 static u8 in_check = 0;        // to avoid recursion...
 u16 ebda_segment;
 u32 ebda_size;
@@ -27,11 +28,6 @@ u32 ebda_size;
 //TODO: these macros have grown so large, that they should be changed to an inline function,
 //just for the sake of readability...
 
-//declare prototypes of the functions to follow, for use in DEBUG_CHECK_VMEM_ACCESS
-u8 my_rdb(u32);
-u16 my_rdw(u32);
-u32 my_rdl(u32);
-
 #define DEBUG_CHECK_VMEM_READ(_addr, _rval) \
    if ((debug_flags & DEBUG_CHECK_VMEM_ACCESS) && (in_check == 0)) { \
          in_check = 1; \
index 6814b1964f9dd93a93b6a985b4c9de2e45380c89..11a1ece73d68e697f6aa865ff0d3e1a67a38ecb1 100644 (file)
@@ -154,7 +154,7 @@ vbe_prepare(void)
 }
 
 // VBE Function 00h
-u8
+static u8
 vbe_info(vbe_info_t * info)
 {
        vbe_prepare();
@@ -223,7 +223,7 @@ vbe_info(vbe_info_t * info)
 }
 
 // VBE Function 01h
-u8
+static u8
 vbe_get_mode_info(vbe_mode_info_t * mode_info)
 {
        vbe_prepare();
@@ -264,7 +264,7 @@ vbe_get_mode_info(vbe_mode_info_t * mode_info)
 }
 
 // VBE Function 02h
-u8
+static u8
 vbe_set_mode(vbe_mode_info_t * mode_info)
 {
        vbe_prepare();
@@ -301,7 +301,7 @@ vbe_set_mode(vbe_mode_info_t * mode_info)
 }
 
 //VBE Function 08h
-u8
+static u8
 vbe_set_palette_format(u8 format)
 {
        vbe_prepare();
@@ -337,7 +337,7 @@ vbe_set_palette_format(u8 format)
 }
 
 // VBE Function 09h
-u8
+static u8
 vbe_set_color(u16 color_number, u32 color_value)
 {
        vbe_prepare();
@@ -379,7 +379,7 @@ vbe_set_color(u16 color_number, u32 color_value)
        return 0;
 }
 
-u8
+static u8
 vbe_get_color(u16 color_number, u32 * color_value)
 {
        vbe_prepare();
@@ -422,7 +422,7 @@ vbe_get_color(u16 color_number, u32 * color_value)
 }
 
 // VBE Function 15h
-u8
+static u8
 vbe_get_ddc_info(vbe_ddc_info_t * ddc_info)
 {
        vbe_prepare();
@@ -496,7 +496,7 @@ vbe_get_ddc_info(vbe_ddc_info_t * ddc_info)
        return 0;
 }
 
-u32
+static u32
 vbe_get_info(void)
 {
        u8 rval;
@@ -571,7 +571,7 @@ vbe_get_info(void)
        }
 #endif
        if (*((u64 *) ddc_info.edid_block_zero) !=
-           (u64) 0x00FFFFFFFFFFFF00) {
+           (u64) 0x00FFFFFFFFFFFF00ULL) {
                // invalid EDID signature... probably no monitor
 
                output->display_type = 0x0;
@@ -599,36 +599,36 @@ vbe_get_info(void)
 
                DEBUG_PRINTF_VBE("Video Mode 0x%04x available, %s\n",
                                 mode_info.video_mode,
-                                (mode_info.attributes & 0x1) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x1) ==
                                 0 ? "not supported" : "supported");
                DEBUG_PRINTF_VBE("\tTTY: %s\n",
-                                (mode_info.attributes & 0x4) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x4) ==
                                 0 ? "no" : "yes");
                DEBUG_PRINTF_VBE("\tMode: %s %s\n",
-                                (mode_info.attributes & 0x8) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x8) ==
                                 0 ? "monochrome" : "color",
-                                (mode_info.attributes & 0x10) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x10) ==
                                 0 ? "text" : "graphics");
                DEBUG_PRINTF_VBE("\tVGA: %s\n",
-                                (mode_info.attributes & 0x20) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x20) ==
                                 0 ? "compatible" : "not compatible");
                DEBUG_PRINTF_VBE("\tWindowed Mode: %s\n",
-                                (mode_info.attributes & 0x40) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x40) ==
                                 0 ? "yes" : "no");
                DEBUG_PRINTF_VBE("\tFramebuffer: %s\n",
-                                (mode_info.attributes & 0x80) ==
+                                (le16_to_cpu(mode_info.vesa.mode_attributes) & 0x80) ==
                                 0 ? "no" : "yes");
                DEBUG_PRINTF_VBE("\tResolution: %dx%d\n",
-                                mode_info.x_resolution,
-                                mode_info.y_resolution);
+                                le16_to_cpu(mode_info.vesa.x_resolution),
+                                le16_to_cpu(mode_info.vesa.y_resolution));
                DEBUG_PRINTF_VBE("\tChar Size: %dx%d\n",
-                                mode_info.x_charsize, mode_info.y_charsize);
+                                mode_info.vesa.x_charsize, mode_info.vesa.y_charsize);
                DEBUG_PRINTF_VBE("\tColor Depth: %dbpp\n",
-                                mode_info.bits_per_pixel);
+                                mode_info.vesa.bits_per_pixel);
                DEBUG_PRINTF_VBE("\tMemory Model: 0x%x\n",
-                                mode_info.memory_model);
+                                mode_info.vesa.memory_model);
                DEBUG_PRINTF_VBE("\tFramebuffer Offset: %08x\n",
-                                mode_info.framebuffer_address);
+                                le32_to_cpu(mode_info.vesa.phys_base_ptr));
 
                if ((mode_info.vesa.bits_per_pixel == input.color_depth)
                    && (le16_to_cpu(mode_info.vesa.x_resolution) <= input.max_screen_width)
@@ -647,10 +647,10 @@ vbe_get_info(void)
                DEBUG_PRINTF_VBE
                    ("Best Video Mode found: 0x%x, %dx%d, %dbpp, framebuffer_address: 0x%x\n",
                     best_mode_info.video_mode,
-                    best_mode_info.x_resolution,
-                    best_mode_info.y_resolution,
-                    best_mode_info.bits_per_pixel,
-                    best_mode_info.framebuffer_address);
+                    best_mode_info.vesa.x_resolution,
+                    best_mode_info.vesa.y_resolution,
+                    best_mode_info.vesa.bits_per_pixel,
+                    le32_to_cpu(best_mode_info.vesa.phys_base_ptr));
 
                //printf("Mode Info Dump:");
                //dump(best_mode_info.mode_info_block, 64);