iPXE
Data Fields
xhci_device Struct Reference

An xHCI device. More...

#include <xhci.h>

Data Fields

void * regs
 Registers. More...
 
const char * name
 Name. More...
 
unsigned int quirks
 Quirks. More...
 
void * cap
 Capability registers. More...
 
void * op
 Operational registers. More...
 
void * run
 Runtime registers. More...
 
void * db
 Doorbell registers. More...
 
unsigned int slots
 Number of device slots. More...
 
unsigned int intrs
 Number of interrupters. More...
 
unsigned int ports
 Number of ports. More...
 
unsigned int scratchpads
 Number of page-sized scratchpad buffers. More...
 
int addr64
 64-bit addressing capability More...
 
unsigned int csz_shift
 Context size shift. More...
 
unsigned int xecp
 xHCI extended capabilities offset More...
 
size_t pagesize
 Page size. More...
 
unsigned int legacy
 USB legacy support capability (if present and enabled) More...
 
uint64_tdcbaa
 Device context base address array. More...
 
userptr_t scratchpad
 Scratchpad buffer area. More...
 
uint64_tscratchpad_array
 Scratchpad buffer array. More...
 
struct xhci_trb_ring command
 Command ring. More...
 
struct xhci_event_ring event
 Event ring. More...
 
union xhci_trbpending
 Current command (if any) More...
 
struct xhci_slot ** slot
 Device slots, indexed by slot ID. More...
 
struct usb_busbus
 USB bus. More...
 
struct xhci_pch pch
 Intel PCH quirk. More...
 

Detailed Description

An xHCI device.

Definition at line 1039 of file xhci.h.

Field Documentation

◆ regs

void* xhci_device::regs

Registers.

Definition at line 1041 of file xhci.h.

Referenced by xhci_probe(), and xhci_remove().

◆ name

const char* xhci_device::name

◆ quirks

unsigned int xhci_device::quirks

Quirks.

Definition at line 1045 of file xhci.h.

Referenced by xhci_port_protocol(), xhci_port_psiv(), xhci_port_speed(), xhci_probe(), and xhci_remove().

◆ cap

void* xhci_device::cap

◆ op

void* xhci_device::op

◆ run

void* xhci_device::run

Runtime registers.

Definition at line 1052 of file xhci.h.

Referenced by xhci_event_alloc(), xhci_event_free(), xhci_event_poll(), and xhci_init().

◆ db

void* xhci_device::db

Doorbell registers.

Definition at line 1054 of file xhci.h.

Referenced by xhci_init(), and xhci_ring_alloc().

◆ slots

unsigned int xhci_device::slots

Number of device slots.

Definition at line 1057 of file xhci.h.

Referenced by xhci_bus_close(), xhci_bus_open(), xhci_dcbaa_alloc(), xhci_dcbaa_free(), xhci_init(), xhci_run(), and xhci_transfer().

◆ intrs

unsigned int xhci_device::intrs

Number of interrupters.

Definition at line 1059 of file xhci.h.

Referenced by xhci_init().

◆ ports

unsigned int xhci_device::ports

Number of ports.

Definition at line 1061 of file xhci.h.

Referenced by xhci_init(), xhci_port_status(), xhci_probe(), and xhci_root_open().

◆ scratchpads

unsigned int xhci_device::scratchpads

Number of page-sized scratchpad buffers.

Definition at line 1064 of file xhci.h.

Referenced by xhci_init(), xhci_scratchpad_alloc(), and xhci_scratchpad_free().

◆ addr64

int xhci_device::addr64

64-bit addressing capability

Definition at line 1067 of file xhci.h.

Referenced by xhci_init(), and xhci_writeq().

◆ csz_shift

unsigned int xhci_device::csz_shift

Context size shift.

Definition at line 1069 of file xhci.h.

Referenced by xhci_device_context_offset(), xhci_init(), and xhci_input_context_offset().

◆ xecp

unsigned int xhci_device::xecp

xHCI extended capabilities offset

Definition at line 1071 of file xhci.h.

Referenced by xhci_extended_capability(), and xhci_init().

◆ pagesize

size_t xhci_device::pagesize

Page size.

Definition at line 1074 of file xhci.h.

Referenced by xhci_init(), and xhci_scratchpad_alloc().

◆ legacy

unsigned int xhci_device::legacy

USB legacy support capability (if present and enabled)

Definition at line 1077 of file xhci.h.

Referenced by xhci_legacy_claim(), xhci_legacy_init(), and xhci_legacy_release().

◆ dcbaa

uint64_t* xhci_device::dcbaa

Device context base address array.

Definition at line 1080 of file xhci.h.

Referenced by xhci_dcbaa_alloc(), xhci_dcbaa_free(), xhci_device_close(), xhci_device_open(), xhci_scratchpad_alloc(), and xhci_scratchpad_free().

◆ scratchpad

userptr_t xhci_device::scratchpad

Scratchpad buffer area.

Definition at line 1083 of file xhci.h.

Referenced by xhci_scratchpad_alloc(), and xhci_scratchpad_free().

◆ scratchpad_array

uint64_t* xhci_device::scratchpad_array

Scratchpad buffer array.

Definition at line 1085 of file xhci.h.

Referenced by xhci_scratchpad_alloc(), and xhci_scratchpad_free().

◆ command

struct xhci_trb_ring xhci_device::command

Command ring.

Definition at line 1088 of file xhci.h.

Referenced by xhci_abort(), xhci_command(), xhci_command_alloc(), xhci_command_free(), and xhci_complete().

◆ event

struct xhci_event_ring xhci_device::event

Event ring.

Definition at line 1090 of file xhci.h.

Referenced by xhci_event_alloc(), xhci_event_free(), and xhci_event_poll().

◆ pending

union xhci_trb* xhci_device::pending

Current command (if any)

Definition at line 1092 of file xhci.h.

Referenced by xhci_command(), and xhci_complete().

◆ slot

struct xhci_slot** xhci_device::slot

Device slots, indexed by slot ID.

Definition at line 1095 of file xhci.h.

Referenced by xhci_bus_close(), xhci_bus_open(), xhci_device_close(), xhci_device_open(), and xhci_transfer().

◆ bus

struct usb_bus* xhci_device::bus

USB bus.

Definition at line 1098 of file xhci.h.

Referenced by xhci_port_status(), xhci_probe(), and xhci_remove().

◆ pch

struct xhci_pch xhci_device::pch

Intel PCH quirk.

Definition at line 1101 of file xhci.h.

Referenced by xhci_pch_fix(), and xhci_pch_undo().


The documentation for this struct was generated from the following file: