Friday, 2022-02-04

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 stop08:58
openpowerbot_[slack] <Matt Johnston>         stopped_out <= '0';08:58
openpowerbot_[slack] <Matt Johnston>         if stop_mark_in = '1' and v_int.outstanding = 0 then08: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 reason12: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 then12:14
openpowerbot_[mattermost] <lkcl>                 -- generate a floating-point unavailable interrupt12: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 vector12: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 dmi12: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 instruction12: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 operation12: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 week12:49
openpowerbot_[mattermost] <lkcl> oh that's intriguing, i'm using DMI-debug fine at the moment12:49
openpowerbot_[mattermost] <lkcl> b12:49
openpowerbot_[mattermost] <lkcl> but it's on an older version12:49
openpowerbot_[mattermost] <lkcl> https://git.libre-soc.org/?p=libresoc-litex.git;a=blob;f=sim.py;h=44fcf1b5da8936dc254d39fc740a6ee2d17b17d9;hb=8d0df76b5f5afa39167889bb49ef7bec22590f95#l24312:49
openpowerbot_[mattermost] <lkcl> that's sim not fpga12: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 regression12:51
openpowerbot_[slack] <Matt Johnston> ok. will have a look what might be related to that12:51
openpowerbot_[mattermost] <lkcl> DMI-debug-and-single-step is how i got perfect instruction-for-instruction compatibility with microwatt12:51
* openpowerbot_ [mattermost] <lkcl> compiling currently for arty-a7-100t using symbiflow15:35
openpowerbot_[mattermost] <lkcl> routing does not complete, hmm, too high resource utilisation, hmm16:22
* openpowerbot_ [mattermost] <lkcl> trying symbiflow buildin microwatt17: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 death18: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/!