*** kylel1 is now known as kylel | 03:09 | |
lkcl | Veera[m], image looks good, needs a couple of corrections. | 10:01 |
---|---|---|
lkcl | i appreciate that the diagrams i do aren't exactly great photo quality | 10:01 |
octavius | lkcl (and everyone else) good morning. Looking into the pinmux task (adjusting ls180.py for ngi router), but remembered that something changed in pinmux_generator.py because there's a IndexError | 11:17 |
octavius | "padbank[banknum] = name" banknum is out of range | 11:18 |
lkcl | octavius, grrr ok 1 sec | 11:20 |
lkcl | that's because i'd changed things from a single number to a list | 11:22 |
lkcl | octavius, ok found it, this will work: "python src/pinmux_generator.py -v -o ls180 -s ls180 > /tmp/f" | 11:43 |
octavius | Thanks lkcl! | 11:56 |
lkcl | octavius, at least the json file will work now | 12:08 |
lkcl | programmerjake, do be careful about making public statements undervaluing the work you're doing! | 12:15 |
lkcl | we lost samuel because, even with his expertise in formal correctness proofs, he couldn't deal with the complexity and we drastically underestimated the amounts to pay him | 12:16 |
lkcl | when i went hunting for people in industry to do the IEEE754 Formal Correctness proof i was quoted FIVE times more money than the amount allocated by NLnet | 12:17 |
octavius | lkcl, which json file are you talking about? The litex_pinpads.json file doesn't include mux information, and the /tmp/f file is not pure json | 12:22 |
lkcl | /tmp/f is clearly debug output | 12:30 |
lkcl | and there is only one json file | 12:30 |
lkcl | correct, the json file does not have mux information | 12:33 |
lkcl | focus on the mdwn file | 12:33 |
lkcl | python src/pinmux_generator.py -v -o minitest -s minitest > /tmp/f | 12:33 |
octavius | sure | 12:34 |
lkcl | you can see in src/spec/minitest.py how muxing works | 12:34 |
lkcl | ps.gpio("", ('A', 1), 0, 0, 1) | 12:35 |
lkcl | ps.gpio("", ('A', 0), 0, 1, 1) | 12:35 |
lkcl | compared to | 12:35 |
lkcl | ps.pwm("", ('A', 2), 2, 0, 1) | 12:35 |
lkcl | that puts PWM on pin A2 on the *second* mux column | 12:36 |
lkcl | ('A', 2') - start at Bank A pin 2 | 12:37 |
lkcl | 2 - put into Mux2 column | 12:37 |
lkcl | 0 - start the *function* at 0 (PWM_0) | 12:38 |
lkcl | 1 - only add one function | 12:38 |
lkcl | result (minitest/minitest.mdwn): | 12:38 |
lkcl | | Pin | Mux0 | Mux1 | Mux2 | Mux3 | | 12:38 |
lkcl | | --- | ----------- | ----------- | ----------- | ----------- | | 12:38 |
lkcl | | 2 | A GPIOA_A3 | A UART3_TX | A PWM_0 | | | 12:38 |
lkcl | this line: | 12:39 |
lkcl | ps.pwm("", ('A', 4), 2, 1, 3) | 12:39 |
octavius | Aaaaaaaaah! Yes! It finally makes sense, | 12:39 |
lkcl | (A, 4) - start at pin 4 | 12:39 |
octavius | wait let me try to decode this one | 12:39 |
lkcl | 2 - put into row M.... ok :) | 12:39 |
lkcl | it's pretty bleedin obvious, just not documented | 12:40 |
octavius | Pin A4, mux 2, named PWM_1, 3 long (so I'm guessing PWM_1 PWM_2 PWM_3 on pins A4, A5, A6?) | 12:40 |
lkcl | let's take a look.... | 12:42 |
lkcl | | 4 | A GPIOA_A5 | | A PWM_1 | | | 12:42 |
lkcl | | 5 | A GPIOA_A6 | | A PWM_2 | | | 12:42 |
lkcl | | 6 | A GPIOA_A9 | | A PWM_3 | | | 12:42 |
lkcl | | 7 | A GPIOA_A13 | A MSPI2_CK | | | | 12:42 |
lkcl | looks about right, doesn't it? | 12:42 |
octavius | Yeah, just wanted to make sure I got it through my thick skull XD | 12:43 |
lkcl | :) | 12:44 |
octavius | As for adding a pinmux, what format should I use (if there is no json)? Do I need to construct the file myself? | 12:44 |
lkcl | so *go easy* - go slowly - and make lots of commits. | 12:44 |
octavius | Parsing mdwn sounds like more work | 12:45 |
octavius | For now I'll just probably hard-code a dummy set in the pinmux code | 12:45 |
lkcl | the code's extremely fragile and if you add too many functions in one go and you get an error it will be extremely difficult to work out what the hell's going on | 12:45 |
lkcl | you don't have to parse the markdown | 12:45 |
lkcl | (where did you get that idea from?) | 12:45 |
lkcl | you just use it as the validator of whether you got the .py file right | 12:46 |
octavius | Well the code that adds pinmux's needs to know which functions go to which mux banks | 12:46 |
lkcl | that's not part of *this* goal - that's a different one | 12:46 |
octavius | The code that *will* add pinmux's (as it's not written yet). Ah ok | 12:46 |
lkcl | all this task is, is to *define* the pinsets | 12:47 |
lkcl | call it ls2 | 12:47 |
octavius | What does ls2 stand for? Libre-SOC2? | 12:47 |
lkcl | yes | 12:47 |
octavius | I already have ngi_router.py from previous work I did, so I'll look at it (but make a copy of ls180.py) | 12:48 |
lkcl | if you keep the pinsets exactly the same as ls180 then you should also be able to view the svg file! | 12:48 |
octavius | ok | 12:48 |
lkcl | don't put SDRAM onto pinmux banks btw | 12:49 |
* lkcl ponders... | 12:49 | |
lkcl | actually it should be ok | 12:49 |
octavius | Well for this tasks there are no mux's at all, right? | 12:50 |
octavius | so the banks don't matter? | 12:50 |
octavius | Or does LS180 have hard-coded pinmux's in the design? | 12:51 |
lkcl | weeeelll... let's add RGMII onto the N side first | 12:51 |
lkcl | see how that goes | 12:51 |
lkcl | there shouuuld be enough pins but you'll need to split them | 12:51 |
lkcl | which, like ps.pwm(), will involve setting a start and count parameter, calling ps.rgmii() twice | 12:52 |
lkcl | commit cut/paste src/spec/ls180.py src/spec/ls2.py first as one commit | 12:53 |
lkcl | then and *only* then start messing about adding ps.rgmii | 12:53 |
octavius | Done, needed to fix the git url | 12:57 |
lkcl | ok 1 sec i need to fix an import for you.. | 12:59 |
octavius | Yeah, forgot to add spec type | 12:59 |
lkcl | oh wait... hang on... | 13:00 |
lkcl | you'd already added this as ngi_router. | 13:00 |
lkcl | doh | 13:00 |
octavius | Yeah | 13:00 |
lkcl | doh let's go with that | 13:00 |
octavius | that was back in Nov though | 13:00 |
lkcl | sorry :) | 13:00 |
octavius | No worries ;) | 13:00 |
lkcl | err there's quite a lot of modifications | 13:01 |
octavius | That's why ls2 might be a better way for now | 13:01 |
lkcl | yehyeh agreed | 13:01 |
octavius | Once we get that working, I can take some of the changes from ngi_router | 13:01 |
lkcl | no totally | 13:01 |
lkcl | octavius, you're on the case for src/spec/__init__.py ? | 13:06 |
lkcl | 'ls180': ls180, | 13:06 |
lkcl | + 'ls2': ls2, | 13:06 |
lkcl | 'ngi_router': ngi_router | 13:06 |
lkcl | i leave it with you | 13:06 |
octavius | Nah, I was waiting for you. If you're done, I can add the spec type | 13:07 |
octavius | May I proceed? | 13:07 |
octavius | I'll proceed | 13:10 |
octavius | done | 13:12 |
* lkcl dealing with a monster headache | 13:13 | |
octavius | have a nap | 13:13 |
octavius | We've got a meeting later today too :P | 13:14 |
lkcl | i knoow | 13:14 |
lkcl | kylel, ping been trying to get in touch for several days, there's EUR for you from NLnet grant tasks completed months ago! | 13:15 |
octavius | lkcl, I can fit RGMII on the N bank, but I needed to move the power pins (see the commit, svg can be generated now). | 13:30 |
octavius | We're going to have a different package, but do we want to preserve the pinout (somewhat?) | 13:31 |
octavius | I could make an rgmii2 function (like you have sdram/2/3) to split the pins | 13:31 |
lkcl | octavius, hooray | 13:36 |
lkcl | ok the power pins must not be on the edge | 13:37 |
lkcl | so split the rgmii into two | 13:37 |
octavius | ack | 13:37 |
lkcl | but put... | 13:37 |
lkcl | RXD0-3 onto pins 0-3 | 13:38 |
lkcl | ps.rgmii((N,0), 0, 0, 4) should do it | 13:38 |
lkcl | then VSSE/D/I_6 on pins... 5-8 | 13:38 |
lkcl | theeen | 13:39 |
lkcl | ps.rgmii((N,9), 0, 4, 13) should do the second batch. you'll need to calculate it so that you don't miss out the last pin ETXERR | 13:39 |
octavius | Also when you say "power pins must not be on the edge", do you mean the edge of the die, or the package? | 13:40 |
octavius | will do | 13:40 |
lkcl | both | 13:40 |
lkcl | i'm going to add a second rgmii interface ok? | 13:42 |
lkcl | it won't conflict with what you're doing | 13:43 |
octavius | sure | 13:48 |
lkcl | ok done, do take a look | 13:54 |
octavius | So the ps.rgmii is clever enough to know when to stop/start (continue existing part)? | 13:57 |
octavius | I thought we needed an rgmii2 to allow splitting up | 13:57 |
lkcl | yees | 14:00 |
lkcl | the reason for the sdram2/3 is because the pins are much more complex | 14:00 |
lkcl | there's address-extension, data-extension and bank-extension | 14:00 |
lkcl | from the "lowly" 2-bank 8-bit (sdram) | 14:00 |
lkcl | to faster 16-bit (and more address lines) | 14:01 |
lkcl | to 32-bit and 6 bank address lines | 14:01 |
lkcl | trying to split that up manually would be a pain in the ass | 14:01 |
octavius | I split the rgmii on N side, but I noticed an issue | 14:03 |
octavius | the rgmii resets the data pins | 14:03 |
octavius | Look at the mdwn file, the RXD0-3 start again | 14:04 |
octavius | On both the N and E sides | 14:04 |
lkcl | 1 sec | 14:08 |
lkcl | that's because you asked it to | 14:10 |
lkcl | - ps.rgmii("0", ('N', 8), 0, 0, 14) | 14:10 |
lkcl | + ps.rgmii("0", ('N', 8), 0, 4, 14) | 14:10 |
lkcl | ok just for fits and giggles how about adding an 18-long GPIO "N" bank and moving rgmii_0 to Mux column 1? | 14:11 |
lkcl | making really good progress here | 14:11 |
octavius | Ah yeah | 14:11 |
octavius | sure | 14:12 |
octavius | I'll do that now | 14:12 |
lkcl | i'll do South | 14:12 |
lkcl | you do North | 14:12 |
octavius | Wait, bit the git commits will clash! | 14:12 |
octavius | I haven't merged before | 14:13 |
lkcl | git pull now | 14:13 |
lkcl | i fixed the rgmii 0/4 already | 14:13 |
octavius | Yeah I have | 14:13 |
lkcl | if i'm editing S and you're editing N there's no clash | 14:14 |
lkcl | git is intelligent enough to spot line numbers | 14:14 |
octavius | But if I make modifications to ls2, when git pulling I'd have to merge, no? | 14:14 |
lkcl | it's automatic | 14:15 |
octavius | ok, added gpios | 14:19 |
lkcl | brilliant | 14:20 |
lkcl | 1 sec nearly done here | 14:20 |
lkcl | git pull | 14:20 |
lkcl | ha! | 14:21 |
octavius | You moved the sram eh? | 14:21 |
lkcl | to Mux column 1, yes | 14:21 |
lkcl | can you do the same trick with bank W? | 14:22 |
octavius | yep | 14:22 |
lkcl | TWI SDA/SCL needs moving too | 14:22 |
octavius | no prob | 14:22 |
* lkcl counting pins.... | 14:22 | |
lkcl | 96-101 6 | 14:22 |
lkcl | 106-123 15 | 14:23 |
lkcl | hmmm | 14:23 |
lkcl | 6+15=21 | 14:23 |
lkcl | mmmm... it'll do | 14:23 |
lkcl | i might as well make GPIO E 19 pins long in that case | 14:24 |
lkcl | done | 14:26 |
octavius | error: Your local changes to the following files would be overwritten by merge: | 14:28 |
octavius | src/spec/ls2.py | 14:28 |
octavius | Please commit your changes or stash them before you merge. | 14:28 |
octavius | I made the changes to W, just need to merge somehow | 14:28 |
lkcl | yep. commit first. git pull second | 14:28 |
lkcl | do "git diff" it will show you what haven't committed | 14:29 |
octavius | But then I get a Merge message, is that correct | 14:29 |
lkcl | ok what did you modify, why, and where? | 14:29 |
octavius | I added the GPIOs to W side in ls2.py | 14:30 |
lkcl | and nothing else? | 14:30 |
octavius | Is this something to do with the "git config" settings? | 14:30 |
lkcl | do git push please | 14:30 |
octavius | ! [rejected] master -> master (non-fast-forward) | 14:31 |
octavius | error: failed to push some refs to 'git.libre-soc.org:pinmux.git' | 14:31 |
octavius | hint: Updates were rejected because the tip of your current branch is behind | 14:31 |
octavius | hint: its remote counterpart. Integrate the remote changes (e.g. | 14:31 |
octavius | hint: 'git pull ...') before pushing again. | 14:31 |
lkcl | then do "git pull" as instructed | 14:31 |
lkcl | followed again by "git push" | 14:31 |
octavius | error: You have not concluded your merge (MERGE_HEAD exists). | 14:31 |
octavius | hint: Please, commit your changes before merging. | 14:31 |
octavius | fatal: Exiting because of unfinished merge. | 14:31 |
lkcl | ngggh ok please look at the ls2.py file | 14:32 |
lkcl | you've edited in an area outside of where you said you were going to do, and there's now a merge conflict | 14:32 |
lkcl | you should see | 14:32 |
lkcl | <<<<< | 14:32 |
lkcl | ====== | 14:32 |
lkcl | >>>>>> | 14:32 |
lkcl | in the file | 14:32 |
octavius | Now, this has always happened to me | 14:33 |
octavius | not just in this case | 14:33 |
lkcl | huh? | 14:33 |
lkcl | do "git diff", what does it say | 14:34 |
octavius | Nothing | 14:34 |
octavius | So my steps were: | 14:34 |
lkcl | what on earth have you managed to do :) | 14:34 |
octavius | -git add src/spec/ls2.py | 14:34 |
octavius | -git commit -m "blah blah" | 14:34 |
octavius | git pull | 14:34 |
octavius | From there nano opened, asking why I want to merge | 14:35 |
octavius | I deleted the message and quit (cancelled the merge) | 14:35 |
octavius | this is where I am now | 14:35 |
lkcl | what a load of bullshit "why you want to merge"?? | 14:35 |
lkcl | this is a bullshit question | 14:35 |
octavius | I'm telling what happened, I only ever used git with one user edits at a time, so don't really know anything else | 14:36 |
lkcl | https://stackoverflow.com/questions/34526346/git-pull-asks-me-to-write-merge-message | 14:36 |
octavius | Oh, so that is *NOT* meant to happen? | 14:36 |
lkcl | please use "git pull --rebase" | 14:36 |
lkcl | it's bullshit | 14:36 |
octavius | error: You have not concluded your merge (MERGE_HEAD exists). | 14:37 |
octavius | hint: Please, commit your changes before merging. | 14:37 |
octavius | fatal: Exiting because of unfinished merge. | 14:37 |
octavius | It's easier to just copy the changes, git reset, and add them in at this point | 14:37 |
lkcl | total bullshit. and it's because linus torvalds got fed up of the auto-messaging | 14:37 |
lkcl | no don't do that | 14:37 |
lkcl | you should have saved and exited | 14:38 |
octavius | That's why I got annoyed when worked on one file at the same time XD | 14:38 |
lkcl | use rebase in future | 14:38 |
lkcl | i automatically configure *everything* to be rebase | 14:38 |
octavius | So what do I do then? | 14:38 |
lkcl | which is why i never see this | 14:38 |
lkcl | i have no idea i'm looking it up | 14:38 |
octavius | Ah, I think I remember why | 14:38 |
lkcl | https://stackoverflow.com/questions/11646107/you-have-not-concluded-your-merge-merge-head-exists | 14:38 |
octavius | git throws a warning message when I do "git pull" for the first time | 14:39 |
octavius | and suggests I set git config rebase=false, something like that | 14:39 |
lkcl | rm -rf .git/MERGE* | 14:39 |
lkcl | do that | 14:39 |
lkcl | it will get rid of the bullshit | 14:39 |
octavius | I never understood why, so I just set it false | 14:39 |
lkcl | yes, set rebase | 14:39 |
lkcl | it avoids all the bullshit | 14:39 |
lkcl | makes life slightly awkward, you can't have un-committed changes in your local repo when you do a "git pull" but hey | 14:40 |
lkcl | ---->>>>>> rm -rf .git/MERGE* <<<<<--- | 14:40 |
lkcl | then git pull and git push | 14:40 |
octavius | git config pull.rebase false | 14:41 |
octavius | this is what I did before | 14:41 |
lkcl | or "git merge --continue" apparently | 14:41 |
octavius | ok will do | 14:41 |
lkcl | please let's sort out the merge first | 14:41 |
octavius | I deleted MERGE* | 14:41 |
lkcl | excellent | 14:41 |
lkcl | ok now set rebase to true | 14:41 |
lkcl | and git pull then git push | 14:42 |
octavius | after doing git pull: | 14:43 |
octavius | error: cannot pull with rebase: Your index contains uncommitted changes. | 14:43 |
octavius | error: please commit or stash them. | 14:43 |
octavius | Aaaaah XD | 14:43 |
lkcl | ok do git diff again | 14:44 |
lkcl | and git reset --hard | 14:44 |
octavius | If I do --hard I'll lose my edits | 14:44 |
lkcl | then copy the file! | 14:44 |
octavius | I guess copy them to another file | 14:44 |
lkcl | you shouldn't have any because you said "git diff" returns nothing | 14:44 |
octavius | Because I added ls2.py with "git add" | 14:45 |
octavius | so the diff won't return anymore | 14:45 |
lkcl | you'd already done the commit so there is nothing that can be lost | 14:45 |
lkcl | just do git reset --hard | 14:45 |
lkcl | no need to "copy" the file because it is already committed | 14:46 |
octavius | ok rest --hard, added the changes back in, pulled, should see them now | 14:47 |
octavius | Now, what I'm to do next time? | 14:47 |
octavius | if we work in tandem? | 14:47 |
lkcl | <lkcl> ok now set rebase to true | 14:47 |
octavius | yep | 14:47 |
octavius | done | 14:48 |
lkcl | no more bullshit | 14:48 |
lkcl | ok i'm good with that | 14:49 |
octavius | So (for next time), if I make a change, and one commit behind you: | 14:49 |
octavius | git add ls2.py | 14:49 |
octavius | git commit -m "blah" | 14:49 |
octavius | git pull | 14:49 |
octavius | git push | 14:49 |
octavius | Should work? (with rebase=true) | 14:49 |
lkcl | yyep | 14:49 |
octavius | I'll be sure to let you know ;) | 14:50 |
octavius | So what now? | 14:50 |
lkcl | local modifications *without* a commit will *not* be permitted, that's all | 14:50 |
lkcl | ok drop ls2.mdwn into the wiki | 14:50 |
octavius | The folder we have is "crypto_router_asic" in the wiki. Shall I make a separate ls2 folder for now? | 14:52 |
lkcl | no | 14:52 |
lkcl | ahh can you investigate this | 14:53 |
lkcl | * GPIOE_E14 : E16/0 E26/0 | 14:53 |
lkcl | * GPIOE_E15 : E17/0 E27/0 | 14:53 |
lkcl | wait that was me | 14:54 |
lkcl | i'll do it | 14:54 |
lkcl | got it | 14:55 |
lkcl | err did you move the West power pins? | 14:59 |
lkcl | | 124 | W VSSI_1 | | | | | 14:59 |
lkcl | | 125 | W VDDI_1 | | | | | 14:59 |
lkcl | | 126 | W VSSE_1 | | | | | 14:59 |
lkcl | | 127 | W VDDE_1 | | | | | 14:59 |
octavius | Hmm | 14:59 |
lkcl | Jean-Paul's told us that's unacceptable | 15:00 |
lkcl | they have to be about 4-6 pins in from the end | 15:00 |
octavius | I didn't move power pins | 15:00 |
lkcl | otherwise the load on the IO Ring becomes too large | 15:00 |
lkcl | ok | 15:00 |
lkcl | i'll sort it | 15:00 |
octavius | I copied from ls180.py, did anyone make changes to that? I don't remember modifying the power pins on that one | 15:01 |
lkcl | i got it | 15:03 |
octavius | So what was the issue? | 15:03 |
lkcl | no idea. too long ago | 15:03 |
octavius | Or when was it changed? | 15:03 |
octavius | Ah ok, cause ls180 has it as well | 15:04 |
lkcl | yes | 15:04 |
lkcl | and i don't know why | 15:04 |
lkcl | ok so git pull redo ls2.mdwn and copy it to the crypto_router_asic directory | 15:04 |
lkcl | commit and we're done | 15:04 |
lkcl | https://libre-soc.org/crypto_router_asic/ | 15:05 |
octavius | Added | 15:07 |
octavius | Also fixed a typo you had on gpio W | 15:08 |
lkcl | joy | 15:08 |
lkcl | https://bugs.libre-soc.org/show_bug.cgi?id=739 | 15:08 |
lkcl | also there should be an SVG image generated as well | 15:08 |
octavius | Are we done? I thought we'll have a different package? | 15:09 |
octavius | Yeah, will add it now | 15:09 |
lkcl | not enough time | 15:09 |
lkcl | 2 Gigabit Ethernet interfaces is enough to prove the concept | 15:09 |
lkcl | and also give enough for the muxing when we get to it | 15:10 |
octavius | Ok | 15:10 |
octavius | Added the svg | 15:10 |
octavius | will link the IRC chat and commits on bug | 15:10 |
octavius | Oh, you beat me to it XD | 15:10 |
lkcl | we'll need to get you added to the NGI POINTER grant for this one | 15:13 |
octavius | So I should remove the image on https://libre-soc.org/crypto_router_asic/crypto_router_pinspec/? | 15:13 |
octavius | Cause that page currently has the ambitious pinout | 15:13 |
lkcl | yes | 15:14 |
lkcl | next one - https://bugs.libre-soc.org/show_bug.cgi?id=758 | 15:15 |
octavius | Yep, how shall I proceed? | 15:21 |
octavius | I'll be back, going to have my lunch | 15:34 |
lkcl | the main one to focus on is the mp3_0.sh | 15:57 |
lkcl | pypowersim runs the ISACaller python-based simulator | 15:57 |
lkcl | it executes instructions. that's its job. | 15:57 |
lkcl | of course, you have to load data into memory | 15:58 |
lkcl | a program to execute | 15:58 |
lkcl | some initial SPRs | 15:58 |
lkcl | and some GPRs | 15:58 |
lkcl | 6 -l data/audio/mp3/mp3_0_data/buf${1}:0x600000 \ | 15:58 |
lkcl | see audio/Makefile because to download the data to be tested you'll need that | 15:59 |
lkcl | basically there's a small trail here | 16:07 |
lkcl | which you'll have to track back through the Makefile(s) and .sh scripts | 16:07 |
lkcl | you can't just go "i'll run stuff with no arguments and expect something to magically happen" | 16:07 |
lkcl | so with a little patience, you'll need to start from "known-good", examine each of the files, and work through it | 16:16 |
lkcl | basically this is running the ISACaller simulator on (very small) Power ISA bare-metal binaries | 16:16 |
octavius | Ah ok thanks luke, I'll make my way through it then :) | 16:23 |
lkcl | i removed qemu from the basic pypowersim test | 16:24 |
lkcl | there's no GUI and no console here | 16:24 |
lkcl | no UART, absolutely nothing | 16:24 |
lkcl | so the only way to find out if the "program" did the right thing is to dump the memory contents and inspect it | 16:25 |
lkcl | (hence the --dump option) | 16:25 |
lkcl | btw all these things should be in the notes you write! | 16:25 |
octavius | Yes XD | 16:25 |
lkcl | https://libre-soc.org/crypto_router_asic/ls2/ wha-hey! looks really good | 16:41 |
lkcl | and the image too https://libre-soc.org/crypto_router_asic/ls2.svg | 16:41 |
octavius | Yes :) | 16:48 |
octavius | After running running make wget to get the data, and make tests, I get a bunch of unrecognised opcode errors: | 16:55 |
octavius | audio/mp3/mp3_0_apply_window_float_basicsv.s.sv:63: Error: unrecognized opcode: `sv.lfs/els' | 16:55 |
octavius | this is just one of many | 16:56 |
lkcl | octavius, make sure to git pull openpower-isa | 17:19 |
lkcl | and re-run pywriter | 17:19 |
octavius | Oh yes! Of course XD | 17:20 |
lkcl | i'm running ./audio/mp3/mp3_0.sh 0 out0 and it's perfectly fine | 17:20 |
lkcl | that said i need to re-run the binary make to check | 17:21 |
lkcl | ghostmansd changed how pysvp64asm works | 17:21 |
octavius | Huh, still fails | 17:22 |
octavius | Oh wait | 17:22 |
lkcl | grr ghostmansd you broke the media tests | 17:22 |
octavius | XD | 17:23 |
octavius | Using make tests it caused an error with unknown opcodes. However calling "./audio/mp3/mp3_0.sh 0 out0" works lkcl | 17:25 |
lkcl | ghostmansd, you'd removed all "sv." instruction processing from pysvp64asm | 17:29 |
lkcl | fixed | 17:30 |
lkcl | octavius, git pull | 17:30 |
lkcl | you probably have run this before | 17:32 |
lkcl | and there are .bin files in audio/media/*.bin | 17:32 |
lkcl | which if you delete, you won't be able to re-make (without a git pull) | 17:33 |
lkcl | ld mem @ 0x900078 rem 0 : 0xac58b31d2d037ca8 | 17:33 |
lkcl | Read 0xa87c032d1db358ac from addr 0x900078 | 17:33 |
lkcl | + cmp out0 data/audio/mp3/mp3_0_data/samples0 | 17:33 |
lkcl | all good | 17:33 |
octavius | "ld mem @ 0x900078 rem 0 : 0xac58b31d2d037ca8" how do I run this? | 17:42 |
octavius | Oh, this is in the log | 17:43 |
octavius | rerunning to get the debug out in a file, already 60mib... | 17:45 |
lkcl | yyep, that's normal. export SILENCELOG=1 if you don't want to see it | 18:02 |
octavius | So if I see 0xa87c032d1db358ac, does that mean the test was successful? | 18:07 |
lkcl | do an xdiff on the two files | 18:12 |
lkcl | hmmm where the hell is xdiff | 18:13 |
lkcl | man cmp | 18:13 |
lkcl | NAME | 18:14 |
lkcl | cmp - compare two files byte by byte | 18:14 |
lkcl | remember what i said about examining the scripts? :) | 18:14 |
octavius | which files, the .gpr files? | 18:14 |
octavius | Ah yes | 18:14 |
octavius | found it | 18:14 |
lkcl | you need to get into the habit of going "this command calls this command which calls this command, let me look them up individually" | 18:14 |
lkcl | at the moment you're seeing output and going "i can ignore that" | 18:15 |
lkcl | then asking "why isn't this working" or "what does this mean" | 18:15 |
octavius | It's one of the ways to keep sane XD, but you're right | 18:15 |
lkcl | "audio/mp3/mp3_0.sh | 18:15 |
lkcl | --> cmp ${2} data/audio/mp3/mp3_0_data/samples${1} | 18:16 |
octavius | Yes I saw that one | 18:16 |
lkcl | therefore, rather than ignore that command, you should ask, "what does it do?" | 18:16 |
lkcl | and the easiest way to do that is, "man cmp" | 18:16 |
lkcl | once you've read the top line of the man page, you now know that ${2} and samples${1} must be being compared | 18:17 |
lkcl | where ${2} is the 2nd argument of this script | 18:17 |
lkcl | and ${1} is the first | 18:17 |
lkcl | then | 18:17 |
lkcl | you can go back to the Makefile (or, if you ran mp3_0.sh manually, the 1st and 2nd args) | 18:17 |
lkcl | ... you get the idea | 18:18 |
lkcl | so from that you can *deduce* that pypowersim is running the simulation | 18:18 |
lkcl | --dump is outputting to a file | 18:18 |
lkcl | and data/audio/mp3/mp3_0_data/samples${1} would, logically, be the "expected results" | 18:18 |
lkcl | as a UNIX-philosophy command, if cmp is silent, it must have succeeded | 18:19 |
lkcl | therefore, if you get *no response* from the cmp command, you can *deduce* that pypowersim must have successfully produced the correct output | 18:19 |
lkcl | -d option not --dump option sorry | 18:20 |
lkcl | -d ${2}:0x900000:128 \ | 18:20 |
lkcl | the ${2} occurs there again | 18:20 |
lkcl | so that must be the output which is compared against in the cmp ${2} | 18:20 |
lkcl | follow the trail follow the trail | 18:20 |
lkcl | chain chain chain chain | 18:21 |
ghostmansd[m] | lkcl, I assumed you ran all tests :-) | 21:08 |
ghostmansd[m] | I mean, the only reason I merged it to master is because we had this long iteration where you ran tests and Ionly rebased this branch | 21:09 |
ghostmansd[m] | I'll re-check it next time, I simply assumed you checked them all... | 21:10 |
ghostmansd[m] | I'd have used CUSTOM_INSNS["sv."] = sv (with sv being a function which does the remap). | 21:12 |
ghostmansd[m] | But this is for the later operation. | 21:12 |
ghostmansd[m] | Still. Which is a full set of tests which cover changes in svp64.py? | 21:13 |
octavius | Meeting in 25min lkcl, programmerjake, ghostmansd, cesar, toshywoshy | 21:35 |
ghostmansd[m] | I won't be able to attend today. | 22:08 |
ghostmansd[m] | Also, how comes? I thought there are meetings on Tuesday and Thursday. | 22:09 |
octavius | Tuesday every week is the informal one | 22:10 |
octavius | Wednesday every two weeks is the OpenPOW related one | 22:10 |
octavius | Oh yeah, I keep forgetting your timezone | 22:10 |
octavius | it is Tuesday and Thursday for you | 22:10 |
programmerjake | uuh, they're 24hr apart, so it would be wed and thu, you couldn't get 2 days apart unless your timezone changed in between | 22:35 |
octavius | Oh yeah, you're right jake | 22:36 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!