<_florent_>
cr1901_modern: we should probably fix this in the gateware, I'm currently trying to remove such workarounds from LiteX :) I could also look at that if you create an issue with your findings
sajattack[m] has quit [*.net *.split]
sajattack[m] has joined #litex
xobs has quit [Ping timeout: 268 seconds]
sajattack[m] has quit [Ping timeout: 242 seconds]
david-sawatzke[m has quit [Ping timeout: 246 seconds]
disasm[m] has quit [Ping timeout: 244 seconds]
promach3 has quit [Ping timeout: 240 seconds]
CarlFK[m] has quit [Ping timeout: 240 seconds]
apolkosnik[m] has quit [Ping timeout: 246 seconds]
jevinskie[m] has quit [Ping timeout: 246 seconds]
jryans has quit [Ping timeout: 246 seconds]
leons has quit [Ping timeout: 260 seconds]
<zyp>
sounds to me like the root problem is that the queues don't support resetting only half of it
<zyp>
I imagine that will be an issue anywhere you deliberately want to reset only one of the clock domans it is crossing
<zyp>
so I figure the right solution would be to somehow reset both sides of the queue even if only one of the clock domains are reset
hansfbaier has quit [Read error: Connection reset by peer]
<_florent_>
zyp: thanks, that's also what I was thinking. Doing a reset of both side should still allow the link to stay up.
CarlFK[m] has joined #litex
xobs has joined #litex
david-sawatzke[m has joined #litex
leons has joined #litex
jevinskie[m] has joined #litex
sajattack[m] has joined #litex
promach3 has joined #litex
disasm[m] has joined #litex
jryans has joined #litex
apolkosnik[m] has joined #litex
Zguig has quit [Ping timeout: 240 seconds]
Zguig has joined #litex
Zguig has quit [Read error: Connection reset by peer]
Zguig has joined #litex
Bertl_zZ is now known as Bertl
<cr1901_modern>
_florent_: I will open an issue in a few hours, when I'm a bit more awake. I have an idea how to fix it.
<cr1901_modern>
Hopefully nextpnr-ecp5 won't allocate more than two extra SLICEs with my changes, but I'll measure and see
<cr1901_modern>
_florent_: Basically, my idea is to add a third clock domain to the CdcUsb core- it uses usb12's clock, but it has a separate reset that comes from the system clock domain (internally synchronized by the CdcUsb module)
Zguig has quit [Read error: Connection reset by peer]
Zguig has joined #litex
Zguig has quit [Ping timeout: 240 seconds]
Zguig has joined #litex
<_florent_>
cr1901_modern: ok thanks
geertu has joined #litex
<cr1901_modern>
_florent_: I opened an issue, but for now I'm taking a break from litex issues. I'm satisfied that I figured out the problem.
<cr1901_modern>
I wanted to test orangecrab out, litex was a good way to do this, and the USB serial issue was the "big" issue I wanted to fix w/ litex
Zguig has quit [Quit: Quit]
<_florent_>
cr1901_modern: sure, thanks a lot already for looking at this. What's the occurrence of the issue (just to give me indications when I'll try to reproduce)?
<cr1901_modern>
"python3 litex_boards/targets/orangecrab.py --l2-size=0 --integrated-rom-size=24576 --integrated-sram-size=4096 --integrated-main-ram-size=16384 --cpu-variant=minimal --uart-name=usb_acm --doc --build --load", type a char at the UART, then press button to reset
<cr1901_modern>
Chances are, the UART will stop echoing back. Type a few more characters, and the CPU completely stops responding
<cr1901_modern>
>Chances are, the UART will stop echoing back
<cr1901_modern>
Sorry. Let me rephrase.
<somlo>
_florent_: 697ff744 broke add_uartbone() for me
<cr1901_modern>
The UART will echo fine. But if you type in more characters into the terminal after resetting via push button, chances are the chars will not be echoed back
<geertu>
cr1901_modern: Is this related to the issue where you copy and paste a command into lxterm, causing lxterm to crash, _and_ the orangecrab needing a cold reboot?
<cr1901_modern>
And eventually, the CPU will infinitely wait for the USB to drain it's TX queue
<cr1901_modern>
geertu: I don't know
<cr1901_modern>
This crash only happens after I've reset using a pushbutton
<_florent_>
cr1901_modern: ok thanks, so we should make sure both side of the CDC have a proper reset on push button reset or avoid propagating the system reset to the CDC. I'll have a closer look next week
<somlo>
_florent_: thanks, building ok again :) Is the idea to go back to using the "normal" uart for console and do litescope over JTAG?
<_florent_>
somlo: I'm working on a system where I only have a JTAG connector and want to be able to use the bridge for debug on this system, so I'm trying to get LiteX server running over JTAG
<_florent_>
somlo: if working, you could swap things on your side yes if that's more convenient
<somlo>
oh, so what I said would be a side-effect of that :) But it would indeed be more intuitive to keep the "normal" uart for "normal" console and do debugging over jtag :)
<somlo>
I'm ok either way, now all I need is some peace and quiet from $DAYJOB to focus on what signals I want to trace and how to trigger the capture at just the right time...
<geertu>
cr1901_modern: The board indeed crashes when holding ENTER in lxterm, and pressing the board button
<geertu>
A large copy-and-paste into lxterm is a different issue. If I don't press the button, it recovers. If I do press the button, it probably triggers the above issue.
<_florent_>
geertu: thanks, I also saw something similar. Note that's it's only happening with the CDC ACM UART that is a bit "hacky"
peeps[zen] has joined #litex
peepsalot has quit [Ping timeout: 240 seconds]
peepsalot has joined #litex
peeps[zen] has quit [Ping timeout: 265 seconds]
peeps[zen] has joined #litex
peepsalot has quit [Ping timeout: 265 seconds]
<cr1901_modern>
geertu: What are the settings you use to build linux-on-litex-vexriscv for orangecrab? The RAM bringup doesn't seem to work on mine (but I have a prototype v0.2)
<cr1901_modern>
_florent_: I'm willing to take a stab at the CDC issue tonight. But after that, no more litex issues for me for now lol. I'm procrastinating and I need to stop
<cr1901_modern>
for me after that*
<_florent_>
cr1901_modern: I'm going to have a quick look at it now in fact, I'm just building the target to try to reproduce it
<cr1901_modern>
Awesome, the command line I provided is a minimal SoC, designed for quick turnaround w/ nextpnr
tpb has quit [Disconnected by services]
tpb has joined #litex
Bertl is now known as Bertl_oO
<_florent_>
cr1901_modern: I just pushed changes and update the PR, can you do a test and provide feedback? Thanks.
<cr1901_modern>
_florent_: Will check in 2 seconds, please stand by
<cr1901_modern>
I want to finish what I'm doing right now (downloading a bunch of docs) and then I'll move on to testing :)