Skip to content

Include the host controller doorbell - #180

Closed
ArthurHeymans wants to merge 3 commits into
rust-osdev:mainfrom
ArthurHeymans:fix-doorbell-count
Closed

Include the host controller doorbell#180
ArthurHeymans wants to merge 3 commits into
rust-osdev:mainfrom
ArthurHeymans:fix-doorbell-count

Conversation

@ArthurHeymans

Copy link
Copy Markdown

The Doorbell Array starts with the host controller doorbell, followed by one entry for each device slot. The current length only accounts for the device slots, which leaves the highest valid slot ID out of bounds.

Include entry zero in the array length and cover access to the last device doorbell.

  • Changelog updated

Allow callers to select native, low-high, or high-low access for xHCI
64-bit MMIO registers. Keep native access as the default for existing
users while making split access available for platforms and controllers
that cannot accept native 64-bit MMIO operations.
The USB legacy support control/status register is the second dword of
the capability. Map it at base + 4 instead of aliasing the legacy
support semaphore register.
The Doorbell Array contains entry zero for the host controller followed
by one entry for each device slot. Include that first entry in the
accessor length so the highest valid slot ID remains addressable.
@ArthurHeymans

Copy link
Copy Markdown
Author

This PR is part of a stack of 5 bookmarks:

  1. main
  2. configurable-64-bit-mmio
  3. fix-usb-legacy-offset
  4. fix-doorbell-count ← this PR
  5. w1s-zero-setters
  6. per-register-port-access

Created with jj-stack

@ArthurHeymans

Copy link
Copy Markdown
Author

Superseded by the stacked PR: ArthurHeymans#3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant