20 Nov, 2018

1 commit

  • Update the ddrc Qos setting for B1 to align with B0'ssetting.
    Correct the initial clock for dram_pll. This setting will be
    overwrite before ddr phy training. Although there is no impact
    on the dram init, we still need to correct it to eliminate
    confusion.

    Signed-off-by: Bai Ping
    Reviewed-by: Ye Li
    Tested-by: Robby Cai

    Bai Ping
     

03 Nov, 2018

1 commit


12 Oct, 2018

1 commit


01 Oct, 2018

2 commits


07 Aug, 2018

1 commit

  • Android build use different tool chain(gcc 4.9) with yocto(gcc 6.2),
    'for' loop initial declarations are not supported in C90, define the
    variable first before use it.

    Test: build pass for imx8mm_evk.

    Change-Id: Idf9a9f21626a02e2e679d2e74410378cd143c3f1
    Signed-off-by: Luo Ji

    Luo Ji
     

06 Aug, 2018

1 commit

  • the dram init is board related. But there is still some common
    part can be reused on different board. The basic flow is common
    for all the board. only the DDRC and DDR PHY config register setting
    is different on different board. So extract the LPDDR4 init common
    flow to make it more generic. baord level only need to provide
    the DDRC and PHY config register parameter to the common code to finish
    the dram init.

    the same method can be use for DDR4. will be added later.

    Signed-off-by: Bai Ping
    (cherry picked from commit 220d0cc79a3f340e0da664242bb19ccda7a071d1)

    Bai Ping
     

15 Feb, 2018

1 commit


10 Feb, 2018

1 commit

  • To make this driver easier to be reused, dual-license DDR driver.

    Signed-off-by: York Sun
    CC: Simon Glass
    CC: Tom Rini
    CC: Heinrich Schuchardt
    CC: Thomas Schaefer
    CC: Masahiro Yamada
    CC: Robert P. J. Day
    CC: Alexander Merkle
    CC: Joakim Tjernlund
    CC: Curt Brune
    CC: Valentin Longchamp
    CC: Wolfgang Denk
    CC: Anatolij Gustschin
    CC: Ira W. Snyder
    CC: Marek Vasut
    CC: Kyle Moffett
    CC: Sebastien Carlier
    CC: Stefan Roese
    CC: Peter Tyser
    CC: Paul Gortmaker
    CC: Peter Tyser
    CC: Jean-Christophe PLAGNIOL-VILLARD

    York Sun
     

31 Jan, 2018

6 commits


28 Jan, 2018

1 commit


26 Jan, 2018

1 commit


25 Jan, 2018

1 commit


24 Jan, 2018

2 commits


19 Jan, 2018

4 commits

  • Update the calculation for tWR and tPD. This improves the DDR refresh
    interval and brings the initialization into line with the binary blobs
    currently being supplied by Marvell.

    Signed-off-by: Chris Packham
    Signed-off-by: Stefan Roese

    Chris Packham
     
  • The RD_SAMPLE_DELAY field is 5 bits so it needs to be masked with 0x1f
    instead of 0xf. Rather than checking the read sample delay for all DDR
    chip selects use the values for the chip selects that are actually
    configured. Finally continue searching for the max_phase value even if the
    current read_sample is the same as the max_read_sample.

    Signed-off-by: Chris Packham
    Signed-off-by: Stefan Roese

    Chris Packham
     
  • The ternary operation had the HIGH/LOW values the
    wrong way round. Update it to use the correct value.

    Signed-off-by: Chris Packham
    Signed-off-by: Stefan Roese

    Chris Packham
     
  • When using only a single DDR chip select only assert M_ODT[0] on write.
    Do not assert it on read and do not assert M_ODT[1] at all. Also set
    tODT_OFF_WR to 0x9 which contradicts the recommendation from the
    functional spec but is what Marvell's binary training blob does and
    seems to give better results when ODT is active during writes.

    Signed-off-by: Chris Packham
    Signed-off-by: Stefan Roese

    Chris Packham
     

11 Sep, 2017

1 commit

  • LS1088A is compliant with the Layerscape Chassis Generation 3 with
    eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
    SDRAM memory controller with ECC, Data path acceleration architecture
    2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
    QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.

    Signed-off-by: Alison Wang
    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Ashish Kumar
    Signed-off-by: Raghav Dogra
    Signed-off-by: Shaohui Xie
    [YS: Revised commit message]
    Reviewed-by: York Sun

    Ashish Kumar
     

16 Aug, 2017

1 commit

  • We are now using an env_ prefix for environment functions. Rename these
    two functions for consistency. Also add function comments in common.h.

    Quite a few places use getenv() in a condition context, provoking a
    warning from checkpatch. These are fixed up in this patch also.

    Suggested-by: Wolfgang Denk
    Signed-off-by: Simon Glass

    Simon Glass
     

14 Aug, 2017

2 commits


12 Jul, 2017

1 commit

  • The DDR3 training code for Marvell A38X currently computes 1t timing
    when given board topology map of the Turris Omnia, but Omnia needs 2t.

    This patch adds support for enforcing the 2t timing in struct
    hws_topology_map, through a new enum hws_timing, which can assume
    following values:
    HWS_TIM_DEFAULT - default behaviour, compute whether to enable 2t
    from the number of CSs
    HWS_TIM_1T - enforce 1t
    HWS_TIM_2T - enforce 2t

    This patch also sets all the board topology maps (db-88f6820-amc,
    db-88f6820-gp, controlcenterdc and clearfog) to have timing set to
    HWS_TIM_DEFAULT.

    Signed-off-by: Marek Behun
    Reviewed-by: Stefan Roese
    Signed-off-by: Stefan Roese

    Marek Behún
     

16 Jun, 2017

1 commit


13 Jun, 2017

1 commit


06 Jun, 2017

2 commits


18 Apr, 2017

3 commits


14 Apr, 2017

2 commits


13 Apr, 2017

1 commit


06 Apr, 2017

1 commit

  • At present we cannot use this function as an init sequence call without a
    wrapper, since it returns the RAM size. Adjust it to set the RAM size in
    global_data instead, and return 0 on success.

    Signed-off-by: Simon Glass
    Reviewed-by: Stefan Roese

    Simon Glass