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

Raspberry Pico Maple Bus TX/RX implemetation #1

Open
wants to merge 4,992 commits into
base: master
Choose a base branch
from
Open

Raspberry Pico Maple Bus TX/RX implemetation #1

wants to merge 4,992 commits into from

Conversation

ismell
Copy link
Owner

@ismell ismell commented Mar 14, 2021

This PR in the start of Maple Bus support on the Raspberry Pico.

TODO:

  • Add DMA helpers to send/receive frames.
  • Figure out if using an event loop with WFI or use IRQs. The latter sounds complicated.
  • Write code to actually emulate a controller.
  • Write a USB driver to support the Xbox 360 Wireless adapter.
  • Wire all this together.
  • Write documentation on how to wire up the Pico to the Dreamcast
  • Evaluate writing all this in Rust?

See http://mc.pp.se/dc/maplewire.html for the wire protocol and http://mc.pp.se/dc/maplebus.html for the data format.

Reinhard Panhuber and others added 30 commits April 30, 2021 15:42
Implement functions to allow for DMA usage in audio driver.
* Fix path + typo in README.md

* Remove incorrect path change

* Remove typo
…able interrupts around division rather than using co-operative guards to protect nested use (i.e. within IRQ/exception). Use of this flag can simplify porting of RTOSes but with a different performance profile (#372)
…B_FOO=1, and remove bespoke definitions which were all undocumented anyway (#374)
…andler due to in use mutex. build was non deterministic due to missing link wrapping of getchar (#364)
* Change some cmake output to DEBUG level
Make SDK build more consistent with other libraries (use an INTERFACE marker library for inclusion tests)
Add PICO_SDK_PRE_LIST_FILES, PICO_SDK_POST_LIST_FILES build vars

* fix typo

* remove leftover debugging message
USBTMC: remove reference to visa DLL (which only was for windows, and…
- Add recursive_mutex
  - Make all locking primitives and sleep use common overridable wait/notify support to allow RTOS
    implementations to replace WFE/SEV with something more appropriate
  - Add busy_wait_ms
Update API description.
Added new RTOS names to the name string array in print_greeting() in the host example program. The program seemed to hang when a new RTOS was indexed in CFG_TUSB_OS.
Remove reference to the deprecated "num" and "in" members  of struct hw_endpoint which still exist in an assert statement and break DEBUG builds.
Fix code where HID keyboard was being stuffed into the HID mouse buffer.
Raul E Rangel added 30 commits January 26, 2022 16:12
This is a common struct that describes all USB
descriptors.

Signed-off-by: Raul E Rangel <[email protected]>
This will print out all the end points and interfaces supported
by the device.
Useful when debugging why a driver doesn't match
This driver is only partially complete. It enumerates
the device and prints out the status of the controller.

The interface to publish the events stil needs to be
defined.

Signed-off-by: Raul E Rangel <[email protected]>
This lays the foundation for having host/peripherals running in the
same program loop.
We should use something with data.
Let's try and have some clean code.
This was taken from the linux kernel.

Signed-off-by: Raul E Rangel <[email protected]>
Apparently I didn't have asserts enabled when testing.

Signed-off-by: Raul E Rangel <[email protected]>
Will be used in the next CL.

Signed-off-by: Raul E Rangel <[email protected]>
This API will make it conceptually easier to
model async operations.

Signed-off-by: Raul E Rangel <[email protected]>
This doesn't support waking yet, but it's a start.
Once we implement maplebus_rx, we can loop back
packets larger than 6 dwords.

Signed-off-by: Raul E Rangel <[email protected]>
This will make sure we actually loop back
This way we don't get confused.
This is an async version. We should now be able to send and receive
larger packets.
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.