Monday, 2020-09-14

*** tpb has joined #litex00:00
*** _whitelogger has quit IRC01:42
*** _whitelogger has joined #litex01:44
*** jaseg has quit IRC02:31
*** jaseg has joined #litex02:33
*** Degi has quit IRC03:17
*** Degi has joined #litex03:20
*** TMM has quit IRC03:35
*** TMM has joined #litex03:35
*** _whitelogger has quit IRC04:18
*** _whitelogger has joined #litex04:20
*** avg has quit IRC06:13
*** nrossi has joined #litex07:40
*** carlomaragno has quit IRC09:45
*** carlomaragno has joined #litex09:47
*** benh has quit IRC09:47
*** benh has joined #litex09:47
keesjlkcl__: sounds ... very cool10:19
keesjis this an open source project  you can share?10:20
keesjI .. am also kinda wondering.. some things can not be done in ASIC as far as i know e.g. initial values after reset. who will validate this / who is responsible for this10:23
keesjI also heard that the ice40 also can not do this but that the open toolchain works around this10:23
daveshahice40 is different to an ASIC as in iCE40 all FFs init to zero, whereas in most ASIC technologies they init to undefined10:27
daveshahSo for iCE40 arbitrary initialisation can be done by wrapping 1-initialised FFs in inverters by Yosys to make them 0-initialised10:27
daveshahThe usual ASIC solution, aiui, is a power on async reset10:28
shorneIs anyone maintaining the liteeth linux driver, I have a few cleanups for it.  But it seems pretty obvious13:05
shorneAlso, I found the csr2dts generation is not working so well, for example it didn't specify interrupts in the dts.  I had to manually add those13:06
shornemaybe I am doing something wrong, using the latest version of litex-buildenv from last week13:06
lkcl__keesj: http://git.libre-soc.org https://libre-soc.org/3d_gpu/13:36
tpbTitle: git.libre-soc.org Git (at git.libre-soc.org)13:36
lkcl__keesj: the "problem" with ASICs is that power-on has total garbage from whatever stray capacitance happened to be floating around at the time, all the gates go "argh i have no idea if i'm on or off, errr i'll pick one"13:38
lkcl__so you _have_ to wire in a reset pretty much everywhere13:39
lkcl__sometimes however you actually don't care, such as clock-gated pipelines.  you would just run those "empty" for a few cycles, just long enough for the valid/ready signals to pop out the other end of the pipeline.13:41
lkcl__+14:29
somloshorne: I've been collecting (and, to the best of my limited time and abilities, trying to "curate") some linux drivers here: https://github.com/litex-hub/linux/tree/litex-rocket-rebase14:44
tpbTitle: GitHub - litex-hub/linux at litex-rocket-rebase (at github.com)14:44
somloif your liteeth patches can be tested on top of what's there using 64-bit rocket chip, I can test them and add your patch there -- I'm hoping someone at some point in the future will collect all that stuff and do a final rebase before pushing it all upstream (preferably in a way tha works not just on 32-bit CPUs with 8-bit litex-csr data width :) )14:45
*** proteusguy has quit IRC14:56
*** proteusguy has joined #litex15:10
*** CarlFK has quit IRC15:21
*** Felkin has joined #litex15:33
*** Felkin has quit IRC15:40
*** CarlFK has joined #litex17:05
*** _whitelogger has quit IRC17:57
ranzbakWhen I do 'self.comb += board_leds[0].eq(counter[24])' it sets the first bit of my signal, but it also clears the other bits, what can I do other than concatinating to set just one bit in an array?17:58
*** _whitelogger has joined #litex17:59
*** acathla has quit IRC18:00
CarlFKranzbak: this might be it, but I am not at all a tomo/fomu hacker:18:03
CarlFK>>> l = [0,0,0,0]; l[2]=1;l18:03
CarlFK[0, 0, 1, 0]18:03
*** acathla has joined #litex18:03
ranzbakThe problem is, that when you set bit 3 after that, only bit three will be set, because it's the last rule that is applied to the array.18:04
*** acathla has quit IRC18:05
*** acathla has joined #litex18:05
ranzbakl = [0,0,0,0]; l[2]=1; l[3]=1;l18:06
ranzbak[0, 0, 1, 1]y18:06
ranzbakhmm18:06
ranzbakThis way it does work, but not when I run it on my FPGA.18:06
ranzbakBut I'll go to the Migen channel, that might be a better place :-)18:07
leonsMy Arty A7 arrived yesterday and after setting up the monster that is Vivado, LiteX straight up works out of the box. I'm really impressed. :)19:31
leonsUnfortunately, using --with-ethernet fails at linking the BIOS image since the rom-region overflows by 1412 bytes. Is there anything I can do about this? Can I simply adjust the rom region's length? Currently trying to figure out how/where regions.ld is generated19:35
keesjleons: that is pretty cool (LiteX does depend on Vivado but we are going to ignore that for now) what .. problems did you encounter?19:35
keesjranzbak: .... I find that hard to believe but in the code you are not concatenating you are assigning counter[24] do a led[0]19:38
leonskeesj: I've really only generated a few gatewares and looked around the source, changing a few bits here and there.19:38
leonsBut now I'm running a clean LiteX installation, unfortunately encountering the linker error while building the BIOS when running `./arty.py --build --with-ethernet` as outlined above19:40
keesjConcatenations are done using the Cat object(from the https://m-labs.hk/migen/manual/fhdl.html documentation)19:41
tpbTitle: The FHDL domain-specific language Migen 0.8.dev0 documentation (at m-labs.hk)19:41
ranzbakkeesj: That's what I was kind of hoping for not to be the case, but I have to use a concatenation in order to assign a bit in a register array.19:55
ranzbakkeesj: Isn't that cumbersome, or am I missing other features in Migen that make it very efficient?19:56
leonsThis hack seems to do the trick to get the BIOS building for Arty with ethernet: kwargs["integrated_rom_size"] = 0xb000 if with_ethernet else 0x800020:06
leonsIf it doesn't work out of the box (and other people can reproduce my behavior), is this a bug in LiteX then?20:06
_florent_leons: it's possible the BIOS size increased a little bit recently (i should have a closer look), to workaround the issue, you can also add --integrated-rom-size=0xb0000 to ./arty.py --with-ethernet --build20:25
leons_florent_: I've just now realized that the target python script also has a help which documents it! probably good practice to go through the source anyways :)20:26
leonsBut yes, that's the issue I suspected. Adding ethernet seems to grow it just above the rom size (only about 1.5kB)20:27
_florent_i've also been thinking recently about making the BIOS size dynamic to avoid this: first just build the BIOS with a large ROM (just to determine the size) and reduce it when building20:30
shornesomlo: ok20:48
leons_florent_: You wouldn't by chance know what the default tty baudrate of the prebuild gateware (incl BIOS) of the linux-on-litex-vexriscv is? I tried all imaginable ones, but I'm only reading gibberish :)20:59
leonsSorry, nevermind, 1MBd/s was not picocoms manpage :)21:03
*** lf has quit IRC23:32
*** lf has joined #litex23:33

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