Tuesday, 2019-11-12

*** tpb has joined #litex00:00
*** ambro718 has quit IRC00:05
*** freemint has joined #litex00:34
*** freemint has quit IRC00:39
*** freemint has joined #litex02:28
*** freemint has quit IRC02:33
*** freemint has joined #litex03:00
*** freemint has quit IRC03:05
*** freemint has joined #litex04:17
*** freemint has quit IRC04:21
*** freemint has joined #litex04:23
*** freemint has quit IRC04:28
*** CarlFK has quit IRC05:48
*** _whitelogger has quit IRC11:09
*** _whitelogger has joined #litex11:12
*** freemint has joined #litex11:50
*** rohitksingh has quit IRC12:20
*** freemint has quit IRC12:26
*** freemint has joined #litex12:27
*** rohitksingh has joined #litex12:36
*** synaption[m] has quit IRC12:39
*** xobs has quit IRC12:39
*** john_k[m] has quit IRC12:39
*** nrossi has quit IRC12:39
*** xobs has joined #litex13:25
*** synaption[m] has joined #litex13:26
*** nrossi has joined #litex13:26
*** john_k[m] has joined #litex13:26
somlo_florent_: why does having a csr_data_width != 8 break SDRAM initialization? (https://github.com/enjoy-digital/litex/blob/master/litex/soc/integration/soc_sdram.py#L33)13:26
tpbTitle: litex/soc_sdram.py at master · enjoy-digital/litex · GitHub (at github.com)13:26
somlois it because mmio writes to the registers involved takes a different number of clock cycles, now that they're wider and one doesn't have to string bits together across multiple registers?13:27
somloor is there something else involved that I'm missing?13:27
*** rohitksingh has quit IRC13:32
somlo_florent_: interesting, if I set csr_data_width to 32 bits on litex+rocket, memtest passes (if I also comment out the NotImplementedError line in soc_sdram)15:22
somloit fails if csr_data_width is 64 (at least with the trellisboard)15:25
somlohmm, still digging for clues, but maybe the limit on csr_data_width is imposed by the data width of the wishbone bus the CSRs are attached to ?15:48
*** scanakci has quit IRC16:03
*** CarlFK has joined #litex17:09
*** freeemint has joined #litex17:09
*** ambro718 has joined #litex17:09
somlomeh, with csr_data_width 32 it fails consistently on the nexys4ddr, so there's still likely some sort of timing component, back to digging through sources for clues :)17:10
*** freemint has quit IRC17:11
_florent_somlo: ah, i forgot about that yesterday. There is indeed a current limitation in the sdram initialization code for the csr_data_width, it's hardcoded for csr_data_width=817:26
_florent_somlo: that's something i want to remove but haven't spent time on it17:27
somlo_florent_: so it kinda-sorta works on *some* boards, *some* of the time, with data-width 32 (i.e., trellis, with the rocket-chip)17:30
somlowhich intuitively feels like a timing problem (i.e., how many clock cycles we must spend waiting before transitioning to a specific next state in the initialization FSM)17:32
somlowhich I haven't yet spent serious enough effort to actually understand, so I may be completely wrong :)17:32
_florent_somlo: i don't think it's a timing problem, but just some harcoded write/read that assume a csr_data_width of 817:40
_florent_somlo: if it's working with csr_data_width != 8, it's probably that last configuration applied for the training is working and that you are lucky :)17:42
somlothe thing that spreads (or collects) wider registers across multiple 8-bit chunks maybe ?17:42
_florent_that's only related to the software17:51
somlo_florent_: is it? The way I understand it, "registers" of more than csr_data_width are split up and placed at (32 or 64 bit) aligned locations, in chunks of csr_data_width (8bit currently)18:15
somloand it's both the software and the gateware that have to "spread out" and "collect" those registers, from the two sides of the "csr interface"18:15
somloso, there might be a parameterization bug where the scattering and gathering fails somehow, either on the software side, or on the gateware side18:16
_florent_somlo: yes, but the gateware should be fine regarding that (ie no harcoded things), it's the software in sdram.c that is doing some assumptions18:16
somloas you can tell, I have a rather "zoomed out", high-level understanding18:16
somlooh, so basically somewhere in bios/sdram.c, and/or the generated csr.h and sdram_phy.h, then18:17
_florent_somlo: i'm using csr_data_width=32 on very various designs, so i'm pretty sure it's only a software limitation in sdram.c18:19
somlo_florent_: good to know, thanks! I was looking at the generated headers, and the various read/write methods look like they're doing the right thing18:23
_florent_somlo: i think it could be related to the way access sdram_dfii_pix_wrdata_addr/sdram_dfii_pix_rddata_addr18:32
somlooh, I remember running into the MMPTR() macro when first getting 64bit rocket to work :)18:41
*** scanakci has joined #litex18:51
*** Dolu has quit IRC20:09
*** rohitksingh has joined #litex20:14
*** Finde has quit IRC20:19
*** Finde has joined #litex20:20
*** CarlFK has quit IRC21:15
*** CarlFK has joined #litex21:19
*** Dolu has joined #litex22:17
*** freeemint has quit IRC22:33
*** freeemint has joined #litex22:33
*** freemint__ has joined #litex23:31
*** freeemint has quit IRC23:31

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