Tuesday, 2019-10-29

*** tpb has joined #litex00:00
*** futarisIRCcloud has joined #litex02:34
bonzibuddyhey gurus - im pluggin along, trying to get more utilities in my rootfs, but every time i customize the config the system hangs on 'waiting on /dev/ram0...'03:43
bonzibuddymy hypothesis is that im trying to upload an image too big for the mem area?  still need to confirm that. hoping someone's worked around this one before03:43
bonzibuddycustomize the buildroot config & upload via lxterm***03:46
futarisIRCcloudbonzibuddy: What's the size of your ramdisk in .config and the image size?04:57
*** freemint has quit IRC05:43
*** _whitelogger has quit IRC06:12
*** _whitelogger has joined #litex06:15
*** Guest124578 has joined #litex08:57
*** freemint has joined #litex09:16
*** Guest124578 has quit IRC09:28
*** Guest124578 has joined #litex09:31
Guest124578Hi,09:32
*** Guest124578 has quit IRC09:32
*** pc_inside has joined #litex09:35
*** pc_inside has quit IRC10:00
*** hello_pico has joined #litex10:07
hello_picoMaybe a silly question : is it possible to make a Vivado project manually which would be similar to what LiteX scripts do ? (I was expecting for a simpier code when looking at the Verilog generated by LiteX)10:09
*** hello_pico has quit IRC10:49
*** CarlFK has quit IRC12:52
somlo_florent_, daveshah: the litedram native port width on the trellisboard is indeed 256, so I'm inclined to bump the hard-coded mem_axi width on Rocket to 256, and downconvert for boards with narrower litedram ports (e.g., ecp5versa at 128, nexys4ddr at 64) but use full unimpeded width where available16:36
bonzibuddyfutarisIRCcloud: i'll check that this evening, that's likely the issue16:43
somlodaveshah: trying to build litex+rocket for the trellisboard, and I usually get to 60MHz easily (no need for -nowidelut, plenty of room), but consistently fail to meet the 125MHz for '$glbnet$eth_clocks_rx' (getting in the neighborhood of 115MHz, typically)18:50
daveshahInteresting18:51
daveshahPossibly the larger chip makes placement worse18:51
daveshahor just different Ethernet pin placement or something18:51
daveshahI haven't noticed this with VexRiscv when I've tried previously though18:52
somloI am now trying with a lower (55MHz) cpu clock, to see if that has some second-order effect on the ethernet timing18:54
somlobut I'm just basically throwing rocks at it :)18:54
somloif that doesn't immediately make a difference, I'm just going to let it loop18:54
somlonot sure if it's worth trying with the "unmet" ethernet fmax, using --timing-allow-fail18:55
daveshahYes, definitely18:55
daveshahAnother thought is to remove abc9. I think I've seen it reduce Ethernet Fmax in the pat18:56
daveshah*past18:56
somlook, forgot about abc9, thanks for that.18:58
daveshahHmm, looking into this myself and I got 124.63MHz on a first try19:14
somloyeah, it's all probabilistic... asked for 58MHz, got 62.60 for main, 128.55 for eth... Wish I'd just asked for 60 like earlier :)19:14
somloI want to get to the good bits, where I use an unhindered point-to-point 256bit axi channel between litedram and the rocket chip :)19:16
somlofind out what that does for my benchmark measurements...19:16
somlodaveshah: any plans to add a trellisboard.cfg to /usr/share/trellis/misc/openocd (in prjtrellis) ?19:18
somlohmmm... memory initialization failed (https://imgur.com/a/QMsxij4)19:22
tpbTitle: Imgur: The magic of the Internet (at imgur.com)19:22
daveshahDone, I wasn't expecting anyone else to build one...19:22
daveshahAh, that's not so good19:23
daveshahThe board I have seemed fine, maybe try another board?19:23
somloso you think this is a hardware error, then19:23
daveshahProbably, could be the litedram change of course19:24
daveshahI'm also not sure if I've ever tested the trellisboard at frequencies other than 75MHz19:24
somlooh, so when it worked for you it was vexriscv, not rocket?19:24
daveshahYeah19:24
somloI should try that before I toss this one in the bin as "bad" :)19:24
daveshahCan you give me the bitstream? I can test it here19:24
daveshahDefinitely don't bin it whatever - the FPGA is alright which is what really matters19:25
somlostand by...19:25
somlodaveshah: mirror.ini.cmu.edu/top.svf19:26
somlohttp, that is...19:27
daveshahWorks fine on the board you sent me19:27
daveshahhttps://www.irccloud.com/pastebin/Umb3BfTC/19:27
tpbTitle: Snippet | IRCCloud (at www.irccloud.com)19:27
somlowell, that makes me happy and sad, at the same time :D19:28
somlothanks for checking!19:28
daveshahHang on, hitting reset a couple of times I hit a failure like yours too19:29
daveshahMaybe something is just a bit marginal19:29
somlomaybe the clock is too low...19:29
somlolet me kick it a few times on this end, see what happens19:29
*** Dolu has quit IRC19:30
somlowell, this one fails pretty consistently. Do you have a vexriscv bitstream I could just shove at it?19:33
daveshahhttps://usercontent.irccloud-cdn.com/file/Z3TLRh6j/top.svf19:35
daveshahThis one is pretty old but has always been reliable19:35
daveshahFWIW, there seems to be some hardware variation too. On the other board you sent me, and a board from my own batch; the bitstream you sent seems to work 100% of the time19:35
somloha19:36
somlo"memtest ok" \o/19:36
daveshahnote there are two ways to try a reset - reloading the svf or pressing SW2, might be a difference between the two19:36
daveshahInteresting19:36
daveshahPossibly something a bit marginal in the controller then19:37
somlogets wobbly when the main clock gets too low19:37
daveshahTweaking the +1 and +2 to either +0 and +1 or +2 and +3 might increase reliability19:38
daveshahhttps://github.com/enjoy-digital/litedram/blob/master/litedram/phy/ecp5ddrphy.py#L44219:38
tpbTitle: litedram/ecp5ddrphy.py at master · enjoy-digital/litedram · GitHub (at github.com)19:38
daveshahOr, just trying a different board...19:39
somloI'm not physically close to my stash of alternative boards, so I'll try the hacks first, see what shakes loose...19:43
somlodaveshah: just for a sanity check: my reset switch is the leftmost of the group of four; if I hit the "standalone" one on the left of the board, I have to reload the svf19:45
daveshahYes, that's right19:45
somlocan't read the labels on the pcb, my glasses are "tuned" for 20-inch focal distance, i.e. my computer monitor :D19:46
somloit *never* fails at 75MHz with the vexriscv bitstream19:47
daveshahYeah, I've never had issues with that bitstream or any other 75MHz bitstream on any board19:47
daveshahOTOH, the same PHY works fine at 55MHz or 60MHz on a Versa19:48
somloyeah, rocket seems happy on a versa anywhere north of 55MHz19:52
daveshahBut, different PCB layouts, double chips might mean longer routing and less margin, ...19:53
daveshahLet me just try a new 75MHz vex bitstream to make sure it isn't a regression19:54
somlook, in the mean time I'll try getting a proper 60MHz rocket bitstream, maybe more if I turn off abc9...19:55
daveshahNew 75MHz bitstream seems fine too19:56
daveshahhttps://usercontent.irccloud-cdn.com/file/0bUEcrdL/top.svf19:57
somloseems to pass memtest for me as well (there's a weird delay before I get the "ok" prompt, and "no boot medium found", but it *is* "memtest ok" nonetheless, each time I kick it...19:59
daveshahThat's because picorv32 is slow :)?19:59
daveshahI was alarmed by it too at first20:00
somlook, so I'll try to figure out how far I can tweak fmax and the litedram cl_sys_latency offsets20:00
daveshah65MHz seems alright here too, but that might be a bit ambitious for Rocket20:01
daveshahseems to be 60MHz where it fails20:01
daveshahAs it seems to either work or not (either a lot of failures or none at all, never just one or two failures), it might be a problem with the startup FSM20:04
daveshahhttps://github.com/enjoy-digital/litedram/blob/master/litedram/phy/ecp5ddrphy.py#L56 is another magic number (probably to increase)20:04
tpbTitle: litedram/ecp5ddrphy.py at master · enjoy-digital/litedram · GitHub (at github.com)20:04
somloof course, if any of that tweaking actually turns out to help in a reliable way, we'd have to regression test on the versa, to make sure the modifications aren't mutualy exclusive between the two boards...20:08
daveshahYes, this is very true20:08
daveshahCan you try this bitstream on your board (58MHz, with t=12)? https://usercontent.irccloud-cdn.com/file/vBj3EH7I/top_58M_t12.svf20:14
somlofailed: https://imgur.com/a/IkSYy3V20:22
tpbTitle: Imgur: The magic of the Internet (at imgur.com)20:22
daveshahHmm, no idea then20:24
somlowas this with a modified 't' (guessing s/8/12/) in ecp5ddrphy.py line #56 ?20:26
somloI'll eventually work my way up to trying the offsets on line #442, but I'm hoping I can push fmax a few MHz above 60, into "maybe works most of the time" territory :)20:28
daveshahYup20:28
daveshahYou could try an even higher 't' perhaps, it definitely improved reliability for me20:28
*** Dolu has joined #litex20:47
*** futarisIRCcloud has quit IRC20:54
somlodaveshah: used --timing-allow-fail, requested 65MHz, officially got 57, passed the ethernet clock timing21:00
somlorunning it at 65MHz now, booted linux just fine21:00
daveshahNice21:00
somlonot sure whether *not* using abc9 helped, I'd have to test that a bit more thoroughly (right now I've been haphazardly trying whatever sticks)21:01
*** futarisIRCcloud has joined #litex21:01
somloif that turns out to matter, I'll make it an optional build flag rather than a hardcoded thing21:01
*** Dolu has quit IRC21:49
*** futarisIRCcloud has quit IRC23:04
*** futarisIRCcloud has joined #litex23:05
*** Dolu has joined #litex23:37
*** Dolu has quit IRC23:46
*** freemint has quit IRC23:53

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!