Monday, 2020-10-05

*** tpb has joined #litex00:00
*** FFY00 has quit IRC00:08
*** FFY00 has joined #litex00:08
*** FFY00 has quit IRC00:49
*** _whitelogger has quit IRC01:42
*** _whitelogger has joined #litex01:44
*** CarlFK has quit IRC01:45
*** CarlFK has joined #litex01:58
*** Degi has quit IRC02:36
*** Degi has joined #litex02:36
*** CarlFK has quit IRC02:36
*** CarlFK has joined #litex02:41
*** andrewb1999 has quit IRC02:49
*** CarlFK has quit IRC03:23
*** CarlFK has joined #litex03:28
*** _whitelogger has quit IRC04:45
*** _whitelogger has joined #litex04:47
*** indy has joined #litex06:05
*** _whitelogger has quit IRC06:27
*** _whitelogger has joined #litex06:29
zyplkcl, there's some discussion around switching to nmigen in here: https://github.com/enjoy-digital/litex/issues/37206:34
tpbTitle: LiteX 2020 roadmap and new LiteX SoC class · Issue #372 · enjoy-digital/litex · GitHub (at github.com)06:34
_florent_lkcl: i also wrote this which gives a bit of context: https://github.com/enjoy-digital/litex/wiki/Migen-nMigen08:15
tpbTitle: Migen nMigen · enjoy-digital/litex Wiki · GitHub (at github.com)08:15
*** awordnot has quit IRC08:42
*** awordnot has joined #litex08:43
*** indy has quit IRC08:45
*** shorne has quit IRC08:51
*** indy_ has joined #litex08:53
*** shorne has joined #litex08:57
lkclzyp, _florent_: appreciated.  can i recommend some features to be added there? these are mainly for ASICs09:12
lkcl1) a pinmux.  (obviously in FPGAs you don't want one, you just rebuild the bitstream with a different peripheral set, duh)09:13
lkcl2) JTAG boundary scanning. this involves close-coordinating of the pin-peripheral definitions09:15
lkclin the core itself then back again, right now, because litex doesn't include a JTAG TAP itself.09:16
lkcli describe the full process here https://bugs.libre-soc.org/show_bug.cgi?id=490#c2709:16
tpbTitle: 490 Complete peripheral set including litex for first functional POWER9 Core (at bugs.libre-soc.org)09:16
lkcl3) 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 design09:18
lkcli 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.09:20
lkclthe 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.09:20
lkclthe 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.09:21
lkclnmigen would have noticed that the signal was "attempted to be driven from multiple sources"09:22
*** _whitelogger has quit IRC10:00
*** _whitelogger has joined #litex10:02
*** lambda has quit IRC10:28
lkclother things that i feel should be on the "long-term" list:10:29
lkcl4) auto-generation of documentation of pinouts.  this is done by the pinmux program https://git.libre-soc.org/?p=pinmux.git;a=blob;f=src/spec/ls180.py;hb=HEAD10:30
tpbTitle: git.libre-soc.org Git - pinmux.git/blob - src/spec/ls180.py (at git.libre-soc.org)10:30
lkclan example result is here https://libre-soc.org/180nm_Oct2020/ls180/10:30
tpbTitle: ls180 (at libre-soc.org)10:30
lkcl5) 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.10:31
lkcl5) 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".10:32
lkclevery 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.10:34
lkcl6) 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.10:36
lkclcurrently 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.10:37
lkclthe only one that i didn't have to do that to is SDRAM because it's already been PHY-i-fied :)10:37
lkcllast 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.10:39
lkclat that point you could hypothetically actually support OpenTITAN's JSON file-format (and tools)10:39
lkclbased around collaboration and cooperation and standardisation10:40
st-gourichon-fidHi! When pushing a design using dfu-util, on some machines the -R option of dfu-util is needed.12:35
st-gourichon-fidIs there any circumstance where a -R would cause a problem?12:35
st-gourichon-fidI ask because DFUProg class does not issue -R, code is at https://github.com/enjoy-digital/litex/blob/master/litex/build/dfu.py#L2412:36
tpbTitle: litex/dfu.py at master · enjoy-digital/litex · GitHub (at github.com)12:36
st-gourichon-fidOpened https://github.com/enjoy-digital/litex/pull/66212:36
tpbTitle: Unconditionally ask dfu-util to "Issue USB Reset" by fidergo-stephane-gourichon · Pull Request #662 · enjoy-digital/litex · GitHub (at github.com)12:36
st-gourichon-fidI can't imagine a situation where -R would break anything, that's why I ask here.12:36
*** Degi has quit IRC12:56
*** FFY00 has joined #litex12:56
*** Degi has joined #litex12:56
*** andrewb1999 has joined #litex14:21
*** andrewb1999 has quit IRC14:24
st-gourichon-fidWe have a simple design that can run with a VexRiscV or SERV. Testing BIOD features mem_speed mem_test. With VexRiscV flush_cpu_dcache hangs the system. Any idea? Apparently this function only send ASM .word(0x500F), cf. https://github.com/enjoy-digital/litex/blob/master/litex/soc/cores/cpu/vexriscv/system.h#L3314:27
tpbTitle: litex/system.h at master · enjoy-digital/litex · GitHub (at github.com)14:27
st-gourichon-fids/BIOD/BIOS/14:27
st-gourichon-fidWe use --cpu-variant=minimal where void flush_cpu_dcache(void) should do nothing. CONFIG_CPU_VARIANT_MIN is *not* defined, and probably should be.14:30
st-gourichon-fidAh, 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.14:31
st-gourichon-fidxobs1, _florent_, which is the correct one, CONFIG_CPU_VARIANT_MIN or CONFIG_CPU_VARIANT_MINIMAL? I can offer a PR if useful.14:32
*** benh has quit IRC14:50
st-gourichon-fidCreated https://github.com/enjoy-digital/litex/pull/66315:14
tpbTitle: 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)15:14
*** Felkin has joined #litex15:49
_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 :)16:01
st-gourichon-fidCreated https://github.com/enjoy-digital/litex/pull/66516:06
tpbTitle: More precise log by fidergo-stephane-gourichon · Pull Request #665 · enjoy-digital/litex · GitHub (at github.com)16:06
_florent_st-gourichon-fid: thanks for the PRs! i'll look at this a this a bit later16:07
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.16:08
_florent_st-gourichon-fid: i think the -R could indeed be a good idea but i'll do some tests before merging16:15
_florent_nice catch otherwise for the Minimal Vexriscv variant16:16
st-gourichon-fidHappy to help :-)16:16
st-gourichon-fidRefining the one on performance measurement (the last one).16:16
_florent_pepijndevos: ^ could it be the issue you had on Gowin with Vexriscv?16:17
pepijndevoswah? lemme read back a bit16:17
_florent_this one: https://github.com/enjoy-digital/litex/pull/66316:18
tpbTitle: 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)16:18
pepijndevosI have no idea, maybe?16:22
_florent_pepijndevos: were you using the minimal variant?16:23
pepijndevosyyyyyea, most of the time at least16:23
_florent_ok, i could also do the test, but I still haven't installed the Gowin toolchain...16:24
pepijndevosI'll have a look after dinner16:25
pepijndevosNot too excited about trying to merge a branch into my branch and not destroying everything16:25
_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 :))16:33
pepijndevosyea go ahead16:33
pepijndevosIf there is nothing obviously wrong...16:34
*** benh has joined #litex16:34
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".16:45
lkclover the next 6 months we *need* a "pinmux plus peripheral" home, if you know what i mean.16:47
lkclwe've got NLnet funding (and could likely help you to apply for a EUR 50,000 Grant of your own)16:47
st-gourichon-fidRefined 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.16:48
tpbTitle: More precise log by fidergo-stephane-gourichon · Pull Request #665 · enjoy-digital/litex · GitHub (at github.com)16:48
lkcli 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?16:49
lkcla 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 format16:51
_florent_yeah, things that seem obvious now weren't before because nothing existed :)16:54
_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 it16:55
pepijndevos_florent_, FYI you might not need the Gowin license for the TCL shell, not 100% sure. But saves a bit hurdle.16:55
_florent_at least in a first time, to mature things16:55
_florent_pepijndevos: ah ok interesting16:56
*** kgugala_ has joined #litex16:59
*** kgugala has quit IRC17:03
_florent_lkcl: thanks for the NLnet offer, i already have lots of other commitments, i'm better just helping a bit on this for now17:04
*** kgugala_ has quit IRC17:04
*** kgugala has joined #litex17:05
*** KSmith has joined #litex17:58
pepijndevos_florent_, good news! vexrisc boots to console now18:20
pepijndevosI assume my kernel failures are just my failure to link something in a way that does not conflict wit the bios18:20
KSmithhey 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,18:29
KSmiththe near future18:29
tpbTitle: GitHub - litex-hub/linux-on-litex-vexriscv: Linux on LiteX-VexRiscv (at github.com)18:29
KSmith-Installing Verilator(isnt particularly required at the moment but thought may come in handy in the future)18:29
*** KSmith has quit IRC18:29
*** KSmith has joined #litex18:31
FelkinMy 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.18:38
FelkinThe SoC builder seems to hide it, at least from what i gather from Vivado's cryptic messages.18:39
leonsWhile debugging interrupt-driven UART i'm wondering about the following line:18:42
leonshttps://github.com/enjoy-digital/litex/blob/6916674ff6771b7f0dec11c2d18737abe16d3c95/litex/soc/interconnect/csr_eventmanager.py#L15218:42
tpbTitle: litex/csr_eventmanager.py at 6916674ff6771b7f0dec11c2d18737abe16d3c95 · enjoy-digital/litex · GitHub (at github.com)18:42
leonsAs part of a combinational statement it sets clear to 1, however I can't find any location where the Signal clear is then reset to 018:42
leonsIs the signal value implicitly 0 when it's not set as part of a combinational statement?18:43
leonsI would've guessed this would infer a latch but I'm at a level of despair where I don't trust such intuitions anymore :)18:46
leonsNevermind, the minute you ask you of course find the piece of documentation that says that migen can't produce latches18:48
*** KSmith has quit IRC19:00
*** tucanae47__ has joined #litex20:19
*** guan_ has joined #litex20:20
*** tucanae47 has quit IRC20:25
*** benh has quit IRC20:25
*** guan has quit IRC20:25
*** midnight has quit IRC20:25
*** tucanae47__ is now known as tucanae4720:25
*** guan_ is now known as guan20:25
*** benh has joined #litex20:27
*** midnight has joined #litex20:28
*** Felkin has quit IRC21:51
*** guan has quit IRC22:14
*** guan has joined #litex22:18
*** lf has quit IRC23:11
*** lf has joined #litex23:11
*** _whitelogger has quit IRC23:39
*** _whitelogger has joined #litex23:41

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