Commit Graph

1304 Commits

Author SHA1 Message Date
Florent Kermarrec 6a80773bc8 init: Simplify SDRAM_PHY_MODULES define: this is just SDRAM_PHY_DATABITS/8. 2021-04-23 09:05:32 +02:00
Florent Kermarrec 103534d0e8 init: Enable DQ-DQS training on 7-Series (except Artix7) and Ultrascale. 2021-04-22 18:34:18 +02:00
Florent Kermarrec 3f4b6f661c init: Cleanup PHY lists in capabilities. 2021-04-22 17:38:14 +02:00
enjoy-digital fda8689142
Merge pull request #244 from antmicro/jboc/dq-dqs-training
Add DQ-DQS training for LPDDR4 PHY
2021-04-22 17:28:10 +02:00
Florent Kermarrec 6256031d51 bench: Update build directories and add rst in CRG (triggered on CPU reboot). 2021-04-22 14:57:13 +02:00
Florent Kermarrec c2a779df46 bench: Update test targets (add_csr no longer required). 2021-04-19 13:40:17 +02:00
Jędrzej Boczar ebaf63479d init/lpddr4: modify pull-down drive strength to improve signal quality 2021-04-16 15:35:35 +02:00
Jędrzej Boczar 98f2f24e20 init: enable DQ-DQS training for LPDDR4 PHYs with output delays 2021-04-16 15:12:44 +02:00
enjoy-digital 26c9f82c1b
Merge pull request #236 from jersey99/master
modules.py: Add MT41J256M8 (Passes mem_test on HW @ sys4x=500MHz, vex…
2021-04-01 19:00:51 +02:00
enjoy-digital e898507409
Merge pull request #242 from antmicro/jboc/lpddr4-copyrights
lpddr4: add missing copyright comments
2021-04-01 19:00:15 +02:00
enjoy-digital 172add8dfc
Merge pull request #240 from antmicro/jboc/lpddr4
lpddr4: add a local README with a summary of the code
2021-04-01 18:54:42 +02:00
enjoy-digital 478157560f
Merge pull request #241 from antmicro/jboc/lpddr4-init-fix
Fix Python header generation for LPDDR4
2021-04-01 18:53:38 +02:00
Jędrzej Boczar 7028944acd lpddr4: add missing copyright comments 2021-04-01 10:07:02 +02:00
Jędrzej Boczar c12e832bcb init: fix python header generation
With the previous code lines included python variable names instead of integers, e.g.
("ZQ Calibration start", MPC.ZQC_START, SpecialCmd.MPC, dfii_command_we|dfii_command_cs, 200)
which failed as these names were not being imported.
2021-03-31 15:58:43 +02:00
Jędrzej Boczar 13db84ceb5 lpddr4: add a local README with a summary of the code 2021-03-31 12:51:34 +02:00
enjoy-digital 996d0add26
Merge pull request #224 from antmicro/jboc/lpddr4
Add LPDDR4 PHY
2021-03-31 09:35:06 +02:00
enjoy-digital f5e7c39776
Merge pull request #238 from antmicro/jboc/refresh-all-banks
core/refresher: use A10=1 for an all-banks REF
2021-03-31 08:50:25 +02:00
enjoy-digital df2a06584b
Merge pull request #237 from antmicro/jboc/dfii-bankbits
core: use wider DFI address/bank if PHY requires it
2021-03-31 08:48:32 +02:00
Florent Kermarrec 04334ae141 phy/s7ddrphy/usddrphy: Use explicit sys clock domain on ClockSignal/ResetSignal.
Improve readability.
2021-03-30 08:51:44 +02:00
Florent Kermarrec 5cd192a708 bench: Remove soc_sdram import (No longer useful and deprecated). 2021-03-30 08:49:54 +02:00
Jędrzej Boczar 06b30979dd lpddr4/s7phy: add with_odelay parameter and Artix/Kintex/Virtex variants 2021-03-25 15:31:58 +01:00
Jędrzej Boczar e07198ac57 lpddr4/utils: simplify ConstBitSlip 2021-03-25 15:31:58 +01:00
Jędrzej Boczar e860d86f3f lpddr4/phy: make redundant cmd overlaps checks optional (and disabled by default) 2021-03-25 15:31:58 +01:00
Jędrzej Boczar f282d809d1 lpddr4: remove old fixme comments 2021-03-25 15:31:58 +01:00
Jędrzej Boczar a64cb58753 core/refresher: use A10=1 for all banks REF
This is needed because newer DRAMs like LPDDR4 or DDR5 have
separate commands for per-bank refresh and all banks refresh.
Other DRAM types ignore address for REF commands.
2021-03-25 15:31:58 +01:00
Jędrzej Boczar a21b70e061 init: revert bitslips changed to 16 for phys other than S7LPDDR4PHY 2021-03-25 15:31:58 +01:00
Jędrzej Boczar f3a0a7d038 lpddr4/s7phy: remove OE delay CSRs, use fixed, tested values 2021-03-25 15:31:58 +01:00
Jędrzej Boczar ba57791c1d lpddr4/s7phy: extend time of holding output enable on tristate lines 2021-03-25 15:31:58 +01:00
Jędrzej Boczar 58235f478e lpddr4/init: increase CA/DQ Vref to 30.4% (yields better results) 2021-03-25 15:31:58 +01:00
Jędrzej Boczar 693695f067 lpddr4/init: initialize all More Registers (even if setting defaults) 2021-03-25 15:31:58 +01:00
Jędrzej Boczar 0ecb1340f5 lpddr4/test: fixes: use 2tCK write preamble, update read latency 2021-03-25 15:31:05 +01:00
Jędrzej Boczar 5c6796b92a lpddr4: change MRW command encoding to avoid changing BIOS code 2021-03-25 15:30:48 +01:00
Jędrzej Boczar f1a40cef2f core: use wider DFI address/bank if PHY requires it 2021-03-25 15:29:32 +01:00
Jędrzej Boczar eb1d900c24 lpddr4: S7PHY related fixes, MRR command, runtime configurable WRITE/MASKED-WRITE 2021-03-25 15:29:17 +01:00
Jędrzej Boczar 052dc19246 lpddr4: improve documentation 2021-03-25 15:21:01 +01:00
Jędrzej Boczar 1b65e858b3 lpddr4/utils: rework `once` helper function to be more generic 2021-03-25 15:21:01 +01:00
Jędrzej Boczar 4473335954 lpddr4/commands: replace MPC dict with an enum with docstring 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 7f19e92c75 ci: add dependencies required for Verilator-based tests 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 4415a3eaf5 lpddr4: improve simulation and Verilator tests runner 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 4a5feb9e11 lpddr4/s7phy: improve to use the new DoubleRateLPDDR4PHY 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 2ab763ac5e lpddr4: add double-rate PHY, clean up and improve PHY implementation 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 183f1643aa lpddr4: add support for MASKED-WRITE 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 4b78fc99e8 lpddr4/sim: create LPDDR4 simulator and Verilator target 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 05ed238829 lpddr4: split implementation into multiple files in separate directory 2021-03-25 15:19:16 +01:00
Jędrzej Boczar ee9c2b4cf7 lpddr4: implement ZQC through MPC and include it in init sequence
We do not yet support ZQC during operation (after init sequence)
as LPDDR4 requires 2-stage ZQC (start+latch) and 1us in between,
which requires modifying Refresher (ZQCExecutor) in LiteDRAM.
2021-03-25 15:19:16 +01:00
Jędrzej Boczar 055e2dc597 lpddr4: add initial PHY for Series7 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 4d9106847f init: add LPDDR4 initialization 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 788b3f6d02 modules: modules: add LPDDR4 module 2021-03-25 15:19:16 +01:00
Jędrzej Boczar 6943a1a4a5 lpddr4: initial PHY logic and simulation tests 2021-03-25 15:19:08 +01:00
Jędrzej Boczar f0de06091e core/refresher: use A10=1 for all banks REF
This is needed because newer DRAMs like LPDDR4 or DDR5 have
separate commands for per-bank refresh and all banks refresh.
Other DRAM types ignore address for REF commands.
2021-03-24 10:31:06 +01:00