rohitksingh has quit [Remote host closed the connection]
rohitksingh has joined #litex
rohitksingh has quit [Ping timeout: 265 seconds]
rohitksingh has joined #litex
rohitksingh has quit [Ping timeout: 240 seconds]
rohitksingh has joined #litex
_whitelogger has joined #litex
_whitelogger has joined #litex
rohitksingh has quit [Ping timeout: 255 seconds]
rohitksingh has joined #litex
<scanakci>
thanks @_florent_ . I am currently trying to integrate the most recent version of BlackParrot to LiteX. I was stuck for some time. We finally noticed that the issue was because of a bug in verilator.
rohitksingh has quit [Ping timeout: 256 seconds]
rohitksingh has joined #litex
_whitelogger has joined #litex
rohitksingh has quit [Ping timeout: 240 seconds]
rohitksingh has joined #litex
_whitelogger has joined #litex
tmichalak has joined #litex
rohitksingh has quit [Ping timeout: 255 seconds]
rohitksingh has joined #litex
rohitksingh_ has joined #litex
rohitksingh has quit [Read error: No route to host]
rohitksingh_ has quit [Remote host closed the connection]
rohitksingh has joined #litex
rohitksingh has quit [Remote host closed the connection]
rohitksingh has joined #litex
pbinkowski has joined #litex
rohitksingh has quit [Remote host closed the connection]
<pbinkowski>
hi all
<pbinkowski>
I'm working on enhancing liteeth to allow both SoftCPU and IP cores (Etherbone core etc.) access to the same MAC/PHY
<pbinkowski>
I'd like to test my changes with the litex-buildenv firmware (it supports telnet so that should be a nice check) but I can't get the HW Ethernet cores working in litex-buildenv
<pbinkowski>
I've modified my target to only instantiate the Etherbone core in a similar way to how it is done in mainline Litex Arty target
<pbinkowski>
but I cant get it to respond to pings and ARP requests
<pbinkowski>
all I get is a single ARP response just after loading the bitstream on the board and then it goes quiet
<pbinkowski>
I'm using the latest LiteEth/Litex-buildenv code
<pbinkowski>
I've heard that issue similar to this already appeared in the past, so if anyone has any ideas what I can try to fix this now then please share
<pbinkowski>
I think I will start with trying to bump the Litex submodule in buildenv as it is pretty far behind the current master
<pbinkowski>
oh, and I forgot to mention that I've already tested the current mainline Litex and Etherbone core works fine there
<pbinkowski>
looks like bumping litex did the trick :)
scanakci has quit [Quit: Connection closed for inactivity]
<tpb>
Title: soc/interconnect/packet/Depacketizer: use both sink.valid and sink.re… · enjoy-digital/litex@a268537 · GitHub (at github.com)
<_florent_>
otherwise that would indeed be an interesting feature, how are you planning to share the MAC/PHY between CPU and IP Core?
<pbinkowski>
_florent_: my idea is to add a crossbar between LiteEthMACCore and LiteEthMACWishboneInterface/Packetizer&Depacketizer
<pbinkowski>
that crossbar will send all incoming data to both CPU and IP
<pbinkowski>
but it will arbitrate outgoing traffic between the IP and CPU
<pbinkowski>
by monitoring stream valid and last signals
<pbinkowski>
ie. when core has data valid then it will be granted access to output path until a data word with `last` flag is seen
<pbinkowski>
but I think that my current code will still need some more work as I don't think that I'm handling data width, endianness and last_be vs last correctly
<_florent_>
pbinkowski: with this architecture, the CPU will need to also read and discard packets that are going to the IP and it will not be able to do it as fast as the IP
<_florent_>
when i was thinking about doing that, i was thinking having 2 separate MAC addresses for the CPU and the IP, share the MAC/PHY but add a crossbar on top of the LiteEthMACCore to redirect streams according to MAC addresses for RX and do the arbitration for TX.
<_florent_>
this way, the CPU only receives its own packets and don't waste CPU cycles decoding packets that are for it and the IP can still use alsmost the full bandwidth
<_florent_>
would that make senses for you application?
<pbinkowski>
_florent_: I think that this will fit nicely as currently I'm already using different MAC addresses for CPU and IP
<pbinkowski>
I will just need to figure out a filtering scheme as I see for example ARP requests use target MAC address of 00:00:00:00:00:00
<_florent_>
pbinkowski: ok good, i'm going to have a closer look at your code. BTW this is something that should simulate nicely with litex_sim and ethernet support to speed up dev
<_florent_>
pbinkowski: indeed, for ARP you can redirect the packet to both and only the one concerned will answer
<_florent_>
ok so your solution seems very similar the one i was describing, it's just that there is no MAC filtering for the RX. But the MAC filtering could be an option that we enable or not, so you can probably continue with your solution and add MAC filtering later if that's really needed.
<pbinkowski>
_florent_: ok, so I will try to get what I have currently to work and if I encounter any performance issues then I will add MAC filtering
<pbinkowski>
thanks for help!
<_florent_>
yes that sounds good. That will be a very useful feature to combine CPU flexibility and IP performance
scanakci has joined #litex
HEGAZY has joined #litex
HEGAZY has quit [Ping timeout: 268 seconds]
HEGAZY has joined #litex
HEGAZY has quit [Ping timeout: 256 seconds]
HEGAZY has joined #litex
CarlFK has quit [Ping timeout: 256 seconds]
HEGAZY has quit [Read error: Connection reset by peer]
CarlFK has joined #litex
m4ssi has quit [Remote host closed the connection]