S?bastien Bourdeauducq wrote: > Should now be fixed in HEAD - can you confirm?
Works great ! This is what 30 seconds of IN-NAK traffic look like: http://downloads.qi-hardware.com/people/werner/m1/usb/usb-better-dpll.png It didn't jump even once. I'm now seeing some RX timeout errors that weren't there before (maybe masked by the much worse DPLL problem). In 211.1 seconds, I got 123 such errors. That's 0.6 Hz. > But my full speed devices still refuse to work... Oh, I'm sure there are more germlins :-) E.g., we may need something like the patch below to avoid races between the poll loop in Navre and packet state changes. But I haven't verified that one yet. The race would be as follows: 1) softusb tests rx_pending 2) last byte completes, setting rx_pending 3) EOP is received, clearing rx_active 4) softusb tests rx_active There are only about 200 ns or 9.6 Navre cycles between rx_pending rising and rx_active falling. - Werner diff --git a/cores/softusb/rtl/softusb_sie.v b/cores/softusb/rtl/softusb_sie.v index 7e09d1a..3d49c81 100644 --- a/cores/softusb/rtl/softusb_sie.v +++ b/cores/softusb/rtl/softusb_sie.v @@ -97,7 +101,7 @@ always @(posedge usb_clk) begin rx_pending <= 1'b0; end 6'h0a: io_do <= rx_pending; - 6'h0b: io_do <= rx_active; + 6'h0b: io_do <= rx_active | rx_pending; 6'h0c: begin io_do <= rx_error_pending; if(io_re) _______________________________________________ http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org IRC: #milkymist@Freenode
