lowRISC / sonata-system

A full micro-controller system utilizing the CHERIoT Ibex core, part of the Sunburst project funded by UKRI
Apache License 2.0
24 stars 15 forks source link

Integration of usbdev block #48

Closed alees24 closed 5 months ago

alees24 commented 5 months ago

This PR builds on #47, adding the USB device from the OpenTitan project in a similar manner to the integration of the I2C block.

The demo application will start up in Verilator simulation but will never receive the configuration Control Transfers at present because there is no integration of the USBDPI model. With Sonata FPGA, once the 'cheri_en' signal is tied low and the appropriate software image specified (sw/c/build/demo/hello_usb/hello_usb.vmem), the application will run on FPGA and the USB output can be observed using 'screen /dev/ttyUSB' where the particular tty assigned may be ascertained from the reports of USB activity in 'dmesg' output.

Any required changes to the I2C vendoring/patching (or anything else) I shall mirror here; please review that first.