Wednesday, 2021-11-03

*** lkcl <lkcl!lkcl@we.will.rock.you.bnc4you.xyz> has quit IRC00:28
openpowerbot[slack] <Matt Johnston> with default `LINE_SIZE` 128 I see bad stores at 128 byte intervals. reducing `LINE_SIZE` to 32 or 16 I see bad stores at 64 byte intervals. so it seems to be related to litedram or the wrapper00:50
openpowerbot[slack] <Jeremy Kerr> @Matt Johnston what do you mean by intervals there? sucessive loads would succeed up to the next $interval offset?01:24
openpowerbot[slack] <Matt Johnston> I'm doing load/store `0x40500000`, `0x40500001` , `0x40500002` etc. `0x40500000` doesn't store, then it's correct until `0x40500040` fails, then `0x40500080` fails01:26
openpowerbot[slack] <Matt Johnston> (that's the 64 byte interval failing)01:26
openpowerbot[slack] <Matt Johnston> I'm doing store/load `0x40500000`, `0x40500001` , `0x40500002` etc. `0x40500000` doesn't store, then it's correct until `0x40500040` fails, then `0x40500080` fails01:28
openpowerbot[slack] <Jeremy Kerr> ok, makes sense01:30
*** lkcl <lkcl!lkcl@we.will.rock.you.bnc4you.xyz> has joined #microwatt02:36
*** toshywoshy <toshywoshy!~toshywosh@ptr-377wf33o3bnthuddmycb.18120a2.ip6.access.telenet.be> has quit IRC04:01
*** toshywoshy <toshywoshy!~toshywosh@ptr-377wf33o3bnthuddmycb.18120a2.ip6.access.telenet.be> has joined #microwatt04:01
*** openpowerbot <openpowerbot!~openpower@94-226-186-169.access.telenet.be> has quit IRC04:02
*** openpowerbot <openpowerbot!~openpower@94-226-186-169.access.telenet.be> has joined #microwatt04:03
openpowerbot[slack] <Paul Mackerras> @Matt Johnston do you have a little stand-alone test case that shows the problem, which we could run in core_tb for instance?06:25
openpowerbot[slack] <Matt Johnston> yep, let me just tidy it up06:25
openpowerbot[slack] <Matt Johnston> @Paul Mackerras https://matt.ucc.asn.au/files/dud_store-2c713cd5a.tar.gz  or https://github.com/mkj/microwatt/tree/matt/dud_store/dud_store06:56
openpowerbot[slack] <Matt Johnston> https://github.com/mkj/microwatt/blob/matt/dud_store/dud_store/dudstdio_asm.s#L41 is the test06:57
openpowerbot[slack] <Matt Johnston> for reference I get incorrect output of07:01
openpowerbot[slack] <Matt Johnston> ```+99-+00-+89-+00-+00-+01-+01-+02-+02-+03-+03-+04-+04-+05-+05-+06-+06-+07-+07-+08-+08-+09-+09-+0a-+0a-+0b-+0b-+0c-+0c-+0d-+0d-+0e-+0e-+0f-+0f-07:01
openpowerbot[slack] <Matt Johnston>      ^here07:01
openpowerbot[slack] <Matt Johnston> +10-+10-+11-+11-+12-+12-+13-+13-+14-+14-+15-+15-+16-+16-+17-+17-+18-+18-+19-+19-+1a-+1a-+1b-+1b-+1c-+1c-+1d-+1d-+1e-+1e-+1f-+1f-+20-+20-+21-07:01
openpowerbot[slack] <Matt Johnston> +21-+22-+22-+23-+23-+24-+24-+25-+25-+26-+26-+27-+27-+28-+28-+29-+29-+2a-+2a-+2b-+2b-+2c-+2c-+2d-+2d-+2e-+2e-+2f-+2f-+30-+30-+31-+31-+32-+32-07:01
openpowerbot[slack] <Matt Johnston> +33-+33-+34-+34-+35-+35-+36-+36-+37-+37-+38-+38-+39-+39-+3a-+3a-+3b-+3b-+3c-+3c-+3d-+3d-+3e-+3e-+3f-+3f-+40-+00-+41-+41-+42-+42-+43-+43 ....etc07:01
openpowerbot[slack] <Matt Johnston>                                                                                                              ^here```07:01
openpowerbot[mattermost] <lkcl> matt: did you check that microwatt load/store itself is not the source of the problem by trying with l2_size = 0?09:39
openpowerbot[mattermost] <lkcl> that will eliminate the L2 cache entirely in litex09:40
openpowerbot[mattermost] <lkcl> and, running under sim.py will eliminate litedram.09:40
openpowerbot[slack] <Matt Johnston> lkcl: it's using microwatt's litedram-wrapper-l2, not a simple way to avoid that09:41
openpowerbot[mattermost] <lkcl> otherwise, of course, you have 4 unknowns, any one of which could be the contributor...09:41
openpowerbot[mattermost] <lkcl> ah09:41
openpowerbot[mattermost] <lkcl> then you may be interested to know that the setup in libre-soc completely bypassed that. let me find the source...09:41
openpowerbot[mattermost] <lkcl> https://git.libre-soc.org/?p=libresoc-litex.git;a=blob;f=sim.py;hb=HEAD09:42
openpowerbot[mattermost] <lkcl> https://git.libre-soc.org/?p=libresoc-litex.git;a=blob;f=microwatt/core.py;hb=HEAD09:42
openpowerbot[mattermost] <lkcl> that's an older version, may (almost certainly will) need updating09:43
openpowerbot[mattermost] <lkcl> you should however be able to use it to *directly* connect the microwatt core to a (simulated) memory, no L2 cache09:43
openpowerbot[mattermost] <lkcl> which will eliminate 2 out of 4 of the unknowns.09:44
openpowerbot[mattermost] <lkcl> hth09:44
openpowerbot[slack] <Matt Johnston> hm09:44
openpowerbot[slack] <Matt Johnston> I'm not quite sure where the size of 64 bytes is coming from. seems like it's probably related to litedram parameters09:45
openpowerbot[mattermost] <lkcl> if Paul's fixed the Wishbone issues (3 extra zeros) then at lines 75 and 87 you'll need to remove the Signal(3)09:45
openpowerbot[mattermost] <lkcl> and bump up the adr_width at lines 51 and 52 to 32-bit09:46
openpowerbot[slack] <Matt Johnston> I'll have a look, thanks09:47
openpowerbot[slack] <Benjamin Herrenschmidt> 64 bytes smells like litedram19:55

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