Thursday, 2021-01-21

*** tpb has joined #litex00:00
*** lf_ has quit IRC01:00
*** lf has joined #litex01:00
*** cr1901_modern2 has quit IRC02:03
*** cr1901_modern has joined #litex02:03
*** Degi_ has joined #litex03:56
*** Degi has quit IRC03:58
*** Degi_ is now known as Degi03:58
*** acathla has quit IRC04:08
*** Claude has joined #litex04:38
*** Bertl_oO is now known as Bertl_zZ04:46
*** kgugala_ has quit IRC06:19
*** kgugala has joined #litex06:19
*** SpaceCoaster has quit IRC06:31
*** indy has quit IRC06:59
*** SpaceCoaster has joined #litex07:07
cr1901_modern_florent_: I figured out the problem I was seeing. It's relevant to orangecrab but may exist on other boards.07:13
cr1901_modernBasically, the USB clock domain on orangecrab wasn't being reset properly. This means the CDC gray code multiregs between USB and sys would not be updated with valid reset values, and the comparison to detect an empty receive queue from USB would be garbage07:14
cr1901_modernThe CPU would always see a high level after reset from the RX interrupt. Since it's edge-triggered, the event never triggered, so the RX queue was never serviced07:16
cr1901_moderneventually, the RX queue fills up, and the USB core dies waiting for the RX queue to drain. Then when you send data from the CPU side, the TX queue fills up b/c the USB core refuses to drain it07:17
cr1901_modernEventually, the BIOS dies in an infinite loop waiting for the TX queue to drain in a vicious cycle.07:18
cr1901_modernSolution is to make sure the USB clock domain actually resets :)07:18
cr1901_modern(This didn't take me as long as you'd think to figure out. But still probably should've waited to debug this.)07:19
cr1901_modernHrm, actually... this might not be an ideal solution if you _want_ the USB core to stay attached between resets07:20
cr1901_modernAnyways, we can talk more about what you want to do when you're awake07:20
*** kgugala has quit IRC07:28
*** kgugala has joined #litex07:28
*** kgugala_ has joined #litex07:44
*** kgugala has quit IRC07:47
*** indy has joined #litex07:56
*** acathla has joined #litex08:08
*** acathla has quit IRC08:14
*** acathla has joined #litex08:14
*** SpaceCoaster has quit IRC08:19
*** acathla has quit IRC08:29
*** acathla has joined #litex08:30
*** acathla has quit IRC08:33
*** acathla has joined #litex08:34
*** SpaceCoaster has joined #litex08:34
*** acathla has quit IRC08:38
*** acathla has joined #litex08:38
*** hansfbaier has joined #litex09:05
*** hansfbaier1 has joined #litex09:36
*** hansfbaier has quit IRC09:37
*** indy has quit IRC09:37
*** indy has joined #litex09:45
*** futarisIRCcloud has quit IRC10:51
*** hansfbaier1 has quit IRC10:56
*** Bertl_zZ is now known as Bertl11:45
*** futarisIRCcloud has joined #litex11:54
_florent_cr1901_modern: thanks for the analysis. On the OrangeCrab it's indeed useful to avoid reseting the USB-ACM with the button (that we are using as a reset), this allow reseting the SoC without reseting the USB-ACM link13:46
_florent_we should be able to fix the issue you saw while keeping this behavior13:46
*** Zguig has joined #litex15:19
*** xobs has quit IRC15:19
*** david-sawatzke[m has quit IRC15:19
*** apolkosnik[m] has quit IRC15:19
*** sajattack[m] has quit IRC15:19
*** CarlFK[m] has quit IRC15:19
*** leons has quit IRC15:19
*** promach3 has quit IRC15:19
*** jevinskie[m] has quit IRC15:19
*** disasm[m] has quit IRC15:19
*** jryans has quit IRC15:19
*** Zguig has quit IRC15:19
*** Zguig has joined #litex15:20
*** david-sawatzke[m has joined #litex15:30
cr1901_modern_florent_: I'm not sure how to do this in gateware nicely. One solution is software is to change the BIOS to force fake reads from the UART rxtx register until the rx gray counter pointer matches the USB domain's current value15:47
cr1901_modernBut that's not intuitive/requires a nice big comment15:47
*** jevinskie[m] has joined #litex15:53
*** jryans has joined #litex15:53
*** xobs has joined #litex15:53
*** sajattack[m] has joined #litex15:53
*** promach3 has joined #litex15:53
*** leons has joined #litex15:53
*** disasm[m] has joined #litex15:53
*** CarlFK[m] has joined #litex15:53
*** apolkosnik[m] has joined #litex15:53
*** Bertl is now known as Bertl_oO16:39
*** Zguig has quit IRC20:13
*** Zguig has joined #litex20:14
*** acathla has quit IRC20:14
*** acathla has joined #litex20:16
*** tumbleweed has quit IRC21:54
*** tumbleweed has joined #litex22:11

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!