Commit Graph

8934 Commits

Author SHA1 Message Date
ed132ee5f9 board: add GW102 board 2024-11-29 11:31:18 +08:00
d992ec7d03 i2S-6ULY2: add SOM and Board string 2018-04-10 17:47:14 +08:00
f7652281cd i2SOM: add NAND and eMMC for i2S-6UL 2018-01-06 23:56:54 +08:00
14e03f15a1 support 800Mhz and 900Mhz for i.MX6ULL chip 2017-09-03 13:59:11 +08:00
027aa9d058 add i2S-6ULX SOM module into Kconfig 2017-08-20 03:23:56 +08:00
30ce7adebd MLK-13140 ARM: imx: update REFTOP_VBGADJ according to fuse setting
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 <ping.bai@nxp.com>
(cherry picked from commit b2690f5cf54390999acb2f1f7b788bfd18fa11be)
2016-08-30 16:50:42 +08:00
911fcf93ba MLK-13124 ARM: imx: update the REFTOP_VBGADJ setting
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 <ping.bai@nxp.com>
2016-08-25 21:30:35 +08:00
bcdbe240bb MLK-12929 imx6ull: support splash screen for epdc
add splash screen feature for epdc.
it's tested on imx6ull arm2 board.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
2016-07-29 11:17:14 +08:00
cbf50f2846 MLK-12964 imx: enlarge mux width to 4
For i.MX6, the mux width is 4, not 3. So enlarge the width.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2016-07-22 13:32:21 +08:00
56cb080858 MLK-12988 imx: mx6ull Add board support for i.MX6ULL EVK
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@nxp.com>
2016-07-19 16:05:53 +08:00
747e9c9980 MLK-12985 imx: mx6sx: Disable ENET clock before switching clock parent
Need to gate ENET clock when switching to a new clock parent, because
the mux is not glitchless.

Signed-off-by: Ye.Li <ye.li@nxp.com>
2016-07-15 10:04:04 +08:00
91703d0672 MLK-12894 imx6ull: adjust the ldo 1.2v bandgap voltage on i.mx6ull
Per to design team, on i.MX6UL, the LDO 1.2V bandgap voltage
is 30mV higher, so we need to adjust the REFTOP_VBGADJ(anatop MISC0
bit[6:4]) setting to 2b'110.

Signed-off-by: Bai Ping <ping.bai@nxp.com>
2016-06-08 15:25:01 +08:00
68fbb20f0d MLK-12798 imx6ull: fix snvs tamper pin usage
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@nxp.com>
2016-05-16 17:22:31 +08:00
ee67176677 imx: iomux-v3: fix UART input selects
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 <peng.fan@nxp.com>
2016-05-10 14:34:57 +08:00
05922b0abf MLK-12767 imx6ull: fix runtime checking for i.MX6ULL
Fix runtime checking for i.MX6ULL. Add is_cpu_type(MXC_CPU_MX6ULL)
to avoid using wrong code path.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2016-05-09 17:31:34 +08:00
489929be02 MLK-12693-2 nand: mxs: correct bitflip for erased NAND page
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@nxp.com>
2016-05-07 16:58:24 +08:00
8183b60202 imx: imx7d: fix ahb clock mux 1
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.ch>
2016-05-06 12:11:11 +08:00
4329120dc0 MLK-12629-1: imx6: cache: disable L2 before touching Auxiliary Control Register
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@nxp.com>
2016-05-04 15:00:05 +08:00
39ea1ae1f0 MLK-12737 mx6qp/mx6dp: Fix runtime CPU type checking issue
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@nxp.com>
2016-05-03 14:36:07 +08:00
2ad1304aec MLK-12711 imx: correct speed grading info for i.MX6UL
Correct speed grading info for i.MX6UL

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2016-04-28 12:55:30 +08:00
4e72a135fc MLK-12691-1 mx6ullarm2: Update config file to remove unnecessary settings
To align with other i.mx6 platforms, update config file to remove some
unnecessary settings. Also enable the GPIO command.

Signed-off-by: Ye Li <ye.li@nxp.com>
2016-04-21 16:37:48 +08:00
c5f3ebc2b4 MLK-12658 imx: adjust POR_B setting on i.MX6ULL
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@nxp.com>
2016-04-15 00:33:26 +08:00
67c19ad1a2 MLK-12616-11 imx: mx6ull: add mx6ull arm2 board support
Support mx6ull ddr3 arm2 board.
DDR script version 1.1. Passed memtester on 3 boards.

Take mx6ul 14x14 ddr3 arm2 as reference.

Note:
LCD/NAND/ECSPI not tested, need hardware rework.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 584050b98c)
2016-04-13 13:03:20 +08:00
3f5962277e MLK-12616-10 mx6ull: Add AIPS3 initialization
Since the mx6ull adds the AIPS3, so enable its initialization.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit f774a4c12b)
2016-04-13 13:03:06 +08:00
f965b951ad MLK-12616-9 mx6ull: Update memory map address
Update memory map address for mx6ull which uses AIPS3 and adjust UART8
to AIPS3 by replacing for ESAI.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 5154e0c159)
2016-04-13 12:57:42 +08:00
194b587b89 MLK-12616-8 mx6ull: update CCM registers and clock settings
Update CCM registers and clock settings according the mx6ull changes

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 60cb811a0e)
2016-04-13 11:28:03 +08:00
7b5267e26e MLK-12616-7 mx6ull: Not setting ahb clock
Rom already initialized clock at 396M and 132M for arm core and ahb

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2016-04-13 11:28:03 +08:00
8ee6dc05a0 MLK-12616-6 mx6ull: Update s_init to skip pfd reset
The PFD reset is not needed for mx6ull, since it uses runtime cpu id
checking here, add codes to skip it.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 4543971c60)
2016-04-13 11:28:03 +08:00
ca0df9c20a MLK-12616-5 GPT: Update GPT driver for MX6ULL
The MX6ULL has GPT with supporting OSC clock source, update the driver
accordingly.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit b2740fd7a0)
2016-04-13 11:28:03 +08:00
b4cfea97e6 MLK-12616-3 mx6ull: Enable CONFIG_MX6UL definition for MX6ULL
Since iMX6ULL is derivative of iMX6UL, most of design are same, so enable
CONFIG_MX6UL to reduce duplicated effort.

We can use CONFIG_MX6ULL for the difference between these two chips.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit b3b0a429ef)
2016-04-13 10:22:32 +08:00
936de37e4c MLK-12616-2 mx6ull: add MX6ULL major CPU Type
Add MXC_CPU_MX6ULL for i.MX6ULL CPU ID

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 7377004dfc)
2016-04-13 10:22:32 +08:00
4a798a4c46 MLK-12616-1 mx6ull: Add iomux header file
Add iomux headers according the file SDK_IOMaps_i.MX6ULL_Headers_b151218.zip

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit a78b5b07bd)
2016-04-13 10:22:32 +08:00
ebd4b8a0ce MLK-12591: Define MX6UL_SNVS_LP_BASE_ADDR to avoid build break
We have runtime checking now, since SNVS_LP_BASE_ADDR is only for i.MX6UL
now, so it will break building for other i.MX6[x].

Introduce MX6UL_SNVS_LP_BASE_ADDR to avoid build break.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2016-03-28 15:59:49 +08:00
9b9d461472 MLK-12576 imx: imx6ul: disable POR_B internal pull up
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 <Anson.Huang@nxp.com>
(cherry picked from commit 5fd1cb9478)
2016-03-25 17:28:22 +08:00
a212eff242 MLK-12565 mx7: rdc: Change IS_ENABLED to remove build warning
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@nxp.com>
2016-03-25 16:40:02 +08:00
49c9146ec3 MLK-12416-7 imx: skip ahb clock setting for i.MX6UL
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@nxp.com>
2016-03-25 16:30:42 +08:00
2abbb4b768 MLK-10546-2 imx: mx7 implement reset_misc
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, &regs->hw_lcdif_ctrl1_clr);
  while (--timeout) {
	  if (readl(&regs->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 <Peng.Fan@freescale.com>
(cherry picked from commit cd1bd6ee94)
2016-03-25 16:30:32 +08:00
1a90b60731 MLK-10708 imx:mx6qp Update Saturation THR for PREx
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 <Peng.Fan@freescale.com>
(cherry picked from commit 02e7090604)
(cherry picked from commit f7c5cf580f)
2016-03-25 16:30:22 +08:00
b0cf100ab5 MLK-12488 mx6sl/ul/sx: Fix incorrect clear mmdc_ch0 handshake mask
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@nxp.com>
2016-03-25 16:29:44 +08:00
1704e116f9 MLK-12483-4 mx6: Modify drivers to disable fused modules
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@nxp.com>
2016-03-25 16:28:20 +08:00
7236051526 MLK-12483-3 mx6: Add a module fuse checking
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@nxp.com>
2016-03-25 16:24:56 +08:00
128596198a MLK-12562 mx6: HAB: Add support for i.MX6SOLO
Need to check cpu type for i.MX6SOLO for the HAB functions addresses.

Signed-off-by: Ye Li <ye.li@nxp.com>
2016-03-25 16:21:56 +08:00
4f4ecdbf6f ENGR00315894-55 iMX6SX: add debug monitor support
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 <b20788@freescale.com>
Signed-off-by: Ye.Li <B37916@freescale.com>
(cherry picked from commit df6ac8531d)
Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
2016-03-25 16:21:11 +08:00
3d25e2acd4 MLK-10674-2 imx: mx6qp settings for PRE
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 <Peng.Fan@freescale.com>
(cherry picked from commit 61cec88a59)
2016-03-25 16:21:00 +08:00
7df52f9518 MLK-10496: Check the PL310 version for applying errata
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 <nitin.garg@freescale.com>
(cherry picked from commit 31751fa9cf)
2016-03-25 16:20:51 +08:00
708898fe54 MLK-10176-6 imx: mx7: Modify GPT timer driver for mx7
Modify the GPT common platform driver for mx7 which only use 24Mhz
OSC as clock source.

Note: at default, the mx7d will use system counter as timer. The GPT
is disabled.

Signed-off-by: Ye.Li <B37916@freescale.com>
(cherry picked from commit 6e250796d6)
Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
2016-03-25 16:15:14 +08:00
c5a44a2a0b ENGR00328312 i2c: imx: Optimize the i2c device recovery solution
From i2c spec, if device pull down the SDA line that causes
i2c bus dead, host can send out 9 clock to let device release
SDA.

But for some special device like pfuze100, it pull down SDA line
and the solution cannot take effort.

The patch just add NACK and STOP signal after 8 dummy clock, and pmic
can release SDA line after the recovery. Test case catch 375 times of
i2c hang, and all are recovered.

Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit 53118db42d)
Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
(cherry picked from commit b8dcb81240)
2016-03-25 16:14:24 +08:00
f20a658475 MLK-10524: iMX6x: Implement workaround for Cortex-A9 errata 845369
Under very rare timing circumstances, transitioning into streaming
mode might create a data corruption. Present on Two or more processors
or 1 core with ACP, all revisions. This erratum can be worked round
by setting bit[22] of the undocumented Diagnostic Control Register to 1.

Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
(cherry picked from commit 70ad44e523)
2016-03-25 16:08:28 +08:00
1c27c9ecf8 MLK-12557 mx6ul: Enable syscounter as default timer
Use syscounter for i.MX6UL platform as default timer, not use gpt

Signed-off-by: Ye Li <ye.li@nxp.com>
2016-03-25 16:07:29 +08:00
81fd302501 ENGR00325255 pcie:enable pcie support on imx6sx sd
Enable pcie support in uboot on imx6sx sd boards
- enable_pcie_clock should be call before ssp_en is set,
  since that ssp_en control the phy_ref clk gate, turn on
  it after the source of the pcie clks are stable.
- add debug info
- add rx_eq of gpr12 on imx6sx
- there are random link down issue on imx6sx. It's
  pcie ep reset issue.
  solution:reset ep, then retry link can fix it.

(cherry picked from commit ec78595a24)
Signed-off-by: Richard Zhu <r65037@freescale.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
2016-03-25 16:04:31 +08:00