klys | my 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 |
---|---|---|
programmerjake | np, jobs are important | 05:31 |
klys | also for future reference, it only pages me if my nick appears on the left. | 05:32 |
klys | programmerjake, how is progress? at what stage is the project today? | 05:32 |
programmerjake | still WIP...I'm currently working on finally getting gitlab-ci working for us | 05:33 |
programmerjake | luke and I are also making progress on defining instructions for accelerating big-integer arithmetic | 05:34 |
klys | well 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-ci | 05:35 |
programmerjake | no, 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 fpga | 05:37 |
klys | is there a hangup? | 05:38 |
programmerjake | yeah, 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 reliably | 05:39 |
programmerjake | so 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 work | 05:40 |
klys | well I gather 127-8 bits integer arithmetic is needed for proper long-point math for kazan | 05:41 |
klys | be looking forward to reading about your register set and instructions | 05:42 |
programmerjake | kazan 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 quickly | 05:42 |
klys | ah, I guess kazan is still 100% on hold then | 05:43 |
programmerjake | yeah, pretty much | 05:43 |
klys | well good night programmerjake, was nice to hear from you again! | 05:45 |
programmerjake | if you're interested you can check out this giant thread: https://lists.libre-soc.org/pipermail/libre-soc-dev/2022-April/004761.html | 05:45 |
programmerjake | gn, you too! | 05:45 |
klys | =) | 05:46 |
programmerjake | lkcl, if you made the v0.2 tag in nmigen, it was deleted by gitlab.com/nmigen/nmigen being made a mirror of github.com/nmigen1/nmigen since the github repo doesn't have the tag | 07:11 |
programmerjake | toshywoshy: since you are a member of the nmigen1 org on github, can you make a v0.2 tag at commit 1025b98c279a5889e58bc27e7f183928dbbd1735 | 07:17 |
programmerjake | without 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.3 | 07:18 |
programmerjake | ooh: https://list.libresilicon.com/pipermail/libresilicon-developers/2022-April/001475.html | 08:22 |
*** kylel1 is now known as kylel | 09:03 | |
ghostmansd | It took a fricking eternity, but now I have the code I wanted | 09:34 |
ghostmansd | Given 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.E | 09:35 |
programmerjake | yay! | 09:38 |
ghostmansd | and this... | 09:39 |
ghostmansd | for line in RM.c_decl(): print(line) | 09:39 |
ghostmansd | gives a C shiny enum | 09:40 |
ghostmansd | I'm going to extend it so that it generates the whole code like here: https://pastebin.com/fkxZa6q9 | 09:40 |
ghostmansd | of course split into the relevant .h and .c | 09:40 |
ghostmansd | really, this took way longer than I wanted, but it looks really cool | 09:41 |
ghostmansd | it took about 20 commits, I worked until 4 AM, but it deserved the efforts :-) | 09:42 |
ghostmansd | will push once the whole generation is ready | 09:42 |
programmerjake | ooh...like my working till 1am yesterday and then staying up till 4am since I had forgotten to eat all day | 09:43 |
ghostmansd | yeah, one of the things I like and simultaneously hate in this work is that you can completely lost track of time :-D | 09:45 |
programmerjake | yeah... | 09:47 |
lkcl | programmerjake, 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 objects | 10:26 |
lkcl | by manually checking the contents of the commits to ensure they're the correct commits | 10:27 |
programmerjake | i checked that...i used the original v0.2 tag from when i cloned it years ago and looked for that commit on the master branch | 10:29 |
lkcl | i now have to make absolutely certain that all the old tags do not get pushed up as well | 10:29 |
lkcl | ok that's done. v0.2 only | 10:30 |
programmerjake | thx | 10:30 |
programmerjake | though...it's still apparently mirroring what's on github... | 10:31 |
lkcl | it'll take 4 hours | 10:31 |
programmerjake | ah, yay: https://github.com/nmigen1/nmigen/releases/tag/v0.2 | 10:32 |
lkcl | ghostmansd, that looks great, really clear. | 10:33 |
ghostmansd | OK, several hours, and here's yet another update... | 13:29 |
ghostmansd | Considering this code... https://pastebin.com/iBXfQuKh | 13:29 |
ghostmansd | we have this: https://pastebin.com/BhGYeEZ1 | 13:30 |
ghostmansd | So far we only need to generate get and set functions, and we're ready to proceed further | 13:31 |
ghostmansd | I've pushed 21 commit to master | 13:33 |
*** ghostmansd <ghostmansd!~kvirc@broadband-188-32-220-29.ip.moscow.rt.ru> has left #libre-soc | 13:33 | |
*** wybpip[m] <wybpip[m]!~wybpipmat@2001:470:69fc:105::1:f452> has left #libre-soc | 13:49 | |
lkcl | so ridiculously simple... | 14:37 |
lkcl | ghostmansd[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 well | 17:13 |
lkcl | like SVP64MODE bits SVP64MODE.REDUCE and so on | 17:14 |
lkcl | which would make the table a master (canonical) spec | 17:15 |
lkcl | muhahah | 17:15 |
lkcl | https://youtu.be/d-903H31EZ8?t=75 | 17:16 |
ghostmansd[m] | lkcl, we actually already kinda have it for Constant class at sv_binutils | 17: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_binutils | 17:57 |
ghostmansd[m] | BTW did you notice the stuff like Byte[...] or Byte[32] to create new types on-the-fly? | 17:58 |
tplaten | I was able to run ecppack manually, then flashed the orangecrab, but I did not get any output from the uart as expected. | 19:07 |
tplaten | I used a version of external_core_top with the default behaviour. | 19:09 |
tplaten | From which address does ls2 boot? I'll first try the simulator | 19:16 |
ghostmansd | lkcl, sorry, I couldn't resist anymore | 19:18 |
ghostmansd | before: https://pastebin.com/5g9AR1X2 | 19:19 |
ghostmansd | after: https://pastebin.com/nxSGbXs9 | 19:19 |
ghostmansd | This `self.spr = self' feels hacky, that's true | 19:20 |
ghostmansd | But, other than that, it seems way more clean | 19:20 |
ghostmansd | And, with the new form, we're able to do yet another update... | 19:21 |
ghostmansd | before: https://pastebin.com/HYZfW6q1 | 19:21 |
ghostmansd | after: https://pastebin.com/kmDbqCwS | 19:22 |
ghostmansd | These Prefix and RM classes are the ones which generate the C code in sv_binutils.py | 19:22 |
ghostmansd | The logic is, the fields layout and the size in bits are properties of type, not of instance | 19:23 |
ghostmansd | And, regardless of what _value_ the instance has, the logic how it maps its fields depend on the _type_, not the _value_ | 19:24 |
ghostmansd | I'd like to push these changes, if nobody objects | 19:24 |
lkcl | tplaten: it depends on what you've got in ls2.py for "fw_addr" | 19:38 |
lkcl | the default at the moment is 0xff00_0000 (this should really be in a config file, as should everything, sigh) | 19:38 |
lkcl | you then have to modify the Makefile for hello_world (or coldboot) to set the BOOT_INIT_ADDR equal to that exact same start point | 19:39 |
lkcl | BUT | 19:39 |
lkcl | you must *also* remember to use the correct soc Makefile target | 19:39 |
lkcl | what 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 |
lkcl | NOT | 19:40 |
lkcl | 0xff00_0000 | 19:40 |
lkcl | if you wanted a start address of 0xff00_0000 then you should have used "make external_core_top_bram" | 19:40 |
lkcl | check the soc Makefile | 19:40 |
lkcl | ghostmansd, no problem here. just don't use "type" as a parameter keyword because it's reserved. use "typ" or some other word | 19:42 |
ghostmansd | `type' isn't reserved :-) | 19:42 |
ghostmansd | even if it's shadowed, you have `builtins.type' | 19:43 |
ghostmansd | that said, I'm open to better names; I 've been thinking of `cls' | 19:43 |
ghostmansd | or, alternatively, `base; | 19:43 |
ghostmansd | `base' | 19:43 |
lkcl | type is a function in python | 19:44 |
lkcl | it therefore ends up being highlighted in syntax-highlighting | 19:45 |
lkcl | which gets really irritating | 19:45 |
lkcl | https://www.geeksforgeeks.org/python-type-function/ | 19:45 |
lkcl | cls or base is great | 19:45 |
lkcl | just not "type" | 19:45 |
ghostmansd | bad highlighter :-D | 19:46 |
* lkcl *cackles* | 19:47 | |
ghostmansd | mine understands the case when `type' is an argument, and highlights it differently | 19:47 |
lkcl | down boy | 19:47 |
ghostmansd | anyway, I'm OK with rename | 19:47 |
lkcl | ohno! south africa is running out of marmite! https://news.slashdot.org/story/22/04/20/1651246/south-africa-is-running-out-of-marmite#comments | 19:48 |
ghostmansd | Do you see what happens Larry when they ban the booze? | 19:52 |
lkcl | so sad :) | 19:53 |
ghostmansd | I bet soon many countries will have problems worse than lack of places to put the food | 19:55 |
ghostmansd | I mean, if we have something to eat, it's not that difficult to give up some pot where you put the food | 19:56 |
lkcl | duh | 19:56 |
ghostmansd | But even if you have plethora of pots, it won't help that much if you have no food at all | 19:57 |
lkcl | you heard the Hungarian "Stone Soup" story? | 19:57 |
ghostmansd | And, I guess, this might be the general direction where the world goes | 19:57 |
ghostmansd | Nope, please tell me | 19:57 |
lkcl | ahh it is a great folk-tale | 19:58 |
ghostmansd | Aaah | 19:58 |
ghostmansd | I think I heard it | 19:58 |
lkcl | a wandering traveller comes to a village late at night, and is invited to warm himself by the fire | 19:58 |
ghostmansd | Though in our folklore it's called ax porridge | 19:58 |
lkcl | he offers to make everyone a fantastic meal. | 19:58 |
lkcl | so he asks them to bring a pot, full of water. | 19:59 |
lkcl | enraptured, 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 |
lkcl | they 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 |
lkcl | they bring salt... | 20:00 |
lkcl | you get the idea: one by one he tricks them into providing more and more ingredients :) | 20:00 |
lkcl | imagine 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 |
ghostmansd | yeah, I guess that's kinda vagrant plot :-) | 20:03 |
lkcl | you must have very sophisticated porridge - i used to :) nutmeg cinnamon raisins jam syrup, yes, all at once | 20:04 |
ghostmansd | but hell yeah, perfectly fits the modern | 20:04 |
lkcl | the carbohydrate level got a leeetle high so i had to stop | 20:04 |
ghostmansd | not bad, I must admit | 20:04 |
ghostmansd | I prefer apples with cinnamon and syrup | 20:05 |
lkcl | ooo | 20:05 |
ghostmansd | BTW we have one special dish here | 20:05 |
ghostmansd | https://en.wikipedia.org/wiki/Guriev_porridge | 20:05 |
ghostmansd | I was surprized to see it has its own entry in English wiki | 20:05 |
lkcl | that sounds frickin awesome. woow | 20:06 |
lkcl | in 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 |
lkcl | then, 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 |
ghostmansd | mmm, nice | 20:08 |
lkcl | very practical, and i think it's where oatcakes (etc.) come from | 20:08 |
ghostmansd | oatcakes are quite popular in Russia as well | 20:11 |
ghostmansd | especially with raisins, nuts or chocolate | 20: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 issue | 20:40 |
lkcl | sadoon[m], lol | 20: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 arise | 20:41 |
sadoon[m] | I wanna use that time to work the gentoo thing | 20:41 |
sadoon[m] | But I don't have access to my talos at work | 20:42 |
lkcl | ah fun | 20:42 |
sadoon[m] | Unless I move it there that is | 20:42 |
lkcl | hm, there is another way | 20:42 |
sadoon[m] | Renting? | 20:42 |
lkcl | i can set you up with a VPN-bouncer | 20:42 |
programmerjake | ssh? | 20:42 |
lkcl | or, yes, you can use reverse-ssh-tunneling | 20:42 |
sadoon[m] | I really don't wanna expose my sshd to the internet though :( | 20:43 |
programmerjake | i use ssh over tor to access my home servers when i'm not home | 20:43 |
sadoon[m] | I suppose renting is an option too no? | 20:43 |
lkcl | what you do is: ssh into a common server, with some "port-back-tunneling" | 20:43 |
lkcl | ssh -R or ssh -L i forget which it is | 20:43 |
sadoon[m] | Wasn't there a service that offered openpower servers? | 20:43 |
lkcl | you'd not be exposing sshd to the internet | 20:43 |
sadoon[m] | That would actually be more helpful because I can work anywhere literally | 20:43 |
lkcl | you'd be using a *secure* ssh connection to a [presumably secure] server | 20:43 |
sadoon[m] | lkcl: Bold presumption ;) | 20:44 |
lkcl | email me an ssh public key and i can add an account for you on talos1.libre-soc.org | 20:44 |
lkcl | you can then | 20:44 |
sadoon[m] | Oh right | 20:44 |
sadoon[m] | I forgot libre-soc had a server! Hmm | 20:44 |
lkcl | ssh -R 22:localhost:2222 talos1.libre-soc.org from *your* talos workstation | 20:44 |
sadoon[m] | What's the specs | 20:44 |
lkcl | ssh from work into the same then | 20:45 |
sadoon[m] | And does it run libvirt? | 20:45 |
lkcl | ssh -p2222 localhost on the *remote* server and that will get tunnelled over to your own workstation via the "ssh -R" | 20:45 |
lkcl | it may be ssh -L, i never remember which it is | 20:45 |
sadoon[m] | All I need is libvirt, having libvirt over ssh would be the best thing ever | 20:45 |
sadoon[m] | lkcl: One sec I'll try that now | 20:46 |
sadoon[m] | Ok so first the ssh public key | 20:46 |
lkcl | i'd prefer you didn't install more than necessary software on the talos1 workstation because it had to be booted with debian/testing | 20:46 |
programmerjake | similar to what i have: https://medium.com/@tzhenghao/how-to-ssh-over-tor-onion-service-c6d06194147 | 20:47 |
lkcl | ssh tunnelling can be done easily with command-line so you can ssh-to-a-command-which-is-also-ssh-to-another-system | 20:47 |
sadoon[m] | debian/testing.. that's worrysome :P | 20:47 |
sadoon[m] | as long as libvirt works I don't need anything else | 20:47 |
sadoon[m] | Everything I do is inside a vm | 20:47 |
lkcl | it was literally the only way to get an OS installed | 20:47 |
sadoon[m] | to make both the packages clean and the host system unaffected | 20:48 |
sadoon[m] | does debian bullseye not work? | 20:48 |
lkcl | the system is a remote one | 20:48 |
lkcl | physical access is flat-out impossible | 20:48 |
lkcl | i had to *upload* a netboot ISO image over the internet from my local machine over a 3G/WIFI mobile broadband connection | 20:49 |
sadoon[m] | had you asked me like a year prior I could have migrated it from testing to stable easily | 20:49 |
lkcl | into the memory of the system | 20:49 |
sadoon[m] | I suppose you have a chance to migrate next year | 20:49 |
lkcl | i would have said no because it is already effectively "in production" | 20:49 |
lkcl | i ask anyone installing stuff to do so *exclusively* in chroots | 20:50 |
sadoon[m] | oh no it's basically just changing your repos over to the stable ones | 20:50 |
sadoon[m] | then you won't have to do anything at all | 20:50 |
programmerjake | lkcl, 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 upgrades | 20:50 |
lkcl | yeh, 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 broken | 20:50 |
lkcl | no. | 20:50 |
lkcl | plain, simple, no | 20:51 |
sadoon[m] | :P | 20:51 |
sadoon[m] | I know that "no" | 20:51 |
sadoon[m] | and I feel you xD | 20:51 |
lkcl | it took me 3 days to get it to boot | 20:51 |
lkcl | and if it's ever screwed up, it puts everyone behind as they lose access to a resource | 20:51 |
programmerjake | sadoon, if you use ssh over tor you don't need any 3rd servers | 20:51 |
lkcl | tobias 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 way | 20: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 expensive | 20:53 |
sadoon[m] | I'll find a way to do this project in a timely manner I promise lkcl :D | 20:53 |
sadoon[m] | Or God forbid the PowerMac G5 will start churning out debian packages | 20:54 |
lkcl | :) | 21:24 |
lkcl | sadoon, well you could always remote-ssh into the sponsored server we have. | 21:25 |
lkcl | it's a handful. | 21:25 |
lkcl | create a chroot, off you go | 21:25 |
lkcl | markos, saw you tried joining jitsi :) | 22:03 |
lkcl | lxo toshywoshy octavius meeting | 22:04 |
markos | lkcl, my bluetooth headset doesn't want to configure as a headset but just as plain headphones :D | 22:04 |
markos | I can hear you but you can't hear me | 22:05 |
markos | I'll figure this out, gimme a couple of minutes | 22:05 |
lkcl | you're not listed in participants | 22: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 RAM | 22:12 |
sadoon[m] | And that's for the VM | 22:12 |
sadoon[m] | Wouldn't leave much more resources for you guys | 22:12 |
lkcl | sadoon[m], when i said "it's a monster" i meant, "it's a MONSTER" :) | 23:11 |
lkcl | it has 24 cores, 4-way threaded | 23:11 |
lkcl | and 128 GB RAM | 23:11 |
lkcl | so nooo problem there | 23:12 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!