14d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima/////////////////////////////////////////////////////////////////////////
24d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima// $Id$
34d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima/////////////////////////////////////////////////////////////////////////
44d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//
54d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  Copyright (C) 2006 Volker Ruppert
64d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//
74d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  This library is free software; you can redistribute it and/or
84d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  modify it under the terms of the GNU Lesser General Public
94d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  License as published by the Free Software Foundation; either
104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  version 2 of the License, or (at your option) any later version.
114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//
124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  This library is distributed in the hope that it will be useful,
134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  but WITHOUT ANY WARRANTY; without even the implied warranty of
144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  Lesser General Public License for more details.
164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//
174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  You should have received a copy of the GNU Lesser General Public
184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  License along with this library; if not, write to the Free Software
194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima/* define it to include QEMU specific code */
224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BX_QEMU
234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#ifndef LEGACY
254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_ROMBIOS32     1
264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#else
274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_ROMBIOS32     0
284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#endif
294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define DEBUG_ROMBIOS    0
304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define PANIC_PORT  0x400
324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define PANIC_PORT2 0x401
334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define INFO_PORT   0x402
344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define DEBUG_PORT  0x403
354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BIOS_PRINTF_HALT     1
374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BIOS_PRINTF_SCREEN   2
384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BIOS_PRINTF_INFO     4
394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BIOS_PRINTF_DEBUG    8
404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BIOS_PRINTF_ALL      (BIOS_PRINTF_SCREEN | BIOS_PRINTF_INFO)
414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BIOS_PRINTF_DEBHALT  (BIOS_PRINTF_SCREEN | BIOS_PRINTF_INFO | BIOS_PRINTF_HALT)
424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define printf(format, p...)  bios_printf(BIOS_PRINTF_SCREEN, format, ##p)
444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima// Defines the output macros.
464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima// BX_DEBUG goes to INFO port until we can easily choose debug info on a
474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima// per-device basis. Debug info are sent only in debug mode
484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#if DEBUG_ROMBIOS
494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_DEBUG(format, p...)  bios_printf(BIOS_PRINTF_INFO, format, ##p)
504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#else
514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_DEBUG(format, p...)
524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#endif
534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BX_INFO(format, p...)   bios_printf(BIOS_PRINTF_INFO, format, ##p)
544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define BX_PANIC(format, p...)  bios_printf(BIOS_PRINTF_DEBHALT, format, ##p)
554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define ACPI_DATA_SIZE    0x00010000L
574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define PM_IO_BASE        0xb000
584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SMB_IO_BASE       0xb100
594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define SMP_MSR_ADDR      0x0510
604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima  // Define the application NAME
624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#if defined(BX_QEMU)
634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_APPNAME "QEMU"
644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#elif defined(PLEX86)
654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_APPNAME "Plex86"
664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#else
674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#  define BX_APPNAME "Bochs"
684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#endif
69