30 Aug, 2016

1 commit

  • On i.MX6ULL, according to the latest REFTOP_TRIM fuse define, we need
    to set the REFTOP_VBGADJ bits in PMU_MISC0 register as below table:

    '000" - set REFTOP_VBGADJ[2:0] to 3'b000
    '001" - set REFTOP_VBGADJ[2:0] to 3'b001
    '010" - set REFTOP_VBGADJ[2:0] to 3'b010
    '011" - set REFTOP_VBGADJ[2:0] to 3'b011
    '100" - set REFTOP_VBGADJ[2:0] to 3'b100
    '101" - set REFTOP_VBGADJ[2:0] to 3'b101
    '110" - set REFTOP_VBGADJ[2:0] to 3'b110
    '111" - set REFTOP_VBGADJ[2:0] to 3'b111

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

    Bai Ping
     

25 Aug, 2016

1 commit

  • Per to design team, we need to set REFTOP_VBGADJ
    in PMU MISC0 according to the REFTOP_TRIM[2:0] fuse. the
    actually table is as below:

    '000' - set REFTOP_VBGADJ[2:0] to 3b'110
    '110' - set REFTOP_VBGADJ[2:0] to 3b'000
    '001' - set REFTOP_VBGADJ[2:0] to 3b'001
    '010' - set REFTOP_VBGADJ[2:0] to 3b'010
    '011' - set REFTOP_VBGADJ[2:0] to 3b'011
    '100' - set REFTOP_VBGADJ[2:0] to 3b'100
    '101' - set REFTOP_VBGADJ[2:0] to 3b'101
    '111' - set REFTOP_VBGADJ[2:0] to 3b'111

    Signed-off-by: Bai Ping

    Bai Ping
     

29 Jul, 2016

1 commit


22 Jul, 2016

1 commit


19 Jul, 2016

1 commit

  • Add configs and board level codes for i.MX6ULL 14x14 EVK. Very similar
    board from i.MX6UL EVK. I2C, UART, USB, QSPI, SD, ENET and LCD are ok
    to work.

    The codes for i.MX6ULL 9x9 EVK is kept. We will add 9x9 build target when
    it is needed.

    The DDR3 script is using version 1.2:

    File: EVK_IMX6ULL_DDR3L_400MHz_512MB_16bit_V1.2_NewDRAM.inc

    Test: 3 boards passed memtester.

    Build target:

    mx6ull_14x14_evk_defconfig

    Signed-off-by: Ye Li

    Ye Li
     

15 Jul, 2016

1 commit


08 Jun, 2016

1 commit


16 May, 2016

1 commit

  • SNVS TAMPER pin and BOOT MODE pins are in SNVS IOMUXC module,
    not in IOMUXC, so correct the related registers' offset.

    Use IOMUX_CONFIG_LPSR flag for these pins, so we can differentiate
    them from iomuxc pins.

    Define CONFIG_IOMUX_LPSR for mx6ull_ddr3_arm2 board to enable
    using these pins.

    Signed-off-by: Peng Fan

    Peng Fan
     

10 May, 2016

1 commit

  • Several UART input selects are missing. The fourth input select
    for UART2_TX_DATA_ALT0 is actually also missing in the documentation.
    (at least in Rev. B of the i.MX 7Dual Reference Manual). However,
    when looking at the tables of other input selects, it is very natural
    that there must be an input select for the UART2_TX_DATA_ALT0 pad.
    The Colibri iMX7 also uses that pad for UART2 RX (in DTE mode), and
    it was required to set that particular input select register to get a
    working UART2.

    From https://www.mail-archive.com/u-boot@lists.denx.de/msg211942.html

    Signed-off-by: Peng Fan

    Stefan Agner
     

09 May, 2016

1 commit


07 May, 2016

1 commit

  • This patch is a porting of
    http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/?h=imx_4.1.15_1.0.0_ga&id=e4dacc44d22e9474ec456cb330df525cd805ea38
    "
    i.MX6QP and i.MX7D BCH module integrated a new feature to detect the
    bitflip number for erased NAND page. So for these two platform, set the
    erase threshold to gf/2 and if bitflip detected, GPMI driver will
    correct the data to all 0xFF.

    Also updated the imx6qp dts file to ditinguish the GPMI module for i.MX6Q
    with the one for i.MX6QP.
    "

    In this patch, i.MX6UL is added and threshold changed to use ecc_strength.

    Signed-off-by: Peng Fan

    Peng Fan
     

06 May, 2016

1 commit

  • The clock parent of the AHB root clock when using mux option 1
    is the SYS PLL 270MHz clock. This is specified in Table 5-11
    Clock Root Table of the i.MX 7Dual Applications Processor
    Reference Manual.

    While it could be a documentation error, the 270MHz parent is
    also mentioned in the boot ROM configuration in Table 6-28: The
    clock is by default at 135MHz due to a POST_PODF value of 1
    (=> divider of 2).

    Signed-off-by: Stefan Agner

    Stefan Agner
     

04 May, 2016

1 commit

  • According PL310 TRM, Auxiliary Control Register
    "
    The register must be written to using a secure access, and it can be
    read using either a secure or a NS access. If you write to this register
    with a NS access, it results in a write response with a DECERR response,
    and the register is not updated. Writing to this register with the L2
    cache enabled, that is, bit[0] of L2 Control Register set to 1,
    results in a SLVERR.
    "

    So If L2 cache is already enabled, chaning value of ACR will cause SLVERR,
    uboot hangs.

    In some cases, such as plugin, L2 Cache enabled bit is not cleared,
    then "Set bit 22 in the auxiliary control register" cause uboot hangs.

    Signed-off-by: Peng Fan

    Peng Fan
     

03 May, 2016

1 commit

  • 2016 u-boot added dummy CPU types for the i.MX6QP and i.MX6DP. When
    doing runtime cpu type checking, we can't use CPU type of i.MX6Q and
    i.MX6D for them more, which is ok in 2015 u-boot.

    This patch adds the MXC_CPU_MX6QP and MXC_CPU_MX6DP at some places missed to
    do the checking.

    Signed-off-by: Ye Li

    Ye Li
     

28 Apr, 2016

1 commit


21 Apr, 2016

1 commit


15 Apr, 2016

1 commit

  • Adjust POR_B settings on i.MX6ULL according to design
    team's suggestion:

    2'b00 : always PUP100K
    2'b01 : PUP100K when PMIC_ON_REQ || SOC_NOT_FAIL
    2'b10 : always disable PUP100K
    2'b11 : PDN100K when SOC_FAIL, PUP100K when SOC_NOT_FAIL -- recommended setting

    Signed-off-by: Anson Huang

    Anson Huang
     

13 Apr, 2016

10 commits


28 Mar, 2016

1 commit


25 Mar, 2016

12 commits

  • From TO1.1, SNVS adds internal pull up control for POR_B,
    the register filed is GPBIT[1:0], after system boot up,
    it can be set to 2b'01 to disable internal pull up.
    It can save about 30uA power in SNVS mode.

    Signed-off-by: Anson Huang
    (cherry picked from commit 5fd1cb94781926dca4bfdc2804f2550dcd6b65a5)

    Anson Huang
     
  • Change to use #ifdef not the IS_ENABLED, because we will get build warning
    when the CONFIG_IMX_RDC is not set.

    Signed-off-by: Ye Li

    Ye Li
     
  • No need to set ahb clock for i.MX6UL, since rom code already
    configured the clock at the freq 396M/132M

    Signed-off-by: Peng Fan

    Peng Fan
     
  • On mx7d 12x12 lpddr3 arm2 board, POR_B reset in uboot will fail stress
    reset test, and hangs in rom code. Rom log buffer show thats wrong
    hab_image_entry and runs into serial download mode. Also there is no
    time delay reset circuit for this board.

    We found when disable CONFIG_VIDEO, all seems fine. Actually,
    only the following piece of code can make stress reset ok,
    "
    writel(LCDIF_CTRL1_VSYNC_EDGE_IRQ, ®s->hw_lcdif_ctrl1_clr);
    while (--timeout) {
    if (readl(®s->hw_lcdif_ctrl1) & LCDIF_CTRL1_VSYNC_EDGE_IRQ)
    break;
    udelay(1);
    }
    "
    Here we use lcdif_power_down API which is better to shutdown lcdif same as
    the way used in arch_preboot_os.

    Implement reset_misc for mx7, since it does not hurt for others boards.

    Signed-off-by: Peng Fan
    (cherry picked from commit cd1bd6ee94e720af911a2ce7db697af0df59c0a9)

    Peng Fan
     
  • Update settings for PRE. Value for Saturation THR of PREx,
    changed from 0x20 to 0x10 to make system more stable.

    Signed-off-by: Peng Fan
    (cherry picked from commit 02e7090604e55d9690532294b02b499609d46e63)
    (cherry picked from commit f7c5cf580fcc2c8ab95a8d835f5874d26216910f)

    Peng Fan
     
  • Since the MX6UL/SL/SX only has one DDR channel, in CCM_CCDR register the bit[17]
    for mmdc_ch0 is reserved and its proper state should be 1. When clear this bit,
    the periph_clk_sel cannot be set and that CDHIPR[periph_clk_sel_busy] handshake
    never clears.

    Signed-off-by: Ye Li

    Ye Li
     
  • Add the fuse checking in drivers, when the module is disabled in fuse,
    the driver will not work.

    Changed drivers: BEE, GPMI, APBH-DMA, ESDHC, FEC, QSPI, ECSPI, I2C,
    USB-EHCI, GIS, LCDIF.

    Signed-off-by: Ye Li

    Ye Li
     
  • Implement a functionality to read the soc fuses and check if any module
    is fused. For fused module, we have to disable it in u-boot dynamically,
    and change the its node in FDT to "disabled" status before starting the kernel.

    In this patch, we implement the ft_system_setup for FDT fixup. This function will
    be called during boot process or by "fdt systemsetup" command.

    To enable the module fuse checking, two configurations must be defined:
    CONFIG_MODULE_FUSE
    CONFIG_OF_SYSTEM_SETUP

    Signed-off-by: Ye Li

    Ye Li
     
  • Need to check cpu type for i.MX6SOLO for the HAB functions addresses.

    Signed-off-by: Ye Li

    Ye Li
     
  • Debug monitor will print out last failed AXI access info when
    system reboot is caused by AXI access failure, only works when
    debug monitor is enabled.

    Enable this module on i.MX6SX.

    Signed-off-by: Anson Huang
    Signed-off-by: Ye.Li
    (cherry picked from commit df6ac8531d498021ed379c74fc1847bd2cec7179)
    Signed-off-by: Peng Fan

    Ye.Li
     
  • Since the following piece settings can not be in DCD table, we
    add them in enable_ipu_clock.
    "
    setmem /32 0x00bb048c = 0x00000002 ## Bypass IPU1 QoS generator
    setmem /32 0x00bb050c = 0x00000002 ## Bypass IPU2 QoS generator
    setmem /32 0x00bb0690 = 0x00000200 ## Bandwidth THR for of PRE0
    setmem /32 0x00bb0710 = 0x00000200 ## Bandwidth THR for of PRE1
    setmem /32 0x00bb0790 = 0x00000200 ## Bandwidth THR for of PRE2
    setmem /32 0x00bb0810 = 0x00000200 ## Bandwidth THR for of PRE3
    setmem /32 0x00bb0694 = 0x00000020 ## Saturation THR for of PRE0
    setmem /32 0x00bb0714 = 0x00000020 ## Saturation THR for of PRE1
    setmem /32 0x00bb0794 = 0x00000020 ## Saturation THR for of PRE2
    setmem /32 0x00bb0814 = 0x00000020 ## Saturation THR for of PRE
    "
    CONFIG_VIDEO_IPUV3 is always defined in mx6sabre_common.h,
    the settings sure will effect.

    Signed-off-by: Peng Fan
    (cherry picked from commit 61cec88a59ebf450dd1352d81e03b5aa842e1d71)

    Peng Fan
     
  • Apply errata based on PL310 version instead of compile
    time. Also set Prefetch offset to 15, since it improves
    memcpy performance by 35%. Don't enable Incr double
    Linefill enable since it adversely affects memcpy
    performance by about 32MB/s and reads by 90MB/s. Tested
    with 4K to 16MB sized src and dst aligned buffer.

    Signed-off-by: Nitin Garg
    (cherry picked from commit 31751fa9cf29ef4056f49fe06a54700a89c9bdc5)

    Nitin Garg