[Voyageurs] Send AddressDevice Command to move port to 'Addressed' State.

This commit is contained in:
Drew Galbraith 2024-02-22 18:16:08 -08:00
parent dd2687a59a
commit 8e78950ac7
10 changed files with 236 additions and 33 deletions

View file

@ -43,6 +43,13 @@ struct XhciCapabilities {
uint32_t capabilities2;
} __attribute__((packed));
struct XhciPort {
uint32_t status_and_control;
uint32_t power_management;
uint32_t link_info;
uint32_t lpm_control;
} __attribute__((packed));
struct XhciOperational {
uint32_t usb_command;
uint32_t usb_status;
@ -55,6 +62,7 @@ struct XhciOperational {
uint64_t reserved4;
uint64_t device_context_base;
uint32_t configure;
XhciPort ports[255];
} __attribute__((packed));
struct XhciInterrupter {
@ -79,13 +87,6 @@ struct XhciDoorbells {
uint32_t doorbell[256];
} __attribute__((packed));
struct XhciPort {
uint32_t status_and_control;
uint32_t power_management;
uint32_t link_info;
uint32_t lpm_control;
} __attribute__((packed));
struct XhciSlotContext {
uint32_t route_speed_entries;
uint32_t latency_port_number;
@ -109,6 +110,24 @@ struct XhciDeviceContext {
XhciEndpointContext endpoint_contexts[31];
} __attribute__((packed));
struct XhciInputControlContext {
uint32_t drop_contexts;
uint32_t add_contexts;
uint64_t reserved1;
uint64_t reserved2;
uint32_t reserved3;
uint8_t configuration_value;
uint8_t interface_number;
uint8_t alternate_setting;
uint8_t reserved4;
} __attribute__((packed));
struct XhciInputContext {
XhciInputControlContext input;
XhciSlotContext slot_context;
XhciEndpointContext endpoint_contexts[31];
} __attribute__((packed));
struct XhciTrb {
uint64_t parameter;
uint32_t status;