- Jan 05, 2017
-
-
York Sun authored
These two macros are used for the same thing, the total number of DDR controllers for a given SoC. Use SYS_NUM_DDR_CTRLS in Kconfig and merge existing usage. Signed-off-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
Use option NUM_DDR_CONTROLLERS in ddr Kconfig and clean up existing usage in ls102xa and fsl-layerscape. Remove all powerpc macros in config header and board header files. Signed-off-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
Use Kconfig to select errata workaround. Signed-off-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
Use Kconfig to select errata workaround. Signed-off-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
Create driver/ddr/fsl/Kconfig and move existing options. Clean up existing macros. Signed-off-by:
York Sun <york.sun@nxp.com> [trini: Migrate sbc8641d, xpedite537x and MPC8536DS, run a moveconfig.py -s] Signed-off-by:
Tom Rini <trini@konsulko.com>
-
- Dec 05, 2016
-
-
Shengzhou Liu authored
- add additional function erratum_a009942_check_cpo to check if the board needs tuning CPO calibration for optimal setting. - move ERRATUM_A009942(with revision to check cpo_sample option) from fsl_ddr_gen4.c to ctrl_regs.c for reuse on all DDR4/DDR3 parts. - move ERRATUM_A008378 from fsl_ddr_gen4.c to ctrl_regs.c - remove obsolete ERRATUM_A004934 which is replaced with ERRATUM_A009942. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> [YS: Replaced CONFIG_QEMU_E500 with CONFIG_ARCH_QEMU_E500] Reviewed-by:
York Sun <york.sun@nxp.com>
-
Shengzhou Liu authored
Fix following warning in case multiple erratum macro was not defined. warning: unused variable 'tmp' warning: unused variable 'ddr_freq' Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
- Nov 24, 2016
-
-
York Sun authored
Replace CONFIG_MPC8555 with ARCH_MPC8555 in Kconfig and clean up existing macros. Signed-off-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
Replace CONFIG_MPC8541 with ARCH_MPC8541 in Kconfig and clean up existing macros. Signed-off-by:
York Sun <york.sun@nxp.com>
-
- Oct 27, 2016
-
-
Chin Liang See authored
To enable configuration of sdr.ctrlcfg.extratime1 register which enable extra clocks for read to write command timing. This is critical to ensure successful LPDDR2 interface Signed-off-by:
Chin Liang See <clsee@altera.com> Cc: Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
-
- Oct 07, 2016
-
-
Robert P. J. Day authored
Fix various misspellings of: * deprecated * partition * preceding,preceded * preparation * its versus it's * export * existing * scenario * redundant * remaining * value * architecture Signed-off-by:
Robert P. J. Day <rpjday@crashcourse.ca> Reviewed-by:
Jagan Teki <jteki@openedev.com> Reviewed-by:
Stefan Roese <sr@denx.de>
-
- Sep 26, 2016
-
-
York Sun authored
Instead of using multiple macros, a data structure is used to pass board-specific parameters to MMDC DDR driver. Signed-off-by:
York Sun <york.sun@nxp.com> CC: Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
Tom Rini <trini@konsulko.com>
-
- Sep 23, 2016
-
-
Masahiro Yamada authored
Remove unneeded variables and assignments. Signed-off-by:
Masahiro Yamada <yamada.masahiro@socionext.com>
-
- Sep 14, 2016
-
-
Shaohui Xie authored
When CONFIG_SYS_FSL_ERRATUM_A009801 is defined but CONFIG_SYS_FSL_ERRATUM_A008511 not defined, there is compile error that temp32 undeclared, this patch fixes it. Signed-off-by:
Shaohui Xie <Shaohui.Xie@nxp.com> Signed-off-by:
Gong Qianyu <Qianyu.Gong@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
Shengzhou Liu authored
This general MMDC driver adds basic support for Freescale MMDC (Multi Mode DDR Controller). Currently MMDC is integrated on ARMv8 LS1012A SoC for DDR3L, there will be a update to this driver to support more flexible configuration if new features (DDR4, multiple controllers/chip selections, etc) are implimented in future. Meantime, reuse common MMDC driver for LS1012ARDB/LS1012AQDS/ LS1012AFRDM. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
DDR controller 5.2.1 has this erratum A008511 partially fixed. The workaround needs to be adjusted to take advantage of Vref training. This patch enables the training and force output enable to be off. Erratum A009803 requires the controller to be idel before enabling address parity. It was combined with workaround for A008511. With new A008511 flow, this flow needs to be changed to enabling data init (D_INIT) after the address parity is enabled. Signed-off-by:
York Sun <york.sun@nxp.com> Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com>
-
York Sun authored
32 more debug registers are added for newer DDR controllers. Signed-off-by:
York Sun <york.sun@nxp.com> Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com>
-
- Aug 02, 2016
-
-
York Sun authored
Commit 5605dc61 tried to fix wr_lat bit in timing_cfg_2, but the change was wrong. wr_lat has 5 bits with MSB at [13] and lower 4 bits at [9:12], in big-endian convention. Signed-off-by:
York Sun <york.sun@nxp.com> Reported-by:
Thomas Schaefer <Thomas.Schaefer@kontron.com>
-
- Jul 16, 2016
-
-
Robert P. J. Day authored
Fix a number of typos, including: * "compatble" -> "compatible" * "eanbeld" -> "enabled" * "envrionment" -> "environment" * "FTD" -> "FDT" (for "flattened device tree") * "ommitted" -> "omitted" * "overriden" -> "overridden" * "partiton" -> "partition" * "propogate" -> "propagate" * "resourse" -> "resource" * "rest in piece" -> "rest in peace" * "suport" -> "support" * "varible" -> "variable" Signed-off-by:
Robert P. J. Day <rpjday@crashcourse.ca>
-
- Jun 03, 2016
-
-
Shengzhou Liu authored
Add condition of checking the enabled of address parity for erratum A-009803, if parity is not enabled, the workaround of erratum A-009803 should not be applied. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
If ECC is not enabled, data init can be disabled to speed up booting. Signed-off-by:
York Sun <york.sun@nxp.com>
-
York Sun authored
Commit 34e026f9 added one extra bit to wr_lat for timing_cfg_2, but with wrong bit position. It is bit 13 in big-endian, or left shift 18 from LSB. This error hasn't had any impact because we don't have fast enough DDR4 using the extra bit so far. Signed-off-by:
York Sun <york.sun@nxp.com>
-
Shengzhou Liu authored
The clk_adjust is of SDRAM_CLK_CNTL[5:8] 4-bits on MPC85xx and P-series, but is of SDRAM_CLK_CNTL[5:9] 5-bits on T-series and LS-series SoCs. We should update it to adapt the case that clk_adjust is odd data. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
- May 20, 2016
-
-
Marek Vasut authored
For reason unknown, recently, the DDR init code writers are really fond of hiding some small floating point operating deep in their creations. This patch removes one from the Marvell A38x code. Instead of returning size of chip as float from ddr3_get_device_size() in GiB units, return it as int in MiB units. Since this would interfere with the huge switch code in ddr3_calc_mem_cs_size(), rework the code to match the change. Before this patch, the cs_mem_size variable could have these values: ( { 16, 32 } x { 8, 16 } x { 0.01, 0.5, 1, 2, 4, 8 } ) / 8 = { 0.000000, 0.001250, 0.002500, 0.005000, 0.062500, 0.125000, 0.250000, 0.500000, 1.000000, 2.000000, 4.000000, } The switch code checked for a subset of the resulting RAM sizes, which is in range 128 MiB ... 2048 MiB. With this patch, the cs_mem_size variable can have these values: ( { 16, 32 } x { 8, 16 } x { 0, 512, 1024, 2048, 4096, 8192 } ) / 8 = { 0, 64, 128, 256, 512, 1024, 2048, 4096 } To retain previous behavior, filter out 0 MiB (invalid size), 64 MiB and 4096 MiB options. Removing the floating point stuff also saves 1.5k from text segment: clearfog : spl/u-boot-spl:all -1592 spl/u-boot-spl:text -1592 Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dirk Eibach <dirk.eibach@gdsys.cc> Cc: Stefan Roese <sr@denx.de> Signed-off-by:
Stefan Roese <sr@denx.de>
-
- May 18, 2016
-
-
Shengzhou Liu authored
During DDR-2133 operation, the transmit data eye margins determined during the memory controller initialization may be sub-optimal, set DEBUG_29[12] and DEBUG_29[13:16] = 4'b0100 before MEM_EN is set. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
- May 17, 2016
-
-
Shengzhou Liu authored
The initial training for the DDRC may provide results that are not optimized. The workaround provides better read timing margins. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
Shengzhou Liu authored
Per the latest erratum document, update step 4 and step 8, only DEBUG_29[21] is changed, all other bits should not be changed. Signed-off-by:
Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by:
York Sun <york.sun@nxp.com>
-
- May 02, 2016
-
-
Vagrant Cascadian authored
Signed-off-by:
Vagrant Cascadian <vagrant@debian.org> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
- Apr 20, 2016
-
-
Marek Vasut authored
The code uses a lot of signed numbers, which ended up in variables of unsigned type, which resulted in all sorts of underflows. This in turn caused incorrect calibration on certain boards. Moreover, repair the readout of the DQ delay, which was being pulled from wrong register. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
Just staticize global variables in sequencer, since there is no point in having these symbols available outside of the DDR code. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
Originally, the DLEVEL selects the debug level within the sequencer code, but only displays the messages on that particular debug level. Tweak the handling such that for particular debug level, debug messages on that level and lower are displayed. This allows better regulation of debug message verbosity. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
This one last set of delay configuration registers was not properly zeroed out originally, fix it and zero them out. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
There is no point in resetting the ODT setting if the write test failed, since the code will always retry the calibration and thus reconfigure the ODT anyway OR the code will fail calibration and halt. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
Every invocation of the scc_mgr_set_dqs_en_delay_all_ranks() is followed by SCC manager update. Moreover, only this function triggers the SCC manager update internally. Thus, remove the internal invocation to avoid triggering the update twice. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
The hi address bitfield in the protection rule must be set to the last address in the region which the rule represents. The behavior is now in-line with code generated by Quartus 15.1 . Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
The code should be setting registers to zero, not one register to value. Swap the order of arguments to correct the behavior. The behavior is now in-line with code generated by Quartus 15.1 . Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
In the most unlikely case the DQS tracking was to be disabled, make sure we do not errornously re-enable it. Note that DQS tracking is enabled on all systems observed thus far. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
Marek Vasut authored
The bit 22 is in fact DQS tracking enable bit (dqstrken) and there is a macro for this bit already, so use it. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Dinh Nguyen <dinguyen@opensource.altera.com> Cc: Chin Liang See <clsee@altera.com>
-
- Mar 27, 2016
-
-
Alexander Merkle authored
Minor change: chosen is written with one "o". No code change here, only comment & printf. Signed-off-by:
Alexander Merkle <alexander.merkle@lauterbach.com> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
- Mar 24, 2016
-
-
Dirk Eibach authored
Armada 38x has a maximum of two cores. Probably copy/paste bug from Armada XP. Signed-off-by:
Dirk Eibach <dirk.eibach@gdsys.cc> Signed-off-by:
Stefan Roese <sr@denx.de>
-