Monday, 2021-12-13

*** tpb <[email protected]> has joined #litex00:00
*** linear_cannon <[email protected]> has quit IRC (Remote host closed the connection)00:22
*** geertu <[email protected]> has quit IRC (Ping timeout: 250 seconds)00:30
*** geertu <[email protected]> has joined #litex00:57
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:2041:fb8e:e9e8:4651> has quit IRC (Remote host closed the connection)01:08
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has joined #litex01:09
*** Degi_ <[email protected]> has joined #litex01:48
*** Degi <[email protected]> has quit IRC (Ping timeout: 256 seconds)01:49
*** Degi_ is now known as Degi01:49
*** _whitelogger <[email protected]> has quit IRC (Remote host closed the connection)02:15
*** _whitelogger <[email protected]> has joined #litex02:16
cr1901If I were to buy a litex-supported FPGA board that can go into a PCIe slot and is capable of e.g. running Linux/Litex, what is my (cheapest) option? Looking for a Christmas gift to myself03:36
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has quit IRC (Remote host closed the connection)04:01
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has joined #litex04:01
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has quit IRC (Remote host closed the connection)04:02
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has joined #litex04:03
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has quit IRC (Read error: Connection reset by peer)04:04
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has joined #litex04:07
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has quit IRC (Client Quit)04:07
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:30b0:7c10:cd6d:8e6e> has joined #litex04:08
yootisSqrl acorn / lite fury is the cheapest.  You can get a cheap card to mount it in pcie slots04:24
yootisCheap Carrier card04:28
*** FabM <FabM!~FabM@2a03:d604:103:600:8455:a4e3:4270:79b7> has joined #litex05:24
cr1901Cool, I'll look into it05:50
tntyootis: it's an argument to litex_server07:14
tntyou specify which transport to use.  And then the litescope_clip connects to litex_server which will relay stuff.07:14
yootistnt: yeah, but in the HDL, I just put a LiteScopeAnalyzer.  Do I need to tell it where to connect?  The arty.py example doesn't, so I assumed I didn't need to.07:37
tntIt should add itself to the SoC main wishbone bus. You should see it in the CSR report and in the csr csv that's generated.07:45
tntIn the csv you pass as the --csr-csv argument there should be some analyzer_xxxx entries in there.07:47
tntand then the pcie core must be setup as a master for that wishbone bus.07:48
_florent_yootis: as tnt just said, LiteScope is just connected to the CSR bus (itself connected to the main bus). To use use it, you then just need a bridge between your Host and the main bus, which can be over UART/JTAG/Ethernet/PCIe07:48
yootisok, then I don't know what's causing the problems.  I still get errors when litescope_cli causes lxserver to do anything07:52
_florent_yootis: can you try litex_cli --regs?07:55
*** mtretter <[email protected]> has joined #litex07:55
_florent_if working, can you try to copy:07:56
_florent_https://github.com/enjoy-digital/litex/blob/master/litex/tools/litex_client.py#L113-L11507:56
_florent_here:07:56
_florent_https://github.com/enjoy-digital/litescope/blob/master/litescope/software/litescope_cli.py#L12207:56
_florent_This is related to the remapping done only exposes the CSR to BAR0 with PCIe (and also related to https://github.com/enjoy-digital/litex/issues/1127), I'll have a closer look to properly fix it07:58
yootis--regs works as long as it is the first thing to connect to the server.  Once litescope_cli runs, the server needs to be killed and restarted.  Trying the above mods now.08:06
yootisBTW, as I dig through this, it looks like the stuff installed in ~/.local just points to the source directories.  Is that right?08:08
tntif you installed with litex_setup.sh then the install is made in 'develop' mode by default for all the repos.08:10
yootishttps://www.irccloud.com/pastebin/XIpm1rqI/08:10
tpbTitle: Snippet | IRCCloud (at www.irccloud.com)08:10
tntTry 'bus.' instead of 'wb.'08:11
yootissuccess!08:12
tnt\o/08:14
yootisthanks, guys08:15
tnt_florent_: btw, on another subject: In the liteiclink test, is there a requirement for the sys_clk to be related to the linerate / reference clock ?   When I use a 122.88 MHz clock (2.4576G linerate w 245.76M mgt reference), it works fine. But when I try to use an unrelated 300 MHz clock as my sys clock. Nothing.08:20
_florent_yootis: good, I'll also fix it while fixing #112708:21
tnt( that 122.88M clock is generated by the same clock chip as all the other jesd clocks so it's a bit annoying to use as sys clock because as soon as I try to reconfigure the JESD clockinc ... I loose it and that's bad for a sys_clk ).08:21
_florent_tnt: this seems similar to what I was doing on the XCU1525: https://github.com/enjoy-digital/liteiclink/blob/master/bench/serdes/xcu1525.py08:25
_florent_Are you also using the UART bridge to control the test?08:26
_florent_tnt: Sorry, I have to go, will be back this afternoon08:26
tntyup, I'm using the UART bridge. And I used the kcu105 file as reference but seems very similar.08:28
yootisUnfortunately, the server won't run while the litepci kernel module is loaded, so it will be hard to debug anything.  Is that a separate issue or is it related?08:33
*** geertu <[email protected]> has quit IRC (Read error: Connection reset by peer)08:39
tntWhat's the error ? I would have thought the mmap through /sys would still work even with a driver loaded08:39
*** geertu <[email protected]> has joined #litex08:44
yootisI have to start the server with the module not installed.  Once it is running, if I insmod the driver and run litescope I get a Bus Error on the server.09:00
tntMmm ok. I don't really know the sharing rules for the /sys mapping tbh. But if that's not supported then, you'd need another transport for the Remote clien that goes though the IOCTL of the litepcie /dev/litepcie0 char device to execute the CSR read/writes.09:17
tntAnother alternative might be to use a second bar dedicated to litescope but tbh that sounds more complicated.09:18
*** linear_cannon <[email protected]> has joined #litex09:55
*** shenki <[email protected]> has quit IRC (Ping timeout: 240 seconds)11:15
*** shenki <[email protected]> has joined #litex11:20
*** essele <[email protected]> has quit IRC (Read error: Connection reset by peer)13:19
*** essele_ <[email protected]> has joined #litex13:19
*** lexano <[email protected]> has quit IRC (Ping timeout: 250 seconds)14:09
*** lexano <[email protected]> has joined #litex14:20
tntMmm ... loopback test works with CPLL but not QPLL.14:33
*** lexano <[email protected]> has quit IRC (Ping timeout: 256 seconds)14:47
*** lexano <[email protected]> has joined #litex14:58
_florent_tnt: Arf... I imagine CPLL support is enough for the JESD but that while you are looking at this, you would also like to get QPLL working just to be able to flush all this from your head :)15:05
tntThe fact RXPLLCLKSEL is fixed to 0b00 seems surpicious to me.15:06
tnt_florent_: yeah, CPLL might do just fine but I was trying to find "broken" things to try and narrow down possible issues in general.15:06
tntI don't have a physical loopback yet. I tried to configure the Talise framer in PRBS7 test mode, but that doesn't work with the prbs_test python script. I'm not sure if it's supposed to or not.15:07
tntyeah, setting RXPLLCLKSEL appropropriately fixed the QPLL issue. But I'm not sure how that ever worked on GTH3 without it because AFAICT this is not GTH4 specific.15:09
_florent_tnt: it seems KCU105 testbench only uses CPLL (while XCU1525 can select CPLL/QPLL) so it's possible RXPLLCLKSEL is not correct for QPLL on GTHE3.15:15
_florent_tnt: I'm sure both have been tested on XCU1525 but don't remember for KCU105, I'll open an issue to also look at it.15:15
_florent_tnt: I was able to use the PRBS from LiteICLink with the AD937X's PRBS mode, on RX and TX, so it should also work with your chip. 15:19
tntOk, good to know. So I guess something is wrong somewhere.15:20
_florent_tnt: But I remember having difficulty knowing if the AD937X was correctly configured, so added debug traces in the AD937X init code (at least to know the configured linerate on the chip)15:20
tntYeah, I might need to do that because you don't actually configure the line rate itself, just a bunch of params and it "derives" it ...15:21
_florent_tnt: and I imagine you also just have the software lib and no register map/register descriptions...15:23
tnthehe, yeah of course.15:23
tntI mean, I'm kind of grateful there is a "no-OS" driver you can easily integrate because it looks like a b*** to configure. But I would still ahve appreciated a register map for debugging.15:23
_florent_yes exactly, it's not simplifying integration15:24
tntyootis: did you ever work with the Talise (ADRV9000 series) ?15:25
_florent_tnt: for the JESD bringup, I would recommend first validating PRBS in both direction (as you are doing now) then for JESD, first validate RX. This way if it's not working, you'll be able to put a LiteScope instance in the FPGA to observe the ILAS generated by the chip and make sure it matches the FPGA configuration (IIRC I had some surprises on this), once RX is working,  validate TX (but the chip will probably not provide you 15:29
_florent_that much info if failing... and not being able to look at the registers does not help...).15:29
_florent_Then when both RX/TX are up, enable the digital loopback in the chip and stress a bit the digital chain with dma_test/PCIe :)15:31
tntSeems I never go through TALISE_setupSerializers() which is probably a bad sign my init sequence isn't complete lol.15:32
_florent_hehe, it will not help no :)15:34
tnt\o/15:43
tntIt works, I get the PRBS sequence from the Talise.  BER 0 and when I shut it down, it reports errors.15:43
_florent_Great!15:46
tntI'll work on seting up the PRBS checker inside the Talise to check the other direction.15:47
*** lexano <[email protected]> has quit IRC (Ping timeout: 260 seconds)16:03
*** lexano <[email protected]> has joined #litex16:11
tnt_florent_: btw, the prbs error checker counter is 32 bits only and doesn't roll over, so the prbs_test can be misleading since when it saturates, it reports 0 errors ... (I patched it here to roll over because at 5 gbits, a 32 bit error counter saturates pretty fast).16:40
_florent_tnt: is it the counter from test_prbs or the hardware checker?16:46
_florent_tnt: saturation in the hardware checker is handled here: https://github.com/enjoy-digital/litex/commits/master/litex/soc/cores/prbs.py16:48
_florent_oops: https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/prbs.py#L17316:49
tnt_florent_: yeah, I know, I patched that out to let it overflow here.16:59
tntSo I can keep the test_prbs running and it will reports 0 only if there is truly no error. And it can detect the ovrflow and correct the BER estimate localy.17:00
_florent_tnt: ah ok, I see, that's the two behaviour combined that generate 0 errors.17:01
_florent_tnt: do you want that I had a saturation mode? (to allow you to disable it)17:01
tnt_florent_: I can make a PR for that, add it as a build option. And then add that option in the liteiclink test examples and add overflow handling in test_prbs.17:03
_florent_tnt: if you don't mind, it's even better, thanks.17:04
tntAck, will do that tonight.17:04
_florent__franck_ and I just received a new toy: https://twitter.com/fjullien06/status/1470438298111909894 :)17:08
tntAhaha, nice. How does that compare to a 7-series btw ? I never looked at fmax for a vex in there.17:15
*** lexano <[email protected]> has quit IRC (Ping timeout: 250 seconds)17:36
_florent_tnt: Max freq for the same SoC on Arty is between 125MHz-150MHz17:36
tpw_ruleswhere are the board and chip manufactured?17:38
_florent_tpw_rules: for now only the Ti60F225 is available17:46
tpw_rulesdo you know what country it's made in though?17:47
*** lexano <[email protected]> has joined #litex17:49
*** geertu <[email protected]> has quit IRC (Read error: Connection reset by peer)18:06
*** nelgau <nelgau!~nelgau@bras-base-mtrlpq2848w-grc-34-174-89-119-57.dsl.bell.ca> has joined #litex18:11
*** nelgau <nelgau!~nelgau@bras-base-mtrlpq2848w-grc-34-174-89-119-57.dsl.bell.ca> has quit IRC (Read error: Connection reset by peer)18:11
*** nelgau <nelgau!~nelgau@bras-base-mtrlpq2848w-grc-34-174-89-119-57.dsl.bell.ca> has joined #litex18:12
*** nelgau <nelgau!~nelgau@bras-base-mtrlpq2848w-grc-34-174-89-119-57.dsl.bell.ca> has quit IRC (Read error: Connection reset by peer)18:12
*** nelgau <nelgau!~nelgau@bras-base-mtrlpq2848w-grc-34-174-89-119-57.dsl.bell.ca> has joined #litex18:13
*** geertu <[email protected]> has joined #litex18:16
tntAnd got the Talise deframer PRBS checker passing too now, so both TX and RX lanes look fine.20:00
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Ping timeout: 240 seconds)20:24
_florent_tnt: Nice, one step closer.21:32
tnt_florent_: yup. I guess I'll try JESD link RX tomorrow. 21:36
tntDoes litejesd expose some status though CSR ?21:36

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