pcie

package
v1.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2020 License: GPL-2.0, GPL-2.0-or-later Imports: 3 Imported by: 1

Documentation

Index

Constants

View Source
const (
	Type_express_endpoont = iota
	Type_legacy_endpoont

	Type_root_port
	Type_upstream_port
	Type_downstream_port
	Type_pcie_to_pci_bridge
	Type_pci_to_pcie_bridge
	Type_root_complex_integrated_endpoint
	Type_root_complex_event_collector
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CapabilityHeader

type CapabilityHeader struct {
	pci.CapabilityHeader

	Flags flags

	Device struct {
		// Device capabilities:
		//   [2:0] x where max payload size = 2^(7+x)
		//   [4:3] phantom functions
		//   [5] extended tags
		//   [8:6] L0s acceptable latency
		//   [11:9] L1 acceptable latency
		//   [12] attention button present
		//   [13] attention indicator present
		//   [14] power indicator present
		//   [15] role based error reporting
		//   [25:18] slot power limit value
		//   [27:26] slot power limit scale
		//   [28] function level reset
		Capabilities devCap

		// [0] correctable ecc error reporting
		// [1] non-fatal error reporting
		// [2] fatal error reporting
		// [3] unsupported request reporting enable
		// [4] enable relaxed ordering
		// [7:5] max payload size
		// [8] extended tag field enable
		// [9] phantom functions enable
		// [10] aux power management enable
		// [11] enable no snoop
		// [14:12] max read request size
		// [15] bridge configuration retry / FLR
		Control pci.U16

		Status pci.U16
	}

	Link, Slot struct {
		Capabilities pci.U32

		Control pci.U16

		Status pci.U16
	}
	Root struct {
		Control      pci.U16
		Capabilities pci.U16
		Status       pci.U32
	}
}

func GetCapabilityHeader

func GetCapabilityHeader(d *pci.Device) *CapabilityHeader

type DeviceCapabilities

type DeviceCapabilities struct {
	// In bytes: 128 to 4k.
	Log2MaxPayloadSize uint8
}

func (*DeviceCapabilities) String

func (f *DeviceCapabilities) String() (s string)

type Flags

type Flags struct {
	// [3:0] version (e.g. 2 for pcie gen 2, 3 for gen 3)
	Version uint8

	// [7:4] type (Type_*)
	Type Type

	// [8]
	SlotImplemented bool

	// [13:9]
	Msi uint8
}

func (*Flags) String

func (f *Flags) String() string

type TPHRequesterHeader

type TPHRequesterHeader struct {
	pci.ExtCapabilityHeader

	// Read-only
	// [0] No steering tag mode.
	// [1] Interrupt vector mode
	// [2] Device specific mode
	// [8] Extended tph requester supported
	// [10:9] steering tag table location
	// [26:16] steering tag table size
	Capabilities pci.U32

	// [2:0] steering tag mode select
	// [8] TPH requester enable
	// [9] Extended TPH requester enable
	Control pci.U32
}

type Type

type Type uint8

func (Type) String

func (t Type) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL