Brinx has quit [Remote host closed the connection]
Brinx has joined #litex
Brinx has quit [Ping timeout: 260 seconds]
Brinx has joined #litex
Brinx has quit [Remote host closed the connection]
Brinx has joined #litex
davebee has quit [Quit: Leaving]
<tnt>
Has anyone ever had erratic pcie bandwidth after a dynamic reload ?
<tnt>
Like, if the FPGA is configured directly before the machine boots, it works fine and I get stable / uniform PCIe DMA bandwidth. But if I do a bitstream reload and then re-detect the card, it "works" as in, I can see the card and do CSR and even DMA, but the bandwidth is erratic leading to data loss.
<tnt>
If I then reboot (not touching the fpga), then all is well again.
<tnt>
(And I'm not even close to the max pcie bw. In "good times", I can get 30Gbit/s with not overflows/oss. Here I'm just trying to get about 7Gbit/s)
<trabucayre>
maybe it's stupid: the controler's driver isn't correctly reconfigured after boot ?
<tnt>
I do a rmmod / force device remove / rescan / insmod after I reloaded the fpga.
<tnt>
This is a diff of a lspci -vv of the device in the 'bad' case, vs the 'good' case.
<trabucayre>
maybe a driver can't be unloaded because it's used by another card?
<trabucayre>
dmesg ?
<tnt>
No, the rmmod / insmod cycles works fine.
<trabucayre>
for all related drivers I suppose?
<tnt>
There is only litepcie.ko
<trabucayre>
I talk about MB drivers :)
<tnt>
Also if I do my 'rmmod litepcie; echo 1 > .../remove; echo 1 > rescan; insmod litepcie.ko' without FPGA reload, it works fine.
<tnt>
MB drivers ?
<trabucayre>
motherboard
<trabucayre>
ie PCIe controler
<tnt>
I can't remove the PCIe driver ...
<tnt>
the system would stop working
<trabucayre>
yes it's true :)
<tnt>
it's kind of needed for ... the rest of the machine.
<trabucayre>
but the question is: maybe something is done at boot time and not at rescan time?
<tnt>
Also worth nothing on a different system (same fpga board but different cpu/motherboard), this stuff works just fine.
<tnt>
Well maybe ... but the question is "what" ?
<trabucayre>
seems to have specifics functions related to rescan... Maybe not implemented by one of drivers
<trabucayre>
but maybe i'm just totally wrong...
<trabucayre>
or a controler already configured by the bios and not touched by linux
<tnt>
In the lspci comparison above, 'Cache line' config was missing for the 'bad' case, so I tried setpci -s 01:00.0 CACHE_LINE_SIZE=10 now, it does report it like in the 'good case' but no improvements, bandwidth is still erratic.
<trabucayre>
seems my assumption is wrong
Brinx has quit [Remote host closed the connection]
Brinx has joined #litex
Guest13 has joined #litex
Guest13 has quit [Client Quit]
Brinx has quit [Ping timeout: 268 seconds]
Guest13 has joined #litex
FabM has quit [Quit: Leaving]
Guest13 has quit [Quit: Client closed]
Guest13 has joined #litex
Guest13 has quit [Quit: Client closed]
Guest13 has joined #litex
Brinx has joined #litex
Coldberg has joined #litex
C-Man has quit [Ping timeout: 268 seconds]
Guest13 has quit [Quit: Client closed]
<minute>
i'm confused as to how litespi flash is supposed to be used. in my soc target there is self.add_spi_flash(mode="4x", module=W25Q128JV(Codes.READ_1_1_4), rate="1:1", with_master=True). but litex_json2dts_linux.py doesn't pick this up, it's not showing up in DTS. i also don't have any commands to interact with the flash in litex bios. what am i missing?
<minute>
the generated csr.csv has spiflash_core and spiflash_phy. but litex_json2dts_linux is looking for "if "spiflash" in d["csr_bases"]:"
<cr1901>
>LiteSPI doesn't have bitbang registers, @xobs code is for litex.soc.cores.spi_flash. <-- ahhh, a looong while back, I wrote code for litex to flash new firmware via xmodem and SPI bitbang. But it never got merged
<cr1901>
(and presumably LiteSPI is how everything's done nowadays)
slagernate has joined #litex
nickoe has quit [Quit: Client closed]
nickoe has joined #litex
zjason has quit [Read error: Connection reset by peer]
zjason has joined #litex
<minute>
ok, writing to flash appears to work now
<slagernate>
Hi gatecat --I tried again the picorv32 cpu on the lattice crosslinknx evn board, this time using the LSE synthesis tool w/ the radiant toolchain (the synplify pro synthsis tool was giving me the "E: mal-formed command line" error (see logs after 2022/9/16)). Sadly, litex_term is still hanging for me, so I don't think this is an OSS tool issue.
<slagernate>
This time I'm using Ubuntu 20.02. (for context, previously you said: "slagernate: unfortunately, this seems like it's probably a problem somewhere in the oss stack - testing with the evn board radiant works but oxide doesn't").
<slagernate>
On 9/16, I messaged the following:
<slagernate>
I can't seem to get the software/demo working on a crosslink-nx eval board. litex_term is hanging when I try to upload anything. Same behaviour when I try e.g. the wishbone tool on this [icebreaker-litex tutorial](https://github.com/icebreaker-fpga/icebreaker-litex-examples) (although at least in this case I am getting `screen /dev/ttyUSB1 115200`
<slagernate>
10:00 <slagernate> to work. Can someone share or point me to an example crosslinknx setup? Kind of disappointed how difficult this has been.. was getting similar errors as this closed issue, https://github.com/enjoy-digital/litex/issues/814, which took a while to overcome.