Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement USB controller #7

Open
5 tasks
Lunaphied opened this issue Jun 8, 2021 · 0 comments
Open
5 tasks

Implement USB controller #7

Lunaphied opened this issue Jun 8, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@Lunaphied
Copy link
Owner

There are multiple controllers however the one M1N1 expects is a (mostly?) standard DWC3 implementation. Luckily QEMU already supports this device and we don't have to emulate it ourselves, however it must be initialized into the emulated machine, entered into the ADT configuration, and the code in M1N1 assumes a DART is present so it won't be much use until that portion is finished.

The benefits (besides it needed to exist for completeness) are likely to be:

  • Faster proxy communications (although now with loading directly it's not such a huge issue, also compressed write is fairly fast)
  • QEMU code can take advantage of M1N1's support for multiple UART channels tunneled over USB
  • The above point is crucial for potentially emulating M1N1's hypervisor mode (although that's not all that useful for QEMU)

Tracking for completion

  • Complete DART support (Implement support for DART hardware #6) required to use the USB in the first place
  • Attach a DWC3 device to the QEMU VM at the correct address
  • Add an entry in the ADT such that M1N1 can find the device
  • Test
  • Implement supporting scripts that can be used to interface with M1N1's USB based UART code
@Lunaphied Lunaphied added the enhancement New feature or request label Jun 8, 2021
@Lunaphied Lunaphied self-assigned this Jun 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant