1 /*
2  * Copyright (c) 2006-2018, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2020-12-28     lizhirui     first version
9  */
10 
11 #ifndef __PCI_H__
12 #define __PCI_H__
13 
14     struct pci_header
15     {
16         rt_uint16_t VendorID;
17         rt_uint16_t DeviceID;
18         rt_uint16_t Command;
19         rt_uint16_t Status;
20         rt_uint32_t RevisionID : 8;
21         rt_uint32_t ClassCode : 24;
22         rt_uint8_t CachelineSize;
23         rt_uint8_t LatencyTimer;
24         rt_uint8_t HeaderType;
25         rt_uint8_t BIST;
26         rt_uint32_t BaseAddressRegister[6];
27         rt_uint32_t CardbusCISPointer;
28         rt_uint16_t SubsystemVendorID;
29         rt_uint16_t SubsystemID;
30         rt_uint32_t ExpansionROMBaseAddress;
31         rt_uint32_t CapabilitiesPointer : 8;
32         rt_uint32_t resv1 : 24;
33         rt_uint32_t resv2;
34         rt_uint8_t InterruptLine;
35         rt_uint8_t InterruptPin;
36         rt_uint8_t Min_Gnt;
37         rt_uint8_t Max_Lat;
38     };
39 
40     rt_uint64_t pci_get_device_map_addr(rt_uint64_t bus,rt_uint64_t device,rt_uint64_t function,rt_uint32_t index);
41 
42 #endif
43