Friday, 2022-12-02

*** tpb <[email protected]> has joined #litex00:00
*** SafeMode <[email protected]> has quit IRC (Ping timeout: 260 seconds)00:25
*** zjason` is now known as zjason02:17
*** Degi <[email protected]> has quit IRC (Ping timeout: 252 seconds)03:05
*** Degi <[email protected]> has joined #litex03:06
MoeIcenowysomlo: I am only talking about the hardware port, which is "the actual hardware"06:00
MoeIcenowyI know about the way Rocket DRAM port works06:00
MoeIcenowythe "actual hardware" decides how wide LiteDRAM native port is06:01
MoeIcenowyfor 7-series with DDR3, the LiteDRAM native port width is the DRAM bus width * 806:01
MoeIcenowythe DRAM bus width is the number of DQ lines06:02
MoeIcenowyfor dual rank, it's not related to DRAM bus width, but it's adding another group of DRAM chips that share most signal ipns06:02
MoeIcenowypins *06:02
MoeIcenowythe only pins related to dual rank here is ~CS, CKE, CLK_{p,n} and ODT06:03
MoeIcenowyyou can see the platform definition of STLV7325, it's currently configured as 64-bit width with single rank, the dual rank pins are comments06:03
*** FabM <[email protected]> has joined #litex07:55
_florent_somlo: Switching to dual rank should not increase the controller's data_width, it should only affect the addressable size (and internally the doubling the number of banks). 08:29
_florent_somlo: If you confirm you see the data_width increasing, I would need to have a look because this is not expected 08:30
_florent_somlo: BTW, for now LiteX we are limiting the mapped DRAM region to 1GB in the SoC. The reason is that we are limited to 4GB with a 32-bit bus and would need to re-arrange some internal mapping to allow more. We could also probably increase address width with 64-bit processors and remove this limitation.08:33
_florent_somlo: That's probably not that complex to do, but still needs to be done :)08:34
somlo_florent_: if I apply https://github.com/litex-hub/litex-boards/pull/457 and then build with `litex-boards/litex_boards/targets/xilinx_vc707.py --build --cpu-type rocket --cpu-variant fulld --sys-clk-freq 50e6 --csr-csv ./csr.csv`, I get LiteDRAM port.datawidth = 512 here: https://github.com/enjoy-digital/litex/blob/master/litex/soc/integration/soc.py#L153110:19
somloand `memory_region,main_ram,0x80000000,2147483648,cached` in csr.csv, which is 2GB unless I screwed up my arithmetic :)10:20
somlobtw I ordered a MT8KTF51264HZ-1G9 so once it shows up I can run actual tests (and, with any luck, invest some time in understanding LiteDRAM a bit better :)10:22
somlo_florent_: I'm thinking it might be worth reporting the cpu membus and LiteDRAM port with in the vicinity of https://github.com/enjoy-digital/litex/blob/master/litex/soc/integration/soc.py#L1531 (I added my own brute-force `print()` statement for this experiment)10:26
somlooverall, I'm *very* interested in supporting 2GB+ main_ram (I really want to run a full yosys/trellis/nextpnr flow to build ecp5 bitstream for litex+rocket, *on* litex+rocket :)10:28
MoeIcenowymaybe I should also try to buy a bigger SODIMM for my STLV7325 ;-)10:28
MoeIcenowysomlo: the DRAM size is calculated with DQ width, rank number, bank group number (not available for DDR3), bank number (fixed at 8 for DDR3), column address width, row address width10:32
MoeIcenowycolumn address width and row address width is decided by the chip selected in litex_boards.targets.XXX10:32
somlohuh, maybe I should try and get an STLV7325 board10:32
MoeIcenowysomlo: you do not need to get one10:33
MoeIcenowyVC707 is better than it on everything.10:33
MoeIcenowywell, maybe the only downside is much more expensive price10:33
MoeIcenowysomlo: in fact you can try to revert your change on ~CS, CLK, CKE, ODT pins, and keep DM/DQ/DQS changes10:34
MoeIcenowyand you will get a single-rank 64-bit width setup10:34
somloyeah, I did *not* tinker with the chip model in the target file, all I did was add the "missing" pins -- like I said, I haven't studied LiteDRAM's internals too closely yet...10:34
MoeIcenowySODIMMs are by specification 64-bit, although 32-bit SODIMMs exist as unstandard things10:35
MoeIcenowyso I think using 64-bit width should be safe on VC707 unless special SODIMMs are used10:35
MoeIcenowywell I don't know how LiteDRAM perform on ranks too10:35
MoeIcenowybecause my STLV7325 is also "dual-rank capable board shipped with single-rank SODIMM"10:36
MoeIcenowystrange, S7DDRPHY module will calculate nranks based on cs_n pin count, so if you add one more pin to it dual rank should be enabled10:37
MoeIcenowy(and if your SODIMM is single rank it WILL fail10:38
MoeIcenowyand enabling both 64-bit width and dual rank should quadruple the memory capacity instead of double it10:39
MoeIcenowyalthough the main LiteX bone seems to be not ready for big memory10:39
MoeIcenowy(but Rocket can access more memory, not via the main LiteX bus10:39
MoeIcenowyP.S. Sitlinv seems to prefer SODIMMs10:43
MoeIcenowynearly all their boards have SODIMMs10:44
MoeIcenowyeven their Cyclone IV boards have DDR2 SODIMM slots10:44
MoeIcenowy(part of A-E115FB, but no DDR2 PHY is available in LiteDRAM for Altera yet10:44
*** SafeMode <[email protected]> has joined #litex15:16
*** SafeMode_ <[email protected]> has joined #litex15:37
*** SafeMode <[email protected]> has quit IRC (Ping timeout: 248 seconds)15:40
*** SafeMode_ <[email protected]> has quit IRC (Remote host closed the connection)16:27
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Quit: Leaving)16:28
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has joined #litex19:56
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has quit IRC (Ping timeout: 265 seconds)19:58
*** peeps <peeps!~peepsalot@openscad/peepsalot> has joined #litex20:03
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has quit IRC (Ping timeout: 268 seconds)20:05

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