_florent_ changed the topic of #litex to: LiteX FPGA SoC builder and Cores / Github : https://github.com/enjoy-digital, https://github.com/litex-hub / Logs: https://libera.irclog.whitequark.org/litex
tpb has quit [Remote host closed the connection]
tpb has joined #litex
<cr1901> https://github.com/cr1901/orangecrab-feather Well, I'm finally satisfied enough with this to release at least a first version
zjason` has joined #litex
<Wolfvak> "SoC will hang if until USB serial port is open." I think its because either RTS/CTS is wired to RST?
<Wolfvak> also, was LiteSDCard fixed for ECP5 targets? its kind of a shame to be limited to 1/4 the "intended" bandwidth of an SD card...
<cr1901> In ValentyUSB?
<cr1901> I'm not sure, on either of your points
zjason has quit [Ping timeout: 272 seconds]
<cr1901> Does ValentyUSB even expose RTS/CTS to the user?
<Wolfvak> weird, could've sworn that was the explanation for how the SoC wouldn't boot until you opened the port with a terminal emulator
<cr1901> https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/uart.py#L281-L298 This code should fix the hang for non-USB serial ports
<cr1901> As for SD card being limited to 1/4 bandwidth, Idk if the orangecrab routes all signals required for full speed SD card.
<cr1901> I just used the most basic option :D
<cr1901> oops
<cr1901> well, that's something I can look into later :P
<Wolfvak> mmm, just looked at the latest comment, might try it out myself now :p
<Wolfvak> welp, it definitely detects the card but can't initialize it, oh well
Degi has quit [Ping timeout: 240 seconds]
Degi has joined #litex
shenki has quit [Quit: leaving]
shenki has joined #litex
<trabucayre> tnt: great! But it's not after power cycle no ?
<trabucayre> But it's not fix your issue to communicates with USER1 I assume
<tnt> trabucayre: haven't tried a full power cycle. But I will soon when I start work this morning :)
<tnt> No, that's unrelated, just more convenient to program than use vivado lab :p I didn't know openfpgaloader supported ZynqMP at all. (also I only had the xilinx platform cable and not a digilent hs3 until yesterday).
<trabucayre> zynqmp support is quite new :)
<trabucayre> with powercycle you will see another idcode (unconfigured device)
<trabucayre> xilinx platform is something like smt2 ?
<tnt> It has a FX2 and a CPLD inside.
<tnt> trabucayre: yup, indeed {0x08e80126, {"xilinx", "zynqmp_cfgn","xczu11eg", 4}},
<tnt> trabucayre: btw, openocd has 'ftdi_tdo_sample_edge falling' option to work on higher tck rate, would be nice to have that in openfpga loader too. Can't get above 10M without it.
<_florent_> cr1901: no worries, my 4 months son just wanted to eat and it's difficult to tell him to wait :)
<_florent_> cr1901: but I'm not sure what is not clear on your side regarding auto_flush. Without autoflush, we basically have: TX FIFO's source -> UART's source --> PHY's sink
<_florent_> cr1901: and we insert auto_flush between TX_FIFO's source and UART's source, the be able to flush the TX FIFO without waiting for the UART's source ready signal
<_florent_> cr1901: but data is of course lost
<_florent_> Wolfvak: I should indeed look at #255 issue, I'm not sure it's really ECP5 related but seems to happen on some ECP5 boards
<_florent_> tnt: JTAGPHY's FSM has been created initially for the specific 7-series usecase and is fixed to 10-bit DR, but it should be possible to adapt it with minor modifications
<tnt> _florent_: the issue isn't so much with 10-bit DR but the fact in theory the host should be able to shift as much bits as he want and only in capture/update state should the DR be loaded/interpreted.
<_florent_> tnt: I think just modifying the last state could do it: here: https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/jtag.py#L469, instead of returning to "XFER-READY", going to a "XFER-DONE" state that does nothing should do it
<tnt> that might work in this specific case, but not in the general case of an arbitrary chain I think. Because you have no idea if the first shifted 10 bit are for you.
<_florent_> tnt: only the first 10-bit of the transfer would then be used, but we have to see if it's convenient for the software
<tnt> I'll try to just use a normal shift register and use capture/update state and then remove the -endsate DRPAUSE.
<tnt> trabucayre: oh, my bad, there is something like that already (FtdiJtagMPSSE::config_edge()) but at least here only the read_mode needs changing, write_mode still need to be MPSSE_WRITE_NEG.
<trabucayre> tnt: I have to find a xilinx cable to add support. I may useful
<trabucayre> config_edge is an internal method used according to hardware. It's not efficient because it's not always true...
<trabucayre> works with artyA7 first generation but not with new arty boards ...
FabM has joined #litex
FabM has quit [Changing host]
FabM has joined #litex
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #litex
<Wolfvak> _florent_, I'm mostly interested in this issue because without it the SD card can read at around a glorious 80KiB/s (on linux)
<Wolfvak> ok nvm after retrying a few times it managed to boot into linux
<Wolfvak> but it seems like the prebuilt kernel doesnt support mmc (or the generated dts doesnt include it, not sure yet)
<tnt> Well, good news is I got JTAGBone to work on the ZynqMP
<tnt> bad news is it's _SLOW_ ...
<cr1901> _florent_: I still need to wake up but... I get how the autoflush is supposed to work I think (save a minor q which can wait)
<cr1901> I'm confused because I think the way I use the terms "source" and "sink" don't match the way you use them. And it makes me second guess my understanding especially when reading the source.
<cr1901> In your explanation above, I don't understand why you're connecting a TX FIFO source to a UART source (without the autoflush). I thought sources connected to sinks.
zjason` is now known as zjason
<_florent_> tnt: great, congrats! JTAGBone is useful but indeed probably not very fast (I've been mostly using it to do control/status and LiteScope).
<_florent_> cr1901: TX FIFO is internal to the module, so when connecting its source to UART's source, we basically just exposing it to the outside
<_florent_> tnt: you probably already saw it but you might be interested:
<tpb> Title: LimeSDR Mini 2.0 | Crowd Supply (at www.crowdsupply.com)
FabM has quit [Quit: Leaving]
<tnt> _florent_: litescope is what I wanted it for, I was hoping it'd be faster than uart but it's like 10x slower ...
<_florent_> tnt: I just saw the comment is the issue
<_florent_> tnt: is the slowliness related to the use of drscan?
<tnt> _florent_: pretty sure it is. Looking at litescope trace, I can see a massive gap between individual drscan.
<tnt> (and by massive, I mean 99% of the trace is idle between commands)
<_florent_> tnt: ok, and do you think we could have a kind of hybrid mode between the old one and new one, where the gateware learn the number of bits from initial command and we could then burst them as we were doing before to speed up things?
<tnt> Not sure about the "learning" part (at least in the generic case).
<tnt> ATM I'm hesitating between writing a streaming sw to replace openocd that would use the mpsse more efficiently and trying to hack the logic to emulate the old mode.
<tnt> anyway, gotta head out for now. I'll be back ina couple hours.
<_florent_> Regarding LiteX integration, it would be easier to keep using OpenOCD and a logic that maybe less generic (that could learn of be configured from parameters)
<_florent_> at least as a first step
joseng has joined #litex
_florent_ has quit [Read error: Connection reset by peer]
_florent_ has joined #litex
gatecat has quit [Read error: No route to host]
tucanae47_ has quit [Read error: No route to host]
alanvgreen has quit [Read error: Connection reset by peer]
gatecat has joined #litex
alanvgreen has joined #litex
tucanae47_ has joined #litex
mikolajw has quit [Ping timeout: 252 seconds]
mikolajw has joined #litex