UbixOS V2
2.0
pci.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 2002-2018 The UbixOS Project.
3
* All rights reserved.
4
*
5
* This was developed by Christopher W. Olsen for the UbixOS Project.
6
*
7
* Redistribution and use in source and binary forms, with or without modification, are permitted
8
* provided that the following conditions are met:
9
*
10
* 1) Redistributions of source code must retain the above copyright notice, this list of
11
* conditions, the following disclaimer and the list of authors.
12
* 2) Redistributions in binary form must reproduce the above copyright notice, this list of
13
* conditions, the following disclaimer and the list of authors in the documentation and/or
14
* other materials provided with the distribution.
15
* 3) Neither the name of the UbixOS Project nor the names of its contributors may be used to
16
* endorse or promote products derived from this software without specific prior written
17
* permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
20
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#ifndef _PCI_H
30
#define _PCI_H
31
32
#include <
sys/types.h
>
33
34
struct
pciConfig
{
35
uint16_t
vendorID
;
36
uint16_t
deviceID
;
37
38
uint16_t
command
;
39
uint16_t
status
;
40
41
uint8_t
revisionID
;
42
uint8_t
progIf
;
43
uint8_t
subClass
;
44
uint8_t
classCode
;
45
46
uint8_t
cacheLineSize
;
47
uint8_t
latencyTimer
;
48
uint8_t
headerType
;
49
uint8_t
bist
;
50
51
uint32_t
bar
[6];
52
53
uint32_t
cbPointer
;
54
55
uint16_t
subsysVendorID
;
56
uint16_t
subsysID
;
57
58
uint32_t
epromAddr
;
59
60
uint16_t
capabilites
;
61
uint16_t
res1
;
62
63
uint32_t
res2
;
64
65
uint8_t
intLine
;
66
uint8_t
intPin
;
67
uint8_t
minGrant
;
68
uint8_t
maxLatency
;
69
70
/* device info */
71
//uint8_t bus;
72
//uint8_t dev;
73
//uint8_t func;
74
//uint8_t irq;
75
//uint8_t irqLine;
76
/* base registers */
77
//uInt32 base[6];
78
//uInt32 size[6];
79
//uint16_t subsysVendor;
80
//uint16_t subsys;
81
/* Device Info */
82
//Move this to anotther struct eventually
83
uint8_t
bus
;
84
uint8_t
dev
;
85
uint8_t
func
;
86
87
};
88
89
struct
confadd
{
90
uint8_t
reg
:8;
91
uint8_t
func
:3;
92
uint8_t
dev
:5;
93
uint8_t
bus
:8;
94
uint8_t
rsvd
:7;
95
uint8_t
enable
:1;
96
};
97
98
#define countof(a) (sizeof(a) / sizeof(a[0]))
99
100
int
pci_init
();
101
102
uint32_t
pciProbe
(
int
bus,
int
dev,
int
func);
103
uInt32
pciRead
(
int
bus,
int
dev,
int
func,
int
reg,
int
bytes);
104
void
pciWrite
(
int
bus,
int
dev,
int
func,
int
reg,
uInt32
v,
int
bytes);
105
106
#endif
pciConfig::latencyTimer
uint8_t latencyTimer
Definition:
pci.h:47
pciConfig::progIf
uint8_t progIf
Definition:
pci.h:42
confadd
Definition:
pci.h:89
pciConfig::cbPointer
uint32_t cbPointer
Definition:
pci.h:53
uInt32
unsigned long int uInt32
Definition:
objgfx30.h:49
pciConfig::minGrant
uint8_t minGrant
Definition:
pci.h:67
pciConfig::intPin
uint8_t intPin
Definition:
pci.h:66
pciRead
uInt32 pciRead(int bus, int dev, int func, int reg, int bytes)
Definition:
pci.c:76
pciConfig::bus
uint8_t bus
Definition:
pci.h:83
pciConfig::vendorID
uint16_t vendorID
Definition:
pci.h:35
pciWrite
void pciWrite(int bus, int dev, int func, int reg, uInt32 v, int bytes)
Definition:
pci.c:108
pciConfig::deviceID
uint16_t deviceID
Definition:
pci.h:36
pciConfig::bist
uint8_t bist
Definition:
pci.h:49
confadd::bus
uint8_t bus
Definition:
pci.h:93
confadd::enable
uint8_t enable
Definition:
pci.h:95
pciConfig::bar
uint32_t bar[6]
Definition:
pci.h:51
types.h
pciConfig::maxLatency
uint8_t maxLatency
Definition:
pci.h:68
uint16_t
__uint16_t uint16_t
Definition:
types.h:45
pciConfig::capabilites
uint16_t capabilites
Definition:
pci.h:60
pciConfig::status
uint16_t status
Definition:
pci.h:39
pci_init
int pci_init()
Definition:
pci.c:244
confadd::dev
uint8_t dev
Definition:
pci.h:92
uint32_t
__uint32_t uint32_t
Definition:
types.h:46
pciConfig::headerType
uint8_t headerType
Definition:
pci.h:48
pciConfig::command
uint16_t command
Definition:
pci.h:38
pciConfig::epromAddr
uint32_t epromAddr
Definition:
pci.h:58
pciConfig::subsysVendorID
uint16_t subsysVendorID
Definition:
pci.h:55
pciConfig::classCode
uint8_t classCode
Definition:
pci.h:44
confadd::rsvd
uint8_t rsvd
Definition:
pci.h:94
pciConfig::subsysID
uint16_t subsysID
Definition:
pci.h:56
pciConfig::subClass
uint8_t subClass
Definition:
pci.h:43
confadd::func
uint8_t func
Definition:
pci.h:91
pciConfig::func
uint8_t func
Definition:
pci.h:85
confadd::reg
uint8_t reg
Definition:
pci.h:90
pciProbe
uint32_t pciProbe(int bus, int dev, int func)
Definition:
pci.c:139
pciConfig::res2
uint32_t res2
Definition:
pci.h:63
pciConfig::cacheLineSize
uint8_t cacheLineSize
Definition:
pci.h:46
pciConfig::revisionID
uint8_t revisionID
Definition:
pci.h:41
uint8_t
__uint8_t uint8_t
Definition:
types.h:44
pciConfig::intLine
uint8_t intLine
Definition:
pci.h:65
pciConfig
Definition:
pci.h:34
pciConfig::dev
uint8_t dev
Definition:
pci.h:84
pciConfig::res1
uint16_t res1
Definition:
pci.h:61
C:
Dev
git
UbixOS
sys
include
pci
pci.h
Generated by
1.8.16