pci.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. #ifndef __PCI_H__
  11. #define __PCI_H__
  12. struct pci_header
  13. {
  14. rt_uint16_t VendorID;
  15. rt_uint16_t DeviceID;
  16. rt_uint16_t Command;
  17. rt_uint16_t Status;
  18. rt_uint32_t RevisionID : 8;
  19. rt_uint32_t ClassCode : 24;
  20. rt_uint8_t CachelineSize;
  21. rt_uint8_t LatencyTimer;
  22. rt_uint8_t HeaderType;
  23. rt_uint8_t BIST;
  24. rt_uint32_t BaseAddressRegister[6];
  25. rt_uint32_t CardbusCISPointer;
  26. rt_uint16_t SubsystemVendorID;
  27. rt_uint16_t SubsystemID;
  28. rt_uint32_t ExpansionROMBaseAddress;
  29. rt_uint32_t CapabilitiesPointer : 8;
  30. rt_uint32_t resv1 : 24;
  31. rt_uint32_t resv2;
  32. rt_uint8_t InterruptLine;
  33. rt_uint8_t InterruptPin;
  34. rt_uint8_t Min_Gnt;
  35. rt_uint8_t Max_Lat;
  36. };
  37. rt_uint64_t pci_get_device_map_addr(rt_uint64_t bus,rt_uint64_t device,rt_uint64_t function,rt_uint32_t index);
  38. #endif