1139825Simp/*- 217350Sasami * Copyright (c) KATO Takenori, 1996. All rights reserved. 317350Sasami * 417350Sasami * Redistribution and use in source and binary forms, with or without 517350Sasami * modification, are permitted provided that the following conditions 617350Sasami * are met: 717350Sasami * 1. Redistributions of source code must retain the above copyright 817350Sasami * notice, this list of conditions and the following disclaimer as 917350Sasami * the first lines of this file unmodified. 1017350Sasami * 2. Redistributions in binary form must reproduce the above copyright 1117350Sasami * notice, this list of conditions and the following disclaimer in the 1217350Sasami * documentation and/or other materials provided with the distribution. 1317350Sasami * 3. The name of the author may not be used to endorse or promote products 1417350Sasami * derived from this software without specific prior written permission. 1517350Sasami * 1617350Sasami * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1717350Sasami * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1817350Sasami * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1917350Sasami * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2017350Sasami * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2117350Sasami * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2217350Sasami * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2317350Sasami * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2417350Sasami * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2517350Sasami * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2655206Speter * 2755206Speter * $FreeBSD$ 2817350Sasami */ 2917350Sasami 3017350Sasami#ifndef __PC98_PC98_PC98_MACHDEP_H__ 3117350Sasami#define __PC98_PC98_PC98_MACHDEP_H__ 3217350Sasami 3392793Skatovoid pc98_init_dmac(void); 3492793Skatounsigned int pc98_getmemsize(unsigned *, unsigned *); 3517350Sasami 3622407Skato#define PC98_VECTOR_SIZE (0x400) 37158358Snyan#define PC98_SYSTEM_PARAMETER_SIZE (0x240) 38158358Snyan#define PC98_SAVE_AREA (0xa1000) 3922407Skato 4055206Speter#if defined(_KERNEL) && !defined(LOCORE) 4122407Skato/* BIOS parameter block */ 4222407Skatoextern unsigned char pc98_system_parameter[]; /* in locore.c */ 43158358Snyan 44158358Snyan#define OFS_pc98_machine_type 0x220 45158358Snyan#define OFS_epson_machine_id 0x224 4622407Skato#define OFS_epson_bios_id 0x225 47158358Snyan#define OFS_epson_system_type 0x226 4822407Skato 4922407Skato#define PC98_SYSTEM_PARAMETER(x) pc98_system_parameter[(x)-0x400] 5022407Skato#define pc98_machine_type (*(unsigned long*)&pc98_system_parameter[OFS_pc98_machine_type]) 5122407Skato#define epson_machine_id (pc98_system_parameter[OFS_epson_machine_id]) 5222407Skato#define epson_bios_id (pc98_system_parameter[OFS_epson_bios_id]) 5322407Skato#define epson_system_type (pc98_system_parameter[OFS_epson_system_type]) 5422407Skato 5522407Skato# define PC98_TYPE_CHECK(x) ((pc98_machine_type & (x)) == (x)) 5622407Skato 57150128Snyan/* 58158358Snyan * PC98 machine type 59158358Snyan */ 60158358Snyan#define M_NEC_PC98 0x0001 61158358Snyan#define M_EPSON_PC98 0x0002 62158358Snyan#define M_NOT_H98 0x0010 63158358Snyan#define M_H98 0x0020 64158358Snyan#define M_NOTE 0x0040 65158358Snyan#define M_NORMAL 0x1000 66158358Snyan#define M_8M 0x8000 67158358Snyan 68158358Snyan/* 69150128Snyan * EPSON machine list 70150128Snyan */ 71150128Snyan#define EPSON_PC386_NOTE_A 0x20 72150128Snyan#define EPSON_PC386_NOTE_W 0x22 73150128Snyan#define EPSON_PC386_NOTE_AE 0x27 74150128Snyan#define EPSON_PC386_NOTE_WR 0x2a 75150128Snyan#define EPSON_PC486_GR 0x2b 76150128Snyan#define EPSON_PC486_P 0x30 77150128Snyan#define EPSON_PC486_GR_SUPER 0x31 78150128Snyan#define EPSON_PC486_GR_PLUS 0x32 79150128Snyan#define EPSON_PC486_HX 0x34 80150128Snyan#define EPSON_PC486_HG 0x35 81150128Snyan#define EPSON_PC486_SE 0x37 82150128Snyan#define EPSON_PC486_SR 0x38 83150128Snyan#define EPSON_PC486_HA 0x3b 84150128Snyan 85184327Skato/* IDE HDD geometry conversion. */ 86184327Skato#define AD_GEOM_ADJUST_NONE 0 /* Do nothing. */ 87184327Skato#define AD_GEOM_ADJUST_COMPATIDE 1 /* PC-98 IDE BIOS. */ 88184327Skato#define AD_GEOM_ADJUST_COMPATSCSI 2 /* PC-98 SCSI. */ 89184327Skato#define AD_GEOM_ADJUST_COMPATCYL16 100 /* Compat Rev. 1.28. */ 90184327Skato 91184327Skato#define MEDIASIZE_4_3G (4351LL * 1024LL * 1024LL) /* 4351M */ 92184327Skato#define MEDIASIZE_8G (8192LL * 1024LL * 1024LL) /* 8192M */ 93184327Skato#define MEDIASIZE_29_5G (30239LL * 1024LL * 1024LL) /* 30239M */ 94184327Skato#define MEDIASIZE_31_5G (32255LL * 1024 * 1024) /* 32255M */ 95184327Skato#define MEDIASIZE_32G (32768LL * 1024LL * 1024LL) /* 32768M */ 96184327Skato#define MEDIASIZE_60G (61440LL * 1024LL * 1024LL) /* 61440M */ 97184327Skato#define MEDIASIZE_120G (122400LL * 1024LL * 1024LL) /* 122400M */ 98184327Skato#define MEDIASIZE_127G (130558LL * 1024LL * 1024LL) /* 130558M */ 99184327Skato 10055206Speter#endif /* _KERNEL */ 10122407Skato 10217350Sasami#endif /* __PC98_PC98_PC98_MACHDEP_H__ */ 103