Skip to contentSkip to conversation

*** iMX6SL-evk SPL Support ***

PATCH New John Tobias 4 participants 14 messages Nov 9, 2014 – Nov 10, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover *** iMX6SL-evk SPL Support ***

This patch is for SPL support for iMX6SL-evk. The said patches has been tested to work on SD1, SD2 and SD3 ports of the said board.

After applying the following patches, it will produces SPL and u-boot.img binary images. You should run the two commands below to store it in your SD or eMMC.

sudo dd if=SPL of=/dev/xxx bs=1K seek=1; sync sudo dd if=u-boot.img of=/dev/xxx bs=1K seek=69

John Tobias (7):
imx6: add macro define inclusion
imx6sl: update DCD configuration file
imx6sl: add spl on board configuration
imx6: add additional flexibility for defining macros
imx6sl: add spl in include header file
imx6sl: add SPL support for iMX6SL-evk
kconfig: imx6sl: add add SUPPORT_SPL

 arch/arm/Kconfig                      |   1 +
 arch/arm/cpu/armv7/mx6/ddr.c          |   2 +
 board/freescale/mx6slevk/imximage.cfg |  78 +---------------
 board/freescale/mx6slevk/mx6slevk.c   | 168 +++++++++++++++++++++++++++++++++-
 configs/mx6slevk_defconfig            |   5 +-
 include/configs/imx6_spl.h            |   6 ++
 include/configs/mx6slevk.h            |   8 ++
 7 files changed, 191 insertions(+), 77 deletions(-)
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/7 imx6: add macro define inclusion

add a macro define inclusion to compile the function. iMX6SL doesn't have an MMDC_P1_BASE_ADDR in the header. It will break the build if the SPL features is enabled for iMX6SL.

---
 arch/arm/cpu/armv7/mx6/ddr.c | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/cpu/armv7/mx6/ddr.c +2 -0
index 7a9b03a..3beeded 100644
@@ -182,6 +182,7 @@ void mx6sdl_dram_iocfg(unsigned width,
  * For details on each register, refer to the IMX6DQRM and/or IMX6SDLRM
  * section titled MMDC initialization
  */
+#if defined(CONFIG_MX6QDL) || defined(CONFIG_MX6Q) || defined(CONFIG_MX6D)
 #define MR(val, ba, cmd, cs1) \
 	((val << 16) | (1 << 15) | (cmd << 4) | (cs1 << 3) | ba)
 void mx6_dram_cfg(const struct mx6_ddr_sysinfo *sysinfo,
@@ -489,3 +490,4 @@ void mx6_dram_cfg(const struct mx6_ddr_sysinfo *sysinfo,
 	/* wait for auto-ZQ calibration to complete */
 	mdelay(1);
 }
+#endif
Signature · 1 line
1.9.1
reviewer
#2 lore raw

PATCH 1/7 imx6: add macro define inclusion

Hi John,

Quoted 5 lines · John Tobias

add a macro define inclusion to compile the function. iMX6SL doesn't have an MMDC_P1_BASE_ADDR in the header. It will break the build if the SPL features is enabled for iMX6SL.
---

You missed to add the Signed-off-by tag in your patches. Please run ./scripts/checkpatch on your patches.

Regards,

Fabio Estevam

#3 lore raw

PATCH 1/7 imx6: add macro define inclusion

Hi Fabio,

I didn't notice that one... Thanks for the info.

Regards,

john

Quoted 15 lines · Fabio Estevam

Hi John,

Quoted 5 lines · John Tobias

add a macro define inclusion to compile the function. iMX6SL doesn't have an MMDC_P1_BASE_ADDR in the header. It will break the build if the SPL features is enabled for iMX6SL.
---

You missed to add the Signed-off-by tag in your patches. Please run ./scripts/checkpatch on your patches.

Regards,

Fabio Estevam

#4 lore raw

PATCH 2/7 imx6sl: update DCD configuration file

In reply to John Tobias

Update the Device Configuration Data file for iMX6SL for SPL support.

---
 board/freescale/mx6slevk/imximage.cfg | 78 ++---------------------------------
 1 file changed, 4 insertions(+), 74 deletions(-)
board/freescale/mx6slevk/imximage.cfg +4 -74
index 16ea597..3ebd985 100644
@@ -1,7 +1,10 @@
 /*
  * Copyright (C) 2013 Freescale Semiconductor, Inc.
  *
- * SPDX-License-Identifier:	GPL-2.0+
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) any later version.
  *
  * Refer docs/README.imxmage for more details about how-to configure
  * and create imximage boot image
@@ -40,76 +43,3 @@ DATA 4 0x020c4074 0xffffffff
 DATA 4 0x020c4078 0xffffffff
 DATA 4 0x020c407c 0xffffffff
 DATA 4 0x020c4080 0xffffffff
-
-DATA 4 0x020e0344 0x00003030
-DATA 4 0x020e0348 0x00003030
-DATA 4 0x020e034c 0x00003030
-DATA 4 0x020e0350 0x00003030
-DATA 4 0x020e030c 0x00000030
-DATA 4 0x020e0310 0x00000030
-DATA 4 0x020e0314 0x00000030
-DATA 4 0x020e0318 0x00000030
-DATA 4 0x020e0300 0x00000030
-DATA 4 0x020e031c 0x00000030
-DATA 4 0x020e0338 0x00000028
-DATA 4 0x020e0320 0x00000030
-DATA 4 0x020e032c 0x00000000
-DATA 4 0x020e033c 0x00000008
-DATA 4 0x020e0340 0x00000008
-DATA 4 0x020e05c4 0x00000030
-DATA 4 0x020e05cc 0x00000030
-DATA 4 0x020e05d4 0x00000030
-DATA 4 0x020e05d8 0x00000030
-DATA 4 0x020e05ac 0x00000030
-DATA 4 0x020e05c8 0x00000030
-DATA 4 0x020e05b0 0x00020000
-DATA 4 0x020e05b4 0x00000000
-DATA 4 0x020e05c0 0x00020000
-DATA 4 0x020e05d0 0x00080000
-
-DATA 4 0x021b001c 0x00008000
-DATA 4 0x021b085c 0x1b4700c7
-DATA 4 0x021b0800 0xa1390003
-DATA 4 0x021b0890 0x00300000
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b081c 0x33333333
-DATA 4 0x021b0820 0x33333333
-DATA 4 0x021b0824 0x33333333
-DATA 4 0x021b0828 0x33333333
-DATA 4 0x021b082c 0xf3333333
-DATA 4 0x021b0830 0xf3333333
-DATA 4 0x021b0834 0xf3333333
-DATA 4 0x021b0838 0xf3333333
-DATA 4 0x021b0848 0x4241444a
-DATA 4 0x021b0850 0x3030312b
-DATA 4 0x021b083c 0x20000000
-DATA 4 0x021b0840 0x00000000
-DATA 4 0x021b08c0 0x24911492
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b000c 0x33374133
-DATA 4 0x021b0004 0x00020024
-DATA 4 0x021b0010 0x00100A82
-DATA 4 0x021b0014 0x00000093
-DATA 4 0x021b0018 0x00001688
-DATA 4 0x021b002c 0x0f9f26d2
-DATA 4 0x021b0030 0x0000020e
-DATA 4 0x021b0038 0x00190778
-DATA 4 0x021b0008 0x00000000
-DATA 4 0x021b0040 0x0000004f
-DATA 4 0x021b0000 0xc3110000
-DATA 4 0x021b001c 0x003f8030
-DATA 4 0x021b001c 0xff0a8030
-DATA 4 0x021b001c 0x82018030
-DATA 4 0x021b001c 0x04028030
-DATA 4 0x021b001c 0x02038030
-DATA 4 0x021b001c 0xff0a8038
-DATA 4 0x021b001c 0x82018038
-DATA 4 0x021b001c 0x04028038
-DATA 4 0x021b001c 0x02038038
-DATA 4 0x021b0800 0xa1310003
-DATA 4 0x021b0020 0x00001800
-DATA 4 0x021b0818 0x00000000
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b0004 0x00025564
-DATA 4 0x021b0404 0x00011006
-DATA 4 0x021b001c 0x00000000
Signature · 1 line
1.9.1
#5 lore raw

PATCH 2/7 imx6sl: update DCD configuration file

Hi John,

Quoted 11 lines · John Tobias

Update the Device Configuration Data file for iMX6SL for SPL support.

---
 board/freescale/mx6slevk/imximage.cfg | 78 ++---------------------------------
 1 file changed, 4 insertions(+), 74 deletions(-)
board/freescale/mx6slevk/imximage.cfg +0 -0
index 16ea597..3ebd985 100644

board/freescale/mx6slevk/imximage.cfg line 7

Quoted 8 lines
board/freescale/mx6slevk/imximage.cfg +4 -1
@@ -1,7 +1,10 @@
 /*
  * Copyright (C) 2013 Freescale Semiconductor, Inc.
  *
- * SPDX-License-Identifier:	GPL-2.0+
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) any later version.

NAK. Please take a look at the SPDX. The SPDX identifier substitutes all stuff related to license, avoiding to duplicate the same lines in multiple files.

Quoted 71 lines
board/freescale/mx6slevk/imximage.cfg +0 -63
  *
  * Refer docs/README.imxmage for more details about how-to configure
  * and create imximage boot image
@@ -40,76 +43,3 @@ DATA 4 0x020c4074 0xffffffff
 DATA 4 0x020c4078 0xffffffff
 DATA 4 0x020c407c 0xffffffff
 DATA 4 0x020c4080 0xffffffff
-
-DATA 4 0x020e0344 0x00003030
-DATA 4 0x020e0348 0x00003030
-DATA 4 0x020e034c 0x00003030
-DATA 4 0x020e0350 0x00003030
-DATA 4 0x020e030c 0x00000030
-DATA 4 0x020e0310 0x00000030
-DATA 4 0x020e0314 0x00000030
-DATA 4 0x020e0318 0x00000030
-DATA 4 0x020e0300 0x00000030
-DATA 4 0x020e031c 0x00000030
-DATA 4 0x020e0338 0x00000028
-DATA 4 0x020e0320 0x00000030
-DATA 4 0x020e032c 0x00000000
-DATA 4 0x020e033c 0x00000008
-DATA 4 0x020e0340 0x00000008
-DATA 4 0x020e05c4 0x00000030
-DATA 4 0x020e05cc 0x00000030
-DATA 4 0x020e05d4 0x00000030
-DATA 4 0x020e05d8 0x00000030
-DATA 4 0x020e05ac 0x00000030
-DATA 4 0x020e05c8 0x00000030
-DATA 4 0x020e05b0 0x00020000
-DATA 4 0x020e05b4 0x00000000
-DATA 4 0x020e05c0 0x00020000
-DATA 4 0x020e05d0 0x00080000
-
-DATA 4 0x021b001c 0x00008000
-DATA 4 0x021b085c 0x1b4700c7
-DATA 4 0x021b0800 0xa1390003
-DATA 4 0x021b0890 0x00300000
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b081c 0x33333333
-DATA 4 0x021b0820 0x33333333
-DATA 4 0x021b0824 0x33333333
-DATA 4 0x021b0828 0x33333333
-DATA 4 0x021b082c 0xf3333333
-DATA 4 0x021b0830 0xf3333333
-DATA 4 0x021b0834 0xf3333333
-DATA 4 0x021b0838 0xf3333333
-DATA 4 0x021b0848 0x4241444a
-DATA 4 0x021b0850 0x3030312b
-DATA 4 0x021b083c 0x20000000
-DATA 4 0x021b0840 0x00000000
-DATA 4 0x021b08c0 0x24911492
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b000c 0x33374133
-DATA 4 0x021b0004 0x00020024
-DATA 4 0x021b0010 0x00100A82
-DATA 4 0x021b0014 0x00000093
-DATA 4 0x021b0018 0x00001688
-DATA 4 0x021b002c 0x0f9f26d2
-DATA 4 0x021b0030 0x0000020e
-DATA 4 0x021b0038 0x00190778
-DATA 4 0x021b0008 0x00000000
-DATA 4 0x021b0040 0x0000004f
-DATA 4 0x021b0000 0xc3110000
-DATA 4 0x021b001c 0x003f8030
-DATA 4 0x021b001c 0xff0a8030
-DATA 4 0x021b001c 0x82018030
-DATA 4 0x021b001c 0x04028030
-DATA 4 0x021b001c 0x02038030
-DATA 4 0x021b001c 0xff0a8038

board/freescale/mx6slevk/imximage.cfg DATA 4 0x020c4074 0xffffffff · line 115

Quoted 10 lines
board/freescale/mx6slevk/imximage.cfg +0 -10
-DATA 4 0x021b001c 0x82018038
-DATA 4 0x021b001c 0x04028038
-DATA 4 0x021b001c 0x02038038
-DATA 4 0x021b0800 0xa1310003
-DATA 4 0x021b0020 0x00001800
-DATA 4 0x021b0818 0x00000000
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b0004 0x00025564
-DATA 4 0x021b0404 0x00011006
-DATA 4 0x021b001c 0x00000000

Some comment in the commit message explaining what is happening here can be useful.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#6 lore raw

PATCH 2/7 imx6sl: update DCD configuration file

My mistake, I should use what's in the mx6q_4x_mt41j128.cfg.

Regards,

john

Quoted 121 lines · Stefano Babic

Hi John,

Quoted 11 lines · John Tobias

Update the Device Configuration Data file for iMX6SL for SPL support.

---
 board/freescale/mx6slevk/imximage.cfg | 78 ++---------------------------------
 1 file changed, 4 insertions(+), 74 deletions(-)
board/freescale/mx6slevk/imximage.cfg +0 -0
index 16ea597..3ebd985 100644

board/freescale/mx6slevk/imximage.cfg line 7

Quoted 8 lines
board/freescale/mx6slevk/imximage.cfg +4 -1
@@ -1,7 +1,10 @@
 /*
  * Copyright (C) 2013 Freescale Semiconductor, Inc.
  *
- * SPDX-License-Identifier:  GPL-2.0+
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) any later version.

NAK. Please take a look at the SPDX. The SPDX identifier substitutes all stuff related to license, avoiding to duplicate the same lines in multiple files.

Quoted 71 lines
board/freescale/mx6slevk/imximage.cfg +0 -63
  *
  * Refer docs/README.imxmage for more details about how-to configure
  * and create imximage boot image
@@ -40,76 +43,3 @@ DATA 4 0x020c4074 0xffffffff
 DATA 4 0x020c4078 0xffffffff
 DATA 4 0x020c407c 0xffffffff
 DATA 4 0x020c4080 0xffffffff
-
-DATA 4 0x020e0344 0x00003030
-DATA 4 0x020e0348 0x00003030
-DATA 4 0x020e034c 0x00003030
-DATA 4 0x020e0350 0x00003030
-DATA 4 0x020e030c 0x00000030
-DATA 4 0x020e0310 0x00000030
-DATA 4 0x020e0314 0x00000030
-DATA 4 0x020e0318 0x00000030
-DATA 4 0x020e0300 0x00000030
-DATA 4 0x020e031c 0x00000030
-DATA 4 0x020e0338 0x00000028
-DATA 4 0x020e0320 0x00000030
-DATA 4 0x020e032c 0x00000000
-DATA 4 0x020e033c 0x00000008
-DATA 4 0x020e0340 0x00000008
-DATA 4 0x020e05c4 0x00000030
-DATA 4 0x020e05cc 0x00000030
-DATA 4 0x020e05d4 0x00000030
-DATA 4 0x020e05d8 0x00000030
-DATA 4 0x020e05ac 0x00000030
-DATA 4 0x020e05c8 0x00000030
-DATA 4 0x020e05b0 0x00020000
-DATA 4 0x020e05b4 0x00000000
-DATA 4 0x020e05c0 0x00020000
-DATA 4 0x020e05d0 0x00080000
-
-DATA 4 0x021b001c 0x00008000
-DATA 4 0x021b085c 0x1b4700c7
-DATA 4 0x021b0800 0xa1390003
-DATA 4 0x021b0890 0x00300000
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b081c 0x33333333
-DATA 4 0x021b0820 0x33333333
-DATA 4 0x021b0824 0x33333333
-DATA 4 0x021b0828 0x33333333
-DATA 4 0x021b082c 0xf3333333
-DATA 4 0x021b0830 0xf3333333
-DATA 4 0x021b0834 0xf3333333
-DATA 4 0x021b0838 0xf3333333
-DATA 4 0x021b0848 0x4241444a
-DATA 4 0x021b0850 0x3030312b
-DATA 4 0x021b083c 0x20000000
-DATA 4 0x021b0840 0x00000000
-DATA 4 0x021b08c0 0x24911492
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b000c 0x33374133
-DATA 4 0x021b0004 0x00020024
-DATA 4 0x021b0010 0x00100A82
-DATA 4 0x021b0014 0x00000093
-DATA 4 0x021b0018 0x00001688
-DATA 4 0x021b002c 0x0f9f26d2
-DATA 4 0x021b0030 0x0000020e
-DATA 4 0x021b0038 0x00190778
-DATA 4 0x021b0008 0x00000000
-DATA 4 0x021b0040 0x0000004f
-DATA 4 0x021b0000 0xc3110000
-DATA 4 0x021b001c 0x003f8030
-DATA 4 0x021b001c 0xff0a8030
-DATA 4 0x021b001c 0x82018030
-DATA 4 0x021b001c 0x04028030
-DATA 4 0x021b001c 0x02038030
-DATA 4 0x021b001c 0xff0a8038

board/freescale/mx6slevk/imximage.cfg DATA 4 0x020c4074 0xffffffff · line 115

Quoted 10 lines
board/freescale/mx6slevk/imximage.cfg +0 -10
-DATA 4 0x021b001c 0x82018038
-DATA 4 0x021b001c 0x04028038
-DATA 4 0x021b001c 0x02038038
-DATA 4 0x021b0800 0xa1310003
-DATA 4 0x021b0020 0x00001800
-DATA 4 0x021b0818 0x00000000
-DATA 4 0x021b08b8 0x00000800
-DATA 4 0x021b0004 0x00025564
-DATA 4 0x021b0404 0x00011006
-DATA 4 0x021b001c 0x00000000

Some comment in the commit message explaining what is happening here can be useful.

Best regards,
Stefano Babic

--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

#7 lore raw

PATCH 3/7 imx6sl: add spl on board configuration

In reply to John Tobias

add spl on build configuration for iMX6SL

---
 configs/mx6slevk_defconfig | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
configs/mx6slevk_defconfig +3 -2
index fb8c4de..dfdf54f 100644
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6slevk/imximage.cfg,MX6SL"
-CONFIG_ARM=y
-CONFIG_TARGET_MX6SLEVK=y
++S:CONFIG_ARM=y
++S:CONFIG_TARGET_MX6SLEVK=y
Signature · 1 line
1.9.1
#8 lore raw

PATCH 4/7 imx6: add additional flexibility for defining macros

In reply to John Tobias

iMX6SL has a different address value for the following:

CONFIG_SPL_BSS_START_ADDR
CONFIG_SYS_SPL_MALLOC_START

---
 include/configs/imx6_spl.h | 6 ++++++
 1 file changed, 6 insertions(+)
include/configs/imx6_spl.h +6 -0
index 4ff37b3..61233c4 100644
@@ -64,10 +64,16 @@
 #define CONFIG_SPL_LIBDISK_SUPPORT
 #endif
 
+#ifndef CONFIG_SPL_BSS_START_ADDR
 #define CONFIG_SPL_BSS_START_ADDR	0x18200000
+#endif
 #define CONFIG_SPL_BSS_MAX_SIZE		0x100000	/* 1 MB */
+#ifndef CONFIG_SYS_SPL_MALLOC_START
 #define CONFIG_SYS_SPL_MALLOC_START	0x18300000
+#endif
+#ifndef CONFIG_SYS_SPL_MALLOC_SIZE
 #define CONFIG_SYS_SPL_MALLOC_SIZE	0x3200000	/* 50 MB */
+#endif
 #ifndef CONFIG_SYS_TEXT_BASE
 #define CONFIG_SYS_TEXT_BASE		0x17800000
 #endif
Signature · 1 line
1.9.1
#9 lore raw

PATCH 5/7 imx6sl: add spl in include header file

In reply to John Tobias

add the SPL macros in include header file for iMX6SL

---
 include/configs/mx6slevk.h | 8 ++++++++
 1 file changed, 8 insertions(+)
include/configs/mx6slevk.h +8 -0
index 4fcaf51..afbb81d 100644
@@ -14,6 +14,14 @@
 #include <linux/sizes.h>
 #include "mx6_common.h"
 
+#ifdef CONFIG_SPL
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_MMC_SUPPORT
+#define CONFIG_SPL_BSS_START_ADDR	0x82000000
+#define CONFIG_SYS_SPL_MALLOC_START	0x83000000
+#include "imx6_spl.h"
+#endif
+
 #define CONFIG_MX6
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
Signature · 1 line
1.9.1
#10 lore raw

PATCH 6/7 imx6sl: add SPL support for iMX6SL-evk

In reply to John Tobias

This patch support the SPL features for iMX6SL.
It tested to boot on SD1, SD2 and SD3 mmc ports.

---
 board/freescale/mx6slevk/mx6slevk.c | 168 +++++++++++++++++++++++++++++++++++-
 1 file changed, 167 insertions(+), 1 deletion(-)
board/freescale/mx6slevk/mx6slevk.c +167 -1
index e76c343..2c11c4a 100644
@@ -42,7 +42,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int dram_init(void)
 {
-	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
+	gd->ram_size = imx_ddr_size();
 
 	return 0;
 }
@@ -275,3 +275,169 @@ int checkboard(void)
 
 	return 0;
 }
+
+#ifdef CONFIG_SPL_BUILD
+#include <spl.h>
+#include <libfdt.h>
+
+#define BOOT_CFG	0x20D8004
+#define __REG(x)        (*((volatile u32 *)(x)))
+
+struct fsl_esdhc_cfg spl_usdhc_cfg;
+/*
+ * Got it from imximage.cfg file
+ */
+static void spl_dram_mx6slevk(void)
+{
+	__REG(0x020e0344) = 0x00003030;
+	__REG(0x020e0348) = 0x00003030;
+	__REG(0x020e034c) = 0x00003030;
+	__REG(0x020e0350) = 0x00003030;
+	__REG(0x020e030c) = 0x00000030;
+	__REG(0x020e0310) = 0x00000030;
+	__REG(0x020e0314) = 0x00000030;
+	__REG(0x020e0318) = 0x00000030;
+	__REG(0x020e0300) = 0x00000030;
+	__REG(0x020e031c) = 0x00000030;
+	__REG(0x020e0338) = 0x00000028;
+	__REG(0x020e0320) = 0x00000030;
+	__REG(0x020e032c) = 0x00000000;
+	__REG(0x020e033c) = 0x00000008;
+	__REG(0x020e0340) = 0x00000008;
+	__REG(0x020e05c4) = 0x00000030;
+	__REG(0x020e05cc) = 0x00000030;
+	__REG(0x020e05d4) = 0x00000030;
+	__REG(0x020e05d8) = 0x00000030;
+	__REG(0x020e05ac) = 0x00000030;
+	__REG(0x020e05c8) = 0x00000030;
+	__REG(0x020e05b0) = 0x00020000;
+	__REG(0x020e05b4) = 0x00000000;
+	__REG(0x020e05c0) = 0x00020000;
+	__REG(0x020e05d0) = 0x00080000;
+
+	__REG(0x021b001c) = 0x00008000;
+	__REG(0x021b085c) = 0x1b4700c7;
+	__REG(0x021b0800) = 0xa1390003;
+	__REG(0x021b0890) = 0x00300000;
+	__REG(0x021b08b8) = 0x00000800;
+	__REG(0x021b081c) = 0x33333333;
+	__REG(0x021b0820) = 0x33333333;
+	__REG(0x021b0824) = 0x33333333;
+	__REG(0x021b0828) = 0x33333333;
+	__REG(0x021b082c) = 0xf3333333;
+	__REG(0x021b0830) = 0xf3333333;
+	__REG(0x021b0834) = 0xf3333333;
+	__REG(0x021b0838) = 0xf3333333;
+	__REG(0x021b0848) = 0x4241444a;
+	__REG(0x021b0850) = 0x3030312b;
+	__REG(0x021b083c) = 0x20000000;
+	__REG(0x021b0840) = 0x00000000;
+	__REG(0x021b08c0) = 0x24911492;
+	__REG(0x021b08b8) = 0x00000800;
+	__REG(0x021b000c) = 0x33374133;
+	__REG(0x021b0004) = 0x00020024;
+	__REG(0x021b0010) = 0x00100A82;
+	__REG(0x021b0014) = 0x00000093;
+	__REG(0x021b0018) = 0x00001688;
+	__REG(0x021b002c) = 0x0f9f26d2;
+	__REG(0x021b0030) = 0x0000020e;
+	__REG(0x021b0038) = 0x00190778;
+	__REG(0x021b0008) = 0x00000000;
+	__REG(0x021b0040) = 0x0000004f;
+	__REG(0x021b0000) = 0xc3110000;
+	__REG(0x021b001c) = 0x003f8030;
+	__REG(0x021b001c) = 0xff0a8030;
+	__REG(0x021b001c) = 0x82018030;
+	__REG(0x021b001c) = 0x04028030;
+	__REG(0x021b001c) = 0x02038030;
+	__REG(0x021b001c) = 0xff0a8038;
+	__REG(0x021b001c) = 0x82018038;
+	__REG(0x021b001c) = 0x04028038;
+	__REG(0x021b001c) = 0x02038038;
+	__REG(0x021b0800) = 0xa1310003;
+	__REG(0x021b0020) = 0x00001800;
+	__REG(0x021b0818) = 0x00000000;
+	__REG(0x021b08b8) = 0x00000800;
+	__REG(0x021b0004) = 0x00025564;
+	__REG(0x021b0404) = 0x00011006;
+	__REG(0x021b001c) = 0x00000000;
+}
+
+/*
+ * This section require the differentiation
+ * between iMX6 SL.
+ * But for now, it will configure only for
+ * iMX6SL-evk.
+ */
+static void spl_dram_init(void)
+{
+	spl_dram_mx6slevk();
+}
+
+int spl_board_mmc_init(bd_t *bis)
+{
+	unsigned reg = readl(BOOT_CFG) >> 11;
+	/*
+	 * Upon reading BOOT_CFG register the following map is done:
+	 * Bit 11 and 12 of BOOT_CFG register can determine the current
+	 * mmc port
+	 * 0x0                  SD1
+	 * 0x1                  SD2
+	 * 0x2                  SD3
+	 */
+
+	switch (reg & 0x3) {
+	case 0x0:
+		imx_iomux_v3_setup_multiple_pads(
+			usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
+		spl_usdhc_cfg.esdhc_base = USDHC1_BASE_ADDR;
+		spl_usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
+		gd->arch.sdhc_clk = spl_usdhc_cfg.sdhc_clk;
+		break;
+	case 0x1:
+		imx_iomux_v3_setup_multiple_pads(
+			usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
+		spl_usdhc_cfg.esdhc_base = USDHC2_BASE_ADDR;
+		spl_usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
+		gd->arch.sdhc_clk = spl_usdhc_cfg.sdhc_clk;
+		break;
+	case 0x2:
+		imx_iomux_v3_setup_multiple_pads(
+			usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
+		spl_usdhc_cfg.esdhc_base = USDHC3_BASE_ADDR;
+		spl_usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
+		gd->arch.sdhc_clk = spl_usdhc_cfg.sdhc_clk;
+		break;
+	}
+
+	return fsl_esdhc_initialize(bis, &spl_usdhc_cfg);
+}
+
+void board_init_f(ulong dummy)
+{
+	/* setup AIPS and disable watchdog */
+	arch_cpu_init();
+
+	/* iomux and setup of i2c */
+	board_early_init_f();
+
+	/* setup GP timer */
+	timer_init();
+
+	/* UART clocks enabled and gd valid - init serial console */
+	preloader_console_init();
+
+	/* DDR initialization */
+	spl_dram_init();
+
+	/* Clear the BSS. */
+	memset(__bss_start, 0, __bss_end - __bss_start);
+
+	/* load/boot image from boot device */
+	board_init_r(NULL, 0);
+}
+
+void reset_cpu(ulong addr)
+{
+}
+#endif
Signature · 1 line
1.9.1
#11 lore raw

PATCH 7/7 kconfig: imx6sl: add add SUPPORT_SPL

In reply to John Tobias

enable SUPPORT_SPL by default for iMX6SL-evk

---
 arch/arm/Kconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm/Kconfig +1 -0
index ab0d284..40a3604 100644
@@ -614,6 +614,7 @@ config TARGET_MX6SABRESD
 config TARGET_MX6SLEVK
 	bool "Support mx6slevk"
 	select CPU_V7
+	select SUPPORT_SPL
 
 config TARGET_MX6SXSABRESD
 	bool "Support mx6sxsabresd"
Signature · 1 line
1.9.1
#12 lore raw

cover *** iMX6SL-evk SPL Support ***

In reply to John Tobias

Hi,

Please drop "***" from the cover letter template git-format-patch generates. :)

Cheers,
Andreas

Signature · 2 lines
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 21284 AG N?rnberg
#13 lore raw

cover *** iMX6SL-evk SPL Support ***

Thanks for the info.

Regards,

John

Quoted 12 lines · Andreas F?rber

Hi,

Please drop "***" from the cover letter template git-format-patch generates. :)

Cheers,
Andreas

--
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 21284 AG N?rnberg