* [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define
@ 2015-11-06 16:25 Lucas Stach
2015-11-06 16:25 ` [PATCH 2/7] ARM: microsom: delete cargo-cult from Makefile Lucas Stach
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
arch/arm/mach-imx/include/mach/imx6-ddr-regs.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-imx/include/mach/imx6-ddr-regs.h b/arch/arm/mach-imx/include/mach/imx6-ddr-regs.h
index ac2764f1b6ef..fd1de8e074fa 100644
--- a/arch/arm/mach-imx/include/mach/imx6-ddr-regs.h
+++ b/arch/arm/mach-imx/include/mach/imx6-ddr-regs.h
@@ -24,6 +24,7 @@
#define MX6_MMDC_P0_MDRWD 0x021b002c
#define MX6_MMDC_P0_MDOR 0x021b0030
#define MX6_MMDC_P0_MDASP 0x021b0040
+#define MX6_MMDC_P0_MAARCR 0x021b0400
#define MX6_MMDC_P0_MAPSR 0x021b0404
#define MX6_MMDC_P0_MPZQHWCTRL 0x021b0800
#define MX6_MMDC_P0_MPWLDECTRL0 0x021b080c
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/7] ARM: microsom: delete cargo-cult from Makefile
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
@ 2015-11-06 16:25 ` Lucas Stach
2015-11-06 16:25 ` [PATCH 3/7] ARM: microsom: change barebox image name for Hummingboard Lucas Stach
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
No need to carry this cruft around. It's not needed anymore.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
arch/arm/boards/solidrun-microsom/Makefile | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/arm/boards/solidrun-microsom/Makefile b/arch/arm/boards/solidrun-microsom/Makefile
index 8b4754e1c1ef..01c7a259e9a5 100644
--- a/arch/arm/boards/solidrun-microsom/Makefile
+++ b/arch/arm/boards/solidrun-microsom/Makefile
@@ -1,3 +1,2 @@
-obj-y += board.o flash-header-solidrun-hummingboard.dcd.o
-extra-y += flash-header-solidrun-hummingboard.dcd.S flash-header-solidrun-hummingboard.dcd
+obj-y += board.o
lwl-y += lowlevel.o
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/7] ARM: microsom: change barebox image name for Hummingboard
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
2015-11-06 16:25 ` [PATCH 2/7] ARM: microsom: delete cargo-cult from Makefile Lucas Stach
@ 2015-11-06 16:25 ` Lucas Stach
2015-11-06 16:25 ` [PATCH 4/7] ARM: microsom: import DCD from SolidRun U-Boot Lucas Stach
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
To reflect that the current image is in fact for a combination of a
MicroSOM i1 with a Hummingboard baseboard.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
arch/arm/boards/solidrun-microsom/lowlevel.c | 2 +-
images/Makefile.imx | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/boards/solidrun-microsom/lowlevel.c b/arch/arm/boards/solidrun-microsom/lowlevel.c
index 30f4a3f59104..703c0aafd1d5 100644
--- a/arch/arm/boards/solidrun-microsom/lowlevel.c
+++ b/arch/arm/boards/solidrun-microsom/lowlevel.c
@@ -6,7 +6,7 @@
extern char __dtb_imx6dl_hummingboard_start[];
-ENTRY_FUNCTION(start_imx6dl_hummingboard, r0, r1, r2)
+ENTRY_FUNCTION(start_hummingboard_microsom_i1, r0, r1, r2)
{
void *fdt;
diff --git a/images/Makefile.imx b/images/Makefile.imx
index c33b1531787d..e47b7a40594d 100644
--- a/images/Makefile.imx
+++ b/images/Makefile.imx
@@ -202,10 +202,10 @@ CFG_start_imx6sx_sabresdb.pblx.imximg = $(board)/freescale-mx6sx-sabresdb/flash-
FILE_barebox-freescale-imx6sx-sabresdb.img = start_imx6sx_sabresdb.pblx.imximg
image-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += barebox-freescale-imx6sx-sabresdb.img
-pblx-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += start_imx6dl_hummingboard
-CFG_start_imx6dl_hummingboard.pblx.imximg = $(board)/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg
-FILE_barebox-solidrun-imx6dl-hummingboard.img = start_imx6dl_hummingboard.pblx.imximg
-image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-imx6dl-hummingboard.img
+pblx-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += start_hummingboard_microsom_i1
+CFG_start_hummingboard_microsom_i1.pblx.imximg = $(board)/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg
+FILE_barebox-solidrun-hummingboard-microsom-i1.img = start_hummingboard_microsom_i1.pblx.imximg
+image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-hummingboard-microsom-i1.img
pblx-$(CONFIG_MACH_NITROGEN6X) += start_imx6q_nitrogen6x_1g
CFG_start_imx6q_nitrogen6x_1g.pblx.imximg = $(board)/boundarydevices-nitrogen6x/flash-header-nitrogen6q-1g.imxcfg
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/7] ARM: microsom: import DCD from SolidRun U-Boot
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
2015-11-06 16:25 ` [PATCH 2/7] ARM: microsom: delete cargo-cult from Makefile Lucas Stach
2015-11-06 16:25 ` [PATCH 3/7] ARM: microsom: change barebox image name for Hummingboard Lucas Stach
@ 2015-11-06 16:25 ` Lucas Stach
2015-11-06 16:25 ` [PATCH 5/7] ARM: microsom: add full set of module variants on Hummingboard Lucas Stach
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
This is a complete set of DRAM configuration values for all of the
MicroSOM variants extracted from SolidRun U-Boot.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
.../solidrun-microsom/1066mhz-4x128mx16.imxcfg | 70 +++++++++++++++++++
.../solidrun-microsom/1066mhz-4x256mx16.imxcfg | 70 +++++++++++++++++++
.../boards/solidrun-microsom/1066mhz-64b.imxcfg | 58 ++++++++++++++++
.../solidrun-microsom/800mhz-2x128mx16.imxcfg | 55 +++++++++++++++
.../arm/boards/solidrun-microsom/800mhz-32b.imxcfg | 59 ++++++++++++++++
.../solidrun-microsom/800mhz-4x128mx16.imxcfg | 64 ++++++++++++++++++
.../arm/boards/solidrun-microsom/800mhz-64b.imxcfg | 57 ++++++++++++++++
| 9 +++
| 9 +++
| 9 +++
| 9 +++
| 79 ----------------------
images/Makefile.imx | 2 +-
13 files changed, 470 insertions(+), 80 deletions(-)
create mode 100644 arch/arm/boards/solidrun-microsom/1066mhz-4x128mx16.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/1066mhz-4x256mx16.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/1066mhz-64b.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/800mhz-2x128mx16.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/800mhz-32b.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/800mhz-4x128mx16.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/800mhz-64b.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/flash-header-microsom-i1.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/flash-header-microsom-i2.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/flash-header-microsom-i2eX.imxcfg
create mode 100644 arch/arm/boards/solidrun-microsom/flash-header-microsom-i4.imxcfg
delete mode 100644 arch/arm/boards/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg
diff --git a/arch/arm/boards/solidrun-microsom/1066mhz-4x128mx16.imxcfg b/arch/arm/boards/solidrun-microsom/1066mhz-4x128mx16.imxcfg
new file mode 100644
index 000000000000..6902fe113f5c
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/1066mhz-4x128mx16.imxcfg
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_MMDC_P0_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P1_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P0_MPWLDECTRL0 0x00000000
+wm 32 MX6_MMDC_P0_MPWLDECTRL1 0x00000000
+wm 32 MX6_MMDC_P1_MPWLDECTRL0 0x00000000
+wm 32 MX6_MMDC_P1_MPWLDECTRL1 0x00000000
+wm 32 MX6_MMDC_P0_MPDGCTRL0 0x0314031c
+wm 32 MX6_MMDC_P0_MPDGCTRL1 0x023e0304
+wm 32 MX6_MMDC_P1_MPDGCTRL0 0x03240330
+wm 32 MX6_MMDC_P1_MPDGCTRL1 0x03180260
+wm 32 MX6_MMDC_P0_MPRDDLCTL 0x3630323c
+wm 32 MX6_MMDC_P1_MPRDDLCTL 0x3436283a
+wm 32 MX6_MMDC_P0_MPWRDLCTL 0x36344038
+wm 32 MX6_MMDC_P1_MPWRDLCTL 0x422a423c
+wm 32 MX6_MMDC_P0_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P0_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P1_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P0_MDPDC 0x00025576
+wm 32 MX6_MMDC_P0_MDOTC 0x09444040
+wm 32 MX6_MMDC_P0_MDCFG0 0x54597955
+wm 32 MX6_MMDC_P0_MDCFG1 0xFF328F64
+wm 32 MX6_MMDC_P0_MDCFG2 0x01FF00DB
+wm 32 MX6_MMDC_P0_MDMISC 0x00011740
+wm 32 MX6_MMDC_P0_MDSCR 0x00008000
+wm 32 MX6_MMDC_P0_MDRWD 0x000026d2
+wm 32 MX6_MMDC_P0_MDOR 0x005B0E21
+wm 32 MX6_MMDC_P0_MDASP 0x00000027
+wm 32 MX6_MMDC_P0_MAARCR 0x11420000
+wm 32 MX6_MMDC_P0_MDCTL 0x831A0000
+wm 32 MX6_MMDC_P0_MDSCR 0x02088032
+wm 32 MX6_MMDC_P0_MDSCR 0x0208803A
+wm 32 MX6_MMDC_P0_MDSCR 0x00008033
+wm 32 MX6_MMDC_P0_MDSCR 0x0000803B
+wm 32 MX6_MMDC_P0_MDSCR 0x00408031
+wm 32 MX6_MMDC_P0_MDSCR 0x00408039
+wm 32 MX6_MMDC_P0_MDSCR 0x09408030
+wm 32 MX6_MMDC_P0_MDSCR 0x09408038
+wm 32 MX6_MMDC_P0_MDSCR 0x04008040
+wm 32 MX6_MMDC_P0_MDSCR 0x04008048
+wm 32 MX6_MMDC_P0_MDREF 0x00005800
+wm 32 MX6_MMDC_P0_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P1_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P0_MDSCR 0x00000000
+wm 32 MX6_MMDC_P0_MAPSR 0x00011006
diff --git a/arch/arm/boards/solidrun-microsom/1066mhz-4x256mx16.imxcfg b/arch/arm/boards/solidrun-microsom/1066mhz-4x256mx16.imxcfg
new file mode 100644
index 000000000000..ac336e532b4b
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/1066mhz-4x256mx16.imxcfg
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_MMDC_P0_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P1_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P0_MPWLDECTRL0 0x00000000
+wm 32 MX6_MMDC_P0_MPWLDECTRL1 0x00000000
+wm 32 MX6_MMDC_P1_MPWLDECTRL0 0x00000000
+wm 32 MX6_MMDC_P1_MPWLDECTRL1 0x00000000
+wm 32 MX6_MMDC_P0_MPDGCTRL0 0x0314031c
+wm 32 MX6_MMDC_P0_MPDGCTRL1 0x023e0304
+wm 32 MX6_MMDC_P1_MPDGCTRL0 0x03240330
+wm 32 MX6_MMDC_P1_MPDGCTRL1 0x03180260
+wm 32 MX6_MMDC_P0_MPRDDLCTL 0x3630323c
+wm 32 MX6_MMDC_P1_MPRDDLCTL 0x3436283a
+wm 32 MX6_MMDC_P0_MPWRDLCTL 0x36344038
+wm 32 MX6_MMDC_P1_MPWRDLCTL 0x422a423c
+wm 32 MX6_MMDC_P0_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P0_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P1_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P0_MDPDC 0x00025576
+wm 32 MX6_MMDC_P0_MDOTC 0x09444040
+wm 32 MX6_MMDC_P0_MDCFG0 0x898E7975
+wm 32 MX6_MMDC_P0_MDCFG1 0xFF328F64
+wm 32 MX6_MMDC_P0_MDCFG2 0x01FF00DB
+wm 32 MX6_MMDC_P0_MDMISC 0x00011740
+wm 32 MX6_MMDC_P0_MDSCR 0x00008000
+wm 32 MX6_MMDC_P0_MDRWD 0x000026d2
+wm 32 MX6_MMDC_P0_MDOR 0x005B0E21
+wm 32 MX6_MMDC_P0_MDASP 0x00000047
+wm 32 MX6_MMDC_P0_MAARCR 0x11420000
+wm 32 MX6_MMDC_P0_MDCTL 0x841A0000
+wm 32 MX6_MMDC_P0_MDSCR 0x02088032
+wm 32 MX6_MMDC_P0_MDSCR 0x0208803A
+wm 32 MX6_MMDC_P0_MDSCR 0x00008033
+wm 32 MX6_MMDC_P0_MDSCR 0x0000803B
+wm 32 MX6_MMDC_P0_MDSCR 0x00408031
+wm 32 MX6_MMDC_P0_MDSCR 0x00408039
+wm 32 MX6_MMDC_P0_MDSCR 0x09408030
+wm 32 MX6_MMDC_P0_MDSCR 0x09408038
+wm 32 MX6_MMDC_P0_MDSCR 0x04008040
+wm 32 MX6_MMDC_P0_MDSCR 0x04008048
+wm 32 MX6_MMDC_P0_MDREF 0x00005800
+wm 32 MX6_MMDC_P0_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P1_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P0_MDSCR 0x00000000
+wm 32 MX6_MMDC_P0_MAPSR 0x00011006
diff --git a/arch/arm/boards/solidrun-microsom/1066mhz-64b.imxcfg b/arch/arm/boards/solidrun-microsom/1066mhz-64b.imxcfg
new file mode 100644
index 000000000000..c8e5a0ced153
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/1066mhz-64b.imxcfg
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_IOM_GRP_DDR_TYPE 0x000C0000
+wm 32 MX6_IOM_GRP_DDRPKE 0x00000000
+wm 32 MX6_IOM_DRAM_SDCLK_0 0x00020030
+wm 32 MX6_IOM_DRAM_SDCLK_1 0x00020030
+wm 32 MX6_IOM_DRAM_CAS 0x00020030
+wm 32 MX6_IOM_DRAM_RAS 0x00020030
+wm 32 MX6_IOM_GRP_ADDDS 0x00000030
+wm 32 MX6_IOM_DRAM_RESET 0x00020030
+wm 32 MX6_IOM_DRAM_SDCKE0 0x00003000
+wm 32 MX6_IOM_DRAM_SDCKE1 0x00003000
+wm 32 MX6_IOM_DRAM_SDBA2 0x00000000
+wm 32 MX6_IOM_DRAM_SDODT0 0x00003030
+wm 32 MX6_IOM_DRAM_SDODT1 0x00003030
+wm 32 MX6_IOM_DDRMODE_CTL 0x00020000
+wm 32 MX6_IOM_DRAM_SDQS0 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS1 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS2 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS3 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS4 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS5 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS6 0x00000030
+wm 32 MX6_IOM_DRAM_SDQS7 0x00000030
+wm 32 MX6_IOM_GRP_DDRMODE 0x00020000
+wm 32 MX6_IOM_GRP_B0DS 0x00000030
+wm 32 MX6_IOM_GRP_B1DS 0x00000030
+wm 32 MX6_IOM_GRP_B2DS 0x00000030
+wm 32 MX6_IOM_GRP_B3DS 0x00000030
+wm 32 MX6_IOM_GRP_B4DS 0x00000030
+wm 32 MX6_IOM_GRP_B5DS 0x00000030
+wm 32 MX6_IOM_GRP_B6DS 0x00000030
+wm 32 MX6_IOM_GRP_B7DS 0x00000030
+wm 32 MX6_IOM_DRAM_DQM0 0x00020030
+wm 32 MX6_IOM_DRAM_DQM1 0x00020030
+wm 32 MX6_IOM_DRAM_DQM2 0x00020030
+wm 32 MX6_IOM_DRAM_DQM3 0x00020030
+wm 32 MX6_IOM_DRAM_DQM4 0x00020030
+wm 32 MX6_IOM_DRAM_DQM5 0x00020030
+wm 32 MX6_IOM_DRAM_DQM6 0x00020030
+wm 32 MX6_IOM_DRAM_DQM7 0x00020030
diff --git a/arch/arm/boards/solidrun-microsom/800mhz-2x128mx16.imxcfg b/arch/arm/boards/solidrun-microsom/800mhz-2x128mx16.imxcfg
new file mode 100644
index 000000000000..affb011dd9c0
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/800mhz-2x128mx16.imxcfg
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_MMDC_P0_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P1_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P0_MPWLDECTRL0 0x005a0057
+wm 32 MX6_MMDC_P0_MPWLDECTRL1 0x004a0052
+wm 32 MX6_MMDC_P0_MPDGCTRL0 0x02480240
+wm 32 MX6_MMDC_P0_MPDGCTRL1 0x02340230
+wm 32 MX6_MMDC_P0_MPRDDLCTL 0x40404440
+wm 32 MX6_MMDC_P0_MPWRDLCTL 0x38343034
+wm 32 MX6_MMDC_P0_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P0_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P1_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P0_MDPDC 0x0002002d
+wm 32 MX6_MMDC_P0_MDOTC 0x00333040
+wm 32 MX6_MMDC_P0_MDCFG0 0x3f435313
+wm 32 MX6_MMDC_P0_MDCFG1 0xb66e8b63
+wm 32 MX6_MMDC_P0_MDCFG2 0x01ff00db
+wm 32 MX6_MMDC_P0_MDMISC 0x00011740
+wm 32 MX6_MMDC_P0_MDSCR 0x00008000
+wm 32 MX6_MMDC_P0_MDRWD 0x000026d2
+wm 32 MX6_MMDC_P0_MDOR 0x00431023
+wm 32 MX6_MMDC_P0_MDASP 0x00000017
+wm 32 MX6_MMDC_P0_MAARCR 0x11420000
+wm 32 MX6_MMDC_P0_MDCTL 0x83190000
+wm 32 MX6_MMDC_P0_MDSCR 0x00008032
+wm 32 MX6_MMDC_P0_MDSCR 0x00008033
+wm 32 MX6_MMDC_P0_MDSCR 0x00008031
+wm 32 MX6_MMDC_P0_MDSCR 0x05208030
+wm 32 MX6_MMDC_P0_MDSCR 0x04008040
+wm 32 MX6_MMDC_P0_MDREF 0x00007800
+wm 32 MX6_MMDC_P0_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P0_MDPDC 0x0002556d
+wm 32 MX6_MMDC_P0_MAPSR 0x00011006
+wm 32 MX6_MMDC_P0_MDSCR 0x00000000
diff --git a/arch/arm/boards/solidrun-microsom/800mhz-32b.imxcfg b/arch/arm/boards/solidrun-microsom/800mhz-32b.imxcfg
new file mode 100644
index 000000000000..91322f460396
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/800mhz-32b.imxcfg
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_IOM_GRP_DDR_TYPE 0x000c0000
+wm 32 MX6_IOM_GRP_DDRPKE 0x00000000
+wm 32 MX6_IOM_DRAM_SDCLK_0 0x00000028
+wm 32 MX6_IOM_DRAM_SDCLK_1 0x00000028
+wm 32 MX6_IOM_DRAM_CAS 0x00000010
+wm 32 MX6_IOM_DRAM_RAS 0x00000010
+wm 32 MX6_IOM_GRP_ADDDS 0x00000010
+wm 32 MX6_IOM_DRAM_RESET 0x00000010
+wm 32 MX6_IOM_DRAM_SDCKE0 0x00003000
+wm 32 MX6_IOM_DRAM_SDCKE1 0x00003000
+wm 32 MX6_IOM_DRAM_SDBA2 0x00000000
+wm 32 MX6_IOM_DRAM_SDODT0 0x00000010
+wm 32 MX6_IOM_DRAM_SDODT1 0x00000010
+wm 32 MX6_IOM_GRP_CTLDS 0x00000010
+wm 32 MX6_IOM_DDRMODE_CTL 0x00020000
+wm 32 MX6_IOM_DRAM_SDQS0 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS1 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS2 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS3 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS4 0x00000000
+wm 32 MX6_IOM_DRAM_SDQS5 0x00000000
+wm 32 MX6_IOM_DRAM_SDQS6 0x00000000
+wm 32 MX6_IOM_DRAM_SDQS7 0x00000000
+wm 32 MX6_IOM_GRP_DDRMODE 0x00020000
+wm 32 MX6_IOM_GRP_B0DS 0x00000028
+wm 32 MX6_IOM_GRP_B1DS 0x00000028
+wm 32 MX6_IOM_GRP_B2DS 0x00000028
+wm 32 MX6_IOM_GRP_B3DS 0x00000028
+wm 32 MX6_IOM_GRP_B4DS 0x00000000
+wm 32 MX6_IOM_GRP_B5DS 0x00000000
+wm 32 MX6_IOM_GRP_B6DS 0x00000000
+wm 32 MX6_IOM_GRP_B7DS 0x00000000
+wm 32 MX6_IOM_DRAM_DQM0 0x00000028
+wm 32 MX6_IOM_DRAM_DQM1 0x00000028
+wm 32 MX6_IOM_DRAM_DQM2 0x00000028
+wm 32 MX6_IOM_DRAM_DQM3 0x00000028
+wm 32 MX6_IOM_DRAM_DQM4 0x00000000
+wm 32 MX6_IOM_DRAM_DQM5 0x00000000
+wm 32 MX6_IOM_DRAM_DQM6 0x00000000
+wm 32 MX6_IOM_DRAM_DQM7 0x00000000
diff --git a/arch/arm/boards/solidrun-microsom/800mhz-4x128mx16.imxcfg b/arch/arm/boards/solidrun-microsom/800mhz-4x128mx16.imxcfg
new file mode 100644
index 000000000000..384e6fde429d
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/800mhz-4x128mx16.imxcfg
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_MMDC_P0_MPZQHWCTRL 0xa1390003
+wm 32 MX6_MMDC_P0_MPWLDECTRL0 0x0045004D
+wm 32 MX6_MMDC_P0_MPWLDECTRL1 0x003A0047
+wm 32 MX6_MMDC_P1_MPWLDECTRL0 0x001F001F
+wm 32 MX6_MMDC_P1_MPWLDECTRL1 0x00210035
+wm 32 MX6_MMDC_P0_MPDGCTRL0 0x023C0224
+wm 32 MX6_MMDC_P0_MPDGCTRL1 0x02000220
+wm 32 MX6_MMDC_P1_MPDGCTRL0 0x02200220
+wm 32 MX6_MMDC_P1_MPDGCTRL1 0x02040208
+wm 32 MX6_MMDC_P0_MPRDDLCTL 0x44444846
+wm 32 MX6_MMDC_P1_MPRDDLCTL 0x4042463C
+wm 32 MX6_MMDC_P0_MPWRDLCTL 0x32343032
+wm 32 MX6_MMDC_P1_MPWRDLCTL 0x36363430
+wm 32 MX6_MMDC_P0_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P0_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY0DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY1DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY2DL 0x33333333
+wm 32 MX6_MMDC_P1_MPRDDQBY3DL 0x33333333
+wm 32 MX6_MMDC_P0_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P1_MPMUR0 0x00000800
+wm 32 MX6_MMDC_P0_MDPDC 0x0002002d
+wm 32 MX6_MMDC_P0_MDOTC 0x00333040
+wm 32 MX6_MMDC_P0_MDCFG0 0x3F4352F3
+wm 32 MX6_MMDC_P0_MDCFG1 0xB66D8B63
+wm 32 MX6_MMDC_P0_MDCFG2 0x01FF00DB
+wm 32 MX6_MMDC_P0_MDMISC 0x00011740
+wm 32 MX6_MMDC_P0_MDSCR 0x00008000
+wm 32 MX6_MMDC_P0_MDRWD 0x000026d2
+wm 32 MX6_MMDC_P0_MDOR 0x00431023
+wm 32 MX6_MMDC_P0_MDASP 0x00000027
+wm 32 MX6_MMDC_P0_MDCTL 0x831A0000
+wm 32 MX6_MMDC_P0_MDSCR 0x02008032
+wm 32 MX6_MMDC_P0_MDSCR 0x00008033
+wm 32 MX6_MMDC_P0_MDSCR 0x04008031
+wm 32 MX6_MMDC_P0_MDSCR 0x05208030
+wm 32 MX6_MMDC_P0_MDSCR 0x04008040
+wm 32 MX6_MMDC_P0_MDREF 0x00007800
+wm 32 MX6_MMDC_P0_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P1_MPODTCTRL 0x00000007
+wm 32 MX6_MMDC_P0_MDPDC 0x0002556d
+wm 32 MX6_MMDC_P0_MAPSR 0x00011006
+wm 32 MX6_MMDC_P0_MDSCR 0x00000000
diff --git a/arch/arm/boards/solidrun-microsom/800mhz-64b.imxcfg b/arch/arm/boards/solidrun-microsom/800mhz-64b.imxcfg
new file mode 100644
index 000000000000..021b40b9ef2a
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/800mhz-64b.imxcfg
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2013 Boundary Devices
+ * Copyright (C) 2013 SolidRun ltd.
+ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+wm 32 MX6_IOM_GRP_DDR_TYPE 0x000c0000
+wm 32 MX6_IOM_GRP_DDRPKE 0x00000000
+wm 32 MX6_IOM_DRAM_SDCLK_0 0x00000028
+wm 32 MX6_IOM_DRAM_SDCLK_1 0x00000028
+wm 32 MX6_IOM_DRAM_CAS 0x00000028
+wm 32 MX6_IOM_DRAM_RAS 0x00000028
+wm 32 MX6_IOM_GRP_ADDDS 0x00000028
+wm 32 MX6_IOM_DRAM_RESET 0x00000028
+wm 32 MX6_IOM_DRAM_SDBA2 0x00000000
+wm 32 MX6_IOM_DRAM_SDODT0 0x00000028
+wm 32 MX6_IOM_DRAM_SDODT1 0x00000028
+wm 32 MX6_IOM_GRP_CTLDS 0x00000028
+wm 32 MX6_IOM_DDRMODE_CTL 0x00020000
+wm 32 MX6_IOM_DRAM_SDQS0 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS1 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS2 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS3 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS4 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS5 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS6 0x00000028
+wm 32 MX6_IOM_DRAM_SDQS7 0x00000028
+wm 32 MX6_IOM_GRP_DDRMODE 0x00020000
+wm 32 MX6_IOM_GRP_B0DS 0x00000028
+wm 32 MX6_IOM_GRP_B1DS 0x00000028
+wm 32 MX6_IOM_GRP_B2DS 0x00000028
+wm 32 MX6_IOM_GRP_B3DS 0x00000028
+wm 32 MX6_IOM_GRP_B4DS 0x00000028
+wm 32 MX6_IOM_GRP_B5DS 0x00000028
+wm 32 MX6_IOM_GRP_B6DS 0x00000028
+wm 32 MX6_IOM_GRP_B7DS 0x00000028
+wm 32 MX6_IOM_DRAM_DQM0 0x00000028
+wm 32 MX6_IOM_DRAM_DQM1 0x00000028
+wm 32 MX6_IOM_DRAM_DQM2 0x00000028
+wm 32 MX6_IOM_DRAM_DQM3 0x00000028
+wm 32 MX6_IOM_DRAM_DQM4 0x00000028
+wm 32 MX6_IOM_DRAM_DQM5 0x00000028
+wm 32 MX6_IOM_DRAM_DQM6 0x00000028
+wm 32 MX6_IOM_DRAM_DQM7 0x00000028
--git a/arch/arm/boards/solidrun-microsom/flash-header-microsom-i1.imxcfg b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i1.imxcfg
new file mode 100644
index 000000000000..eb7bc8486dae
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i1.imxcfg
@@ -0,0 +1,9 @@
+loadaddr 0x10000000
+soc imx6
+dcdofs 0x400
+
+#include <mach/imx6-ddr-regs.h>
+#include <mach/imx6dl-ddr-regs.h>
+
+#include "800mhz-32b.imxcfg"
+#include "800mhz-2x128mx16.imxcfg"
--git a/arch/arm/boards/solidrun-microsom/flash-header-microsom-i2.imxcfg b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i2.imxcfg
new file mode 100644
index 000000000000..8930012885a9
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i2.imxcfg
@@ -0,0 +1,9 @@
+loadaddr 0x10000000
+soc imx6
+dcdofs 0x400
+
+#include <mach/imx6-ddr-regs.h>
+#include <mach/imx6dl-ddr-regs.h>
+
+#include "800mhz-64b.imxcfg"
+#include "800mhz-4x128mx16.imxcfg"
--git a/arch/arm/boards/solidrun-microsom/flash-header-microsom-i2eX.imxcfg b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i2eX.imxcfg
new file mode 100644
index 000000000000..4eb937a71797
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i2eX.imxcfg
@@ -0,0 +1,9 @@
+loadaddr 0x10000000
+soc imx6
+dcdofs 0x400
+
+#include <mach/imx6-ddr-regs.h>
+#include <mach/imx6q-ddr-regs.h>
+
+#include "1066mhz-64b.imxcfg"
+#include "1066mhz-4x128mx16.imxcfg"
--git a/arch/arm/boards/solidrun-microsom/flash-header-microsom-i4.imxcfg b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i4.imxcfg
new file mode 100644
index 000000000000..438bd8ea4d7c
--- /dev/null
+++ b/arch/arm/boards/solidrun-microsom/flash-header-microsom-i4.imxcfg
@@ -0,0 +1,9 @@
+loadaddr 0x10000000
+soc imx6
+dcdofs 0x400
+
+#include <mach/imx6-ddr-regs.h>
+#include <mach/imx6q-ddr-regs.h>
+
+#include "1066mhz-64b.imxcfg"
+#include "1066mhz-4x256mx16.imxcfg"
diff --git a/arch/arm/boards/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg b/arch/arm/boards/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg
deleted file mode 100644
index b1856b49ce1b..000000000000
--- a/arch/arm/boards/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg
+++ /dev/null
@@ -1,79 +0,0 @@
-loadaddr 0x10000000
-soc imx6
-dcdofs 0x400
-wm 32 0x020e0774 0x000c0000
-wm 32 0x020e0754 0x00000000
-wm 32 0x020e04ac 0x00000030
-wm 32 0x020e04b0 0x00000030
-wm 32 0x020e0464 0x00000030
-wm 32 0x020e0490 0x00000030
-wm 32 0x020e074c 0x00000030
-wm 32 0x020e0494 0x00000030
-wm 32 0x020e04a4 0x00003000
-wm 32 0x020e04a8 0x00003000
-wm 32 0x020e04a0 0x00000000
-wm 32 0x020e04b4 0x00003030
-wm 32 0x020e04b8 0x00003030
-wm 32 0x020e076c 0x00000030
-wm 32 0x020e0750 0x00000000
-wm 32 0x020e04bc 0x00000030
-wm 32 0x020e04c0 0x00000030
-wm 32 0x020e04c4 0x00000030
-wm 32 0x020e04c8 0x00000030
-wm 32 0x020e04cc 0x00000000
-wm 32 0x020e04d0 0x00000000
-wm 32 0x020e04d4 0x00000000
-wm 32 0x020e04d8 0x00000000
-wm 32 0x020e0760 0x00000000
-wm 32 0x020e0764 0x00000030
-wm 32 0x020e0770 0x00000030
-wm 32 0x020e0778 0x00000030
-wm 32 0x020e077c 0x00000030
-wm 32 0x020e0780 0x00000000
-wm 32 0x020e0784 0x00000000
-wm 32 0x020e078c 0x00000000
-wm 32 0x020e0748 0x00000000
-wm 32 0x020e0470 0x00000030
-wm 32 0x020e0474 0x00000030
-wm 32 0x020e0478 0x00000030
-wm 32 0x020e047c 0x00000030
-wm 32 0x020e0480 0x00000000
-wm 32 0x020e0484 0x00000000
-wm 32 0x020e0488 0x00000000
-wm 32 0x020e048c 0x00000000
-wm 32 0x021b0800 0xa1390003
-wm 32 0x021b4800 0xa1390003
-wm 32 0x021b080c 0x000F0011
-wm 32 0x021b0810 0x000E000F
-wm 32 0x021b083c 0x42240229
-wm 32 0x021b0840 0x021a0219
-wm 32 0x021b0848 0x4e4f5150
-wm 32 0x021b0850 0x35363136
-wm 32 0x021b081c 0x33333333
-wm 32 0x021b0820 0x33333333
-wm 32 0x021b0824 0x33333333
-wm 32 0x021b0828 0x33333333
-wm 32 0x021b08b8 0x00000800
-wm 32 0x021b48b8 0x00000800
-wm 32 0x021b0004 0x0002002d
-wm 32 0x021b0008 0x00333030
-wm 32 0x021b000c 0x40445323
-wm 32 0x021b0010 0xb68e8c63
-wm 32 0x021b0014 0x01ff00db
-wm 32 0x021b0018 0x00001740
-wm 32 0x021b001c 0x00008000
-wm 32 0x021b002c 0x000026d2
-wm 32 0x021b0030 0x00440e21
-wm 32 0x021b0040 0x00000017
-wm 32 0x021b0400 0x11420000
-wm 32 0x021b0000 0x83190000
-wm 32 0x021b001c 0x04008032
-wm 32 0x021b001c 0x00008033
-wm 32 0x021b001c 0x00428031
-wm 32 0x021b001c 0x07208030
-wm 32 0x021b001c 0x04008040
-wm 32 0x021b0020 0x00005800
-wm 32 0x021b0818 0x00000007
-wm 32 0x021b0004 0x0002556d
-wm 32 0x021b0404 0x00011006
-wm 32 0x021b001c 0x00000000
diff --git a/images/Makefile.imx b/images/Makefile.imx
index e47b7a40594d..3b8d6577ed99 100644
--- a/images/Makefile.imx
+++ b/images/Makefile.imx
@@ -203,7 +203,7 @@ FILE_barebox-freescale-imx6sx-sabresdb.img = start_imx6sx_sabresdb.pblx.imximg
image-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += barebox-freescale-imx6sx-sabresdb.img
pblx-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += start_hummingboard_microsom_i1
-CFG_start_hummingboard_microsom_i1.pblx.imximg = $(board)/solidrun-microsom/flash-header-solidrun-hummingboard.imxcfg
+CFG_start_hummingboard_microsom_i1.pblx.imximg = $(board)/solidrun-microsom/flash-header-microsom-i1.imxcfg
FILE_barebox-solidrun-hummingboard-microsom-i1.img = start_hummingboard_microsom_i1.pblx.imximg
image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-hummingboard-microsom-i1.img
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 5/7] ARM: microsom: add full set of module variants on Hummingboard
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
` (2 preceding siblings ...)
2015-11-06 16:25 ` [PATCH 4/7] ARM: microsom: import DCD from SolidRun U-Boot Lucas Stach
@ 2015-11-06 16:25 ` Lucas Stach
2015-11-06 16:25 ` [PATCH 6/7] ARM: microsom: make ETH work on production modules Lucas Stach
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
Now that we have a full set of DRAM configuration entries we can
build images for the full set of modules on Hummingboard.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
arch/arm/boards/solidrun-microsom/board.c | 6 +++--
arch/arm/boards/solidrun-microsom/lowlevel.c | 31 ++++++++++++++++++++++++
arch/arm/dts/Makefile | 2 +-
arch/arm/dts/imx6dl-hummingboard.dts | 4 ----
arch/arm/dts/imx6q-hummingboard.dts | 35 ++++++++++++++++++++++++++++
images/Makefile.imx | 15 ++++++++++++
6 files changed, 86 insertions(+), 7 deletions(-)
create mode 100644 arch/arm/dts/imx6q-hummingboard.dts
diff --git a/arch/arm/boards/solidrun-microsom/board.c b/arch/arm/boards/solidrun-microsom/board.c
index c231c1710372..280653f5b8d1 100644
--- a/arch/arm/boards/solidrun-microsom/board.c
+++ b/arch/arm/boards/solidrun-microsom/board.c
@@ -63,7 +63,8 @@ static int ar8035_phy_fixup(struct phy_device *dev)
static int hummingboard_device_init(void)
{
- if (!of_machine_is_compatible("solidrun,hummingboard/dl"))
+ if (!of_machine_is_compatible("solidrun,hummingboard/dl") &&
+ !of_machine_is_compatible("solidrun,hummingboard/q"))
return 0;
phy_register_fixup_for_uid(0x004dd072, 0xffffffef, ar8035_phy_fixup);
@@ -80,7 +81,8 @@ device_initcall(hummingboard_device_init);
static int hummingboard_late_init(void)
{
- if (!of_machine_is_compatible("solidrun,hummingboard/dl"))
+ if (!of_machine_is_compatible("solidrun,hummingboard/dl") &&
+ !of_machine_is_compatible("solidrun,hummingboard/q"))
return 0;
imx6_bbu_internal_mmc_register_handler("sdcard", "/dev/mmc1.barebox",
diff --git a/arch/arm/boards/solidrun-microsom/lowlevel.c b/arch/arm/boards/solidrun-microsom/lowlevel.c
index 703c0aafd1d5..54f1cdf9f4ea 100644
--- a/arch/arm/boards/solidrun-microsom/lowlevel.c
+++ b/arch/arm/boards/solidrun-microsom/lowlevel.c
@@ -5,6 +5,7 @@
#include <asm/barebox-arm.h>
extern char __dtb_imx6dl_hummingboard_start[];
+extern char __dtb_imx6q_hummingboard_start[];
ENTRY_FUNCTION(start_hummingboard_microsom_i1, r0, r1, r2)
{
@@ -15,3 +16,33 @@ ENTRY_FUNCTION(start_hummingboard_microsom_i1, r0, r1, r2)
fdt = __dtb_imx6dl_hummingboard_start - get_runtime_offset();
barebox_arm_entry(0x10000000, SZ_512M, fdt);
}
+
+ENTRY_FUNCTION(start_hummingboard_microsom_i2, r0, r1, r2)
+{
+ void *fdt;
+
+ imx6_cpu_lowlevel_init();
+
+ fdt = __dtb_imx6dl_hummingboard_start - get_runtime_offset();
+ barebox_arm_entry(0x10000000, SZ_1G, fdt);
+}
+
+ENTRY_FUNCTION(start_hummingboard_microsom_i2ex, r0, r1, r2)
+{
+ void *fdt;
+
+ imx6_cpu_lowlevel_init();
+
+ fdt = __dtb_imx6q_hummingboard_start - get_runtime_offset();
+ barebox_arm_entry(0x10000000, SZ_1G, fdt);
+}
+
+ENTRY_FUNCTION(start_hummingboard_microsom_i4, r0, r1, r2)
+{
+ void *fdt;
+
+ imx6_cpu_lowlevel_init();
+
+ fdt = __dtb_imx6q_hummingboard_start - get_runtime_offset();
+ barebox_arm_entry(0x10000000, SZ_2G, fdt);
+}
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 60880e4d20b4..dee4ad7b4519 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -51,7 +51,7 @@ pbl-dtb-$(CONFIG_MACH_SOCFPGA_ALTERA_SOCDK) += socfpga_cyclone5_socdk.dtb.o
pbl-dtb-$(CONFIG_MACH_SOCFPGA_EBV_SOCRATES) += socfpga_cyclone5_socrates.dtb.o
pbl-dtb-$(CONFIG_MACH_SOCFPGA_TERASIC_SOCKIT) += socfpga_cyclone5_sockit.dtb.o
pbl-dtb-$(CONFIG_MACH_SOLIDRUN_CUBOX) += dove-cubox-bb.dtb.o
-pbl-dtb-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += imx6dl-hummingboard.dtb.o
+pbl-dtb-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += imx6dl-hummingboard.dtb.o imx6q-hummingboard.dtb.o
pbl-dtb-$(CONFIG_MACH_TORADEX_COLIBRI_T20) += tegra20-colibri-iris.dtb.o
pbl-dtb-$(CONFIG_MACH_TOSHIBA_AC100) += tegra20-paz00.dtb.o
pbl-dtb-$(CONFIG_MACH_TQMA53) += imx53-mba53.dtb.o
diff --git a/arch/arm/dts/imx6dl-hummingboard.dts b/arch/arm/dts/imx6dl-hummingboard.dts
index 24f6bfa8171c..3c35cbaee2c6 100644
--- a/arch/arm/dts/imx6dl-hummingboard.dts
+++ b/arch/arm/dts/imx6dl-hummingboard.dts
@@ -17,10 +17,6 @@
device-path = &usdhc2, "partname:barebox-environment";
};
};
-
- memory {
- reg = <0x10000000 0x20000000>;
- };
};
&usdhc2 {
diff --git a/arch/arm/dts/imx6q-hummingboard.dts b/arch/arm/dts/imx6q-hummingboard.dts
new file mode 100644
index 000000000000..ab4510e874c9
--- /dev/null
+++ b/arch/arm/dts/imx6q-hummingboard.dts
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2013 Russell King
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License version 2.
+ */
+
+#include <arm/imx6q-hummingboard.dts>
+#include "imx6qdl.dtsi"
+
+/ {
+ chosen {
+ linux,stdout-path = &uart1;
+
+ environment@0 {
+ compatible = "barebox,environment";
+ device-path = &usdhc2, "partname:barebox-environment";
+ };
+ };
+};
+
+&usdhc2 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "barebox";
+ reg = <0x0 0x80000>;
+ };
+
+ partition@1 {
+ label = "barebox-environment";
+ reg = <0x80000 0x80000>;
+ };
+};
diff --git a/images/Makefile.imx b/images/Makefile.imx
index 3b8d6577ed99..8208fe9e2afd 100644
--- a/images/Makefile.imx
+++ b/images/Makefile.imx
@@ -207,6 +207,21 @@ CFG_start_hummingboard_microsom_i1.pblx.imximg = $(board)/solidrun-microsom/flas
FILE_barebox-solidrun-hummingboard-microsom-i1.img = start_hummingboard_microsom_i1.pblx.imximg
image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-hummingboard-microsom-i1.img
+pblx-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += start_hummingboard_microsom_i2
+CFG_start_hummingboard_microsom_i2.pblx.imximg = $(board)/solidrun-microsom/flash-header-microsom-i2.imxcfg
+FILE_barebox-solidrun-hummingboard-microsom-i2.img = start_hummingboard_microsom_i2.pblx.imximg
+image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-hummingboard-microsom-i2.img
+
+pblx-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += start_hummingboard_microsom_i2ex
+CFG_start_hummingboard_microsom_i2ex.pblx.imximg = $(board)/solidrun-microsom/flash-header-microsom-i2eX.imxcfg
+FILE_barebox-solidrun-hummingboard-microsom-i2eX.img = start_hummingboard_microsom_i2ex.pblx.imximg
+image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-hummingboard-microsom-i2eX.img
+
+pblx-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += start_hummingboard_microsom_i4
+CFG_start_hummingboard_microsom_i4.pblx.imximg = $(board)/solidrun-microsom/flash-header-microsom-i4.imxcfg
+FILE_barebox-solidrun-hummingboard-microsom-i4.img = start_hummingboard_microsom_i4.pblx.imximg
+image-$(CONFIG_MACH_SOLIDRUN_MICROSOM) += barebox-solidrun-hummingboard-microsom-i4.img
+
pblx-$(CONFIG_MACH_NITROGEN6X) += start_imx6q_nitrogen6x_1g
CFG_start_imx6q_nitrogen6x_1g.pblx.imximg = $(board)/boundarydevices-nitrogen6x/flash-header-nitrogen6q-1g.imxcfg
FILE_barebox-boundarydevices-imx6q-nitrogen6x-1g.img = start_imx6q_nitrogen6x_1g.pblx.imximg
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 6/7] ARM: microsom: make ETH work on production modules
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
` (3 preceding siblings ...)
2015-11-06 16:25 ` [PATCH 5/7] ARM: microsom: add full set of module variants on Hummingboard Lucas Stach
@ 2015-11-06 16:25 ` Lucas Stach
2015-11-06 16:25 ` [PATCH 7/7] ARM: microsom: get MAC address from fuses Lucas Stach
2015-11-09 6:32 ` [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Sascha Hauer
6 siblings, 0 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
The pre-production modules had an external crystal to generate the PHY
reference clock. Production modules rely on the i.MX6 to output the
correct clock.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
arch/arm/boards/solidrun-microsom/board.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boards/solidrun-microsom/board.c b/arch/arm/boards/solidrun-microsom/board.c
index 280653f5b8d1..28a60b9e8c79 100644
--- a/arch/arm/boards/solidrun-microsom/board.c
+++ b/arch/arm/boards/solidrun-microsom/board.c
@@ -25,6 +25,7 @@
#include <mach/imx6-regs.h>
#include <mach/imx6.h>
#include <mfd/imx6q-iomuxc-gpr.h>
+#include <linux/clk.h>
#include <linux/sizes.h>
#include <linux/phy.h>
@@ -61,13 +62,26 @@ static int ar8035_phy_fixup(struct phy_device *dev)
return 0;
}
+static void microsom_eth_init(void)
+{
+ void __iomem *iomux = (void *)MX6_IOMUXC_BASE_ADDR;
+ u32 val;
+
+ clk_set_rate(clk_lookup("enet_ref"), 25000000);
+
+ val = readl(iomux + IOMUXC_GPR1);
+ val |= IMX6Q_GPR1_ENET_CLK_SEL_ANATOP;
+ writel(val, iomux + IOMUXC_GPR1);
+
+ phy_register_fixup_for_uid(0x004dd072, 0xffffffef, ar8035_phy_fixup);
+}
static int hummingboard_device_init(void)
{
if (!of_machine_is_compatible("solidrun,hummingboard/dl") &&
!of_machine_is_compatible("solidrun,hummingboard/q"))
return 0;
- phy_register_fixup_for_uid(0x004dd072, 0xffffffef, ar8035_phy_fixup);
+ microsom_eth_init();
/* enable USB VBUS */
gpio_direction_output(IMX_GPIO_NR(3, 22), 1);
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 7/7] ARM: microsom: get MAC address from fuses
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
` (4 preceding siblings ...)
2015-11-06 16:25 ` [PATCH 6/7] ARM: microsom: make ETH work on production modules Lucas Stach
@ 2015-11-06 16:25 ` Lucas Stach
2015-11-09 6:32 ` [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Sascha Hauer
6 siblings, 0 replies; 8+ messages in thread
From: Lucas Stach @ 2015-11-06 16:25 UTC (permalink / raw)
To: barebox
The production models have the MAC fuses blown, so we can use a
real MAC address instead of a random one.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
arch/arm/dts/imx6dl-hummingboard.dts | 4 ++++
arch/arm/dts/imx6q-hummingboard.dts | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/arch/arm/dts/imx6dl-hummingboard.dts b/arch/arm/dts/imx6dl-hummingboard.dts
index 3c35cbaee2c6..231496526065 100644
--- a/arch/arm/dts/imx6dl-hummingboard.dts
+++ b/arch/arm/dts/imx6dl-hummingboard.dts
@@ -19,6 +19,10 @@
};
};
+&ocotp {
+ barebox,provide-mac-address = <&fec 0x620>;
+};
+
&usdhc2 {
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arm/dts/imx6q-hummingboard.dts b/arch/arm/dts/imx6q-hummingboard.dts
index ab4510e874c9..e1d2fa8ce227 100644
--- a/arch/arm/dts/imx6q-hummingboard.dts
+++ b/arch/arm/dts/imx6q-hummingboard.dts
@@ -19,6 +19,10 @@
};
};
+&ocotp {
+ barebox,provide-mac-address = <&fec 0x620>;
+};
+
&usdhc2 {
#address-cells = <1>;
#size-cells = <1>;
--
2.6.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
` (5 preceding siblings ...)
2015-11-06 16:25 ` [PATCH 7/7] ARM: microsom: get MAC address from fuses Lucas Stach
@ 2015-11-09 6:32 ` Sascha Hauer
6 siblings, 0 replies; 8+ messages in thread
From: Sascha Hauer @ 2015-11-09 6:32 UTC (permalink / raw)
To: Lucas Stach; +Cc: barebox
On Fri, Nov 06, 2015 at 05:25:33PM +0100, Lucas Stach wrote:
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> ---
> arch/arm/mach-imx/include/mach/imx6-ddr-regs.h | 1 +
> 1 file changed, 1 insertion(+)
Applied, thanks
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-11-09 6:33 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-06 16:25 [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Lucas Stach
2015-11-06 16:25 ` [PATCH 2/7] ARM: microsom: delete cargo-cult from Makefile Lucas Stach
2015-11-06 16:25 ` [PATCH 3/7] ARM: microsom: change barebox image name for Hummingboard Lucas Stach
2015-11-06 16:25 ` [PATCH 4/7] ARM: microsom: import DCD from SolidRun U-Boot Lucas Stach
2015-11-06 16:25 ` [PATCH 5/7] ARM: microsom: add full set of module variants on Hummingboard Lucas Stach
2015-11-06 16:25 ` [PATCH 6/7] ARM: microsom: make ETH work on production modules Lucas Stach
2015-11-06 16:25 ` [PATCH 7/7] ARM: microsom: get MAC address from fuses Lucas Stach
2015-11-09 6:32 ` [PATCH 1/7] ARM: imx6: add MMDC arbitration control register define Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox