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