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