Saturday, 2021-09-25

Las[m]Downgrading to 3.7 didn't fix it, fixing the code to match the comment did fix it.11:34
Las[m]i.e. 12 -> 1511:34
Las[m]Funniest thing is that it's been wrong from the start in commit a8080116d7b787aaedf0f71558a95682ab96a71c11:35
Las[m]How did you ever get this to work?11:35
Las[m]programmerjake: Have you ever built for the versa ecp5?11:36
Las[m]Now I get "libresoc-versa-ecp5> ERROR: Conflicting init values for signal 1'0 (\test_issuer.ti.core_core_cr_out [3] = 1'0 != 1'x)."11:37
lkclLas[m], i have no idea!11:37
lkclthat's an uninitialised value11:38
lkcllike i said: litex is horribly fragile due to using migen11:38
lkclMANIKANDAN, hi, what's your email address, i will add you to bugzilla.11:39
lkclalso, if you are happy with our Charter,, then i can give you ssh write access and you can commit directly to the wiki back-end11:41
lkclyou should however still be able to use the wiki11:47
Veera[m]lkcl: bug: 251, what is the status?12:03
lkclVeera[m], hi. 1 sec12:06
lkclwe haven't heard from vivek in a while12:07
lkclVeera[m], i re-enabled authorized_keys on the TALOS-II workstation12:08
Veera[m]lkcl: I deleted the prv and pub key a month ago after  it was not working!12:09
Veera[m]lkcl: Have you received update on Bug: 65412:10
lkclVeera[m], then that stops you entirely from accessing the repositories12:13
lkclyes, i saw it just now12:13
lkcldon't destroy public/private keys without a really good reason, it is completely unnecessary to do that12:15
lkcland makes more work for me12:15
lkclnow i have to12:15
lkcl1) revoke your existing public key in the gitolite3 config12:15
lkcl2) revoke your existing public key on the TALOS-II server12:15
lkcl3) request that you send me a new one12:15
lkcl4) add the new one to the gitolite3 config12:16
lkcl5) scp the new one to the TALOS-II server12:16
Veera[m]lkcl: wait a minute12:17
lkclVeera[m], i have now revoked your access to gitolite3.12:17
lkclVeera[m], i have now revoked your access on TALOS-II12:17
Veera[m]lkcl: my ssh keys are intact12:17
lkclVeera[m], please send me a new ssh public key12:18
lkclyou said, Veera[m]> lkcl: I deleted the prv and pub key a month ago after  it was not working!12:18
Veera[m]i deleted them for TALOS-II12:18
lkclthere is only one, so i have revoked them12:18
Veera[m]In fact in this afternoon I uploded to git libreriscv12:18
lkclonly one ssh key was authorized, and that was the one net-lr@lily12:19
lkcl9pwN1OCVl01s8aZ2JF net-lr@lily12:19
Veera[m]Sorry. I had a separate one for TALOS in my directory.12:19
Veera[m]I did not remembered much for TALOS12:19
lkclthat key is a local key that has absolutely nothing to do with the key which is authorized to access the server12:20
lkclonly one was added and it has now been removed12:20
lkcli will now have to take action to revert that12:20
lkclthat action has now been taken.12:21
lkcli have now restored the gitolite3 access12:21
lkcli have now copied over the public key to /home/vklr/.ssh/authorized_keys12:21
Veera[m]Is not separate keys are to be generated for two different machines12:22
Veera[m]git pull is working for gitolite3 access12:23
lkclit's not necessary - you can if you like12:23
lkclgood, whew12:23
lkclnow that you have access with the "....9pwN1OCVl01s8aZ2JF net-lr@lily" one you can add as many other keys as you desire12:24
lkclit's entirely up to you12:24
lkclwowww that's one hell of a lot of work12:24
lkcli think we'll up the budget on that one.12:24
Veera[m]I can access the talos workstation12:26
Veera[m]just for check 922
lkclyou saw also, i sent you a useful trick to add to ~/.bashrc (locally)12:27
lkcluse a command "mosh" which will give you a persistent shell12:27
lkclso if you ever get disconnected you can carry on12:27
MANIKANDANMANIKANDAN: lkcl I apologies for the delayed response My mail id is, please add me to bugzilla and ikiwiki also. Thank you12:28
Veera[m]lkcl: what trick12:28
Veera[m]I have to see what mosh is?12:29
Veera[m]Can I use screen command12:29
lkclit's a remote shell that works extremely well in combination with screen12:29
lkclyes i installed screen on the server12:30
lkclMANIKANDAN, got it, not a problem, this is IRC, delays are inevitable :)12:30
lkclMANIKANDAN, added you on bugzilla12:31
MANIKANDANlkcl, Thank you I will check:]12:32
lkclMANIKANDAN, you should have just received an email from bugzilla@libre-soc.org12:32
MANIKANDANlkcl, Yeah got it just now12:33
lkclfor the wiki, to edit the front-end (via the website) you don't actually need a username/password.  or, you *should* just be able to create one, yourself.12:33
Veera[m]I am reading on mosh. Well it may better than screen + ssh12:33
lkclhowever it may be easier to get access via git.libre-soc.org12:33
lkclVeera[m], indeed.  actually it uses ssh underneath12:34
Veera[m]lkcl: Can I do debootstrap in TALOS and chroot12:34
lkclVeera[m], in theeeory... yes :)12:34
lkclyes, i remember now, i ran it a couple months back12:34
lkclMANIKANDAN, here;a=summary12:34
lkclif you'd like write access to that i need to first know if you're ok with our Charter,
lkclthen i can give you write access when you send me an ssh public key12:35
MANIKANDANlkcl, I can able to login bugzilla now. FYI the link shared in the mail seems broken12:36
MANIKANDANlkcl, Yeah i agree with the Charter, May I know how to share ssh public key12:40
MANIKANDANlkcl, Sorry the problem is with the ":" adjoined with the link. Without that bugzilla link working fine12:44
Las[m]Using an older version of Migen I still get "ERROR: Conflicting init values for signal 1'0 (\test_issuer.ti.core_core_cr_out [3] = 1'0 != 1'x)."...12:55
Las[m]It would be a great help if I could get pointers for how to debug this13:00
Las[m]e.g. what is `ti.core_core_cr_out`?13:00
lkclLas[m], here's the thing: you're literally the first other person - ever - to actually try to reproduce the build of ls180.13:09
lkcli had to do this entirely myself, with zero assistance from anyone else, under extreme time pressure13:09
Las[m]oh lol13:12
lkclyyeah. sigh13:12
Las[m]makes sense it's a PITA then13:12
Las[m]Glad I get to work on this though, Libre-SOC being libre isn't of much use if you can't patch the source code and build it yourself.13:12
lkclmany of the things that would normally be resolved by having a 2nd person, through the inter-communication, are just not there13:12
lkclit's sounding like a nmigen / yosys issue.13:13
Las[m]The hope is that, through Nix, building your own version of LiteX, for an FPGA or whatever, should be exactly one command that Just Works13:13
Las[m]Yeah maybe my nmigen and yosys are too new13:13
lkclcan you try nmigen commit d824795c2c7cb43dcbc8ed8fac6d309d713:14
lkclDate:   Mon Apr 12 10:48:20 2021 +010013:14
Las[m]what about nmigen-soc?13:14
lkclnmigen-soc is from and that hasn't been updated13:14
Las[m]Already using that commit13:15
lkclVeera[m], i increased you to EUR 500 for symbiflow13:15
lkclok let's check another one13:15
Veera[m]lkcl: Are you trying symbiflow build?13:15
Veera[m]Yeah I just read mail13:15
lkclVeera[m]: i have a version i managed to bash together (it's where the notes came from)13:16
lkclif you can create a script (i will move symbiflow_install to a .txt extension) i will try it out13:16
lkclLas[m], yosys commit a58571d0fe8971cb7d3a619a31b2c21be6d75bac13:16
lkcli am so under time pressure i can't do manual commands again13:17
Las[m]Thanks, I'll try that13:17
Veera[m]lkcl: I will create a dev-env-setup script soon. In first attempt it was little haphazard.13:18
Veera[m]I thought installing will be easily, but it turned out not13:18
lkclif it's a lot of work i'll increase the budget some more13:19
Veera[m]I have to start a issue with symbiflow devs. As conda packages do not give build details13:20
lkclyes, i know. it's pretty.... yeah.13:20
lkclit took me 2 days to work out13:20
lkclLas[m]: can you upload the issuer_verilog.v somewhere?13:21
Veera[m]So I have to get git clone origin and particular commit they used.13:21
lkclto make sure it's stable, yes, that sounds about right13:21
Veera[m]as I posted in bugzilla, latest commits of symbiflow-arch-defs does not works13:22
lkclkylel, ha, that looks blindingly obvious, doesn't it. nicely done13:23
lkclyyeah we really need stable (reproducible) builds13:23
lkclso a fixed commit is not only fine, it's actually kinda necessary13:24
Veera[m]lkcl: in conda litex-hub they are using vtr-optimized which is multi-threaded. But upstream vtr does not supports multithreaded.13:24
lkcli actually used vtr (upstream) and it worked fine13:26
Veera[m]vtr upstream works fine. But it takes lot of time.13:30
Veera[m]It uses only single cpu thread(vpr)13:30
lkclyeah to be honest, personally i'm fine with that!13:30
lkclotherwise my laptop also overheats13:30
Veera[m]googled but could not find anything related to vtr-optimized except in conda litex-hub pkgs13:31
Las[m]lkcl: I'm just using;a=blob;f=src/soc/simple/;h=8c0f8e1f5b8cc6a1a3d3e4f5947350e880c428e5;hb=75bdc1747f32a4fb6cf848ed8b5c68ef2f683f4c13:33
Las[m]I haven't changed the file13:33
lkcli mean, its output13:33
lkcl1 sec13:33
Las[m]Will upload now13:33
kylellkcl, baby steps and yeah fairly straight forward.13:34
lkclif you can think of a better way to deal with those arguments instructions, gen, insncode, i'm all ears13:38
lkclghostmansd, sorry about yesterday, i was right in the middle of something complex (which i'd broken), and i have memory-recall issues. hence the rather extensive reliance on the bugtracker13:41
kylellkcl, store in a class?13:42
lkclkylel, this works great! $ python3 simple/test/ nosvp64 shiftrot2 >& /tmp/f113:42
lkclthat runs those ExpectedState tests you did :)13:42
lkclkylel, what, my memory?13:42
lkclkylel, just moved run_sim_state into SimRunner13:44
lkclif you do HDLRunner i'll do SimRunner13:44
Veera[m]lkcl: I need to upload patch file or any other file needed in dev-env-setup scripts for symbiflow where should it be?13:46
ghostmansdlkcl: that's OK, I gonna sort it out today13:46
lkclghostmansd, :)13:46
Veera[m]lkcl: I know you describing ftp server hosted in libre-soc.org13:46
lkclVeera[m], hmmm, good question13:46
Veera[m]lkcl: is there any other way?13:46
lkclone option is to embed the text into the script13:46
lkcland extract it to /tmp for example13:47
lkclbut that's really awkward13:47
lkclthe other is to make a subdirectory of dev-env-setup13:47
Veera[m]big patches embedded in script may look bad13:47
lkcloh they're that big, ehn? dang13:47
lkclok then make a subdirectory, symbiflow13:47
lkclin dev-env-setup13:47
lkcland put them in that13:48
lkclthere's a #symbiflow channel here on libera btw13:48
Veera[m]are they responsive?13:49
lkcli have no idea13:49
Veera[m]no problem13:49
lkclevery community's different13:50
Veera[m]yeah I know. Just wanted to know you interacted beforehand13:51
lkcla brief statement that we were going to attempt to create some alternative repro scripts that don't use conda13:52
lkcland that we'd document it13:53
lkclwhich you've done :)13:53
lkclwhich is great13:53
lkcloh we have an icarus verilog install script already, right?13:53
Veera[m]yes we have iverilog script already.13:55
lkclok whew13:55
Veera[m]is there other way to reference it in a new script?13:56
lkclwe've never done that before13:57
Veera[m]the build instructions for iverilog are small only13:57
lkcli'm not sure if it's a good idea to do so or not13:57
lkclok duplicate them, but put a comment (in both) and, oh i know13:58
Veera[m]we can install yosys and vtr in separate directories. I have to try that out.13:58
lkclah yeah good idea13:58
lkclyou have to add to the $PATH for that to work13:58
Veera[m]Either PATH or separate variables for that exist13:59
lkclif it creates (and then uses) dynamic shared libraries14:00
lkclyou also have to add to either LD_LIBRARY_PATH14:00
lkclor to /etc/{somefile}.conf14:00
Veera[m]Why LD_LIBRARY_PATH?14:00
Veera[m]I think no shared libraries are used.14:01
lkclLD_LIBRARY_PATH is a standard POSIX env var for a list of locations, like $PATH, to search for dynamic libraries14:01
lkcllet me just check14:01
Veera[m]yes. I know14:01
lkcl$ ldd /usr/local/bin/iverilog14:01
lkcl (0x00007ffd6624d000)14:01
lkcl => /lib/x86_64-linux-gnu/ (0x00007f4732404000)14:01
lkcl        /lib64/ (0x00007f4732626000)14:01
lkclyep all good.14:01
lkclno need14:01
lkclthose are standard libraries14:02
Veera[m]symbiflow uses excutable binaries only no shared libraries14:02
lkclexcellent, whew14:02
lkcli mean: if you install yosys in a separate location, that *will* need to know where its shared libraries are14:03
lkclbut that's handled slightly differently / automatically14:03
lkclit uses a command "yosys-config" to find *out* where all the plugins / dynamic libraries are14:03
lkclso as long as the right "yosys-config" is in $PATH it's all good14:03
Veera[m]Usually the built programs configure to find shared libraries it builds. In the symbiflow yosys is installed to /usr/local/symbiflow and it working fine.14:05
Veera[m]yosys-config to find out where all the plugins. YES14:06
Veera[m]Have you got the Xilinx ARTY_100T board?14:06
lkclthe problem comes when the program *installs* dynamic libraries that it itself uses, rather than using (e.g.) debian-installed /usr/lib ones14:07
lkcli tested blinky lights 6 weeks ago, it worked great14:07
lkcl ldd /usr/local/bin/yosys14:07
lkcl (0x00007ffc3037c000)14:07
lkcl => /usr/lib/x86_64-linux-gnu/ (0x00007f147ad73000)14:07
lkclthose are all /usr/lib and /lib14:07
lkclso that's fine too.14:07
Veera[m] /etc/{somefile}.conf    we can use this if needed14:09
Veera[m]For symbiflow we need newer yosys which supports proc_memwr command and friends14:10
lkcldoes symbiflow do something like "$YOSYS" at all?14:11
lkclor "if $SYMBIFLOW_YOSYS"14:11
lkcllike you see in Makefiles a lot ($GCC, $HOST_CC and so on)14:12
Veera[m]The final scripts use PATH I think14:13
Veera[m]I have to check them out.14:13
Veera[m]Yesterday only I finished build and install without failure14:14
Veera[m]!!!Have you got the Xilinx ARTY_100T board?14:14
lkclyes i have14:15
Veera[m]very good14:15
Veera[m]Do we need litex support?14:16
lkclyes - but not as a dependency of symbiflow14:17
lkclwe need a "repro" system - Las[m] has a script for nix with all of the git commit checksums14:17
Veera[m]Guix is similar as nix pkg manager14:19
Veera[m]Guix was a cpu and memory hog14:20
Veera[m]I was/am a package manager for few programs for Guix.14:20
lkclVeera[m], nice14:21
lkclthere's a summer of nix, if you're interested to help out, talk with Las[m] and justinrestivo[m]14:22
lkcli don't know the exact situation but there *may* be NLnet EUR available14:22
lkclif you've already done symbiflow then helping check that this is still functional may be useful
lkcland maybe checking that the nix packages he's doing work on the TALOS-II workstation (non-x86)14:24
lkcljust a thought14:24
Veera[m]Ok. I will check.14:25
* lkcl afk14:25
Las[m]If you want to reproducibly build this stuff then yeah Nix is the answer14:27
Las[m]Veera: what are you trying to build?14:27
Veera[m]Guix used GNU guile language. Nix uses it's  own language nix.14:27
Las[m]If you've succeded, and it's related to Libre-SOC, can you write down the steps somewhere so I can Nixify it?14:27
Veera[m]Built symbiflow chain for Artix7/Artix_100t14:28
lkclLas[m], someone's already done symbiflow, it would be great to verify it's still operational and/or if necessary update it14:41
Veera[m]lkcl: have you checked both symbiflow-arch-defs and symbiflow-examples has litex demos. Or has support to use litex.14:41
Veera[m]lkcl: Las pkgs uses pre-built binaries to install symbiflow.14:43
lkclVeera[m], the developers of litex have been so problematic, and litex itself so fragile, i'm not that interested in spending time on it unless absolutely critically essential14:44
lkcli ran just the blinky-lights and it worked great, i considered that to be "success" enough14:44
Veera[m]lkcl: What I have done is to make those prebuilt binaries/scripts from source and use them as well.14:44
lkclVeera[m]: ahhh excellent14:44
lkclLas[m], ^14:45
lkclonce we have a symbiflow setup script, it can be tested *from* litex14:45
lkclwith litex --toolchain=symbiflow14:45
lkclso, the dependency is the other way round14:46
Veera[m]lkcl: ref only because today you updated Bug 654 with litex-vexriscv14:46
Veera[m]symbiflow-examples litex demo also uses something like this.14:48
lkclyes, i found a command which allows.. ahhh great14:52
lkcli wanted to make sure i had a record of the command " --toolchain=symbiflow"14:52
lkclit's great to hear the examples have it14:52
lkclahh --variant a7-100 as well, that's important14:57
lkclahh that's quite valuable -
Las[m]lkcl: My issuer_verilog.v:
Las[m]Spent some time trying to get IPFS working lol15:39
lkcldeep joy :)15:40
lkcli'm impressed it works... still downloading though... zzzz15:40
lkclLas[m], nmigen is supposed to be deterministic.  *at no time* should there be "uninitialised" values appearing in the output15:41
lkclhowever, i have a vague recollection of a discussion about this on the #nmigen channel15:42
lkclit *may* be the case that z- and x- value support was added to yosys15:43
lkclbut by using an earlier version of nmigen it's not syncing properly15:43
Las[m]I'm using an old version of Yosys now tool15:44
Las[m]But I'm not using the one from the lars files you gave me15:44
Las[m]i.e. `.9+3475 (git sha1 f61d62a7, clang 9.0.1-12 -fPIC -Os)`15:45
lkclok. is that ipfs version from the version of yosys you're using?15:45
Las[m]Yeah, it's my latest build.15:45
lkclok cool.15:45
lkcland same error?15:45
lkcl(from litex)?15:45
Las[m]The error hasn't changed from before, i.e. `1'0 != 1'x` or something like that15:46
lkclcan you try using the issuer_verilog.v that i uploaded?15:47
lkclthat will help triage where this lies.15:48
ghostmansd-pclkcl: there's no mentioning of changes other than bcd at
lkclyes, that seems about right15:48
ghostmansd-pcbut I recall we identified several instructions that must be changed15:48
ghostmansd-pcbecause as they stand they go outside of bounds bitwise15:49
ghostmansd-pcori, IIRC15:49
ghostmansd-pcand similar things...15:49
lkclyes. that's in a separate bugreport... 1sec15:49
ghostmansd-pcdo we have a way to search through irclogs?15:49
ghostmansd-pcI mean, not via checking each and every way :-)15:49
lkclhmmm no not yet15:50
ghostmansd-pchm, I missed it15:50
lkclwhitequark runs one that is searchable15:50
ghostmansd-pcah, OK, it's assigned to you15:50
Las[m]I'll try using your issuer_verilog yeah15:50
ghostmansd-pcdo you mind if I assign it to me?15:50
lkclno sure15:50
lkclLas[m]: ah ha!15:50
lkclsee how core_cr_out is 3-bit in the version i am using?15:51
lkclbut is 7 bit in the version you created?15:51
lkclthat means you have too new a version of soc (etc)15:51
lkcland/or you built without --no-svp6415:51
lkclthe ls180 core (the ASIC) is "straight" Power ISA v3.0B Scalar Fixed-Point15:52
Las[m]I have `--disable-svp64`15:52
lkclso core_cr_out should only be 3 bits wide15:52
Las[m]Thanks for noticing that15:52
ghostmansd-pclkcl, programmerjake:
Las[m]One thing I don't get is: what is the difference between issuer_verilog.v and libresoc.v?15:52
Las[m]In the Makefile you get libresoc.v from issuer_verilog.py15:52
Las[m]And I sent you the result of Is the libresoc.v here made in another way?15:53
lkclLas[m]: ahh a file rename, for convenience when copying over to soclayout :)15:53
ghostmansd-pcI assume this is the thing we wanna do, air?15:53
lkclthat's all15:53
Las[m]Ah, OK.15:53
lkclghostmansd-pc, it's programmerjake's mum's birthday party today, plus he's in the U.S. so it's.... mmm.... 7am?15:53
* lkcl ponders15:54
ghostmansd-pcah, sorry, totally forget about these timezones15:54
lkclLas[m]: what git revision did you use for soc (etc)15:54
lkclthe ls180 tag?15:54
ghostmansd-pcexcuses to Jacob :-)15:54
lkclghostmansd-pc, oooo
ghostmansd-pcnice stuff15:56
ghostmansd-pcit'd also be nice if logs could filter "user exited" noise15:56
ghostmansd-pc(totally unrelated problem, just recalled)15:56
lkclghostmansd-pc, yes, i have a script for that.15:57
lkclbut i haven't finished it.  i run it manually, once a week or so, at the moment15:57
Las[m]lkcl: I'm using 75bdc1747f32a4fb6cf848ed8b5c68ef2f683f4c15:57
ghostmansd-pccould it be applied to modify the contents of
Las[m]for soc.git15:57
ghostmansd-pcor you download a local copy and run script on it?15:57
lkclLas[m]: ah that's much too early15:58
Las[m]Unfortunately even with the prebuilt issuer_verilog.v, I get `ERROR: Module `test_issuer' referenced in module `versa_ecp5' in cell `test_issuer' does not have a port named 'jtag_wb__we'.`15:58
lkclyyeah that also sounds about right because you have to compile with different arguments for FPGA than from ASIC15:59
lkcland what i uploaded there was for ASIC15:59
lkclalthough... hang on...15:59
Las[m]What do I need to pass to issuer_verilog then?15:59
Las[m]I'm using the same one for both the FPGA and ASIC build...15:59
lkclyeah i've had that work successfully, here (same one)16:00
lkclproblem is, this is a major distraction, it takes absolutely ages to track these things down16:00
lkcland after the tape-out i "moved on" and haven't returned to either the FPGA or ASIC since16:02
lkclso unless using *exactly* what went into the ASIC / FPGA back then, we can pretty much guarantee 100% it won't work16:02
Las[m]wait, how do you test it then16:02
lkcli am running the core tests only at the moment16:02
lkclwhich is software-only, simulated-only, not involving litex at all in any way16:03
lkclwhich does *peripherals* (connected to the core), *not* anything else16:03
lkcllitex is a *peripheral*-generator (UART, I2C, etc. etc.)16:03
lkcland the focus of the past few months has been "core-only" i haven't returned to litex (at all) because we don't need litex to check the modifications to the *core*16:04
lkclthat can all be done via the nmigen simulations.16:05
Las[m]So basically, it might just be broken?16:05
lkcli can't do everything - keep litex up-to-date when it's not relevant to the current focus (adding SVP64 support)16:06
lkcli'll come *back* to it when it's time to try running on an FPGA16:06
lkclin the meantime it's safest to use versions of soc (etc.) that predate the latest stuff of the past few months16:07
Las[m]Thanks, I'll do that16:07
lkclis prooobably too early, but maybe not16:07
Las[m]Perhaps I can bisect it and see where it broke!16:07
lkclif you use something from around... i think... June/July, it should be good16:08
lkcldefinitely before the big split moving things to the new openpower-isa repo though16:08
Las[m]from which project was it that nextpnr and ecppack came?16:10
Las[m]nextpnr-ecp5 specifically16:10
lkcllooking through here16:10
lkclthis one looks like a good starting point;a=commit;h=449819b4ac953519db729c1c17abb131f0a0f32816:11
lkclLas[m], nextpnr-ecp5 we use this;a=blob;f=nextpnr-ecp5-install;hb=HEAD16:11
lkclit's not fixed to a particular commit though (oops)16:12
Las[m]Ah, so prjtrellis gives ecppack?16:12
lkcli have nooo idea :)16:12
* lkcl head spinning, so many context-switches right now16:12
lkclghostmansd-pc, a next high-priority task, if we may reasonably assume that XLEN=32 and XLEN=16 are the easier things to tackle first, is to move all "helper" routines into a class16:13
lkclwhich ISACaller then inherits from16:13
lkcland that's actually quite a big (but straightforward) task, again, one of those "hit it all at once doing only one thing" tasks16:14
lkclwhere decoder/pseudo/ needs to learn about the helper function names16:15
lkcland add a "self." in front of the function name16:15
ghostmansd-pcyou mean src/openpower/decoder/
lkclyes.  every function in there needs to move to a "class"16:15
ghostmansd-pcok, gotcha16:15
ghostmansd-pcdoes it have an issue?16:15
lkclwhich ISACaller then inherits from16:15
lkclno not yet, feel free to raise it16:15
ghostmansd-pcI mean bugzilla ticket16:15
lkclcf the irclog here
* lkcl thinks16:16
Las[m]I was actually wrong! Pinning Yosys and Migen to an old version fixed my problem. Now Yosys doesn't fail anymore! Now it's telling me nextpnr isn't available, which should be easy to fix :).16:16
lkclfrickin unbelievable.16:17
lkclthank god for that16:17
lkclthen it was the sync-up between nmigen and yosys16:17
lkclif we updated nmigen as well it would "probably" work16:17
lkclother things might also break. sigh16:17
Las[m]The great thing about Nix, is it's easy to test different versions of dependencies and revert them if they don't work, as I'm doing right now actually.16:18
Las[m]Does Libre-SOC have any CI?16:21
lkclLas[m], sigh, no. it's been on the TODO list for 18 months.16:21
lkclmost of which was delayed by me not being comfortable with the thought of storing auto-generated output on the server (which i pay for, personally)16:22
lkcland was finally resolved by a decision to run a mailing list *on* the CI server behind the VPN16:22
lkcl(it's jacob's personal machine)16:22
lkclthe idea being, if there is an error, that's all we care about, and can raise a bugreport about it manually.16:23
Las[m]So there is a CI machine?16:23
lkclif there's no error, we don't care16:23
lkclyes, but it's not active.16:23
Las[m]Setting up CI with Nix is trivial FYI16:23
Las[m]I got it built! I'll upload the svf file I got.16:29
lkclooooo cooool16:30
Veera[m]lkcl: can you set me a password for TALOS16:34
lkclVeera[m], no, i will add you to sudoers16:34
Veera[m]lkcl: using sudo asks one.16:34
lkclit should not ask for a password, now16:35
lkclkylel, not quite done :)16:35
ghostmansd-pclkcl: are there plans to support 128-bit?16:36
Veera[m]lkcl: ok16:36
lkclstill a couple more morphing steps to do16:36
ghostmansd-pcI have a vague impression there's, but I cannot get how it might fit16:36
lkclghostmansd-pc: there are about 1-2 instructions we may need, but they're part of the existing scalar ISA16:36
ghostmansd-pcI'm asking because, well, we'd have something else other than 63 (e.g. REGMAX-1)16:36
lkcli can't remember what they are16:36
lkclyes, the general plan is to justify XLEN as a proposal to the OpenPOWER ISA WG, *because* it is possible to set XLEN=128 for some future version of the spec16:37
lkcland also XLEN=32... in the *scalar* ISA, nothing to do with SVP64 at all (or for XLEN=128, either)16:38
ghostmansd-pcthis code RA <- (RS) & ([0]*48 || UI)[63-XLEN:63]16:38
lkclthe resources consumed by embedded implementations being FORCED to have 64-bit regfiles and datapaths, but never operating with anything other than MSR set to 32bit, is immense16:38
ghostmansd-pcit should also take 48 and 63 respectively then16:39
ghostmansd-pcnot in this revision I think, but in the future for sure16:39
lkcljacob wasn't aware of the possibility of XLEN=128 at the time he wrote that16:40
ghostmansd-pcGranted that we have this possibility now, what's the code to be used? I like the Jacob suggestion way more than if clause everywhere.16:41
lkclthere's about 5 separate and distinct requirements to satisfy here, most of them quite nebulous / strategic, all related to "how will IBM's engineers who have been the sole exclusive maintainers of this spec for 20+ years view these changes"16:41
lkclhell yes16:41
ghostmansd-pcBut for 128-bit it's not scalable, at least not as it stands16:41
lkclwhich is why i suggested XTRUNC16:41
ghostmansd-pcAha, got it. So basically we'll wrap all these with XTRUNC, which already contains the needed heuristics?16:42
lkcli like the names XLCASTU and XLCASTS16:42
lkclbecause we need both16:42
lkclone would call EXTS behind the scenes but that's an implementation detail16:43
ghostmansd-pcHm. I don't get what [0]*-8 is supposed to mean.16:44
lkclthat's definitely a bug16:44
lkclit's impossible16:44
ghostmansd-pcRA <- (RS) ^ XTRUNC([0]*(XLEN-16) || UI)16:44
lkcleeexactlyyyyy oh wait16:44
ghostmansd-pcGiven this pseudocode, this seems possible :-)16:45
lkclit should just be16:45
lkclRA <- (RS) ^ XCASTU(UI)16:45
lkclbecause XCASTU will perform *either* zero-extending (to XLEN) *or* it will perform truncation (when XLEN=8)16:46
lkclbased on the width of UI, which it will know about, because UI is a SelectableInt16:47
lkcland so has a width parameter16:47
lkclyou notice i said, "XCASTU" knows about XLEN?16:47
lkclhow can that be... *unless* XCASTU has access to "self.XLEN"?16:47
lkclwhich is whyyyyy all the helper routines need to move to a class16:48
lkclclass Helpers:16:48
lkcl     def XCASTU(self, ....):16:48
lkcl           return something(self.XLEN) ...16:48
lkcl    def EXTS(self, .....)16:48
lkcl           do_something_using_self.XLEN16:48
lkcletc. etc16:48
ghostmansd-pcOK, and for those which put UI in the middle, it'd be XCASTU(UI || [0]*16)?16:49
ghostmansd-pcOK, it becomes much more clear16:49
lkclLas[m], ack, just grabbing it16:49
ghostmansd-pcbut now it looks 684 is blocked :-)16:49
Las[m]Now to try using this...16:50
ghostmansd-pcI mean that we _have_ to move helpers into the class first16:50
lkclghostmansd-pc, yyep. dependent on... yes.16:50
lkcli sort-of kinda nebulously knew that, subconsciously16:50
lkclghostmansd-pc, so do raise the bugreport, i'll chip in when i see it and fill in some details16:51
* lkcl afk, need to get up and walk about16:51
Las[m]libresoc-litex fix:
ghostmansd-pcOK, I'm raising the bug report16:51
Las[m]programmerjake: Could you merge this too?16:51
* lkcl be interested to hear if that runs, Las[m] 16:51
Las[m]Yeah will definitely try, once I figure out how to use an FPGA!16:51
lkclLas[m], programmerjake is not awake yet, and it's his mum's birthday today16:51
lkclLas[m], also, i gave you write perms16:52
lkcloh - do update the comment as well16:52
lkcl1<<15 is no longer 0x800016:52
lkclerr... one of those might have been out-of-date, whoops16:53
* lkcl _now_ afk :)16:53
ghostmansd-pcok, ping when you're back :-)16:53
Las[m]That line was made in one commit though, so you must either have written 12, or you had problems with 15 and set it to 12 temporarily16:55
lkclghostmansd-pc, got it18:48
ghostmansd-pcbasic redirection class implemented, tests are in progress19:10
ghostmansd-pccurrently class only has `xlen` on init (I suppose it's not its property, though), and its methods simply call global scope stuff19:11
ghostmansd-pcalso parser has a list of such "helpers" which should be translated into the "self.XXX" call19:11
ghostmansd-pcand, well, I also inherit from this class in pywriter (IIRC class ISA)19:12
ghostmansd-pclet's see how it goes19:12
ghostmansd-pclkcl: could you, please, talk with Maciej, so that he's aware of this task and its importance?19:14
lkclha, funny, you noticed i had a couple of functions that already get redirected to "self.xxxx"20:02
lkclneat trick!20:03
lkclah - please don't use "types".  i absolutely cannot stand them.20:03
lkclif you absolutely must have them, put them into a separate .pyi file, and commit them in the corresponding location20:04
lkcltypes sounded like such a great idea but in reality they do absolutely nothing useful and severely hinder Liskov Substitution Principle20:04
lkcli'd suggest simply have ISACaller inherit from ISACallerHelper20:06
* lkcl going to try it anyway, see what happens20:06
lkcloh whoops20:08
lkclxlen is not rebased against the right master branch20:08
ghostmansdYes, and, also, there is a worse problem20:16
ghostmansdI'm struggling how to solve that one20:16
ghostmansdself.__module__ only works as long as we're in __main__20:16
lkclno wait20:17
ghostmansdOr, well, at least the trick worked when I tried it on simpler script20:17
lkclthere's a way to get it.20:17
ghostmansdBut you liked it, right?20:17
ghostmansdI really wanted to avoid all this code duplication20:17
ghostmansdHaving a method for each function20:17
lkclit's a good temporary hack20:18
lkclultimately each function will need to move into ISACallerHelpers20:18
ghostmansdHm. Let me check with __name__20:18
lkclbut, actually, it can be done on-demand20:18
ghostmansdBut, for now, I'd like to do it after changes in parser, and then convert on demand20:18
ghostmansdYou're reading my mind again :-(20:19
ghostmansdBecause, well, not all depend on XLEN (actually most of them don't)20:19
lkclcan you please rebase xlen against latest master?20:19
ghostmansdYes, sure20:19
cesarlkcl: "python ~/src/soc/src/soc/simple/test/ nosvp64 ldst" is failing for me.20:20
lkcli want to try a simulation against it20:20
lkclif it works, pffh20:21
lkclcesar, 1 sec let me check20:21
lkclah, i'm just rebuilding fixedarith and fixedshift20:21
lkclwhich whoops20:22
lkcl  File "/home/lkcl/src/libresoc/openpower-isa/src/openpower/decoder/isa/", line 374, in op_extswsli20:22
lkcl    r = self.ROTL64(self.EXTS64(RS[XLEN // 2:XLEN - 1 + 1]), n)20:22
lkclAttributeError: 'ISA' object has no attribute 'ROTL64'20:22
* lkcl switching back to master branch20:22
lkclbe with you in a sec, cesar20:22
lkclrebuilding fixedarith almost done20:23
lkclok running now20:23
lkclcesar, yep, they're all borked, aren't they20:24
lkclactually, not all20:25
lkclyes all :)20:26
ghostmansdlkcl: I think I know what's the issue, let me check it...20:29
ghostmansdI switched to running test_caller now, test_issuer takes too much time for such a simple issue20:30
lkclghostmansd, yehyeh20:30
lkclwe've cut the time down by adding command-like options20:30
ghostmansdI already use nosvp6420:31
lkclnosvp64 {insertpipelinename}20:31
ghostmansdAre there others I should know?20:31
ghostmansdAny docs on this?20:31
lkclnosvp64 {insert list of pipelinenames}20:31
lkclsee test_issuer.py20:31
ghostmansdOr the code is the best doc, lol?20:31
ghostmansdI knew that in advance l20:31
lkcltoo much going on20:31
lkclcesar, something today broke it, i'm binary-searching now20:32
lkclcesar, kylel: commit f164672e4e20:34
lkclldst is broken by that one20:34
* lkcl investigating20:34
lkclkylel: +        #yield from setup_tst_memory(l0, self.test.mem)20:38
lkclyou commented that out20:38
lkclall good20:39
* lkcl rerunning all the ldst unit tests20:40
lkclcesar, git pull, should be good20:41
lkclghostmansd, ahhh hang on...20:43
ghostmansdI know20:44
lkclISACallerHelper is imported in things written by pywriter20:44
lkclbut not used20:44
ghostmansdI must use name exactly for this class20:44
lkclbest to just import it at ISACaller20:44
lkclonce, in caller.py20:44
ghostmansdISACallerHelper.__module__ does the trick20:44
lkcli will do the inheritance in ISACaller20:45
ghostmansdBecause otherwise it takes the module for inherited class20:45
ghostmansdWhich, on second thought, makes perfect sense20:45
ghostmansdBut not on the first, lol20:45
cesarlkcl: Confirmed fixed. Yay!20:46
lkclghostmansd, pushed to xlen branch20:46
lkcldon't do a force-push20:46
lkclghostmansd, confirmed, that works20:49
lkclcesar, excellent20:49
ghostmansdI did, but with your commit :-)20:49
lkclghostmansd :)20:49
lkcldid you commit the getattr?20:49
lkclanswer yes20:50
ghostmansdYes :-)20:50
ghostmansdRunning tests20:50
ghostmansdI wanna finish it today20:50
lkclhave to re-run pywriter sigh20:50
ghostmansdMe too20:51
lkcli can take care of cherrypicking20:51
ghostmansdIf that works, lol20:51
ghostmansdYou for sure saw I had these routines as set20:51
ghostmansdQuite ugly20:51
ghostmansdBut at least more obvious than inspect20:51
lkcla code-comment would be a good idea20:52
ghostmansdFunny that I did it before your comment :-)20:52
lkcl:)20:52 works20:52
ghostmansdBecause otherwise I'd have considered using inspect20:52
ghostmansdYes, that one I checked20:53
lkclbut i only converted fixedshift and fixedarith20:53
ghostmansdLooking forward to test_issuer20:53
ghostmansdI only check test_add20:53
lkcldo add a comment on this one20:53
lkcl    def __getattr__(self, attr):20:53
lkcl        return getattr(sys.modules[ISACallerHelper.__module__], attr)20:53
ghostmansdOk, once I prove it really works everywhere :-)20:53
lkcl"turns global function into class member, a bit better than using inspect"20:53
lkclsomething like that :)20:53
lkcli'm going to run the whole lot (entire pywriter)20:54
lkclwhich takes a while20:54
ghostmansd-pcpython3 src/openpower/decoder/pseudo/ && cd ../soc/ && python3 src/soc/simple/test/ nosvp6420:54
ghostmansd-pcthat's what I do20:54
lkclyou can use noall to skip overwriting it20:54
lkclpywriter noall fixedarith20:55
lkclwill *only* compile fixedarith20:55
lkclvery useful for saving time20:55
lkclmust really do without the All thing20:55
ghostmansd-pcthat I usually do when I do some quick checks20:55
ghostmansd-pce.g. test_caller.py20:55
ghostmansd-pcbut now I'm running test_issuer on talos20:55
ghostmansd-pcso I want to recompile this all20:55
lkclwe're damn lucky in this case, that the change is, by coincidence, compatible with the old version20:56
ghostmansd-pcit's already done, the tests are running20:56
ghostmansd-pcwell, all files must be regenerated20:56
ghostmansd-pcbecause all .py files have now self.blah20:56
ghostmansd-pcinstead of blah20:56
lkclbut because of the introspection trick20:56
ghostmansd-pcah, yes20:57
lkclif you didn't run pywriter *it still worked*20:57
ghostmansd-pcit costed a little blood20:57
lkclokaaay off we go20:57
ghostmansd-pcway less than I thought it would20:57
ghostmansd-pcI have a feeling it will work :-)20:57
lkcli'll run the other test_caller*.py whilst is going20:58
ghostmansd-pcstill running, but I see a potential, lol20:58
lkcl:)20:58 good20:59 good20:59 good21:00
ghostmansd-pcissuer's still running...21:00
lkclblast. overwrote the output log file21:00
lkcldamnit21:00 shiftrot2 good21:01 good21:02 good21:04 good21:05 good21:05 good21:05
lkcli'm going to call this one ok :)21:06
ghostmansd-pclet's wait for issuer21:08
ghostmansd-pcstill running21:08
ghostmansd-pcbut from the code looks OK21:08
ghostmansd-pcif yes, I'll drop type annotation before comitting it21:08
lkcltoo late already picked and pushed :)21:09
ghostmansd-pcok, will continue tomorrow21:09
ghostmansd-pcplease check this
lkclwilldo. i'll add him to it21:10
ghostmansd-pc"Please read: A Personal Appeal from (X) Founder (Y)"21:10
ghostmansd-pcthat's from wikipedia funding21:11
lkcloh, NLnet: they take 2 weeks but if it's been that long do ping them21:11
lkcloh god21:11
lkcllike, "emotional blackmail is going to help"21:11
* lkcl mmmmmmmeeeeemes21:12
ghostmansd-pchm, I see some load-store failures21:12
ghostmansd-pcshoud've updated repo, amirite?21:12
ghostmansd-pcgranted that ldst discussion above21:13
ghostmansd-pc9 failures, all come from ldst21:13
ghostmansd-pceverything else is fine21:13
ghostmansd-pclooks like OK, no need to revert :-)21:13
lkclyep i have no ldst failures here21:14
lkclall good21:14
ghostmansd-pcI have to add 712 into the list of "DONE" items, but also tomorrow21:16
ghostmansd-pcactually it's way simpler than I described in the first comment21:16
ghostmansd-pckinda proud of this hack21:16
ghostmansd-pc(even though it's still a hack)21:17
lkclyehyeh no, i love it.21:17
lkclno need, no need for speeeeed21:17
ghostmansd-pcno need for speed, only fast and furious, lol21:18
lkcli love those films.21:18
lkclso ridiculous they're great21:18
ghostmansd-pcI liked the game21:18
ghostmansd-pcmost wanted was good one21:18
ghostmansd-pcdropping the donut on police... that's insane21:19
ghostmansd-pcok see ya tomorrow, let me know if I need to drop a letter to nlnet21:19
ghostmansd-pcperhaps Maciej should also be CCed21:19
ghostmansd-pcI have no idea if he was luckier21:19
lkclyes good idea21:20
lkclcc me21:20
ghostmansd-pcok, but what address should I use?21:20
ghostmansd-pcsame ones as the ones where I sent the requests?21:20
ghostmansd-pcor is there some representative?21:21 and 2010-10P@nlnet.nl21:21 2019-10P@nlnet.nl21:21
ghostmansd-pcthose were e-mails I used21:21 and 2019-10P@nlnet.nl21:21
ghostmansd-pcaha, OK, will do it tomorrow21:21
lkcldon't bug the except with actual RFPs21:21
* lkcl salutes21:22
kylellkcl, been debating what to do about the parameter list for run_test()21:22
kylelin regards to getting it into a nice loop for all states21:23
kylelkwargs with a dict?21:24
kylelleave as separate calls?21:25
kylelpad hdlrun with unused arguments? (pretend I didn't say that)21:27
lkclkylel, to be honest i don't think it even matters22:48
lkclas in: all runners are completely transparently independent of each other22:49
lkcland, thanks to the State API, comparing one against the other is like, pffh, who cares22:49
lkcl(except for the names)22:50
lkclbut even there, the names (for debug purposes) come from the XXXState class22:50

Generated by 2.17.1 by Marius Gedminas - find it at!