Tuesday, 2022-05-10

excited-mango[m]Hi00:02
programmerjakehi00:15
purple-mangoHi!02:00
programmerjakehi02:00
ghostmansdlkcl, speaking of copy&paste10:25
ghostmansdhttps://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/sv/trans/svp64.py#l109810:25
ghostmansdI suggest to make the stuff recursive10:25
ghostmansdbecause, frankly, we had a series of commits and this just gets dirtier10:26
ghostmansdor, well, rather not recursive, but at least wrap it in routine which takes insn and fields10:27
ghostmansdbut rather recursive, that is, reconstruct the insn after emitting the prefix and then call translate_one again10:28
ghostmansdalso, this bit: https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/sv/trans/svp64.py#l26710:30
ghostmansdis outdated as well, or, rather, is copy & paste error; cf. remap here: https://libre-soc.org/openpower/sv/remap/10:31
ghostmansdso, lkcl, if you don't object, I'll refactor this stuff a bit, OK?10:38
ghostmansdbut binutils first10:38
lkclghostmansd, be very very careful and make absolutely sure it matches with fields.txt10:41
lkclbear in mind that the unit tests actually work10:42
lkclit took me about an hour to realise yesterday that the ordering "fields[n] << 31-NN" is perfectly fine on e.g. setvl10:42
lkcland it was just the comments10:42
lkclright.10:43
lkclthat page - https://libre-soc.org/openpower/sv/remap/ - is for the *SPRs*10:44
lkclit is *NOT* for the instruction format10:44
lkclthe arguments to the svremap instruction do **NOT** repeat **NOT** have anything to do with the ordering of the fields that the svremap instruction places those arguments into the Special Purpose Register named REMAP10:45
lkclhere is the link between the two:10:46
lkclhttps://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isa/simplev.mdwn;h=8a21f038075e94668fcb344cff1260db8cc1162b;hb=HEAD#l6410:46
ghostmansdfields.txt has the same10:46
lkcllet me take a look10:46
ghostmansdeven if it hadn't...10:46
programmerjakelkcl, if you don't have a sufficient dose of maps from sv remap, you can get some more from xkcd maps: https://xkcd.com/2617/10:46
lkclSVRM form10:46
ghostmansdwell, two mo1 args seem to be an error anyway :-)10:47
ghostmansd|0     |6     |11  |13   |15   |17   |19   |21  |22   |26     |31 |10:47
ghostmansd   | PO   | SVme |mi0 | mi1 | mi2 | mo0 | mo1 |pst |///  | XO    | / |10:47
lkclghostmansd, yes, comment cut/paste10:47
lkcli know the unit tests work so am not expecting there to be any changes10:47
lkclprogrammerjake, cool, that has to go on the page :)10:47
lkclalthough i am reminded of people trying to drive through fields to get onto a motorway due to errors...10:48
programmerjakeall i can think of are the probably-untrue stories I've heard of driving off cliffs because google maps thought that was a road10:49
programmerjakeor into lakes or similar10:49
lkcli mean it's common sense that if the satnav says "drive for 500 miles into the middle of death valley" that you should maybe think about that?10:50
lkclghostmansd, updated10:50
lkcl 267             insn |= fields[6] << (31-21)  # pst        , bit 2110:50
programmerjakewell...i've driven through death valley before...10:51
lkclcool!10:51
programmerjakemore specifically my parents were driving and i was probably reading a book...that was like 15yr ago10:51
programmerjakelkcl, was wondering what you thought of moving obviously unused .py files in ieee754fpu into an unused folder like in soc...e.g. files that have an import error?10:55
ghostmansdlkcl, thumbs up!10:55
lkclghostmansd, also added cut/paste the NNN-Form so that linking the fields to the bits is easier10:55
lkclyes really everything there in svp64.py to construct these instructions should be auto-generated from using DecodeFields10:57
lkclbut it's like... mmm.... there's not that many of them, you know?10:57
lkclhttps://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=e4142b9e970ae21639ed5a8884d193f57ffc463a10:57
programmerjakeevery new bitmanip/bigint instruction we add has to go in svp64.py, since binutils doesn't support them and we'd rather not write our test programs in binary10:59
programmerjakedoesn't support them yet*10:59
ghostmansdfuck, binutils do indeed stick to 256 operands11:05
ghostmansdint fx_pcrel_adjust : 8;11:05
ghostmansdthe operand index is then being re-used, unfortunately11:05
ghostmansdluckily they had an assert which checks operand size and I hit it and saw the comment11:06
purple-mangoHey, I'm very interested in developing with Libre-SoC. I love the objective of creating truly secure and transparent hardware so ordinary people can truly trust their computers. I have a bunch of ideas about achieving that objective. I have a bunch of time on my hands, so I'd like to learn more about contributing11:07
programmerjakeghostmansd: reminds me of the nightmare of trying to get llvm to compile ir generated by my program, if the ir is incorrect then llvm just behaves weirdly/crashes unless you happen to have a debug build, where it asserts11:09
programmerjakepurple-mango: welcome!11:10
ghostmansdprogrammerjake, yeah, one of the moments you know that many asserts are not that bad11:11
lkclpurple-mango, cool!11:12
ghostmansdhad they written the code differently, by the way, they could even raise this crap statically11:13
programmerjakesince it's 3am here, i'm going to go to sleep. gn all!11:13
lkclprogrammerjake, ok :)11:13
ghostmansdprogrammerjake, good night!11:14
lkclpurple-mango, love to hear more. the general idea is to do as much automated as possible, apply software engineering techniques to hardware11:14
lkclcompilers, code-generators, machine-readable file-formats, etc11:14
lkclwe're funded by NLnet and NGI POINTER: are you European or based in Europe by any chance?11:15
programmerjakelkcl, can you post your response to my question about moving unused files in ieee754fpu on the mailing list? thx!11:15
lkclprogrammerjake, when i see it yes!11:15
programmerjakehttps://libre-soc.org/irclog/%23libre-soc.2022-05-10.log.html#t2022-05-10T10:55:0711:16
purple-mangoI also have some questions to start. How come Libre-SoC uses power instead of RISC-V? And does the crypto router asic include an open source ethernet PHY? And is there any disadvantage to using the matrix brdige to connect to this IRC channel?11:16
purple-mangoAlso I'm in the US11:17
ghostmansdint opindex = fixP->fx_pcrel_adjust & 0xff;11:17
lkclprogrammerjake, got it willdo11:17
ghostmansdany idea why they do it if they have `int fx_pcrel_adjust : 8;`?11:17
ghostmansdI mean, what's the point of masking it for the first place?11:18
lkclpurple-mango, that's a long story, about RISC-V11:18
lkclghostmansd, sigh, probably legacy or just... because?11:18
programmerjakelkcl: thx!11:18
lkclthe cryptorouter will use opencores ethmac unless we find something better11:18
programmerjakegn11:18
purple-mangoAnd the idea of applying software engineering techniques to hardware design is really fascinating to me11:19
ghostmansdthis crap drives me crazy, I cannot even re-use their fine machinery because they covered it with artificial limitations11:19
purple-mangoprogrammerjake, gn11:19
lkclhttps://github.com/xfguo/ethmac11:19
lkcland if you use the matrix bridge at least you get a continuous presence.  i achieve it by simply leaving my laptop on 100%11:20
lkclnot the best method :)11:20
lkclthe best *technical* answer as to why we're not using RISC-V is here: https://news.ycombinator.com/item?id=2445931411:21
purple-mangoIf the crypto router asic is using ethmac, would it need to interface with a proprietary external ethernet PHY, or does ethmac include both the MAC and the PHY layer?11:22
lkclfor me as a software engineer it's blindingly-obvious that you use a standard programming language known by 1/3 of the world's programmers to perform for-loops and use recursion in a *good* language to create HDL11:22
lkclhttps://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/power_decoder.py;hb=HEAD11:22
lkclPHYs are Mixed Analog-Digital11:23
lkclit would be insane to try to tackle that.11:23
lkclrequiring an additional 12 months and a minimum additional funding USD 250,00011:23
lkcljust to try to create a mixed Analog-Digital ethernet PHY.11:23
lkclthere's only so much we can tackle at once, here11:24
lkclpower_decoder.py reads machine-readable files from two locations:11:24
lkcl1) CSV files containing the instruction fields11:25
lkcl   https://git.libre-soc.org/?p=openpower-isa.git;a=tree;f=openpower/isatables;hb=HEAD11:25
lkcl2) Power ISA "Forms" containing field members and their bit-positions11:25
lkcl   https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isatables/fields.text;hb=HEAD11:25
excited-mango[m]lkcl: Why would it cost so much money?11:27
purple-mangoAlso I'm just gonna use matrix as excited-mango. I like the client-side persistence11:27
lkclexcited-mango[m], 130 nm MPW Shuttle runs are USD 50,00011:29
lkclalthough now you can use ChipIgnite from efabless that's down to "only" USD 8,00011:29
lkcltypical engineers with mixed Analog-Digital are USD 125 per hour *and worth it*11:29
lkcland you can appreciate that 5-6 months of "engineering" time is not unreasonable.11:30
lkcl5-6 months is 1,200 hours appx11:30
lkcl1,200 times USD 125/hr is USD 150,000 just in engineering time11:30
lkclthen they will, if they are a Contractor, need to license proprietary tools including a decent SPICE Simulator11:31
lkclfor individuals, Cadence (etc.) is USD 100,00011:31
lkclmost discussions in VLSI involve amounts where they drop three zeros off the front, routinely, as an industry-standard practice for communication and discussion.11:32
lkclwhich is quite a hilarious contrast to Open Source FPGA developers discussing buying $100 FPGA boards.11:33
excited-mango[m]Okay that's a fair point. On the other hand, doesn't using a proprietary PHY undermine the security through transparency provided by the crypto router asic?11:34
excited-mango[m]Because you still have a blackbox device in your network stack11:34
lkclwe can't do everything11:34
lkclone thing at a time11:34
lkclat least, it's reasonable to assume that not every PHY in the world has been compromised11:35
lkclbut we cannot tie our efforts down to "there's no Libre/Open PHY therefore we should not even bother"11:36
lkclthat way, nobody will ever begin because nobody ever begun11:36
lkclcreating mixed Analog-Digital ASICs is extremely hard11:37
excited-mango[m]Ah makes sense. What if it was FPGA based instead of ASIC based?11:37
lkclthe variable-voltages and non-uniform frequencies of the Analog side hit the Digital side very hard11:37
lkcldo you mean, an FPGA that contains a built-in Ethernet PHY?11:37
lkclor do you mean, "what if the crypto-router design was FPGA-based?" (it is anyway, we have to, in order to test it)11:38
excited-mango[m]Nah, I mean a FPGA with a libre, soft-core ethernet PHY, that would interface with the crypto router asic that runs something like ethmac11:40
lkclyes, that's a step we have to do along the way11:40
lkclotherwise there's no point doing an ASIC, if the design is not FPGA-proven11:41
lkclor, you can, but it's hellishly risky11:41
lkcli'm currently fighting nextpnr-xilinx to get it to work with the Arty-A7-100t11:41
excited-mango[m]I found a bunch of projects on GitHub that involve a softcore phy. They all have their limitations, but their existence makes me think a general-purpose, soft core ethernet PHY is an attainable goal:11:49
excited-mango[m]https://github.com/enjoy-digital/liteeth/tree/master/liteeth/phy11:49
excited-mango[m]https://github.com/alexforencich/verilog-ethernet11:49
excited-mango[m]https://github.com/corundum/corundum (datacenter-speed ethernet MAC using the verilog-ethernet PHY)11:49
excited-mango[m]<lkcl> "or, you can, but it's hellishly..." <- Yah that makes sense11:49
lkclthe litex core developer has been so rude and so unethcial that we're not going to use it. and the development style and practices in litex are problematic for technical and maintenance reasons11:51
lkcl(wildcard imports, deep cascading OO multiple inheritance with use of identical class names *on top* of wildcard imports)11:51
lkclalex forencich's work uses AXI4-Streams and would need conversion to Wishbone11:52
excited-mango[m]What do you mean unethical?11:52
excited-mango[m]lkcl: Yikes11:52
lkclplus, further investigation shows that its internal design is hard-tied to Xilinx FPGAs11:52
lkcland critically relies on the Xilinx "DMA" Block which is a hard-macro provided by Xilinx FPGAs11:53
lkclconsequently for an ASIC we would have to implement our own DMA Engine11:53
lkcldefinition of an ethical act: "to increase truth, awareness, love, or creativity, for one or more people (including yourself), *without* decreasing *any* of those same four underlying qualities for anyone"11:54
lkclin simple terms: ethical means "always do good, never do harm"11:54
lkcltherefore, operating unethically inherently, put simply, "they did harm"11:55
lkclthe project's been running for just over 4 years, now: we've had to put up with a lot of crap11:56
* lkcl phone call brb11:56
excited-mango[m]I meant what unethical stuff did the person do, not what does unethical mean?11:58
lkclexcited-mango[m], because they monitor these channels, and then use any discussion to continue to do damage to my reputation, i'd very much prefer not to discuss it12:05
excited-mango[m]lkcl: Oh yikes. We don't have to talk about it12:06
excited-mango[m]Also, I may be wrong, but I think we're both looking at the Ethernet PHY from a different perspective. It seems like you're aiming for it to be an ASIC. And while I'd also like for it to be an ASIC, I feel like that's out if my skill level for a little while, so I'd be fine developing and sticking with a 1Gb/s FPGA based Ethernet PHY until I feel I have enough of a grasp on ASICs. Do you have any specific reasons for avoiding12:06
excited-mango[m]putting FPGAs into the product that uses the crypto router asic?12:06
lkclaiming for an ASIC, but we *have* to do an FPGA version along the way12:09
lkclthat's absolutely critical12:10
lkclconsquently i have a Digilent Arty-A7-100t12:10
lkcland it happens to have a 10/100 Eth PHY on it that would be exactly compatible with the opencores eth_mac HDL12:10
excited-mango[m]Yeah that makes sense12:11
excited-mango[m]Btw there's been significant progress on getting the XC7K{325T/420T/480T}s working with project xray over the last 3 weeks12:13
lkclniice12:21
lkclall it takes is someone to properly fund the provision of the boards containing those FPGAs, and their engineering time12:24
excited-mango[m]There's already a $100 XC7K325T SoM by QMTech on Aliexpress12:25
ghostmansdof course this damned `int fx_pcrel_adjust : 8` is in common code, f*ck13:46
ghostmansdI see no other option but duplicate chunks of code, sorry, this stuff is not a candidate for the code re-use13:47
ghostmansdThis likely leads to the fact that I have to parse this in a different way13:50
ghostmansdlkcl, I've just realized I have no idea how to create the account on bugzilla :-)14:01
ghostmansdhm, also, it looks like port 922 doesn't work on my side at git.libre-soc.org14:22
ghostmansdhttps://pastebin.com/chAA8F1S14:23
ghostmansdAt the same time, 80 and 443 ports work14:23
lkclghostmansd, doh :)14:31
lkclghostmansd, you *must not* attempt to connect via a standard username14:33
lkclthe *only* username permitted is: gitolite314:33
ghostmansd`ssh -v -p922 gitolite3@46.235.227.77`14:33
ghostmansddoh14:33
ghostmansd`ssh -v -p922 gitolite3@46.235.227.77`14:34
ghostmansd`ssh -v -p922 gitolite3@git.libre-soc.org`14:34
ghostmansdthat's what I try to do14:34
lkclattempts to use anything other than gitolite3 will result in an instant fail2ban cutoff14:34
lkclyou attempted a login with an unauthorised username at 14:18 and your IP address is now blacklisted.14:35
lkcli will search for it and clear it.14:35
ghostmansdhm... could that be a legacy 3mdeb account?14:35
ghostmansdthank you!14:36
lkclno, it's that you didn't follow the instructions14:37
lkclyou attempted "ssh ghostmansd@git.libre-soc.org"14:37
lkclor14:37
lkclfrom a local login named ghostmansd14:37
lkclattempted just "ssh git.libre-soc.org"14:37
lkclor14:37
ghostmansdhm, perhaps that could happen when I checked why git clone doesn't work14:38
lkclin ~/.ssh/config you have an override setting which...14:38
lkclyes almost certainly14:38
lkcli've removed the fail2ban ban, now14:38
ghostmansdyeah it works now14:39
lkclexcelllent14:39
ghostmansdthank you Luke!14:39
ghostmansdsorry to bother :-(14:39
lkclno problem14:39
lkclinternet access is flakey as hell at the moment14:39
ghostmansdI'm in the middle of switching the accounts and SSH keys, that's why I might have some issues14:40
ghostmansdI recalled that other old laptop still has the old SSH key, not "ghostmansd" one14:40
ghostmansd...aaaaaand here the troubles started14:40
ghostmansdwhen you have the time, could you, please, also help me with creating a "ghostmansd" user at bugzilla?14:41
ghostmansdor, rather, switching the old one14:41
ghostmansd(if this is possible at all)14:41
lkclghostmansd, you can just update the email address in the settings.14:43
lkclno need for me to get involved in doing that, it's standard bugzilla account user-management14:44
lkclunless you get really stuck14:44
ghostmansd[m]lkcl, thanks for tip, it worked!15:15
lkclawesome15:16
ghostmansd[m]Cool, I didn't know it has option to change email15:17
ghostmansd[m]But, frankly, I don't even remember how I got this account :-D15:17
openpowerbot[mattermost] <lkcl> ghostmansd[m], i created it because spammers started creating random accounts and random bugreports15:49
openpowerbot[mattermost] <lkcl> so i had to disable account-creation and do it manually. sigh15:50
octaviusIs the chat in 10 min?21:52
programmerjakemeeting in 8min21:52
octaviusThanks programmerjake21:53
lkclexcited-mango[m], we have a weekly social meeting every tuesday, starts in 5m if you're interested. on jitsi21:56
lkclnon-restricted URL, so we don't publish it, programmerjake can you PM excited-mango[m] with it?21:57
programmerjakesent22:06

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