!************************************************************************** !* !* Boot-ROM-Code to load an operating system across a TCP/IP network. !* !* Module: pci.inc !* Purpose: Definitions for accessing PCI BIOS functions !* Entries: None !* !************************************************************************** !* !* Copyright (C) 2002-2003 Gero Kuhlmann !* !* This program is free software; you can redistribute it and/or modify !* it under the terms of the GNU General Public License as published by !* the Free Software Foundation; either version 2 of the License, or !* any later version. !* !* This program is distributed in the hope that it will be useful, !* but WITHOUT ANY WARRANTY; without even the implied warranty of !* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the !* GNU General Public License for more details. !* !* You should have received a copy of the GNU General Public License !* along with this program; if not, write to the Free Software !* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. !* !* $Id: pci.inc,v 1.2 2003/01/25 23:29:40 gkminix Exp $ !* #ifndef _HW_PCI_INC #define _HW_PCI_INC ! !************************************************************************** ! ! PCI BIOS functions: ! PCI_FUNC_INST_CHECK equ $B101 ! PCI BIOS installation check PCI_FUNC_FIND_DEV equ $B102 ! find PCI device PCI_FUNC_FIND_CLASS equ $B103 ! find PCI class code PCI_FUNC_BUS_OP equ $B106 ! PCI bus-specific operation PCI_FUNC_READ_BYTE equ $B108 ! read configuration byte PCI_FUNC_READ_WORD equ $B109 ! read configuration word PCI_FUNC_READ_DWORD equ $B10A ! read configuration dword PCI_FUNC_WRITE_BYTE equ $B10B ! write configuration byte PCI_FUNC_WRITE_WORD equ $B10C ! write configuration word PCI_FUNC_WRITE_DWORD equ $B10D ! write configuration dword PCI_FUNC_GET_IRQ equ $B10E ! get IRQ routing table PCI_FUNC_SET_IRQ equ $B10F ! set IRQ routing information ! !************************************************************************** ! ! PCI register offsets: ! PCI_REG_VENDOR_ID equ $0000 ! vendor ID (word) PCI_REG_DEVICE_ID equ $0002 ! device ID (word) PCI_REG_COMMAND equ $0004 ! command flags (word) PCI_REG_STATUS equ $0006 ! status register (word) PCI_REG_REVISION equ $0008 ! revision ID (byte) PCI_REG_CLASS_PROG equ $0009 ! prog. interface level (byte) PCI_REG_CLASS_DEVICE equ $000A ! device class (word) PCI_REG_CACHE_SIZE equ $000C ! cache line size (byte) PCI_REG_LATENCY_TIMER equ $000D ! latency timer (byte) PCI_REG_HEADER_TYPE equ $000E ! header type (byte) PCI_REG_BIST equ $000F ! self test (byte) PCI_REG_ADDR_0 equ $0010 ! base addresses (dword) PCI_REG_ADDR_1 equ $0014 PCI_REG_ADDR_2 equ $0018 PCI_REG_ADDR_3 equ $001C PCI_REG_ADDR_4 equ $0020 PCI_REG_ADDR_5 equ $0024 ! Header type 0 (normal devices) PCI_REG_CARDBUS_CIS equ $0028 PCI_REG_SUBSYS_VEND equ $002C ! subsystem vendor ID (word) PCI_REG_SUBSYS_ID equ $002E ! subsystem device ID (word) PCI_REG_ROM_ADDR equ $0030 ! onboard ROM address (dword) PCI_REG_CAP_LIST equ $0034 ! start of capability list PCI_REG_INT_LINE equ $003C ! interrupt line number (byte) PCI_REG_INT_PIN equ $003D ! interrupt pin number (byte) PCI_REG_MIN_GNT equ $003E ! minimum grant time (byte) PCI_REG_MAX_LAT equ $003F ! maximum latency time (byte) ! !************************************************************************** ! ! Command register bit fields ! PCI_CMD_IO equ %0000000000000001 ! enable I/O space PCI_CMD_MEMORY equ %0000000000000010 ! enable memory space PCI_CMD_MASTER equ %0000000000000100 ! enable bus mastering PCI_CMD_SPECIAL equ %0000000000001000 ! enable special cycles PCI_CMD_INVALIDATE equ %0000000000010000 ! use memory invalidate PCI_CMD_VGA_PALETTE equ %0000000000100000 ! enable palette snoop PCI_CMD_PARITY equ %0000000001000000 ! enable parity checking PCI_CMD_WAIT equ %0000000010000000 ! enable addr stepping PCI_CMD_SERR equ %0000000100000000 ! enable SERR PCI_CMD_FAST_BACK equ %0000001000000000 ! enable back-to-back ! !************************************************************************** ! ! Status register bit fields ! PCI_STS_CAP_LIST equ %0000000000010000 ! support capabil. list PCI_STS_66MHZ equ %0000000000100000 ! support 66 MHz bus PCI_STS_UDF equ %0000000001000000 ! support UDF (obsolete) PCI_STS_FAST_BACK equ %0000000010000000 ! support back-to-back PCI_STS_PARITY equ %0000000100000000 ! detected parity error PCI_STS_DEVSEL_MASK equ %0000011000000000 ! DEVSEL timing bits PCI_STS_SIG_TARGET equ %0000100000000000 ! set on target abort PCI_STS_REC_TARGET equ %0001000000000000 ! ack of target abort PCI_STS_SIG_MASTER equ %0010000000000000 ! set on master abort PCI_STS_SIG_SYSTEM equ %0100000000000000 ! set on system error PCI_STS_DET_PARITY equ %1000000000000000 ! parity detected ! !************************************************************************** ! ! PCI network class codes ! PCI_BASE_NETWORK equ $02 ! network base class PCI_CLASS_ETHERNET equ $0200 PCI_CLASS_TOKEN_RING equ $0201 PCI_CLASS_FDDI equ $0202 PCI_CLASS_ATM equ $0203 PCI_CLASS_OTHER equ $0280 ! !************************************************************************** ! #endif