blob: 383fa1c052f15381b8134fd6c8375be707c1b7d3 (
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
123
124
125
126
127
128
129
130
131
132
133
134
|
/*++
Copyright (c) 1991 Microsoft Corporation
Copyright (c) 1994 MOTOROLA, INC. All Rights Reserved. This file
contains copyrighted material. Use of this file is restricted
by the provisions of a Motorola Software License Agreement.
Module Name:
pxmapio.c
Abstract:
This module implements the mapping of HAL I/O space for a POWER PC
system.
Author:
David N. Cutler (davec) 28-Apr-1991
Environment:
Kernel mode
Revision History:
Jim Wooldridge (jimw@austin.vnet.ibm.com) Initial PowerPC port
Map interrupt acknowledge base address
Map SIO config base address
Remove RTC map - S-FOOT mapsthe RTC into the ISA I/O space
--*/
/*
* Copyright (c) 1995 FirePower Systems, Inc.
* DO NOT DISTRIBUTE without permission
*
* $RCSfile: pxmapio.c $
* $Revision: 1.5 $
* $Date: 1996/01/11 07:11:27 $
* $Locker: $
*/
#include "halp.h"
//
// Put all code for HAL initialization in the INIT section. It will be
// deallocated by memory management when phase 1 initialization is
// completed.
//
#if defined(ALLOC_PRAGMA)
#pragma alloc_text(INIT, HalpMapIoSpace)
#endif
BOOLEAN
HalpMapIoControlSpace (
VOID
);
BOOLEAN
HalpMapPlanarSpace (
VOID
);
BOOLEAN
HalpMapBusConfigSpace (
VOID
);
//
// Define global data used to locate the IO control space and the PCI config
// space.
//
PVOID HalpInterruptBase;
PVOID HalpPciConfigBase;
PVOID HalpErrorAddressRegister;
BOOLEAN
HalpMapIoSpace (
VOID
)
/*++
Routine Description:
This routine maps the HAL I/O, planar control, and bus configuration
spaces for a PowerPC system.
Arguments:
None.
Return Value:
If the initialization is successfully completed, than a value of TRUE
is returned. Otherwise, a value of FALSE is returned.
--*/
{
//
// Map bus/bridge I/O control space
//
if (!HalpMapIoControlSpace())
return FALSE;
//
// Map Planar I/O control space
//
if (!HalpMapPlanarSpace())
return FALSE;
//
// Map Bus configuration space
//
if (!HalpMapBusConfigSpace())
return FALSE;
return TRUE;
}
|