summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halflex/mips/jxhalp.h
blob: 83bcf38bd7138e22145fbdf354fa9c818d402286 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*++ BUILD Version: 0001    // Increment this if a change has global effects

Copyright (c) 1991  Microsoft Corporation

Module Name:

    jxhalp.h

Abstract:

    This header file defines the private Hardware Architecture Layer (HAL)
    Jazz specific interfaces, defines and structures.

Author:

    Jeff Havens (jhavens) 20-Jun-91


Revision History:

--*/

#ifndef _JXHALP_
#define _JXHALP_

typedef enum _ADDRESS_SPACE_TYPE{
    BusMemory=0,
    BusIo = 1,
    UserBusMemory = 2,
    UserBusIo = 3,
    KernelPciDenseMemory = 4,
    UserPciDenseMemory = 6,
} ADDRESS_SPACE_TYPE, *PADDRESS_SPACE_TYPE;

extern PVOID                HalpSecondaryCacheResetBase;
extern PVOID                HalpFirmwareVirtualBase;
extern PVOID                PciInterruptRegisterBase;

extern ULONG                HalpIoArchitectureType;
extern ULONG                HalpMotherboardType;
extern UCHAR                *HalpInterruptLineToBit;
extern UCHAR                *HalpBitToInterruptLine;
extern UCHAR                *HalpInterruptLineToVirtualIsa;
extern UCHAR                *HalpVirtualIsaToInterruptLine;
extern ULONGLONG            HalpPciConfig0BasePhysical;
extern ULONGLONG            HalpPciConfig1BasePhysical;
extern ULONGLONG            HalpIsaIoBasePhysical;
extern ULONGLONG            HalpIsa1IoBasePhysical;
extern ULONGLONG            HalpIsaMemoryBasePhysical;
extern ULONGLONG            HalpIsa1MemoryBasePhysical;
extern ULONGLONG            HalpPciIoBasePhysical;
extern ULONGLONG            HalpPci1IoBasePhysical;
extern ULONGLONG            HalpPciMemoryBasePhysical;
extern ULONGLONG            HalpPci1MemoryBasePhysical;
extern PPLATFORM_RANGE_LIST HalpRangeList;
extern UCHAR                HalpSecondPciBridgeBusNumber;
extern ULONG                PCIMaxBus;
extern ULONG                HalpIntel82378BusNumber;
extern ULONG                HalpIntel82378DeviceNumber;
extern ULONG                HalpSecondIntel82378DeviceNumber;
extern ULONG                HalpNonExistentPciDeviceMask;
extern ULONG                HalpNonExistentPci1DeviceMask;
extern ULONG                HalpNonExistentPci2DeviceMask;

extern PLATFORM_RANGE_LIST  Gambit20Trebbia13RangeList[];
extern PLATFORM_RANGE_LIST  Gambit20Trebbia20RangeList[];

extern UCHAR                Treb13InterruptLineToBit[];
extern UCHAR                Treb13BitToInterruptLine[];
extern UCHAR                Treb13InterruptLineToVirtualIsa[];
extern UCHAR                Treb13VirtualIsaToInterruptLine[];
extern UCHAR                Treb20InterruptLineToBit[];
extern UCHAR                Treb20BitToInterruptLine[];
extern UCHAR                Treb20InterruptLineToVirtualIsa[];
extern UCHAR                Treb20VirtualIsaToInterruptLine[];
extern ULONG                HalpNumberOfIsaBusses;
extern ULONG                HalpVgaDecodeBusNumber;

ULONG
HalpReadCountRegister (
    VOID
    );

ULONG
HalpWriteCompareRegisterAndClear (
    IN ULONG Value
    );

VOID
HalpInvalidateSecondaryCachePage (
    IN PVOID Color,
    IN ULONG PageFrame,
    IN ULONG Length
    );

VOID
HalpArcsSetVirtualBase (
    IN ULONG Number,
    IN PVOID Base
    );

ULONG HalpPciLowLevelConfigRead(
    IN ULONG BusNumber,
    IN ULONG DeviceNumber,
    IN ULONG FunctionNumber,
    IN ULONG Register
    );

//
// There is not need for Memory Barriers on MIPS, so just define them away.
//

#define HalpMb()

//
// Define used to determine if a page is within the DMA Cache range.
//

#define HALP_PAGE_IN_DMA_CACHE(Page) \
    (Page>=0x0001c0 && Page<0x000200)

#endif // _JXHALP_