litex-hub / linux-on-litex-vexriscv

Linux on LiteX-VexRiscv
BSD 2-Clause "Simplified" License
550 stars 174 forks source link

Butterstick FPGA does not open UART after successful flash #350

Open Goof512 opened 9 months ago

Goof512 commented 9 months ago

Hi, I'm working on the Butterstick FPGA dev board, in DFU mode. I can get all the way to a successful flash onto the FPGA, as indicated by a blue LED chaser effect on the board. However, once there, the ./make.py script hangs without error.

INFO:SoC:Initializing ROM rom with contents (Size: 0xb16c).
INFO:SoC:Auto-Resizing ROM rom from 0x10000 to 0xb16c.
dfu-util 0.11-dev

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Opening DFU capable USB device...
Device ID 1209:5af1
Device DFU version 0101
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 0101
Device returned transfer size 512
Copying data from PC to DFU device
Download    [=========================] 100%      1065871 bytes
Download done.
DFU state(7) = dfuMANIFEST, status(0) = No error condition is present
DFU state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to Run-Time mode

This process will wait indefinitely. I have tried to manually reset the link and connect with litex_term, however the butterstick appears to not have its uart-usb bridge configured correctly by litex - and thus cannot be detected as a tty device.

Any suggestions on next steps would be greatly appreciated.

rmartin101 commented 1 month ago

The code in this repo uses a serial UART from the breakout board, not the USB. Some example code incorporating the USB serial can be found at the link below. I have not gotten the USB to work with the butterstick definition here though.

https://github.com/butterstick-fpga/litex-examples