<tpb>
Title: init: generate DFII_CONTROL flags in sdram_phy.h instead of defining … · enjoy-digital/litedram@c30910a · GitHub (at github.com)
jeanthom has joined #litex
kgugala_ has joined #litex
kgugala has quit [Read error: Connection reset by peer]
kgugala has joined #litex
kgugala_ has quit [Ping timeout: 256 seconds]
jeanthom has quit [*.net *.split]
Degi has quit [*.net *.split]
proteusguy has quit [*.net *.split]
jeanthom has joined #litex
Degi has joined #litex
proteusguy has joined #litex
kgugala_ has joined #litex
kgugala has quit [Ping timeout: 265 seconds]
kgugala has joined #litex
kgugala_ has quit [Ping timeout: 246 seconds]
st-gourichon-fid has quit [Ping timeout: 246 seconds]
<zyp>
_florent_, I've been working on porting litepcie_util to use VFIO instead of the litepcie kernel driver and I almost have the dma test working now (got DMA running, just need to fix the buffer management), but it only works once
st-gourichon-fid has joined #litex
<zyp>
when I kill and restart the process, it doesn't work anymore and so far I haven't been able to recover without reloading the fpga
<zyp>
I assume the issue is that I don't stop the DMA before exiting the process, so I guess it's still running while the IOMMU gets unmapped which then causes the DMA to deadlock somehow
<zyp>
the obvious solution is of course to stop the DMA before leaving the process, but I still think it's important to be able to recover after the process e.g. segfaults
<zyp>
this only affects DMA, MMIO keeps working
kgugala_ has joined #litex
kgugala_ has quit [Read error: Connection reset by peer]
kgugala has quit [Ping timeout: 246 seconds]
kgugala has joined #litex
<_florent_>
zyp: interesting for your VFIO work. That would be interesting to add Litescope on the DMA Writer/Reader to see what is going on. I suspect the DMA Reader get stuck by issuing read requests but don't get the completion if the IOMMU is unmapped. If this is what is happening, we could add a register to be flush all the pending read requests restart from a clean state.
the_JinX has joined #litex
<somlo>
_florent_: so with commit 4a18b828 we're back in business for spi-mode sdcard on nexys4ddr and rocket -- thanks!
<_florent_>
somlo: thanks for testing, i was going to ask you if you could do a test ;)
<somlo>
"regular" sdcard is still not working with default litex (and that includes using vexriscv as the cpu)
<somlo>
but that's a completely different complaint :)
<_florent_>
yes i'm working on this
<somlo>
I have vacation coming up in august and nowhere to go, so I'll have some time to spend on this :) Goal is to figure out all the up/down converters needed to properly hook up rocket for DMA
<somlo>
and getting the largest number of rocket cores I can get away with on a genesys2 board...
<_florent_>
somlo: i just need to rearrange the clocking a bit, but you should be able to use the SDCard core in the next days
<_florent_>
somlo: there is a similar DMA interface on VexRiscv SMP and are planning to use the SDCard with DMA to validate it
<_florent_>
so this will be very similar to the work required on Rocket and we could join our efforts on this
<somlo>
might end up being a fun vacation after all ;)
FFY00 has quit [Quit: dd if=/dev/urandom of=/dev/sda]
FFY00 has joined #litex
st-gourichon-fid has quit [Ping timeout: 246 seconds]
st-gourichon-fid has joined #litex
st-gourichon-fid has quit [Ping timeout: 260 seconds]
kgugala_ has joined #litex
kgugala_ has quit [Read error: Connection reset by peer]
kgugala_ has joined #litex
kgugala has quit [Ping timeout: 240 seconds]
st-gourichon-fid has joined #litex
kgugala has joined #litex
kgugala_ has quit [Ping timeout: 246 seconds]
peepsalot has joined #litex
jeanthom has quit [Ping timeout: 240 seconds]
st-gourichon-fid has quit [Ping timeout: 256 seconds]
<_florent_>
somlo: can you do a test with latest litesdcard / Vexriscv on the Trellisboard?
st-gourichon-fid has joined #litex
st-gourichon-fid has quit [Ping timeout: 240 seconds]
tpb has quit [Ping timeout: 264 seconds]
kgugala has quit [Ping timeout: 246 seconds]
<somlo>
_florent_: I already tried with rocket on nexys4ddr (no luck yet). building vexriscv for trellisboard now...
jeanthom has joined #litex
<zyp>
_florent_, re: dma reader; that sounds plausible
<zyp>
which signals would be the interesting ones to watch?
<zyp>
and what should be flushed if anything?
<_florent_>
somlo: since it's doing DMA, i don't think it will work without connecting the DMA to rocket as we discussed.
<_florent_>
we should probably add a way to reset the controller properly
st-gourichon-fid has joined #litex
<zyp>
and the requests_queue is only used for DMA, not MMIO since those requests are going the other way?
<_florent_>
zyp: indeed, it's two different channels
st-gourichon-fid has quit [Ping timeout: 260 seconds]
<somlo>
_florent_: I temporarily hacked rocket to route both mmio and mem accesses over the wishbone bus
<somlo>
_florent_: locally, in my clone of the litex repo
<somlo>
_florent_: but I'll stick to vexriscv just to minimize the "unknown unknowns" :D
<somlo>
_florent_: I actually built rocket for trellisboard; sdcard boot works intermittently
<_florent_>
somlo: interesting, could you provide me the bitstream, i instrumented my trellisboard with probes on the SDCard pins and would like to do some checks
<zyp>
nevermind, I added a do_finalize() to my SoC and forgot to call SoCCore.do_finalize()
<_florent_>
somlo: thanks for the bitstream, can you describe the "works intermittently"?
<_florent_>
somlo: is is failing loading the binary? or is is loading the binary but failing during the Linux boot?
<somlo>
I push it to the board with openocd; it typically hangs or fails at sdcard boot, and when it fails, it falls through to netboot and then the prompt
<somlo>
if I hit the reset switch repeatedly, about 50% of the time it actually loads successfully from sdcard
<somlo>
I should probably send you my boot.bin blob with the rocket bbl and kernel (sorry, forgot to do that)
<_florent_>
ok thanks, i'll have a look at it with the probes
<somlo>
ok, you should have the boot.bin blob I'm using as well
<somlo>
not sure if it's useful to know at this stage that the exact same design built for nexys4ddr fails (falls through to netboot and prompt) reliably
<_florent_>
Would you mind also sending it to me? I'll have look at the SDCard signals
<zyp>
_florent_, I hooked up a couple of LiteScopeIO, pending_words appears to always read 0, requests_queue.level reads 9
jeanthom has quit [Ping timeout: 264 seconds]
<zyp>
so I guess it's the requests_queue that needs to be flushed