106 lines
4.5 KiB
C
Raw Normal View History

2001-01-01 00:00:00 +01:00
/*++
Copyright (c) 2001 Microsoft Corporation
Module Name:
xpcicfg.h
Abstract:
This module defines the static PCI configuration for an XBOX.
--*/
#ifndef _XPCICFG_
#define _XPCICFG_
//
// Note that the Advanced Programmable Interrupt Controller (APIC) defaults to
// location 0xFEE00000 and consumes one page. The kernel turns off the APIC,
// but debugger extensions (VTune) may reenable it.
//
// Bus 0, device 0, function 0.
#define XPCICFG_HOSTBRIDGE_DEVICE_ID 0
#define XPCICFG_HOSTBRIDGE_FUNCTION_ID 0
// Bus 0, device 1, function 0.
#define XPCICFG_LPCBRIDGE_DEVICE_ID 1
#define XPCICFG_LPCBRIDGE_FUNCTION_ID 0
#define XPCICFG_LPCBRIDGE_IO_REGISTER_BASE_0 0x8000
#define XPCICFG_LPCBRIDGE_IO_REGISTER_LENGTH_0 0x0100
// Bus 0, device 1, function 1.
#define XPCICFG_SMBUS_DEVICE_ID 1
#define XPCICFG_SMBUS_FUNCTION_ID 1
#define XPCICFG_SMBUS_IO_REGISTER_BASE_1 0xC000
#define XPCICFG_SMBUS_IO_REGISTER_LENGTH_1 0x0010
#define XPCICFG_SMBUS_IO_REGISTER_BASE_2 0xC200
#define XPCICFG_SMBUS_IO_REGISTER_LENGTH_2 0x0020
// Bus 0, device 2, function 0.
#define XPCICFG_USB0_DEVICE_ID 2
#define XPCICFG_USB0_FUNCTION_ID 0
#define XPCICFG_USB0_IRQ 1
#define XPCICFG_USB0_MEMORY_REGISTER_BASE_0 0xFED00000
#define XPCICFG_USB0_MEMORY_REGISTER_LENGTH_0 0x00001000
// Bus 0, device 3, function 0.
#define XPCICFG_USB1_DEVICE_ID 3
#define XPCICFG_USB1_FUNCTION_ID 0
#define XPCICFG_USB1_IRQ 9
#define XPCICFG_USB1_MEMORY_REGISTER_BASE_0 0xFED08000
#define XPCICFG_USB1_MEMORY_REGISTER_LENGTH_0 0x00001000
// Bus 0, device 4, function 0.
#define XPCICFG_NIC_DEVICE_ID 4
#define XPCICFG_NIC_FUNCTION_ID 0
#define XPCICFG_NIC_IRQ 4
#define XPCICFG_NIC_MEMORY_REGISTER_BASE_0 0xFEF00000
#define XPCICFG_NIC_MEMORY_REGISTER_LENGTH_0 0x00000400
#define XPCICFG_NIC_IO_REGISTER_BASE_1 0xE000
#define XPCICFG_NIC_IO_REGISTER_LENGTH_1 0x0008
// Bus 0, device 5, function 0.
#define XPCICFG_APU_DEVICE_ID 5
#define XPCICFG_APU_FUNCTION_ID 0
#define XPCICFG_APU_IRQ 5
#define XPCICFG_APU_MEMORY_REGISTER_BASE_0 0xFE800000
#define XPCICFG_APU_MEMORY_REGISTER_LENGTH_0 0x00080000
// Bus 0, device 6, function 0.
#define XPCICFG_ACI_DEVICE_ID 6
#define XPCICFG_ACI_FUNCTION_ID 0
#define XPCICFG_ACI_IRQ 6
#define XPCICFG_ACI_IO_REGISTER_BASE_0 0xD000
#define XPCICFG_ACI_IO_REGISTER_LENGTH_0 0x0100
#define XPCICFG_ACI_IO_REGISTER_BASE_1 0xD200
#define XPCICFG_ACI_IO_REGISTER_LENGTH_1 0x0080
#define XPCICFG_ACI_MEMORY_REGISTER_BASE_2 0xFEC00000
#define XPCICFG_ACI_MEMORY_REGISTER_LENGTH_2 0x00001000
// Bus 0, device 9, function 0.
#define XPCICFG_IDE_DEVICE_ID 9
#define XPCICFG_IDE_FUNCTION_ID 0
#define XPCICFG_IDE_IRQ 14
#define XPCICFG_IDE_IO_REGISTER_BASE_4 0xFF60
#define XPCICFG_IDE_IO_REGISTER_LENGTH_4 0x0010
// Bus 0, device 30, function 0.
#define XPCICFG_AGPBRIDGE_DEVICE_ID 30
#define XPCICFG_AGPBRIDGE_FUNCTION_ID 0
// Bus 1, device 0, device 0.
#define XPCICFG_GPU_DEVICE_ID 0
#define XPCICFG_GPU_FUNCTION_ID 0
#define XPCICFG_GPU_IRQ 3
#define XPCICFG_GPU_MEMORY_REGISTER_BASE_0 0xFD000000
#define XPCICFG_GPU_MEMORY_REGISTER_LENGTH_0 0x01000000
// Map a device name to PCI slot number
#define XPCI_SLOT_NUMBER(device) \
((XPCICFG_##device##_DEVICE_ID) | ((XPCICFG_##device##_FUNCTION_ID) << 5))
#endif // XPCICFG