<nats`>
maybe a silly question but when I declare the clock period in the platform I don't see it in the generated ucf/xdc
<nats`>
is it normal ?
lf_ has joined #litex
lf has quit [Ping timeout: 260 seconds]
lkcl has quit [Ping timeout: 240 seconds]
Bertl is now known as Bertl_zZ
lkcl has joined #litex
Degi_ has joined #litex
Degi has quit [Ping timeout: 276 seconds]
Degi_ is now known as Degi
felix__ is now known as felix_
_whitelogger has joined #litex
futarisIRCcloud has joined #litex
FFY00_ has quit [Remote host closed the connection]
FFY00_ has joined #litex
shorne_ is now known as shorne
<shorne>
well, jtagbone is working, but having an issue getting litescope to route, my design needs 101 RAM cells, but the device as 100
<shorne>
changing the litescope sample depth doesnt seem to help
<shorne>
Ill try to turn off some features in the CPU code
<shorne>
ok, now its building, time to try out litescope
<shorne>
it works, I had to move my csr.csv file and analyser.csv file into the right place but then it works, I got a blank trace on the sdcard, but thats expected
kgugala has quit [Read error: Connection reset by peer]
<_florent_>
nats`: Are you using Plaform.add_period_constraint? If you execute an Artix7 target, ex arty.py, you'll see the constraint on the 100MHz input in the generated .xdc
<_florent_>
shorne: Good you got jtagbone working, LiteScope will indeed use some blockrams, so this can be tricky on a design that is already already almost full
RaYmAn has quit [Remote host closed the connection]
RaYmAn has joined #litex
shivampotdar[m] has joined #litex
<shivampotdar[m]>
!nick shivampotdar
shivampotdar[m] is now known as shivampotdar
shivampotdar has quit [Quit: authenticating]
shivampotdar has joined #litex
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<nats`>
_florent_, I tried with a spartan 6 target for an easier test with led
<nats`>
I used a default(clock name / period)
<nats`>
class Platform(XilinxPlatform):
<nats`>
default_clk_name = "clk100"
<nats`>
default_clk_period = 10
FFY00_ has quit [Remote host closed the connection]
FFY00_ has joined #litex
Bertl_zZ is now known as Bertl
<zyp>
_florent_, is there a canonical endianness for wide buses in liteeth? mismatching endiannesses is the sort of problem where two wrongs make a right, and I'd rather get it all consistent :)
pftbest has quit [Remote host closed the connection]
pftbest has joined #litex
<rozpruwacz>
Hi All. If anyone is interesting in reviewing my work related to litespi and litegpio linux kernel drivers I will be happy to get some reviews. I pushed my implementation of gpio interrupts handling in linux driver here https://github.com/mczerski/linux/tree/litex-riscv, there are my two commits. 444d3dae2e78f8e89ed9c1788f30d2cf574aebe3 is about the gpio interrupts and 8d885998822bb625aa854b52e6627ab42f03bfb9 is about litespi chip select
<rozpruwacz>
signal handling. Regarding spi chip select I encountered an issue that my spi slave required multibyte transfers without deasserting cs signal. There is set_cs callback for spi_master which allows the higher level api to handle cs signal. This was required for my slave device to work. This chip select handling also require changes in HDL which I pushed here https://github.com/mczerski/litex (commit c234d1b54ce73950614e270b26e29b5e84f4c7cf
<rozpruwacz>
).
<gatecat>
_florent_: is there a way of creating unconstrained IO pins in LiteX (I need to work around a slightly icky Radiant bug around the hard MIPI IP core, where the MIPI pads can't have constraints on them or Radiant fails) ?
FFY00_ has quit [Remote host closed the connection]
FFY00_ has joined #litex
<_florent_>
nats`: I just tried doing something similar on the minispartan6 (using the default CRG) and I still see the clock constraint in the .ucf
<_florent_>
If you have a minimal repro, can you share it?
<_florent_>
zyp: Etherbone with dw=32 was working previously is even the default IIRC, so I'm still not sure the issue on ECPIX5 is related to the core itself but could also be some malformed RX packets. I would need to do more tests on different boards
<_florent_>
gatecat: At some point it was possible with Pins("X") but I have to disable this since was causing an issue on a design I was working on recently. But we could add back a way to define pins without generating the constraints.
<gatecat>
OK, thanks, I think I'm just gonna ignore Radiant and try and get nextpnr working for now anyway (and manually patch the constraints if I need to try Radiant...) but if you have a moment then that would be useful
<_florent_>
and use Pins("X") (or Pins("X X ...") if a multi-bit signal)
<gatecat>
oh even easier, thanks!
<zyp>
_florent_, did you see the screenshots I posted last night? arp/icmp not working was clearly an endianness issue, solved by flipping the endianness
<_florent_>
zyp: yes, but I'm still not sure it's really a endianness issue (since dw=32 works in simulation and other boards), this could also be an issue with the start of the RX frame that would cause issues very similar to endianness issues
<_florent_>
zyp: I'll try to have a look
<_florent_>
gatecat: In fact the case I reverted this (integrating LiteDRAM on Gowin) the tools were requiring the IOStandard constraints but not the LOC constraints, so did the revert I just shared and then added this to the Gowin backend:
<_florent_>
zyp: With this, the data-width is kept to 8 up to the UDP Layer (with a 125MHz clock) and Etherbone is then running at lower speed (sys_clk)
<_florent_>
zyp: Running the core with a data-width != 8 is another thing, I have a version working that has been validated at 1Gbps with a 32-bit data-width on EC5 and 10Gbps with a 64-bit data-width (on Kintex7) but I still need to spend time integrating the changes correctly.
<zyp>
ah, makes sense
<_florent_>
zyp: I also added --with-etherbone args to ecpix5.py while testing
<pftbest>
_florent_: thanks!
<zyp>
as long as the udp layer meets timing at 125MHz easily I'm happy enough with that solution for now
<_florent_>
zyp: sorry for the time you spent on that, I thought the core was already running in the eth clock domain. For info I found the issue by capturing the ethphy.source with LiteScope and saw some backpressure on the ready signal (that is not supposed to happen).
<_florent_>
zyp: thanks! I'll review and apply them
lkcl_ has quit [Ping timeout: 264 seconds]
pftbest has quit [Remote host closed the connection]
pftbest has joined #litex
lkcl_ has joined #litex
pftbest has quit [Ping timeout: 246 seconds]
Bertl is now known as Bertl_oO
pftbest has joined #litex
Melkhior has joined #litex
rj has joined #litex
rj has quit [Ping timeout: 268 seconds]
rj has joined #litex
<somlo>
anyone remember which of the two rj45 connectors on the ecp5-versa board is supposed to be connected to LiteETH?
<_florent_>
somlo: It's the one near L5 and the USB connector
<_florent_>
somlo: But due to a bug fix in the ecp5rgmii (delay were not applied correctly) it's possible the delays need to be specified in the target
<_florent_>
I'm testing this
<somlo>
_florent_: thanks! neither works for me right now, but I wanted to at least be barking up the right tree :D
rj has quit [Ping timeout: 268 seconds]
<somlo>
for context, I've just built the latest versions of yosys/trellis/nextpnr, which seem to fit a linux-capable rocket/litex with ethernet much more reliably with 99% slice utilization into the 45k ecp5
<_florent_>
tested with ./versa_ecp5.py --with-etherbone --cpu-type=None --integrated-main-ram-size=0x1000 --build --load to speed up P&R
<somlo>
the previous toolchain iteration bounced back and forth over the 100% utilization limit, but now it seems p&r is significantly tighter (thanks gatecat, as always :)
<somlo>
_florent_: thanks, I'll restart the build to incorporate that commit
rj has joined #litex
<_florent_>
somlo: you should probably try with the smaller SoC first (just to be sure your cable is plugged correctly :))
rj has quit [Remote host closed the connection]
<_florent_>
it should build in less than 2 minutes
rj has joined #litex
<somlo>
_florent_: amazing! and yeah, it pings, so the rj45 closer to the middle of the board (and to the usb connector) is indeed phy0 :)
* somlo
reaches for the permanent marker :)
<_florent_>
hehe good idea
<somlo>
now back to building the rocket SoC (which takes 30-45 minutes)
Bertl_oO is now known as Bertl
rozpruwacz has quit [Ping timeout: 264 seconds]
kgugala_ has quit [Quit: -a- Connection Timed Out]
kgugala has joined #litex
rj has quit [Ping timeout: 268 seconds]
lkcl_ has quit [Ping timeout: 264 seconds]
rj has joined #litex
lkcl_ has joined #litex
<st-gourichon-fid>
Something that looks like a regression. New error message "ERROR: Failed to expand region (0, 0) |_> (25, 31) of 5294 ICESTORM_LCs" on a design that used to compile.
<st-gourichon-fid>
Appeared between 19fda3364ae1e2c96a77331fb19c4b8efd56d927 and current master 834c90b7 .
<st-gourichon-fid>
So, appeared after 2021-01-08.
<st-gourichon-fid>
Dunno if it's just a regression, or an actual problem in the design that wasn't spotted, though.
rj has quit [Ping timeout: 268 seconds]
<gatecat>
It sounds like the design is just a bit too large
<gatecat>
Chances are it was always on the marginal side and something has pushed it over the edge
rj has joined #litex
rj has quit [Ping timeout: 268 seconds]
rozpruwacz has joined #litex
<st-gourichon-fid>
gatecat, thank you for your comment.
<st-gourichon-fid>
Ah, indeed, ICESTORM_LC jumped from 94% to 100%. That looks quite significant!
<st-gourichon-fid>
The same design jumping 6% from success to failure after a `git pull --ff-only` sounds fishy. :-/
rozpruwacz has quit [Quit: Leaving.]
rozpruwacz has joined #litex
rj has joined #litex
rozpruwacz has quit [Quit: Leaving.]
lkcl_ has quit [Ping timeout: 256 seconds]
lkcl_ has joined #litex
<st-gourichon-fid>
gatecat, the regression was introduced by commit ceb8a6502cc1315eb48fa654a073101c783013a3
<st-gourichon-fid>
Same design, changed litex version by one commit.
<st-gourichon-fid>
Looks like it adds an optional parameter to the vexriscv constructor, to enable or disable a timer, but puts it enabled by default.
rj has quit [Ping timeout: 268 seconds]
rj has joined #litex
lkcl_ has quit [Ping timeout: 260 seconds]
lkcl_ has joined #litex
rozpruwacz has quit [Quit: Leaving.]
rj has quit [Ping timeout: 268 seconds]
rozpruwacz has joined #litex
rj has joined #litex
rozpruwacz has quit [Quit: Leaving.]
<_florent_>
st-gourichon-fid: yes that's indeed probably related to the timer, I saw this while merging but was not sure how much it would increase resource usage
rozpruwacz has joined #litex
<_florent_>
st-gourichon-fid: I'll disable it tomorrow