📄 pc.h
字号:
/* pc.h - PC common header */
/* Copyright 1992-2002 Wind River Systems, Inc. */
/*
modification history
--------------------
04o,27jun02,hdn added comment for FD_DMA_BUF_ADDR (spr 34045)
changed EBDA for the GS BIOS to preserve the MP table
04n,09may02,hdn added Pentium4 Asymmetric Multi Processor configuration
02m,28apr02,hdn added optional new i8259 PIC specific features (spr 76411)
02l,25apr02,rhe Added C++ Protection
02k,09apr02,pai Reworked ATA configuration and documentation (SPR# 73848).
02j,12mar02,hdn added macros for PIC and IO/Local APIC for HTT (spr 73738)
02i,02nov01,hdn removed "#include ideDrv.h"
02h,23oct01,pai Removed #include pciConfigLib.h. Removed FEI specific
definitions. Added VESA BIOS macros for WindML (spr 69874).
02g,23oct01,dmh document steps for additional serial ports. (spr 5704)
02f,02oct01,pai Added MSE_INT_LVL mouse interrupt level value for WindML.
02e,31aug01,hdn removed ROM_XXX offset as GAS improved (spr 69891)
updated [LI]OAPIC support for Pentium4
discontinued ideDrv in favor of ataDrv
changed BUS to BUS_TYPE_PCI. (spr 32598)
added LPT[012]_xxx macros (spr 30067) on behalf of pai
02d,08feb99,jkf removed PCI_CFG_* definitions, now set in configAll.h
02c,28may98,hdn added support for APIC.
02b,13may98,hdn moved PAGE_SIZE_XXX macro to mmuI86Lib.h and include it.
added UNUSED_ISA_IO_ADDRESS for IO address 0x84.
02a,16apr98,hdn added PAGE_SIZE_XXX macro for PentiumPro.
01z,17mar98,sbs added definitions for dynamic mmu entries.
01y,12mar98,sbs changed SCSI-2 definitions to device specific definitions.
Added PCI configuration definitions and FEI specific
definitions.
01x,10jul97,dds added SCSI-2 support.
01w,16jan97,hdn added PCMCIA_SOCKS, PCMCIA_MEMBASE.
01v,03dec96,hdn renamed PCI_FEIxxx to FEIxxx.
01u,20nov96,hdn added support for PRO100B.
01t,01nov96,hdn added support for PCMCIA.
01s,21oct96,hdn added new configuration macros for LPT: LPT_xxx.
01r,12oct96,hdn added support for ATA-2. changed ATA[01]_CONFIG.
01q,03sep96,hdn added the compression support.
01p,09aug96,hdn renamed INT_VEC_IRQ0 to INT_NUM_IRQ0.
01o,19jul96,hdn added support for ATA driver.
01n,25jun96,hdn added support for TIMESTAMP timer.
01m,28may96,hdn renamed PIT_INT_xxx to PIT0_INT_xxx.
01l,14jun95,myz removed #include tyLib.h
01k,21oct94,hdn deleted ENABLE_A20 macro.
01j,15oct94,hdn added macros for LPT parallel driver.
01i,25apr94,hdn moved a macro PC_KBD_TYPE to config.h.
01h,08nov93,vin added support for pc console drivers.
01g,12oct93,hdn added interrupt level macros.
01f,16aug93,hdn added RTC related macros.
01e,03aug93,hdn changed vectors for serial and timer.
01d,17jun93,hdn updated to 5.1.
01c,07apr93,hdn renamed compaq to pc.
01b,26mar93,hdn deleted a macro CPU because it supports 386 and 486.
01a,15may92,hdn written based on frc386 version.
*/
/*
This file contains IO address, memory address, and related constants
for the PC [3|4]86 and PC Pentium[2|3|4] BSPs.
*/
#ifndef INCpch
#define INCpch
#ifdef __cplusplus
extern "C" {
#endif
#include "drv/intrCtl/i8259.h"
#include "drv/timer/i8253.h"
#include "drv/timer/mc146818.h"
#include "drv/timer/timerDev.h"
#include "drv/timer/timestampDev.h"
#include "drv/fdisk/nec765Fd.h"
#include "drv/serial/pcConsole.h"
#include "drv/parallel/lptDrv.h"
#include "drv/pcmcia/pcmciaLib.h"
#include "drv/hdisk/ataDrv.h"
#include "drv/intrCtl/loApic.h"
#include "drv/intrCtl/ioApic.h"
/* timer (PIT) */
#define PIT_BASE_ADR 0x40
#define PIT0_INT_LVL INT_NUM_IRQ0+0x00
#define PIT_REG_ADDR_INTERVAL 1 /* address diff of adjacent regs. */
#define PIT_CLOCK 1193180
/* real time clock (RTC) */
#define RTC_INDEX 0x70
#define RTC_DATA 0x71
#define RTC_INT_LVL INT_NUM_IRQ0+0x08
/* Mouse (MSE) */
#define MSE_INT_LVL (INT_NUM_IRQ0+0x0c) /* IRQ 12 assuming PS/2 mouse */
/* key board (KBD) */
#define PC_XT_83_KBD 0 /* 83 KEY PC/PCXT/PORTABLE */
#define PC_PS2_101_KBD 1 /* 101 KEY PS/2 */
#define KBD_INT_LVL INT_NUM_IRQ0+0x01
#define COMMAND_8042 0xfe000000+0x64
#define DATA_8042 0xfe000000+0x60
#define STATUS_8042 COMMAND_8042
#define COMMAND_8048 0xfe000000+0x61 /* out Port PC 61H in the 8255 PPI */
#define DATA_8048 0xfe000000+0x60 /* input port */
#define STATUS_8048 COMMAND_8048
#define JAPANES_KBD 0
#define ENGLISH_KBD 1
/* beep generator */
#define DIAG_CTRL 0x61
#define BEEP_PITCH_L 1280 /* 932 Hz */
#define BEEP_PITCH_S 1208 /* 987 Hz */
#define BEEP_TIME_L (sysClkRateGet () / 3) /* 0.66 sec */
#define BEEP_TIME_S (sysClkRateGet () / 8) /* 0.15 sec */
/* Monitor definitions */
#define MONOCHROME 0
#define VGA 1
#define MONO 0
#define COLOR 1
#define VGA_MEM_BASE (UCHAR *) 0xb8000
#define VGA_SEL_REG (UCHAR *) (0xfe000000+0x3d4)
#define VGA_VAL_REG (UCHAR *) (0xfe000000+0x3d5)
#define MONO_MEM_BASE (UCHAR *) 0xb0000
#define MONO_SEL_REG (UCHAR *) (0xfe000000+0x3b4)
#define MONO_VAL_REG (UCHAR *) (0xfe000000+0x3b5)
#define CHR 2
#define VESA_BIOS_DATA_ADDRESS (0xbfb00) /* BIOS data storage */
#define VESA_BIOS_DATA_PREFIX (VESA_BIOS_DATA_ADDRESS - 8)
#define VESA_BIOS_DATA_SIZE (0x500) /* Vesa BIOS data size */
#define VESA_BIOS_KEY_1 (0x534F4942) /* "BIOS" */
#define VESA_BIOS_KEY_2 (0x41544144) /* "DATA" */
/* change this to JAPANES_KBD if Japanese enhanced mode wanted */
#define KEYBRD_MODE ENGLISH_KBD
/* undefine this if ansi escape sequence not wanted */
#define INCLUDE_ANSI_ESC_SEQUENCE
#define GRAPH_ADAPTER VGA
#if (GRAPH_ADAPTER == MONOCHROME)
#define DEFAULT_FG ATRB_FG_WHITE
#define DEFAULT_BG ATRB_BG_BLACK
#define DEFAULT_ATR DEFAULT_FG | DEFAULT_BG
#define CTRL_SEL_REG MONO_SEL_REG /* controller select reg */
#define CTRL_VAL_REG MONO_VAL_REG /* controller value reg */
#define CTRL_MEM_BASE MONO_MEM_BASE /* controller memory base */
#define COLOR_MODE MONO /* color mode */
#else /* GRAPH_ADAPTER = VGA */
#define DEFAULT_FG ATRB_FG_BRIGHTWHITE
#define DEFAULT_BG ATRB_BG_BLUE
#define DEFAULT_ATR DEFAULT_FG | DEFAULT_BG
#define CTRL_SEL_REG VGA_SEL_REG /* controller select reg */
#define CTRL_VAL_REG VGA_VAL_REG /* controller value reg */
#define CTRL_MEM_BASE VGA_MEM_BASE /* controller memory base */
#define COLOR_MODE COLOR /* color mode */
#endif /* (ADAPTER == MONOCHROME) */
#ifdef __cplusplus
}
#endif
#endif /* INCpch */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -