openpowerbot_ | [slack] <Matt Johnston> hrm. `mw_debug stop` doen't work so well if it's stuck in exception loops, alternating between NIA 700 and 800ish. I guess `v_int.outstanding` stays set. | 08:58 |
---|---|---|
openpowerbot_ | [slack] <Matt Johnston> ``` -- Handle debugger stop | 08:58 |
openpowerbot_ | [slack] <Matt Johnston> stopped_out <= '0'; | 08:58 |
openpowerbot_ | [slack] <Matt Johnston> if stop_mark_in = '1' and v_int.outstanding = 0 then | 08:58 |
openpowerbot_ | [slack] <Matt Johnston> stopped_out <= '1'; | 08:58 |
openpowerbot_ | [slack] <Matt Johnston> end if;``` | 08:58 |
openpowerbot_ | [mattermost] <lkcl> intriguing. what's the instruction at 0x700? it shouldn't jump to 0x800 without a reason | 12:13 |
openpowerbot_ | [mattermost] <lkcl> (might be helpful to know, for a repro case / regression test) | 12:13 |
openpowerbot_ | [mattermost] <lkcl> elsif HAS_FPU and ctrl.msr(MSR_FP) = '0' and e_in.fac = FPU then | 12:14 |
openpowerbot_ | [mattermost] <lkcl> -- generate a floating-point unavailable interrupt | 12:14 |
openpowerbot_ | [mattermost] <lkcl> exception := '1'; | 12:14 |
openpowerbot_ | [mattermost] <lkcl> v.e.intr_vec := 16#800#; | 12:14 |
openpowerbot_ | [mattermost] <lkcl> so that says that the instruction at 0x700 _should_ be an FP instruction - e_in.fac(ility) is FPU - (but that MSR.FP happens to be set to zero) | 12:17 |
openpowerbot_ | [slack] <Benjamin Herrenschmidt> That's typical of garbage at the exception vector | 12:34 |
openpowerbot_ | [mattermost] <lkcl> deep joy :) | 12:44 |
openpowerbot_ | [mattermost] <lkcl> well at least it provides a potential opcode for a repro case that'll trigger it 100% | 12:45 |
openpowerbot_ | [slack] <Matt Johnston> yeah, there's garbage there, the litedram build was wrong. but I was hoping to use dmi to load a fixup firmware and creset; start; via dmi | 12:45 |
openpowerbot_ | [mattermost] <lkcl> btw this is one of the reasons why in Libre-SOC that exceptions are not treated as exceptions, they're treated as an actual instruction | 12:45 |
openpowerbot_ | [mattermost] <lkcl> PowerDecode2 actually goes, "oh you had an exception, let me fill in the fields for an OP_TRAP and pretend it was a type-of-trap-instruction" | 12:46 |
openpowerbot_ | [mattermost] <lkcl> and then "stop" will actually stop, because it's "just another instruction" | 12:47 |
openpowerbot_ | [mattermost] <lkcl> Matt: can the processor be put into "stop" mode at actual startup time? | 12:48 |
openpowerbot_ | [slack] <Matt Johnston> was about to mention, after further investigation it didn't ever seem to get to "stopped" even in good operation | 12:48 |
openpowerbot_ | [mattermost] <lkcl> that would give you time to do the fixup and then let it continue (even with the...) | 12:48 |
openpowerbot_ | [slack] <Matt Johnston> will have to look a bit closer what's going on next week | 12:49 |
openpowerbot_ | [mattermost] <lkcl> oh that's intriguing, i'm using DMI-debug fine at the moment | 12:49 |
openpowerbot_ | [mattermost] <lkcl> b | 12:49 |
openpowerbot_ | [mattermost] <lkcl> but it's on an older version | 12:49 |
openpowerbot_ | [mattermost] <lkcl> https://git.libre-soc.org/?p=libresoc-litex.git;a=blob;f=sim.py;h=44fcf1b5da8936dc254d39fc740a6ee2d17b17d9;hb=8d0df76b5f5afa39167889bb49ef7bec22590f95#l243 | 12:49 |
openpowerbot_ | [mattermost] <lkcl> that's sim not fpga | 12:49 |
openpowerbot_ | [mattermost] <lkcl> but the version of microwatt.v i am using is... almost 12 months old (i think) | 12:50 |
openpowerbot_ | [mattermost] <lkcl> so if you're seeing no response to "stop" then that's defintitely a regression | 12:51 |
openpowerbot_ | [slack] <Matt Johnston> ok. will have a look what might be related to that | 12:51 |
openpowerbot_ | [mattermost] <lkcl> DMI-debug-and-single-step is how i got perfect instruction-for-instruction compatibility with microwatt | 12:51 |
* openpowerbot_ [mattermost] <lkcl> compiling currently for arty-a7-100t using symbiflow | 15:35 | |
openpowerbot_ | [mattermost] <lkcl> routing does not complete, hmm, too high resource utilisation, hmm | 16:22 |
* openpowerbot_ [mattermost] <lkcl> trying symbiflow buildin microwatt | 17:18 | |
openpowerbot_ | [mattermost] <lkcl> nope. wow, holy cow. 25 gb resident memory in vtr (the router program used by symbiflow) | 18:40 |
openpowerbot_ | [mattermost] <lkcl> i suspect, again, that's down to L1 cache memory not being correctly identified as BRAM. | 18:41 |
openpowerbot_ | [mattermost] <lkcl> had to stop it before it thrashed my laptop - which has *64 gbyte* of memory - to death | 18:41 |
openpowerbot_ | [mattermost] <lkcl> could i ask a favour, could someone else try compiling microwatt with symbiflow for the arty a7-100t? | 23:41 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!