<keesj>
is this an open source project you can share?
<keesj>
I .. 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 this
<keesj>
I also heard that the ice40 also can not do this but that the open toolchain works around this
<daveshah>
ice40 is different to an ASIC as in iCE40 all FFs init to zero, whereas in most ASIC technologies they init to undefined
<daveshah>
So for iCE40 arbitrary initialisation can be done by wrapping 1-initialised FFs in inverters by Yosys to make them 0-initialised
<daveshah>
The usual ASIC solution, aiui, is a power on async reset
<shorne>
Is anyone maintaining the liteeth linux driver, I have a few cleanups for it. But it seems pretty obvious
<shorne>
Also, 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 those
<shorne>
maybe I am doing something wrong, using the latest version of litex-buildenv from last week
<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"
<lkcl__>
so you _have_ to wire in a reset pretty much everywhere
<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.
<tpb>
Title: GitHub - litex-hub/linux at litex-rocket-rebase (at github.com)
<somlo>
if 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 :) )
proteusguy has quit [Ping timeout: 264 seconds]
proteusguy has joined #litex
CarlFK has quit [Ping timeout: 244 seconds]
Felkin has joined #litex
Felkin has quit [Remote host closed the connection]
CarlFK has joined #litex
_whitelogger has joined #litex
acathla has quit [Quit: segfault]
<CarlFK>
ranzbak: this might be it, but I am not at all a tomo/fomu hacker:
<CarlFK>
>>> l = [0,0,0,0]; l[2]=1;l
<CarlFK>
[0, 0, 1, 0]
acathla has joined #litex
<ranzbak>
The 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.
acathla has quit [Changing host]
acathla has joined #litex
<ranzbak>
l = [0,0,0,0]; l[2]=1; l[3]=1;l
<ranzbak>
[0, 0, 1, 1]y
<ranzbak>
hmm
<ranzbak>
This way it does work, but not when I run it on my FPGA.
<ranzbak>
But I'll go to the Migen channel, that might be a better place :-)
<leons>
My 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. :)
<leons>
Unfortunately, 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 generated
<keesj>
leons: that is pretty cool (LiteX does depend on Vivado but we are going to ignore that for now) what .. problems did you encounter?
<keesj>
ranzbak: .... I find that hard to believe but in the code you are not concatenating you are assigning counter[24] do a led[0]
<leons>
keesj: I've really only generated a few gatewares and looked around the source, changing a few bits here and there.
<leons>
But 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 above
<tpb>
Title: The FHDL domain-specific language Migen 0.8.dev0 documentation (at m-labs.hk)
<ranzbak>
keesj: 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.
<ranzbak>
keesj: Isn't that cumbersome, or am I missing other features in Migen that make it very efficient?
<leons>
This hack seems to do the trick to get the BIOS building for Arty with ethernet: kwargs["integrated_rom_size"] = 0xb000 if with_ethernet else 0x8000
<leons>
If it doesn't work out of the box (and other people can reproduce my behavior), is this a bug in LiteX then?
<_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 --build
<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 :)
<leons>
But yes, that's the issue I suspected. Adding ethernet seems to grow it just above the rom size (only about 1.5kB)
<_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 building
<shorne>
somlo: ok
<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 :)
<leons>
Sorry, nevermind, 1MBd/s was not picocoms manpage :)