Commit Graph

487 Commits

Author SHA1 Message Date
enjoy-digital 97dccdb294
Merge pull request #124 from sensille/wishbone_rx
wishbone rx data corruption
2022-12-20 09:53:34 +01:00
Arne Jansen 004e3f59d7 mac: fix typo 2022-12-08 18:11:01 +01:00
Arne Jansen 2b6d4ee51b wishbone: fix race condition in rx path
When no rx slot is available, the current code path sends the FSM through
DISCARD-REMAINING to TERMINATE, which tries to signal the slot to the user
even though nothing has been received. This can lead to data corruption.
2022-12-08 17:58:25 +01:00
Florent Kermarrec 0e1a1da036 liteth_gen: eth_bus_standard -> bus_standard. 2022-11-21 12:13:57 +01:00
Florent Kermarrec 8052afea79 liteeth_gen: add_wb_master -> bus.add_master. 2022-11-21 12:04:52 +01:00
Florent Kermarrec e3176c9386 phy/k7_1000basex: Make CSR optional and allow external reset control. 2022-11-04 12:11:51 +01:00
enjoy-digital 8680f74de0
Merge pull request #120 from suarezvictor/master
Add support for AXI-Lite bus in generator
2022-11-02 15:24:49 +01:00
Victor Suarez Rovere 68326dafd0 minimal core reorganization 2022-11-01 11:09:32 -03:00
Victor Suarez Rovere 5f14bd4a7f add initial support to generate verilog code using wishbone or axi-lite bus standard (depending on the .yml file) 2022-10-31 20:43:53 -03:00
Florent Kermarrec 022207c5c6 liteeth_gen: Use fixed CSR mapping to avoid moving base addresses with LiteX changes/simplifications. 2022-10-24 09:10:24 +02:00
Florent Kermarrec e9cdaa01a5 ci: Bump to ubuntu 20.04. 2022-10-14 18:17:35 +02:00
Florent Kermarrec 8fc5ed0ded CONTRIBUTORS: Update. 2022-09-07 10:20:11 +02:00
Florent Kermarrec 6cf7759c9b frontend/stream: Add packet support and remove send_level.
TX packets are now sent when we have a full packet of when the FIFO is full.
Last can always be asserted from user-side when packet needs to be immediately
transmitted, the behavior will then be similar to previous implementation.

Errors are now also reported on RX.
2022-07-29 14:58:25 +02:00
Florent Kermarrec 6d742e7999 phy/titaniumrgmii: Switch tx_ctl to IO primitive (similar to tx_data) and fix cd_eth_tx reset. 2022-07-08 12:16:09 +02:00
Florent Kermarrec c035ee2b63 liteeth/gen: Fix phy_tx/rx_delay format (floats). 2022-07-07 18:01:26 +02:00
Florent Kermarrec 8ad6e2521c phy: Add initial Titanium RGMII PHY (based on Trion's PHY). 2022-06-27 19:42:51 +02:00
Florent Kermarrec a319588843 liteeth/core: Expose IP broadcast capability. 2022-06-27 15:46:23 +02:00
Florent Kermarrec f192183255 liteeth/gen: Revert and fix missing Wishbone interface. 2022-06-27 15:35:37 +02:00
enjoy-digital 6930fb1cfb
Merge pull request #110 from Xiretza/gen-fix-rmii
gen: fix for RMII PHY
2022-06-27 15:31:17 +02:00
Xiretza a543ec757b gen: fix for RMII PHY
Without setting the ref clock domain to None, generation failed:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/litex/gen/fhdl/verilog.py", line 535, in convert
    f.clock_domains[cd_name]
  File "/usr/lib/python3.10/site-packages/migen/fhdl/structure.py", line 741, in __getitem__
    raise KeyError(key)
KeyError: 'eth'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/liteeth_gen", line 33, in <module>
    sys.exit(load_entry_point('liteeth==0.0.0', 'console_scripts', 'liteeth_gen')())
  File "/usr/lib/python3.10/site-packages/liteeth/gen.py", line 389, in main
    builder.build(build_name="liteeth_core")
  File "/usr/lib/python3.10/site-packages/litex/soc/integration/builder.py", line 350, in build
    vns = self.soc.build(build_dir=self.gateware_dir, **kwargs)
  File "/usr/lib/python3.10/site-packages/litex/soc/integration/soc.py", line 1208, in build
    return self.platform.build(self, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/litex/build/xilinx/platform.py", line 73, in build
    return self.toolchain.build(self, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/litex/build/xilinx/vivado.py", line 349, in build
    v_output = platform.get_verilog(fragment, name=build_name, **kwargs)
  File "/usr/lib/python3.10/site-packages/litex/build/xilinx/platform.py", line 64, in get_verilog
    return GenericPlatform.get_verilog(self, *args,
  File "/usr/lib/python3.10/site-packages/litex/build/generic_platform.py", line 423, in get_verilog
    return verilog.convert(fragment, platform=self, **kwargs)
  File "/usr/lib/python3.10/site-packages/litex/gen/fhdl/verilog.py", line 541, in convert
    raise Exception(msg)
Exception: Unresolved clock domain eth, availables:
- sys
- por
- eth_rx
- eth_tx
2022-05-25 17:13:39 +02:00
Florent Kermarrec b0e7243123 liteeth_gen: Add data_width support (For 32/8-bit datapath). 2022-05-16 13:38:05 +02:00
Florent Kermarrec e2c1b81cd3 CONTRIBUTORS: Update. 2022-05-02 13:45:04 +02:00
Florent Kermarrec 6d71adae2b bench: Use full imports. 2022-05-02 13:09:28 +02:00
Florent Kermarrec d10cda84b6 core/LiteEthIPCore/LiteEthUDPIPCore: Expose with_sys_datapath parameter. 2022-04-25 17:48:54 +02:00
Florent Kermarrec 28c8871624 core/LiteEthIPCore/LiteEthUDPIPCore: Improve code readability. 2022-04-25 17:33:32 +02:00
enjoy-digital 2f6ac9a216
Merge pull request #105 from yetifrisstlama/master
packet.py: fix typo in Packetizer
2022-04-25 16:37:10 +02:00
enjoy-digital 678995c3cb
Merge pull request #97 from david-sawatzke/dev/liteethudprxfix
core/udp: Add dw>8 support to LiteEthUDPRX
2022-04-25 16:36:10 +02:00
Florent Kermarrec d20f36a6ba core/icmp/LiteEthICMPEcho: Revert to PacketFIFO now that issue is understood.
edd98c23cb
2022-04-25 15:55:59 +02:00
Florent Kermarrec 9c0a9659c1 bench/butterstick: Add JTAGBone and Analyzer in MAC/ARP/IP/UDP/Etherbone control path. 2022-04-25 15:38:55 +02:00
Florent Kermarrec 2a4d387563 bench: Add gsd_butterstick. 2022-04-25 14:26:43 +02:00
Michael Betz 5e4dd913fc packet.py: fix typo in Packetizer
* in some cases, the delayed sink data was updated even though
    sink was not valid, leading to corrupted source data
  * this broke etherbone reads with DW=64
2022-04-19 01:15:10 +02:00
Florent Kermarrec bc9162d578 frontend/etherbone: Add assert on buffer_depth to prevent miss-configuration. 2022-04-08 09:27:52 +02:00
Florent Kermarrec 4cd0a99187 phy/1000basex: Add crg_reset CSR for consistency with other PHYs. 2022-03-23 08:44:52 +01:00
Florent Kermarrec 9ab4419382 frontend/etherbone: Replace is by ==. (Reported by python3.8). 2022-03-16 16:46:37 +01:00
enjoy-digital 2eba4e6bbf
Merge pull request #102 from sergachev/master
phy/a7_1000basex: expose rx/tx polarity controls
2022-02-21 08:54:21 +01:00
Ilia Sergachev 4fdf0ea20e phy/a7_1000basex: expose rx/tx polarity controls 2022-02-20 18:25:23 +01:00
Florent Kermarrec d1d2ad4584 frontend/stream: Add with_broadcast parameter to allow broadcast reception (Enabled by default). 2022-02-16 14:13:54 +01:00
Florent Kermarrec dc96269c8f core/ip/tx: Add broadcast capability. 2022-02-16 14:12:46 +01:00
Florent Kermarrec aff1916a03 core/ip: Add with_broadcast parameter and set it to True by default (Allow IP broadcast reception). 2022-02-16 11:51:57 +01:00
David Sawatzke 72b1a1f91e core/udp: Add dw>8 support to LiteEthUDPRX
Pass through last_be or create a new one based on the length if needed

Initialize count at dw//8 and don't subtract source_length since it
could lead to underflow for very short packets. In case source.length is
not dw aligned, count will not be equal, so adjust comparison for that.

Crib last_be Case lookup from mac/sram.py
2022-02-04 17:16:20 +01:00
Florent Kermarrec b903b7257b frontend/stream: Switch FIFOs to buffered. 2022-02-03 15:58:06 +01:00
Florent Kermarrec 35b475727c frontend/stream/LiteEthStream2UDPTX: Fix length computation (depends on data_width). 2022-02-03 15:17:07 +01:00
Florent Kermarrec ba20fc7b71 liteeth_gen/udp: Improve flexibility and add support for multiple UDP virtual channels. 2022-01-28 10:11:45 +01:00
Florent Kermarrec 680806997d liteeth_gen/udp: Directly integrate UDPStreamer to simplify use and just expose a LiteX-Stream/AXI-ST interface. 2022-01-26 11:18:48 +01:00
Florent Kermarrec 2beec096b4 liteeth_gen: Move MAC/IP address configuration to Config section and add dynamic UDP port support. 2022-01-26 10:53:23 +01:00
Florent Kermarrec e0124748aa crossbar/LiteEthCrossbar: Allow dispatch_param to be a Signal to allow dynamic configuration from design. 2022-01-26 10:51:07 +01:00
Florent Kermarrec e340428384 liteeth_gen: Add configurable/dynamic MAC/IP address support. 2022-01-26 10:21:47 +01:00
Florent Kermarrec f264c9d5d5 liteeth_gen: Add toolchain support/parameter.
LiteX code specialization/generation can be different between toolchain (For the same vendor).
Add parameter to configure it from the .yml file.
2022-01-26 09:57:43 +01:00
Florent Kermarrec b38ca8d7c0 stream/LiteEthUDPStreamer: Add cd parameter. 2022-01-25 19:36:50 +01:00
Florent Kermarrec 14edaaeec2 frontend/stream: Add data_width support. 2022-01-14 18:38:21 +01:00