Wednesday, 2022-04-20

klysmy apologies for missing out, I have a job and it demands most of my schedule.  perhaps sometime you'll get a hold of me.05:30
programmerjakenp, jobs are important05:31
klysalso for future reference, it only pages me if my nick appears on the left.05:32
klysprogrammerjake, how is progress?  at what stage is the project today?05:32
programmerjakestill WIP...I'm currently working on finally getting gitlab-ci working for us05:33
programmerjakeluke and I are also making progress on defining instructions for accelerating big-integer arithmetic05:34
klyswell okay then, I guess things are changing pretty fast though, so you might not be able to test new stuff like loading the kernel in verilator with travis-ci05:35
programmerjakeno, we didn't try that (and probably won't use travis-ci), but iirc luke and tim are making progress on booting linux on a fpga05:37
klysis there a hangup?05:38
programmerjakeyeah, ddr3 has some issues, I'm not the one working on it, but iirc one of the clock pins was misconfigured and also we need a separate clock domain for the ddr3 interface since the cpu core can't run at a high enough clock frequency to start the ddr3 reliably05:39
programmerjakeso they've been working on adding a clock-domain-crossing wishbone bus adaptor so the ddr3 can run at 100Mhz which should be fast enough to work05:40
klyswell I gather 127-8 bits integer arithmetic is needed for proper long-point math for kazan05:41
klysbe looking forward to reading about your register set and instructions05:42
programmerjakekazan actually doesn't really use integers or floats bigger than 64-bit ... the bigint instructions are so things like rsa that need to deal with 2048-bit integers run quickly05:42
klysah, I guess kazan is still 100% on hold then05:43
programmerjakeyeah, pretty much05:43
klyswell good night programmerjake, was nice to hear from you again!05:45
programmerjakeif you're interested you can check out this giant thread:
programmerjakegn, you too!05:45
programmerjakelkcl, if you made the v0.2 tag in nmigen, it was deleted by being made a mirror of since the github repo doesn't have the tag07:11
programmerjaketoshywoshy: since you are a member of the nmigen1 org on github, can you make a v0.2 tag at commit 1025b98c279a5889e58bc27e7f183928dbbd173507:17
programmerjakewithout that tag, installs of nmigen get versions based on 0.1 and things that depend on nmigen will install 0.2 from pypi instead since the version number is greater. with the tag, it gets 0.307:18
*** kylel1 is now known as kylel09:03
ghostmansdIt took a fricking eternity, but now I have the code I wanted09:34
ghostmansdGiven this declaration: `class RM(metaclass=FieldsMeta, **_SVP64RMFields(0)): pass'09:35
ghostmansd`print(tuple(RM))' gives you...09:35
ghostmansd((<RM.SPR: 0>, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)), (<RM.MMODE: 1>, (23,)), (<RM.MASK: 2>, (21, 22, 23)), (<RM.ELWIDTH: 3>, (22, 23)), (<RM.EWSRC: 4>, (22, 23)), (<RM.SUBVL: 5>, (22, 23)), (<RM.EXTRA: 6>, (15, 16, 17, 18, 19, 20, 21, 22, 23)), (<RM.MODE: 7>, (19, 20, 21, 22, 23)), (<RM.EXTRA2_0: 8>, (22, 23)), (<RM.EXTRA2_1: 9>, (22, 23)), (<RM.E09:35
ghostmansdand this...09:39
ghostmansdfor line in RM.c_decl(): print(line)09:39
ghostmansdgives a C shiny enum09:40
ghostmansdI'm going to extend it so that it generates the whole code like here:
ghostmansdof course split into the relevant .h and .c09:40
ghostmansdreally, this took way longer than I wanted, but it looks really cool09:41
ghostmansdit took about 20 commits, I worked until 4 AM, but it deserved the efforts :-)09:42
ghostmansdwill push once the whole generation is ready09:42 my working till 1am yesterday and then staying up till 4am since I had forgotten to eat all day09:43
ghostmansdyeah, one of the things I like and simultaneously hate in this work is that you can completely lost track of time :-D09:45
lkclprogrammerjake, it's not as straightforward as that.  the repos have been damaged by git history rewrites and i need to *very carefully* make absolutely sure that the tags are on the correct objects10:26
lkclby manually checking the contents of the commits to ensure they're the correct commits10:27
programmerjakei checked that...i used the original v0.2 tag from when i cloned it years ago and looked for that commit on the master branch10:29
lkcli now have to make absolutely certain that all the old tags do not get pushed up as well10:29
lkclok that's done. v0.2 only10:30
programmerjakethx10:30's still apparently mirroring what's on github...10:31
lkclit'll take 4 hours10:31
programmerjakeah, yay:
lkclghostmansd, that looks great, really clear.10:33
ghostmansdOK, several hours, and here's yet another update...13:29
ghostmansdConsidering this code...
ghostmansdwe have this:
ghostmansdSo far we only need to generate get and set functions, and we're ready to proceed further13:31
ghostmansdI've pushed 21 commit to master13:33
*** ghostmansd <ghostmansd!> has left #libre-soc13:33
*** wybpip[m] <wybpip[m]!~wybpipmat@2001:470:69fc:105::1:f452> has left #libre-soc13:49
lkclso ridiculously simple...14:37
lkclghostmansd[m], i see no reason why that shouldn't be further extended (recursively) to allow the individual bit-fields to be named/auto-generated as well17:13
lkcllike SVP64MODE bits SVP64MODE.REDUCE and so on17:14
lkclwhich would make the table a master (canonical) spec17:15
ghostmansd[m]lkcl, we actually already kinda have it for Constant class at sv_binutils17:56
ghostmansd[m]As with all stuff, I decided not to add the code generation at basic classes, but rather re-use the basic classes in sv_binutils17:57
ghostmansd[m]BTW did you notice the stuff like Byte[...] or Byte[32] to create new types on-the-fly?17:58
tplatenI was able to run ecppack manually, then flashed the orangecrab, but I did not get any output from the uart as expected.19:07
tplatenI used a version of external_core_top with the default behaviour.19:09
tplatenFrom which address does ls2 boot? I'll first try the simulator19:16
ghostmansdlkcl, sorry, I couldn't resist anymore19:18
ghostmansdThis `self.spr = self' feels hacky, that's true19:20
ghostmansdBut, other than that, it seems way more clean19:20
ghostmansdAnd, with the new form, we're able to do yet another update...19:21
ghostmansdThese Prefix and RM classes are the ones which generate the C code in sv_binutils.py19:22
ghostmansdThe logic is, the fields layout and the size in bits are properties of type, not of instance19:23
ghostmansdAnd, regardless of what _value_ the instance has, the logic how it maps its fields depend on the _type_, not the _value_19:24
ghostmansdI'd like to push these changes, if nobody objects19:24
lkcltplaten: it depends on what you've got in for "fw_addr"19:38
lkclthe default at the moment is 0xff00_0000 (this should really be in a config file, as should everything, sigh)19:38
lkclyou then have to modify the Makefile for hello_world (or coldboot) to set the BOOT_INIT_ADDR equal to that exact same start point19:39
lkclyou must *also* remember to use the correct soc Makefile target19:39
lkclwhat you've done by doing "make external_core_top" is create an external_core_top.v with a start address of *0x0000_0000*19:40
lkclif you wanted a start address of 0xff00_0000 then you should have used "make external_core_top_bram"19:40
lkclcheck the soc Makefile19:40
lkclghostmansd, no problem here.  just don't use "type" as a parameter keyword because it's reserved.  use "typ" or some other word19:42
ghostmansd`type' isn't reserved :-)19:42
ghostmansdeven if it's shadowed, you have `builtins.type'19:43
ghostmansdthat said, I'm open to better names; I 've been thinking of `cls'19:43
ghostmansdor, alternatively, `base;19:43
lkcltype is a function in python19:44
lkclit therefore ends up being highlighted in syntax-highlighting19:45
lkclwhich gets really irritating19:45
lkclcls or base is great19:45
lkcljust not "type"19:45
ghostmansdbad highlighter :-D19:46
* lkcl *cackles*19:47
ghostmansdmine understands the case when `type' is an argument, and highlights it differently19:47
lkcldown boy19:47
ghostmansdanyway, I'm OK with rename19:47
lkclohno! south africa is running out of marmite!
ghostmansdDo you see what happens Larry when they ban the booze?19:52
lkclso sad :)19:53
ghostmansdI bet soon many countries will have problems worse than lack of places to put the food19:55
ghostmansdI mean, if we have something to eat, it's not that difficult to give up some pot where you put the food19:56
ghostmansdBut even if you have plethora of pots, it won't help that much if you have no food at all19:57
lkclyou heard the Hungarian "Stone Soup" story?19:57
ghostmansdAnd, I guess, this might be the general direction where the world goes19:57
ghostmansdNope, please tell me19:57
lkclahh it is a great folk-tale19:58
ghostmansdI think I heard it19:58
lkcla wandering traveller comes to a village late at night, and is invited to warm himself by the fire19:58
ghostmansdThough in our folklore it's called ax porridge19:58
lkclhe offers to make everyone a fantastic meal.19:58
lkclso he asks them to bring a pot, full of water.19:59
lkclenraptured, he puts some stones into the pot as it is boiling, and declares, "there! let me taste it, does anyone have a spoon?"19:59
lkclthey hand him a spoon and he tastes it, saying, "mmm, it is delicious! but it would be juuust improved with a little salt. does anyone have any?"20:00
lkclthey bring salt...20:00
lkclyou get the idea: one by one he tricks them into providing more and more ingredients :)20:00
lkclimagine it being told by an 80-year-old great-grandma, with a glint in her eye as she says "it would juuust be a liitttle better if only..."20:01
ghostmansdyeah, I guess that's kinda vagrant plot :-)20:03
lkclyou must have very sophisticated porridge - i used to :)  nutmeg cinnamon raisins jam syrup, yes, all at once20:04
ghostmansdbut hell yeah, perfectly fits the modern20:04
lkclthe carbohydrate level got a leeetle high so i had to stop20:04
ghostmansdnot bad, I must admit20:04
ghostmansdI prefer apples with cinnamon and syrup20:05
ghostmansdBTW we have one special dish here20:05
ghostmansdI was surprized to see it has its own entry in English wiki20:05
lkclthat sounds frickin awesome. woow20:06
lkclin scotland what you would do is make a huge amount in one go, then put grease-proof paper into a kitchen draw, and pour it in.20:07
lkclthen, every day, you can slice off a piece and either eat it like that or put it in more milk/water and heat it again.20:07
ghostmansdmmm, nice20:08
lkclvery practical, and i think it's where oatcakes (etc.) come from20:08
ghostmansdoatcakes are quite popular in Russia as well20:11
ghostmansdespecially with raisins, nuts or chocolate20:11
sadoon[m]Guys I finally have an actual job and ironically that means I get to commit more time to projects I'm involved in like libre-soc because things are more stable now, but I have a teeny tiny issue20:40
lkclsadoon[m], lol20:41
sadoon[m]I'm working as a hardware technician kinda guy for this college and it has a lot to do with sitting around doing nothing unless problems arise20:41
sadoon[m]I wanna use that time to work the gentoo thing20:41
sadoon[m]But I don't have access to my talos at work20:42
lkclah fun20:42
sadoon[m]Unless I move it there that is20:42
lkclhm, there is another way20:42
lkcli can set you up with a VPN-bouncer20:42
lkclor, yes, you can use reverse-ssh-tunneling20:42
sadoon[m]I really don't wanna expose my sshd to the internet though :(20:43
programmerjakei use ssh over tor to access my home servers when i'm not home20:43
sadoon[m]I suppose renting is an option too no?20:43
lkclwhat you do is: ssh into a common server, with some "port-back-tunneling"20:43
lkclssh -R or ssh -L i forget which it is20:43
sadoon[m]Wasn't there a service that offered openpower servers?20:43
lkclyou'd not be exposing sshd to the internet20:43
sadoon[m]That would actually be more helpful because I can work anywhere literally20:43
lkclyou'd be using a *secure* ssh connection to a [presumably secure] server20:43
sadoon[m]lkcl: Bold presumption ;)20:44
lkclemail me an ssh public key and i can add an account for you on talos1.libre-soc.org20:44
lkclyou can then20:44
sadoon[m]Oh right20:44
sadoon[m]I forgot libre-soc had a server! Hmm20:44
lkclssh -R 22:localhost:2222 from *your* talos workstation20:44
sadoon[m]What's the specs20:44
lkclssh from work into the same then20:45
sadoon[m]And does it run libvirt?20:45
lkclssh -p2222 localhost on the *remote* server and that will get tunnelled over to your own workstation via the "ssh -R"20:45
lkclit may be ssh -L, i never remember which it is20:45
sadoon[m]All I need is libvirt, having libvirt over ssh would be the best thing ever20:45
sadoon[m]lkcl: One sec I'll try that now20:46
sadoon[m]Ok so first the ssh public key20:46
lkcli'd prefer you didn't install more than necessary software on the talos1 workstation because it had to be booted with debian/testing20:46
programmerjakesimilar to what i have:
lkclssh tunnelling can be done easily with command-line so you can ssh-to-a-command-which-is-also-ssh-to-another-system20:47
sadoon[m]debian/testing.. that's worrysome :P20:47
sadoon[m]as long as libvirt works I don't need anything else20:47
sadoon[m]Everything I do is inside a vm20:47
lkclit was literally the only way to get an OS installed20:47
sadoon[m]to make both the packages clean and the host system unaffected20:48
sadoon[m]does debian bullseye not work?20:48
lkclthe system is a remote one20:48
lkclphysical access is flat-out impossible20:48
lkcli had to *upload* a netboot ISO image over the internet from my local machine over a 3G/WIFI mobile broadband connection20:49
sadoon[m]had you asked me like a year prior I could have migrated it from testing to stable easily20:49
lkclinto the memory of the system20:49
sadoon[m]I suppose you have a chance to migrate next year20:49
lkcli would have said no because it is already effectively "in production"20:49
lkcli ask anyone installing stuff to do so *exclusively* in chroots20:50
sadoon[m]oh no it's basically just changing your repos over to the stable ones20:50
sadoon[m]then you won't have to do anything at all20:50
programmerjakelkcl, iirc debian made a new stable version since you installed the talos server's os...seems like a good idea to try installing it since if it works we'll have much less problems caused by trying to install new packages and ending up with unwanted upgrades20:50
lkclyeh, i know: i don't want it touched. it's a live system, it was extremely awkward to set up, and i don't want it broken20:50
lkclplain, simple, no20:51
sadoon[m]I know that "no"20:51
sadoon[m]and I feel you xD20:51
lkclit took me 3 days to get it to boot20:51
lkcland if it's ever screwed up, it puts everyone behind as they lose access to a resource20:51
programmerjakesadoon, if you use ssh over tor you don't need any 3rd servers20:51
lkcltobias relies on it, Veera relies on it, i rely on it.20:51
sadoon[m]Ok so I have to run a small errand to a hardware store but I'm thinking of moving my talos to work since I spend 6 hours a day (maybe more soon) there, it just seems more productive that way20:52
sadoon[m]And later when I have enough cash I can shell out for a full talos instead of a lite one, or buy a blackbird and a 20-core to install on this talos lite and move my 8 core to the blackbird. either way I really want a secondary openpower but they're too damn expensive20:53
sadoon[m]I'll find a way to do this project in a timely manner I promise lkcl :D20:53
sadoon[m]Or God forbid the PowerMac G5 will start churning out debian packages20:54
lkclsadoon, well you could always remote-ssh into the sponsored server we have.21:25
lkclit's a handful.21:25
lkclcreate a chroot, off you go21:25
lkclmarkos, saw you tried joining jitsi :)22:03
lkcllxo toshywoshy octavius meeting22:04
markoslkcl, my bluetooth headset doesn't want to configure as a headset but just as plain headphones :D22:04
markosI can hear you but you can't hear me22:05
markosI'll figure this out, gimme a couple of minutes22:05
lkclyou're not listed in participants22:07
sadoon[m]<lkcl> "sadoon, well you could always..." <- I thought of it and aside of being a remote server that might be annoying to type on given how much latency I'd have, I'd also need at least 8 cores and 64gb of RAM22:12
sadoon[m]And that's for the VM22:12
sadoon[m]Wouldn't leave much more resources for you guys22:12
lkclsadoon[m], when i said "it's a monster" i meant, "it's a MONSTER" :)23:11
lkclit has 24 cores, 4-way threaded23:11
lkcland 128 GB RAM23:11
lkclso nooo problem there23:12

Generated by 2.17.1 by Marius Gedminas - find it at!