lkcl | Ben: https://libre-soc.org/irclog/%23libre-soc.2021-09-22.log.html#t2021-09-22T17:00:00 | 00:00 |
---|---|---|
lkcl | whoops supposed to be on the Microwatt channel... | 00:00 |
lkcl | kylel, nice! | 17:33 |
lkcl | openpower/decoder/isa/test_issuer.py can be renamed.... i'll do that | 17:33 |
lkcl | the interesting one now will be to actually use the shift_rot_cases.py *in* TestIssuer | 17:36 |
lkcl | i'll try that | 17:36 |
programmerjake | lkcl, what do you think of the new format for budget-sync csvs? | 17:42 |
lkcl | i haven't had a chance to look, am in the middle of sorting the test api | 17:43 |
lkcl | gimme a sec :) | 17:44 |
programmerjake | k | 17:44 |
programmerjake | if your happy please close https://bugs.libre-soc.org/show_bug.cgi?id=631 | 17:45 |
lkcl | willdo | 17:45 |
lkcl | got that open | 17:45 |
programmerjake | example csv from the new test: https://git.libre-soc.org/?p=utils.git;a=blob;f=src/budget_sync/test/test_write_budget_csv.py;h=2a1bb41cf346d6f4c825c0922b743a8a7aeae457;hb=d9408da49b5c87d9f3bafc0ab1ab41d33b608839#l70 | 17:47 |
lkcl | those column names are far too long | 17:48 |
lkcl | excluding can be shortened to excl | 17:48 |
lkcl | including can be shortened to inc | 17:48 |
programmerjake | k | 17:49 |
lkcl | you can see how it scrolls 4-5x further than the width of the source code | 17:49 |
lkcl | which means, correspondingly, that the spreadsheet will be off of Bob's page | 17:49 |
lkcl | then | 17:49 |
lkcl | if he tries to "shrink" the columns, everything gets listed as fixed_bu... | 17:49 |
lkcl | and "submi...." | 17:50 |
lkcl | and so on | 17:50 |
programmerjake | k | 17:50 |
lkcl | long descriptive names are fine for programmers doing database fields (where the fields are listed horizontally) | 17:50 |
programmerjake | makes me think the csv could be easier to view if it could be transposed | 17:51 |
lkcl | it's just one of those things - spreadsheets weren't really designed for this.. | 17:51 |
lkcl | ah! | 17:51 |
lkcl | yes | 17:51 |
lkcl | good idea | 17:51 |
lkcl | ha, except, did you hear about the UK government "database" that "crashed"? | 17:52 |
lkcl | the morons were adding one entry *per column* and when that got beyond 65535 entries in the "database", Microsoft Excel crashed | 17:52 |
lkcl | :) | 17:52 |
programmerjake | you mean their excel spreadsheet that only supported 65536 entries and just dropped everything after? | 17:52 |
lkcl | uhhuh... :) | 17:53 |
programmerjake | well, good unintentional method of having lower case counts ... | 17:53 |
programmerjake | though whoever designed that is either ill-informed or was having nightmares from being forced to use excel | 17:55 |
programmerjake | or something... | 17:55 |
programmerjake | luckily python supports more than 65536 columns so we don't loose data due to stupid excel | 17:56 |
programmerjake | makes me wonder if libreoffice supports >65536 columns | 17:57 |
ghostmansd | lkcl, programmerjake, I'm going to take a look at XLEN at place where we left last time; could you, please, share state of art? | 17:58 |
lkcl | ghostmansd, jacob did BCD, that was er i think about it? | 17:59 |
programmerjake | last I looked at it, i finished the bcd instructions...lkcl should know the rest | 17:59 |
ghostmansd | lol :-D | 17:59 |
lkcl | https://bugs.libre-soc.org/show_bug.cgi?id=684 | 18:00 |
ghostmansd | lkcl: BCD is done, ask Jacob; programmerjake: BCD is done, ask Luke :-D | 18:00 |
ghostmansd | Like it | 18:00 |
lkcl | i can't remember! so much has happened since! | 18:01 |
ghostmansd | Ok, what works do we have left? After two weeks, it's somewhat vague | 18:01 |
lkcl | bugracker == friend | 18:01 |
lkcl | https://bugs.libre-soc.org/show_bug.cgi?id=671 | 18:01 |
* lkcl trying to sort something out with shiftrot | 18:01 | |
ghostmansd | Recent comments are all about BCD, and there are 60+ other comments... | 18:02 |
ghostmansd | Ok, will take a look through in weekends | 18:02 |
ghostmansd | A summary what works we have left would be nice, though | 18:04 |
programmerjake | lkcl, libreoffice is apparently even sadder than excel, only supports 1024 columns assuming their faq is up-to-date: https://wiki.documentfoundation.org/Faq/Calc/022 | 18:04 |
lkcl | ghostmansd, i'm right in the middle of something that i've just broken | 18:05 |
lkcl | and might have just fixed | 18:05 |
lkcl | 1 sec | 18:05 |
lkcl | https://git.libre-soc.org/?p=openpower-isa.git;a=shortlog | 18:05 |
lkcl | i think basically i pulled over TRAP instructions, and comparefixed, that was pretty much it | 18:06 |
lkcl | i noted an issue with XLEN=8 for anything with 16-bit immediates | 18:07 |
lkcl | nothing else done except as jacob said, he did the BCD test. | 18:07 |
lkcl | we had a couple of new people join, i've been kept occupied keeping them busy | 18:07 |
programmerjake | lkcl, if the call to unittest is anything more than just calling unittest.main(), then that makes the tests not visible to `python -m unittest` or `pytest` or other testers | 18:09 |
programmerjake | so, changing it to runner.run(suite) isn't acceptable imho | 18:10 |
lkcl | well, this is going to be different. command-line options which specify, at runtime, whether to run with microwatt, power-gem5, ISACaller | 18:10 |
lkcl | etc. etc. | 18:10 |
lkcl | and it's intended for interactive running. | 18:11 |
lkcl | it's not actually intended for non-interactive test running, at all. | 18:11 |
lkcl | if it does, that's a nice (lower-priority) bonus | 18:12 |
programmerjake | well, i think having that selected by an env var might be better...that allows existing test runners (such as vscode's unittest integration) to keep working | 18:12 |
programmerjake | e.g.: | 18:16 |
programmerjake | def get_testers(): | 18:16 |
programmerjake | return os.environ.get('LIBRE_SOC_TESTERS', 'sim pia qemu') | 18:16 |
programmerjake | you do realize that without it being visible to unittest, it will be a pain to maintain the CI and also will make it very hard to test everything since we will have to manually run each test .py file | 18:25 |
programmerjake | and somehow figure out what the correct up-to-date list of files is | 18:26 |
programmerjake | I specifically rely on being able to run tests with pytest in order to run them quickly by parallizing them, the code you wrote bypasses that making it impossible to parallelize via pytest | 18:28 |
lkcl | it's never been successfully run by non-interactive testing, ever - not since it was first committed over 15 months ago | 19:58 |
lkcl | a *different* file - importing the exact same unit tests - could be added which is non-interactive | 19:58 |
programmerjake | iirc it worked when i last tried it... | 19:59 |
programmerjake | i specifically remember using vscode's unittest integration to run tests | 19:59 |
programmerjake | and i used pytest to run tests when i built the xlen-ified bcd opcodes | 20:00 |
programmerjake | budget-sync: is this short enough: | 20:02 |
programmerjake | bug_id,excl_subtasks,inc_subtasks,req_excl_subtasks,paid_excl_subtasks | 20:02 |
programmerjake | lkcl ^ | 20:02 |
programmerjake | oh, whoops, missed fixed_excl_subtasks and inc | 20:04 |
programmerjake | copy-paste error | 20:04 |
programmerjake | correct list: | 20:09 |
programmerjake | bug_id,excl_subtasks,inc_subtasks,fixed_excl_subtasks,fixed_inc_subtasks,req_excl_subtasks,paid_excl_subtasks | 20:09 |
programmerjake | pushed: | 20:11 |
programmerjake | https://git.libre-soc.org/?p=utils.git;a=blob;f=src/budget_sync/test/test_write_budget_csv.py;h=a95a686d54382d29b603b6a2b271451c7a0e04c3;hb=2302cf2a662b15097a64312b399b902c560d46c9#l70 | 20:11 |
programmerjake | also changed config toml format to: | 20:13 |
programmerjake | [people."lkcl"] | 20:13 |
programmerjake | email = "lkcl@lkcl.net" | 20:13 |
programmerjake | aliases = ["donated", "luke", "Luke", "Luke Leighton"] | 20:13 |
programmerjake | full_name = "Luke Kenneth Casson Leighton" | 20:13 |
programmerjake | instead of: | 20:14 |
programmerjake | [people."Luke Kenneth Casson Leighton"] | 20:14 |
programmerjake | email = "lkcl@lkcl.net" | 20:14 |
programmerjake | aliases = ["lkcl", "donated", "luke", "Luke", "Luke Leighton"] | 20:14 |
programmerjake | output_markdown_file = "lkcl.mdwn" | 20:14 |
Las[m] | I want to commit https://github.com/ngi-nix/libresoc-litex/commit/a3106935913b18140fdf3b85ce802a2e7566f49b to the libresoc-litex repository | 20:18 |
lkcl | programmerjake, looks good. i liked the transpose idea | 20:27 |
lkcl | nice idea | 20:27 |
programmerjake | Las, looks good, pushed | 20:28 |
lkcl | Las[m], hmmm, given florent's atrocious behaviour i'm very reluctant to advertise his work as the primary repository | 20:28 |
lkcl | Las[m], ah ok, it wasn't a "nix" related issue | 20:29 |
Las[m] | lkcl: What do you mean? | 20:29 |
Las[m] | programmerjake: Thanks! | 20:29 |
lkcl | Las[m], florent caused us immense problems by making an official complaint to the OpenPOWER Foundation. | 20:29 |
programmerjake | oh, icr hearing about that... | 20:30 |
lkcl | the only reason i hadn't made a formal complaint about his atrocious behaviour was because i didn't have time | 20:30 |
Las[m] | Yeah, but where am I advertising that his work is the primary repository? | 20:30 |
Las[m] | Who would you complain even to? | 20:30 |
lkcl | Las[m]: i saw "nix" and thought you were committing a nixos .nix file to the libresoc-litex repository | 20:31 |
lkcl | i'd be happy to create a special separate repo on git.libre-soc.org for a nix thing, if that helps | 20:31 |
lkcl | in the meantime i'll add you write perms to libresoc-litex | 20:32 |
lkcl | done | 20:32 |
lkcl | you can push that commit adding the gcc triple | 20:33 |
programmerjake | lkcl: too bad the csv transpose idea isn't realistic, everything expects headers on the top row, not the left column | 20:33 |
lkcl | aww shame | 20:33 |
lkcl | oh yeah good point | 20:33 |
programmerjake | already pushed the gcc triple commit | 20:33 |
lkcl | programmerjake, ah magic | 20:34 |
lkcl | thx | 20:34 |
Las[m] | lkcl: this is what you use branches for | 20:34 |
lkcl | Me and Mr Branch are... Not Best Friends :) | 20:35 |
lkcl | i'm happy with people using them though, for review, then push to master | 20:36 |
lkcl | as long as the work they do is not left "hanging" in limbo for days/weeks. | 20:36 |
lkcl | peoples' work getting "isolated" in branches makes me nervous. | 20:37 |
programmerjake | fyi i'll be busy all weekend because of my mom's birthday party | 20:40 |
lkcl | oh nice! | 20:40 |
programmerjake | :) | 20:40 |
lkcl | kylel, https://git.libre-soc.org/?p=soc.git;a=commitdiff;h=e783319282b6bde093a7ef2e1b86dbaf6e8f4667 | 20:51 |
lkcl | you happy to continue that theme ^ | 20:51 |
lkcl | jy | 20:54 |
lkcl | kylel: ah nice, i saw you added a SimRunner to state.py | 20:54 |
lkcl | pretty similar | 20:54 |
lkcl | try to keep the diffs of the same kind of "minimally-visually-obvious" | 20:55 |
lkcl | initially | 20:55 |
lkcl | then we can do code-shuffles and move blocks around after | 20:55 |
kylel | SimRunner makes more sense in test_runner, tbh figured it could get moved wherever after the fact | 20:57 |
lkcl | for now it does, yes (given the minimal-diffing technique for checking the code's ok) | 20:58 |
lkcl | code "disappearing" from one repo then "reappearing" in another... mmm.... | 20:58 |
lkcl | ultimately i'd like the entirety of test_runner.py to move into the openpower-isa | 20:58 |
lkcl | but | 20:58 |
lkcl | anything HDL-related to *remain* in soc simple/test/test_runner.py | 20:59 |
lkcl | (or some other more appropriate file) | 20:59 |
lkcl | because, well, duh, it's HDL-related | 20:59 |
lkcl | btw feel free to modify the args for StateRunner as you see fit | 21:00 |
lkcl | just bear in mind that whatever args are added, *all* XXXXRunners (SimRunner, HDLRunner, QemuRunner, MicrowattRunner) *have* to know those arguments | 21:00 |
lkcl | run_hdl_state should be called from HDLRunner's run_test() | 21:01 |
lkcl | so.... | 21:01 |
lkcl | issuer, pc_i and svstate should be moved into HDLRunner | 21:02 |
lkcl | but | 21:02 |
lkcl | run_hdl_state takes only "instructions" but run_sim_state takes instructions, gen, insncode | 21:02 |
lkcl | so... should we simply pass in the test and duplicate the gen, insncoed and instructions list/assembly/zip? | 21:03 |
lkcl | or... | 21:03 |
lkcl | pass all 3 arguments to both SimRunner.run_test() and SimRunner.run_test()? | 21:03 |
lkcl | i leave it with you to decide? | 21:05 |
* lkcl got a preliminary SIMD (Partitioned) "Cat" working | 21:06 | |
lkcl | need to do a Formal Correctness Proof for it. should be straightforward to do, with a for-loop Switch/Case for each option. | 21:07 |
lkcl | kylel, oh nice job on the shiftrot cases btw | 21:09 |
lkcl | you saw i added them to the HDL test_issuer.py already and they passed perfectly. | 21:10 |
lkcl | ran against the HDL *and* Simulator *and* ExpectedState in each case. | 21:10 |
lkcl | which is pretty cool | 21:10 |
lkcl | the Big Job: converting the ennntiiiire unit test infrastructure, every test_caller*.py, over to the same style... urrrr | 21:11 |
lkcl | ghostmansd, oh btw the Grant Application for cavatools (etc.) passed the 1st approval phase | 21:12 |
lkcl | (yay) | 21:12 |
ghostmansd | Yay! | 21:13 |
ghostmansd | BTW, how long does it take for NLnet to proceed the reports? | 21:14 |
ghostmansd | I have no e-mails or anything else from them, should I worry? :-) | 21:15 |
kylel | lkcl, yeah I saw you moved them around. One of the cases tested carry and it failed without adding it to the expected state. | 21:49 |
kylel | one of those hey cool moments. sometimes I'm easily amused. | 21:50 |
Las[m] | I'm trying to build for my Versa ECP5, and I get this weird error: https://gist.github.com/L-as/04f603eb2f9a7c58c97249318f52c351 | 22:00 |
Las[m] | The important part seems to be "ERROR:SoCCSRHandler:Not enough Locations." on line 66 | 22:00 |
lkcl | Las[m], that'll be from using the "latest version" | 22:46 |
Las[m] | lkcl: of what? | 22:46 |
lkcl | there are blocks of memory addresses allocated for CSRs (Control Status Registers) | 22:46 |
lkcl | litex | 22:47 |
Las[m] | ah, yosys? | 22:47 |
Las[m] | I'm not though | 22:47 |
lkcl | intriguing | 22:47 |
lkcl | there is only a certain amount of address range available | 22:48 |
lkcl | and for whatever (unknown) reason, litex is requesting too many peripherals | 22:48 |
lkcl | first peripheral requests some of the address space, receives it, takes up 20% | 22:48 |
lkcl | second peripheral, takes up another 20% | 22:48 |
lkcl | etc. etc. | 22:48 |
Las[m] | Could it be an issue with Yosys? I'm using a new version it seems. | 22:49 |
Las[m] | Will have to figure out what the version I'm supposed to be using is. | 22:49 |
lkcl | as there are too many peripherals - and i cannot tell you why - litex is simply requesting too many. | 22:49 |
lkcl | commit 35929c0f8a8f1cc098a6b6ebb569caca8df8c08d (HEAD -> master, tag: 24jan2021_ls180, origin/master, origin/HEAD) | 22:49 |
Las[m] | What peripherals are not supposed to be there? | 22:50 |
lkcl | i don't know. | 22:50 |
lkcl | i run the command, just like you did, except it succeeds | 22:50 |
lkcl | litex is... fragile. | 22:51 |
lkcl | no it's nothing to do with yosys. yosys is not in the least bit involved. | 22:51 |
lkcl | yosys is a tool which takes verilog and other HDL and processes it | 22:51 |
lkcl | litex *generates* HDL | 22:52 |
Las[m] | Unrelated: What version of Yosys am I supposed to be using? In `hdl-tools-yosys` it just uses master. | 22:52 |
lkcl | that should do | 22:52 |
Las[m] | Great. | 22:52 |
lkcl | we ran into difficulties with yosys sram representation but solved it by not using ilang, as i described last week | 22:53 |
Las[m] | Yeah | 22:53 |
Las[m] | LiteX is really troublesome | 22:53 |
Las[m] | Don't get why backward compatibility is not a concern in the slightest | 22:54 |
lkcl | it.... i mean, it's a great idea | 22:54 |
lkcl | because it's too much trouble | 22:54 |
lkcl | it's actually a massive extremely sophisticated multi-layered program, does one hell of a lot | 22:55 |
lkcl | combines the resources of a hell of a lot of things | 22:55 |
lkcl | such as auto-generation of Makefiles for creating verilator peripherals | 22:55 |
lkcl | you request "i want simulated peripheral X" it gives you... simulated peripheral X | 22:56 |
lkcl | unnfortunately, it's built on extremely fragile foundations: migen | 22:56 |
lkcl | which provides absolutely no error-checking or deterministic behaviour of any kind. | 22:56 |
lkcl | you make one mistake and it can be several *days* before you find the error | 22:57 |
lkcl | at the end of a massive VLSI compile for example | 22:57 |
lkcl | we won't be using it again | 22:58 |
Las[m] | Even with the exact same version of LiteX as what you're using, I get the same error. | 22:59 |
lkcl | 1 sec | 22:59 |
Las[m] | Maybe you're using a special version of litex-boards? | 22:59 |
lkcl | naah | 22:59 |
lkcl | with the hassle that litex brings? last thing we need is "special" versions of *anything* | 23:00 |
Las[m] | Can you check the revision at least? | 23:00 |
lkcl | INFO:SoCCSRHandler:32-bit CSR Bus, 32-bit Aligned, 4.0KiB Address Space, 2048B Paging, big Ordering (Up to 8 Locations). | 23:01 |
lkcl | the corresponding line i have is | 23:01 |
lkcl | ress Space, 2048B Paging, big Ordering (Up to 32 Locations). | 23:01 |
lkcl | >>>>> 32 Locations <<<<<<< | 23:02 |
Las[m] | that didn't come through | 23:02 |
Las[m] | what | 23:02 |
lkcl | that's why you're running out of "Locations" | 23:02 |
lkcl | https://gist.github.com/L-as/04f603eb2f9a7c58c97249318f52c351 | 23:02 |
Las[m] | Where is the amount of locations defined? | 23:02 |
lkcl | grep the source code to find it... | 23:04 |
lkcl | (welcome to debugging of litex...) | 23:04 |
lkcl | https://git.libre-soc.org/?p=litex.git;a=blob;f=litex/soc/integration/soc.py;h=54f969c918abc32be5e900980344637446bbd3a9;hb=35929c0f8a8f1cc098a6b6ebb569caca8df8c08d#l544 | 23:05 |
lkcl | self.n_locs | 23:05 |
lkcl | calculated here | 23:05 |
lkcl | https://git.libre-soc.org/?p=litex.git;a=blob;f=litex/soc/integration/soc.py;h=54f969c918abc32be5e900980344637446bbd3a9;hb=35929c0f8a8f1cc098a6b6ebb569caca8df8c08d#l486 | 23:05 |
lkcl | ok for some reason, you only have 4k Address Space | 23:06 |
Las[m] | hmmm | 23:06 |
lkcl | INFO:SoCCSRHandler:Creating CSR Handler... | 23:06 |
lkcl | INFO:SoCCSRHandler:32-bit CSR Bus, 32-bit Aligned, 4.0KiB Address Space, | 23:06 |
Las[m] | How much do you have? | 23:06 |
lkcl | whereas i have 16k | 23:06 |
lkcl | INFO:SoC:32-bit CSR Bus, 32-bit Aligned, 16.0KiB Address Space | 23:06 |
Las[m] | what | 23:06 |
Las[m] | Why is the message different | 23:07 |
Las[m] | Why isn't yours SoCCSRHandler | 23:07 |
lkcl | given that i did this months ago, i have no idea at all | 23:08 |
lkcl | ah 1 sec | 23:10 |
Las[m] | Can you try building it again? | 23:10 |
lkcl | are you running from soc/litex/florent? | 23:10 |
lkcl | or from the stand-alone repo, libresoc-litex? | 23:10 |
lkcl | nope, no, only one git difference, and that's the README. | 23:11 |
lkcl | false alarm | 23:11 |
lkcl | what exact command are you running? | 23:12 |
lkcl | oh hang on | 23:14 |
lkcl | you're using python 3.9 | 23:15 |
lkcl | please don't do that | 23:15 |
lkcl | use the version of python for which everything has been tested | 23:15 |
lkcl | which is python 3.7 | 23:15 |
lkcl | i see the default argument csr_address_width actually gets through (12) | 23:16 |
lkcl | so 1<<12 is being used which is 4096 | 23:16 |
lkcl | whereas for whatever reason, probably something to do with python 3.7, csr_address_width is *not* being set and the default value is used | 23:17 |
lkcl | which gets set to 1<<14 | 23:17 |
lkcl | which is 16384 aka 16k | 23:17 |
lkcl | try hacking this line: | 23:18 |
lkcl | kwargs['csr_address_width'] = 12 # limit to 0x8000 | 23:18 |
lkcl | set it to 13 | 23:18 |
lkcl | or 14 | 23:18 |
Las[m] | I didn't realize Python 3.7 was supposed to be used... | 23:36 |
Las[m] | Will try | 23:36 |
Las[m] | thanks | 23:37 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!