<tpb>
Title: 490 Complete peripheral set including litex for first functional POWER9 Core (at bugs.libre-soc.org)
<lkcl>
3) JSON-based pin / peripheral definitions. basically "_io" from Platforms but moved to a JSON file-format. just like in OpenTITAN except consulting widely with the community before proceeding with a design
<lkcl>
i have to say that i love litex for how much time it saves: however the two incidents i've had with migen make me reticent to recommend or commit to it long-term.
<lkcl>
the first was accidentally mixing sync and comb in a FSM. *no warning* whatsoever was given. this was a silent failure that was not even picked up by verilator.
<lkcl>
the second was an incorrect IO platform definition that created an input rather than an output. verilator didn't notice: it was only when compiling the actual ASIC under coriolis2 that the mistake was detected.
<lkcl>
nmigen would have noticed that the signal was "attempted to be driven from multiple sources"
_whitelogger has joined #litex
lambda has quit [Ping timeout: 260 seconds]
<lkcl>
other things that i feel should be on the "long-term" list:
<lkcl>
5) auto-generation of full and comprehensive linux and u-boot and other OS header files and helper functions. particularly important for GPIO and particularly important for pinmux-based GPIO.
<lkcl>
5) auto-generation of device-tree files. this *is* quite big, is essential, and is what OpenTITAN does. this includes *all* features of the SoC that would normally be done "by hand".
<lkcl>
every single one of those things is a nightmare recipe for the introduction of manual transcription errors that damage a SoC's adoption, require huge amounts of time to write manually, and are completely unnecessary to write manually.
<lkcl>
6) have all peripherals (even the bit-banging ones) take a "class" (or class instance) for the PHY. this to make it possible to do ASICs easily.
<lkcl>
currently i have had to cut/paste copy-replicated pretty much every single one of the litex peripherals into libre-soc in order to change them to support _i/_o/_oe PHYs.
<lkcl>
the only one that i didn't have to do that to is SDRAM because it's already been PHY-i-fied :)
<lkcl>
last thing: about the csv/json export: i'd recommend there, don't make it an afterthought: split litex right down the middle based *on* csv and/or json file-formats, in exactly the same way that OpenTITAN does.
<lkcl>
at that point you could hypothetically actually support OpenTITAN's JSON file-format (and tools)
<lkcl>
based around collaboration and cooperation and standardisation
<st-gourichon-fid>
Hi! When pushing a design using dfu-util, on some machines the -R option of dfu-util is needed.
<st-gourichon-fid>
Is there any circumstance where a -R would cause a problem?
<st-gourichon-fid>
We use --cpu-variant=minimal where void flush_cpu_dcache(void) should do nothing. CONFIG_CPU_VARIANT_MIN is *not* defined, and probably should be.
<st-gourichon-fid>
Ah, I think I found it MINIMAL != MIN . Code generates build/software/include/generated/soc.h:16:#define CONFIG_CPU_VARIANT_MINIMAL but test is for CONFIG_CPU_VARIANT_MIN.
<st-gourichon-fid>
xobs1, _florent_, which is the correct one, CONFIG_CPU_VARIANT_MIN or CONFIG_CPU_VARIANT_MINIMAL? I can offer a PR if useful.
<tpb>
Title: Fix SoC CPU crash on minimal variants on call to flush_cpu_dcache(). by fidergo-stephane-gourichon · Pull Request #663 · enjoy-digital/litex · GitHub (at github.com)
Felkin has joined #litex
<_florent_>
lkcl: thanks for the ideas, things are improving slowly in this direction, that would need to be added to a 2021-2022 roadmap :) but keep in mind that LiteX's initial aim is just to have a tool to create FPGA based SoCs efficiently. It happens to be used for different purpose now by the community and it's great, but most of the systems i still create with it don't even have a CPU in the FPGA :)
<tpb>
Title: More precise log by fidergo-stephane-gourichon · Pull Request #665 · enjoy-digital/litex · GitHub (at github.com)
<_florent_>
st-gourichon-fid: thanks for the PRs! i'll look at this a this a bit later
<st-gourichon-fid>
_florent_, thanks for your kind attention. Some seem pretty relevant, for the one on adding -R to dfu-util I'm not sure if it could cause any regression on other machines.
<_florent_>
st-gourichon-fid: i think the -R could indeed be a good idea but i'll do some tests before merging
<_florent_>
nice catch otherwise for the Minimal Vexriscv variant
<st-gourichon-fid>
Happy to help :-)
<st-gourichon-fid>
Refining the one on performance measurement (the last one).
<_florent_>
pepijndevos: ^ could it be the issue you had on Gowin with Vexriscv?
<tpb>
Title: Fix SoC CPU crash on minimal variants on call to flush_cpu_dcache(). by fidergo-stephane-gourichon · Pull Request #663 · enjoy-digital/litex · GitHub (at github.com)
<pepijndevos>
I have no idea, maybe?
<_florent_>
pepijndevos: were you using the minimal variant?
<pepijndevos>
yyyyyea, most of the time at least
<_florent_>
ok, i could also do the test, but I still haven't installed the Gowin toolchain...
<pepijndevos>
I'll have a look after dinner
<pepijndevos>
Not too excited about trying to merge a branch into my branch and not destroying everything
<_florent_>
pepijndevos: btw, i'm ok merging you initial gowin build support and TEC0117 PRs, it will also make things easier for me (for the same reasons :))
<pepijndevos>
yea go ahead
<pepijndevos>
If there is nothing obviously wrong...
benh has joined #litex
<lkcl>
_florent_: well, the lack of "CPUs" is actually a really good thing because it ensures full independence. OpenTITAN is fantastic... yet fundamentally it's not a "peripheral inter-connect", it's a "RISC-V inter-connect".
<lkcl>
over the next 6 months we *need* a "pinmux plus peripheral" home, if you know what i mean.
<lkcl>
we've got NLnet funding (and could likely help you to apply for a EUR 50,000 Grant of your own)
<st-gourichon-fid>
Refined https://github.com/enjoy-digital/litex/pull/665 . Now speed is done with a precise computation. Previous computation underestimated a lot, and even replacing 1000000 with 1000 did not provide precise figures in kb/s. Now figures are consistent whatever the size of the tested range.
<tpb>
Title: More precise log by fidergo-stephane-gourichon · Pull Request #665 · enjoy-digital/litex · GitHub (at github.com)
<lkcl>
i think what i'm saying is: *if* we choose litex as the Libre-SOC "peripheral interconnect home" (for both FPGA and ASIC versions) would you be happy to accept (clean, clear, reviewed) patches?
<lkcl>
a lot of things, such as the kernel header files, technical manuals, and device-tree files can be done as external components based off of the JSON/CSV format
<_florent_>
yeah, things that seem obvious now weren't before because nothing existed :)
<_florent_>
i'm ok going in this direction, but it's not mandatory to integrate everything in LiteX, just the features that ease/allow other project to be built with it
<pepijndevos>
_florent_, FYI you might not need the Gowin license for the TCL shell, not 100% sure. But saves a bit hurdle.
<_florent_>
at least in a first time, to mature things
<_florent_>
pepijndevos: ah ok interesting
kgugala_ has joined #litex
kgugala has quit [Ping timeout: 256 seconds]
<_florent_>
lkcl: thanks for the NLnet offer, i already have lots of other commitments, i'm better just helping a bit on this for now
kgugala_ has quit [Read error: Connection reset by peer]
kgugala has joined #litex
KSmith has joined #litex
<pepijndevos>
_florent_, good news! vexrisc boots to console now
<pepijndevos>
I assume my kernel failures are just my failure to link something in a way that does not conflict wit the bios
<KSmith>
hey guys im quite new to using litex and am attempting to install a prebuilt for the nexys4ddr linux-on-litex-vexriscv https://github.com/litex-hub/linux-on-litex-vexriscv following the instructions,
<KSmith>
the near future
<tpb>
Title: GitHub - litex-hub/linux-on-litex-vexriscv: Linux on LiteX-VexRiscv (at github.com)
<KSmith>
-Installing Verilator(isnt particularly required at the moment but thought may come in handy in the future)
KSmith has quit [Excess Flood]
KSmith has joined #litex
<Felkin>
My struggles with pynq - litex integration continue TT Seems like vivado refuses to generate .hwh files for the pynq overlay system unless the litex soc is put in a block design and wrapped with a top hdl. It also seems to need to see the ps7 core.
<Felkin>
The SoC builder seems to hide it, at least from what i gather from Vivado's cryptic messages.
<leons>
While debugging interrupt-driven UART i'm wondering about the following line: