Thursday, 2021-09-30

*** tpb <[email protected]> has joined #litex00:00
jevinskie[m]$100 XC7K325T from qmtech 👀00:25
jevinskie[m]https://a.aliexpress.com/_mt8W9MW00:25
tpbTitle: QMTECH Xilinx FPGA Kintex7 Kintex 7 XC7K325T DDR3 Core Board| | - AliExpress (at a.aliexpress.com)00:25
*** Las[m] <Las[m]!~lasmatrix@2001:470:69fc:105::74e> has joined #litex00:25
sajattack[m]enticing, but I think those don't support the free version of vivado, do they?00:58
jevinskie[m]Unfortunately not01:47
Wolf0sajattack[m]: Do you need a license?02:02
*** Degi_ <[email protected]> has joined #litex03:16
*** Degi <[email protected]> has quit IRC (Ping timeout: 246 seconds)03:17
*** Degi_ is now known as Degi03:17
*** mc6808 <[email protected]> has joined #litex03:38
*** mc6808 <[email protected]> has quit IRC (Quit: Client closed)03:45
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)04:14
*** TMM_ <[email protected]> has joined #litex04:14
*** cr1901 <cr1901!~William@2601:8d:8600:911:5120:3edd:7c22:3adb> has quit IRC (Quit: Leaving.)06:11
*** FabM <FabM!~FabM@2a03:d604:103:600:acbd:1bde:60b2:4890> has joined #litex06:13
Melkhiorhello, linux-on-litex-vexriscv won't boot for me with the latest update (BIOS change?) in litex, the kernel hangs almost immediately, when identifying the memory09:32
Melkhioris that a known issue ?09:32
_florent_Melkhior: I tested it recently on Arty, it was still working, do you have a specific configuration;09:48
_florent_?09:48
Melkhiorit's a basic qmtech wukong configuration, no l2, single core, no changes except for #105309:51
Melkhiorno ethernet, not sdcard configured 09:52
Melkhioronly serial, framebuffer and icap_bistream09:52
Melkhior... and minor changes in platform/targets for my hand-built RGB222 VGA Pmod (VGA output with only 8 signals)09:54
MelkhiorI didn't clean / rebuild the buildroot and opensbi though from the previous version09:55
Melkhiorwill try that09:55
*** Coldberg <[email protected]> has quit IRC (Remote host closed the connection)09:56
*** Coldberg <[email protected]> has joined #litex09:56
Melkhior(the qmtech has hdmi, i'm testing the pmod)09:57
Melkhiorwell, false alarm ; cleaned up everything and started again, this time boot had no issue10:25
Melkhior_florent_: all good :-)10:25
Melkhiorone HW question - what is the limit on sdram BW ? Running 16 bits at 800 MY/s I should have 1.6 GB/s peak, and probably 1-1.2 usable when overheads are removed10:26
Wolf0Melkhior: ANY SDRAM? I'm getting 550GB/s sequential on HBM2 :310:26
Melkhiorhehe :-)10:27
Wolf0Sorry, had to. :310:27
MelkhiorI don't dare used my VCU128 for non-work stuff :-)10:27
Wolf0Melkhior: please, please do. I need more people doing interesting stuff with the HBM parts to chat with :P10:27
Wolf0Also, related: I made a slightly snarky reddit thread which miiight irritate Xilinx a little: https://www.reddit.com/r/FPGA/comments/pxfuo5/completing_a_badly_incomplete_xilinx_answer/10:28
Melkhiorbut the DMA stuff seems to be running in sys_clk, so would be limited to sys_clk_freq * mem_width - or only 200 MB/s for me (100 MHz, 16 bits)10:28
Wolf0Sounds like you need a bigger bus.10:28
MelkhiorI'm limited by the HW :-)10:28
Melkhiorthe memory is 16 bits10:29
Melkhiorthe Wishbone is 32 bits10:29
Wolf0ahhh, got it10:29
MelkhiorSo I'm wondering how to improve BW usage between the FB and the SDRAM ... with my limited HW10:29
Wolf0FB?10:30
Melkhiora 1280x1024@60 Hz FB is only 150 / 300 MB/s in 16/32 bpp, that should work with the 800 MT/s 16-bits SDRAM ...10:30
MelkhiorFB == FrameBuffer10:30
Wolf0ahh... well,  mean, my first instinct is raising clock speed, if you require more bandwidth10:31
Wolf0My second instinct is changing timings - particularly refresh rate tends to be nice10:31
Wolf0But changing refresh rate tends to work best when you're maxing out your RAM usage10:33
Melkhiortimjngs are probably OK - raw bandwidth has room to spare10:46
Melkhiorsys_clk would help, but I'm kind of stuck because of FPGA and design limitations (some stuff in sysclk are practically limited to 100 MHz)10:47
Melkhiorso I guess there's only the bus width left ... I need to figure out how to read & display multiple pixels at once I guess10:47
*** geertu <[email protected]> has quit IRC (Ping timeout: 240 seconds)11:03
*** geertu <[email protected]> has joined #litex11:03
MelkhiorSeems to me the LiteDRAMCrossbar is running in sysclk, and will limit the usable bandwidth going through it - _florent_: is that correct?11:32
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has quit IRC (Read error: Connection reset by peer)11:48
*** somlo <[email protected]> has quit IRC (Remote host closed the connection)12:51
*** cr1901 <cr1901!~William@2601:8d:8600:911:cc44:d504:102:aa84> has joined #litex12:53
*** somlo <[email protected]> has joined #litex13:12
_florent_Melkhior: LiteDRAMCrossbar is running in sys_clk yes, but with the native controller's data_width (ex 128-bit on 16-bit DDR3)14:11
Melkhior_florent_: so for 128-bit (or multiple thereof) access it's fast, but for lower we get correspondingly lower bandwidth ?14:23
Melkhiorso the framebuffer should try to access many pixels at once ?14:23
Melkhior(with e.g. a 128 bits native interface)14:24
Melkhiorclarification: 's/but for lower/but for narrower [than 128 bits]/'14:26
_florent_Melkhior: the framebuffer in LiteX is doing the read in the native data-width, then down-convert it: https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/video.py#L616-L64814:28
Melkhiormmm, ok, I though that would be the native width of the memory (16 bits), I should have print()ed it14:29
Melkhiorso it _does_ read multiple pixels at once already?14:30
MelkhiorI have issue with higher-resolution display (1024x768 and more) even if timing closes fine, I though it might be lack of bandwidth...14:31
_florent_you can maybe try to increase the framebuffer fifo depth: https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/video.py#L60914:38
_florent_you can also add LiteScope to probe video_pipe_source.valid14:39
_florent_it should always be at 1 when the video is enable. If you see it at 0, there are indeed bandwidth issues14:40
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)14:40
Melkhiorok14:40
Melkhiorthanks14:41
*** TMM_ <[email protected]> has joined #litex14:41
MelkhiorI need to investigate further then14:41
Melkhior(ultimate goal is to go from 16-bits to 8-bits and emulate an old IndexedColor framebuffer)14:41
Melkhior16 bits is in #105314:42
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has joined #litex15:18
Melkhior_florent_: 1024x768@60Hz/16bpp (90MB/s required, I think) -> underflow comes up pretty strongly (just connected it to a LED)15:33
Melkhiorat least with the default FIFO depth of 65536B (4096 entries of 16B/128b)15:33
Melkhiortrying with a bigger FIFO (4x)15:33
Melkhiorwhich I really don't understand unless I messed up 16bpp badly, as 800x600@60Hz/32bpp did work and has higher BW requirements!15:35
MelkhiorI'm confused :-)15:36
_florent_Melkhior: what's your sys_clk?15:36
Melkhior100 MHz15:37
_florent_and your pix_clk? 65e6?15:40
Melkhioryes, std 1024x768@6015:40
_florent_can you share your modification to do 16bpp with the video code?15:41
Melkhiorwith its own S7MMCM15:41
_florent_video core15:41
Melkhior#1053 :-)15:41
MelkhiorPR on github15:41
Melkhior(trying again with 32bpp just in case)15:41
_florent_ah sorry :)15:42
Melkhiorno problem :-)15:42
MelkhiorBTW, #1053 'works' with linux -> I get a picture, even though I'm not 100% certain about colors (my VGA output only use 2 bits per color...)15:46
MelkhiorI _think_ the led is a bit brighter with 32bpp, but it's hard to tell15:49
MelkhiorAlso - screen is more distorted, and Linux doesn't seem to finish booting...15:50
MelkhiorFinal update - it seems going to a 512 KiB FIFO (all available BRAM) doesn't help, while going back down to 32 KiB isn't much worse than 64 KiB16:24
_florent_Melkhior: #1053 looks fine, I also don't understand why 32bpp work and not your 16bpp16:44
Melkhior_florent_: they both work for low-resolution, and I might be an idiot with confirmation bias... I was looking at the wrong led!16:46
_florent_ahah16:46
Melkhiorso to recap: 800x600 works fine in 16bpp and 32bpp ; 1024x768 has severe issue in 32bpp, much less severe in 16bpp16:46
Melkhior(as in, Linux doesn't boot in 32bpp but does in 16bpp16:47
Melkhiorhowever, I still have no idea *why* it behaves that way (I _did_ think of checking timings, never had any issue)16:47
Melkhiorthe screen gets a bit distorted in 1024x768/16bpp, slightly more severe in 1024x768/32bpp16:48
Melkhiorand I still need to check underflow by looking at the proper led (I've connected it to ALL user_leds now :-) )16:50
_florent_Melkhior: BTW, this can be interesting: https://github.com/litex-hub/litex-boards/issues/23916:52
_florent_modifications to the Video core to do 1280x720@16bpp from a SDRAM16:53
Melkhior_florent_: similar to what I've done for 16bits, but I wonder why he gets rid of the data-width conversion - maybe he assumed like me that the dram_port.data_width was 16 ?was 17:08
_florent_ah yes, probably specific to this case17:09
_florent_but the Converter should not add logic when doing a 1:1 conversion17:09
*** ilia__s9 <[email protected]> has joined #litex17:09
MelkhiorMine is definitely 128 as you said, and I should have a lot more available bandwidth in 800 MT/s DDR3 than in 143 Mhz SDRAM ?!?17:10
MelkhiorAnyway - the leds seem to be off in the 1024x768 case, so it might not be a bandwidth issue17:10
*** indy_ <[email protected]> has joined #litex17:11
*** Xesxen_ <Xesxen_!~cyber@hackalot/deelnemer/xesxen> has joined #litex17:12
*** cr1901 <cr1901!~William@2601:8d:8600:911:cc44:d504:102:aa84> has quit IRC (*.net *.split)17:17
*** Coldberg <[email protected]> has quit IRC (*.net *.split)17:17
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (*.net *.split)17:17
*** Xesxen <Xesxen!~cyber@hackalot/deelnemer/xesxen> has quit IRC (*.net *.split)17:17
*** ilia__s <[email protected]> has quit IRC (*.net *.split)17:17
*** indy <[email protected]> has quit IRC (*.net *.split)17:17
*** ilia__s9 is now known as ilia__s17:17
_florent_Melkhior: How many CPU do you have? With VexRiscv SMP, each CPU has 2 direct LiteDRAM ports. This could also be an arbitration issue.17:23
Melkhiorjust one cpu in this test17:23
Melkhiorcompletely standard, no fancy extension :-)17:23
*** ilia__s5 <[email protected]> has joined #litex17:23
_florent_OK17:23
*** Ikkepop <[email protected]> has joined #litex17:23
*** cr1901 <cr1901!~William@2601:8d:8600:911:cc44:d504:102:aa84> has joined #litex17:23
*** FabM <FabM!~FabM@armadeus/team/FabM> has joined #litex17:23
*** ilia__s <[email protected]> has quit IRC (Ping timeout: 265 seconds)17:23
*** ilia__s5 is now known as ilia__s17:23
Melkhior1024x768/32bpp doesn't light up the 'overflow' leds, either (though I don't trust myself not to have messed up the Led connection...)17:26
Melkhiorlet's try 1920x1080 and see what happens :-)17:26
Melkhior1920x1080@60Hz/16bpp: FPGA timings are fine, screen says 'out of range', kernel hangs when seeing the frambuffer, overflow leds are still off...17:33
MelkhiorI'm definitely out of my depth :-)17:33
Melkhiorneed to sleep on it 17:33
Melkhiorthanks for the help!17:33
Melkhiorbye17:33
*** Xesxen_ <Xesxen_!~cyber@hackalot/deelnemer/xesxen> has quit IRC (Ping timeout: 265 seconds)17:42
*** shorne <[email protected]> has quit IRC (Ping timeout: 265 seconds)17:42
*** lexano <lexano!~lexano@cpe00e06722f0e4-cm98524a70e35e.cpe.net.cable.rogers.com> has quit IRC (Ping timeout: 265 seconds)17:42
*** tpb_ <[email protected]> has joined #litex17:42
*** tpb <[email protected]> has quit IRC (Killed (NickServ (GHOST command used by tpb_)))17:43
*** Xesxen <Xesxen!~cyber@hackalot/deelnemer/xesxen> has joined #litex17:43
*** shorne_ <[email protected]> has joined #litex17:43
*** tpb_ is now known as tpb17:43
*** lexano_ <lexano_!~lexano@cpe00e06722f0e4-cm98524a70e35e.cpe.net.cable.rogers.com> has joined #litex17:44
*** Xesxen_ <Xesxen_!~cyber@hackalot/deelnemer/xesxen> has quit IRC (Ping timeout: 265 seconds)17:44
*** shorne <[email protected]> has quit IRC (Ping timeout: 265 seconds)17:44
*** lexano <lexano!~lexano@cpe00e06722f0e4-cm98524a70e35e.cpe.net.cable.rogers.com> has quit IRC (Ping timeout: 265 seconds)17:44
*** kbeckmann <[email protected]> has quit IRC (Ping timeout: 265 seconds)17:44
*** Degi <[email protected]> has quit IRC (Ping timeout: 265 seconds)17:44
*** Degi <[email protected]> has joined #litex17:45
*** kbeckmann <[email protected]> has joined #litex17:53
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Quit: Leaving)17:55
*** Las[m] is now known as Las[m]_19:20
*** Wolf0 <Wolf0!~Wolf0@user/wolf0> has quit IRC (Quit: leaving)19:46
*** Wolf0 <Wolf0!~Wolf0@user/wolf0> has joined #litex19:46
*** tpb <[email protected]> has joined #litex20:06
*** TMM_ <[email protected]> has joined #litex20:06
*** Emantor <[email protected]> has joined #litex20:07
*** Stary <Stary!~Stary@hacksoc/infrastructure> has joined #litex20:08
*** Guest53 <[email protected]> has quit IRC (Ping timeout: 256 seconds)20:08
*** lambda <[email protected]> has joined #litex20:18
*** Guest53 <[email protected]> has joined #litex20:46
mm001leons: I applied your patch: no more malformed packets, but still data loss and still duplicates and triplicates...22:22
mm001How can I make the LiteEthUDPStreamer module to have data width 32, by the way? Do I have to change liteeth/frontend/stream.py on line 96?22:24
mm001Sorry if I ask again, but is there any obvious error in my code snippet?: https://pastebin.com/U2DebcdB22:26
tpbTitle: self.submodules.udp_streamer = udp_streamer = LiteEthUDPStreamer( - Pastebin.com (at pastebin.com)22:26
mm001(this code snippet is added to litex-boards/targets/linsn_rv901t.py below the "Leds" section, at line 92..), Leds secion commented out.22:30
mm001*section22:32
*** Ikkepop <[email protected]> has quit IRC (Quit: Leaving)22:41
*** C-Man <[email protected]> has joined #litex22:41
*** geertu <[email protected]> has quit IRC (Ping timeout: 260 seconds)23:05
david-sawatzke[m<mm001> "How can I make the LiteEthUDPStr..." <- There's no real obvious way, since the Streamer operates on continuus data. With 32 bit width you can have some that only have 24 bits of valid data23:17
david-sawatzke[mThere's no great way to process that in streaming fashion without potential data loss, I think a new udp2stream module where packets are separated with begin & end signal will probably make more sense (at least for the rx side)23:19
*** geertu <[email protected]> has joined #litex23:20

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