Tuesday, 2023-07-11

*** tpb <[email protected]> has joined #litex00:00
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)00:18
*** TMM_ <[email protected]> has joined #litex00:19
*** so-offish <so-offish!~so-offish@2610:148:610:2b11::1a> has quit IRC (Ping timeout: 264 seconds)00:41
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Ping timeout: 240 seconds)01:19
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex01:20
*** Degi <[email protected]> has quit IRC (Ping timeout: 245 seconds)03:02
*** Degi <[email protected]> has joined #litex03:04
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Remote host closed the connection)04:12
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex04:12
sensillezyp: how do you mean? cpu time in the communcation functions?04:34
*** FabM <[email protected]> has joined #litex06:54
zypsensille, yes08:22
sensilleno idea, can't be much. just building/parsing a smallish udp packet08:23
sensilleone per millisecond08:23
zypI looked at both litehm2, litex-cnc and colorcnc (I think it was called), but neither was entirely what I wanted, so I started my own approach based on a custom ethercat-like protocol where a single packet passes through a chain of devices that rewrites it08:26
zypbecause part of what I want to do is distribute IO across multiple boards: https://bin.jvnv.net/file/sOo86.mp408:28
sensillemy approach was to built on the 20+ years maturity of the existing code, host+fpga side08:29
zypyeah, I get that, it just doesn't suit what I want to do well :)08:31
zypbut I'm curious how the communication performance I'm getting compares to other ethernet-based devices08:32
sensillei found ethercat quite appealing, but was repelled by the patents on it08:32
zypindeed, that's why I'm not attempting to implement actual ethercat08:32
sensillebut nice work if you can already pass packets through both ports08:32
zypmy main goal is to make something to drive this thing: https://bin.jvnv.net/file/2pVce.jpg08:35
zypby making a custom fpga-based controller card that hooks up to the original power electronics08:35
zypso I'm making custom hardware, which means I want the flexibility to handle arbitrary ADCs and similar in gateware, so the hm2 approach seems a little constraining08:39
zypwheras colorcnc/litex-cnc is apparently based on etherbone, which seems like it'll be a performance bottleneck if you've got many signals08:40
_florent_zyp: interesting project! Feel free to share advance/progress here, I'm also interested by this :)09:38
_florent_zyp: Etherbone is indeed probably not the best for your application, it's mostly intended for MMAP.09:39
zypI've designed it so the devices contains metadata about what signals it got, which types they have and at what offset in the data frame they're located, so I can simply just declare a few signals like this: https://paste.jvnv.net/view/Gy09s and have them show up in linuxcnc: https://bin.jvnv.net/file/WYbrd.png09:40
tpbTitle: JVnV Pastebin – View paste – Untitled (at paste.jvnv.net)09:40
_florent_zyp: If you want similar latency than Ethercat, you'll indeed have to have a non-standard MAC.09:41
_florent_zyp: Another possibility if you want to reuse LiteEth could be to have a custom protocol over UDP, ex here with just raw streaming:09:42
zypyeah, right now I'm using the standard mac, with a custom L3 handler, so each device adds latency corresponding to the preamble and L2 header, plus CDC09:42
_florent_https://twitter.com/enjoy_digital/status/148638143946995712009:42
zypso probably on the order of a hundred ns per device09:42
zypbut that drowns in the host side latency, linuxcnc says my data exchange function takes 40-50 us to execute09:43
*** Guest93 <[email protected]> has joined #litex13:33
*** Guest93 <[email protected]> has quit IRC (Client Quit)13:34
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Quit: Leaving)14:41
*** so-offish <[email protected]> has joined #litex15:20
*** so-offishul <so-offishul!~so-offish@2610:148:610:2b11::4> has joined #litex15:21
*** so-offish <[email protected]> has quit IRC (Ping timeout: 246 seconds)15:25
cr1901_florent_: Did you get a chance to confirm the bug? If not, should I open an issue anyway?15:37
cr1901bisecting could potentially, be difficult, but I'll try15:38
sensillezyp: do you write your own linuxcnc drivers, or intend to do so?15:39
*** so-offishul <so-offishul!~so-offish@2610:148:610:2b11::4> has quit IRC (Quit: Leaving)15:42
zypsensille, yes, I did15:43
sensillefrom scratch or by starting from the existing mess?15:44
zypI was looking at a few existing drivers for inspiration, but wrote it from scratch15:44
sensillethat is quite the feat :)15:44
zypI think I took a fairly unconventional approach: https://paste.jvnv.net/view/xgWVd :)15:46
tpbTitle: JVnV Pastebin – View paste – Untitled (at paste.jvnv.net)15:46
sensillestill trying to port to colorlight ... etherbone just works, but the cpu doesn't seem to run17:29
_florent_cr1901: sorry, haven't had time yet, you can open an issue17:49
*** so-offish <so-offish!~so-offish@2610:148:610:2b11::4> has joined #litex18:30
zypsensille, what type of uart are you using for the bios console? have you checked it's not just waiting for uart flow control?18:50
zypa regular hardware uart will output bytes regardless of whether anybody are listening or not, but e.g. the crossover uart will block until it's polled18:51
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:99b4:842d:32a4:1b2b> has quit IRC (Read error: Connection reset by peer)19:32
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:e4d2:571a:53b4:ed7a> has joined #litex19:33
cr1901_florent_: Ack, will do when I get the chance19:39
*** dark_star_1 <[email protected]> has quit IRC (Ping timeout: 245 seconds)19:55
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)20:02
*** TMM_ <[email protected]> has joined #litex20:02
_florent_sensille: with the crossover uart, you can use this to avoid it being blocked at startup: https://github.com/360nosc0pe/scope/blob/main/sds1104xe.py#L13420:32
*** key2 <[email protected]> has joined #litex20:34
sensillenice. i don't use a bios, though. just a short loop that is supposed to blink the led. i guess i need to learn to simulate with litex. for some miracle that wasn't necessary yet21:05
*** dark_star_1 <[email protected]> has joined #litex22:53

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