mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support
@ 2021-04-13  6:17 Lars Pedersen
  2021-04-13  6:26 ` Ahmad Fatoum
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Lars Pedersen @ 2021-04-13  6:17 UTC (permalink / raw)
  To: barebox; +Cc: Lars Pedersen, Bruno Thomsen, Ahmad Fatoum

This adds support for Kamstrup mx7 concentrator board

Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
Changes since v1:
- Removed all board.c specific stuff
- Board power reset via new GPIO board power-off driver
- TPM reset will now be handled entirely in hardware
- Set barebox_set_model removed.

 arch/arm/boards/Makefile                      |   1 +
 .../boards/kamstrup-mx7-concentrator/Makefile |   1 +
 .../flash-header-tqma7d.imxcfg                |  79 +++++++++++++
 .../kamstrup-mx7-concentrator/lowlevel.c      |  35 ++++++
 arch/arm/configs/imx_v7_defconfig             |   1 +
 arch/arm/dts/Makefile                         |   1 +
 arch/arm/dts/imx7d-flex-concentrator-mfg.dts  | 108 ++++++++++++++++++
 arch/arm/mach-imx/Kconfig                     |   5 +
 images/Makefile.imx                           |   5 +
 9 files changed, 236 insertions(+)
 create mode 100644 arch/arm/boards/kamstrup-mx7-concentrator/Makefile
 create mode 100644 arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
 create mode 100644 arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c
 create mode 100644 arch/arm/dts/imx7d-flex-concentrator-mfg.dts

diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
index 9ccb75e27..0e59d6a77 100644
--- a/arch/arm/boards/Makefile
+++ b/arch/arm/boards/Makefile
@@ -63,6 +63,7 @@ obj-$(CONFIG_MACH_HABA_KNX_LITE)		+= haba-knx/
 obj-$(CONFIG_MACH_IMX21ADS)			+= freescale-mx21-ads/
 obj-$(CONFIG_MACH_IMX233_OLINUXINO)		+= imx233-olinuxino/
 obj-$(CONFIG_MACH_IMX27ADS)			+= freescale-mx27-ads/
+obj-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR)	+= kamstrup-mx7-concentrator/
 obj-$(CONFIG_MACH_KINDLE3)			+= kindle3/
 obj-$(CONFIG_MACH_KONTRON_SAMX6I)		+= kontron-samx6i/
 obj-$(CONFIG_MACH_LENOVO_IX4_300D)		+= lenovo-ix4-300d/
diff --git a/arch/arm/boards/kamstrup-mx7-concentrator/Makefile b/arch/arm/boards/kamstrup-mx7-concentrator/Makefile
new file mode 100644
index 000000000..7ab9f5274
--- /dev/null
+++ b/arch/arm/boards/kamstrup-mx7-concentrator/Makefile
@@ -0,0 +1 @@
+lwl-y += lowlevel.o
\ No newline at end of file
diff --git a/arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg b/arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
new file mode 100644
index 000000000..4b3632411
--- /dev/null
+++ b/arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
@@ -0,0 +1,79 @@
+soc imx7
+loadaddr 0xbfbff000
+ivtofs 0x400
+
+#include <mach/imx7-ddr-regs.h>
+
+wm 32 0x30340004 0x4F400005 /* IOMUXC_GPR_GPR1 */
+/* Clear then set bit30 to ensure exit from DDR retention */
+wm 32 0x30360388 0x40000000
+wm 32 0x30360384 0x40000000
+
+/* TQMa7x DRAM Timing REV0100 */
+/* DCD Code i.MX7D/S 528 MHz 1 GByte Samsung K4B4G1646D */
+wm 32 0x30360070 0x0070302C /* CCM_ANALOG_PLL_DDRx */
+wm 32  0x30360090 0x00000000 /* CCM_ANALOG_PLL_NUM */
+wm 32  0x30360070 0x0060302C /* CCM_ANALOG_PLL_DDRx */
+check 32 until_all_bits_set 0x30360070 0x80000000
+wm 32 0x30391000 0x00000002 /* SRC_DDRC_RCR */
+
+wm 32 MX7_DDRC_MSTR 0x01040001
+wm 32 MX7_DDRC_DFIUPD0 0x80400003
+wm 32 MX7_DDRC_DFIUPD1 0x00100020
+wm 32 MX7_DDRC_DFIUPD2 0x80100004
+wm 32 MX7_DDRC_RFSHTMG 0x00200045
+wm 32 MX7_DDRC_MP_PCTRL_0 0x00000001
+wm 32 MX7_DDRC_INIT0 0x00020081
+wm 32 MX7_DDRC_INIT1 0x00680000
+wm 32 MX7_DDRC_INIT3 0x09300004
+wm 32 MX7_DDRC_INIT4 0x00480000
+wm 32 MX7_DDRC_INIT5 0x00100004
+wm 32 MX7_DDRC_RANKCTL 0x0000033F
+wm 32 MX7_DDRC_DRAMTMG0 0x090E0809
+wm 32 MX7_DDRC_DRAMTMG1 0x0007020E
+wm 32 MX7_DDRC_DRAMTMG2 0x03040407
+wm 32 MX7_DDRC_DRAMTMG3 0x00002006
+wm 32 MX7_DDRC_DRAMTMG4 0x04020304
+wm 32 MX7_DDRC_DRAMTMG5 0x03030202
+wm 32 MX7_DDRC_DRAMTMG8 0x00000803
+wm 32 MX7_DDRC_ZQCTL0 0x00800020
+wm 32 MX7_DDRC_DFITMG0 0x02098204
+wm 32 MX7_DDRC_DFITMG1 0x00030303
+wm 32 MX7_DDRC_ADDRMAP0 0x00000016
+wm 32 MX7_DDRC_ADDRMAP1 0x00171717
+wm 32 MX7_DDRC_ADDRMAP4 0x00000F0F
+wm 32 MX7_DDRC_ADDRMAP5 0x04040404
+wm 32 MX7_DDRC_ADDRMAP6 0x0F040404
+wm 32 MX7_DDRC_ODTCFG 0x06000604
+wm 32 MX7_DDRC_ODTMAP 0x00000001
+wm 32 0x30391000 0x00000000 /* SRC_DDRC_RCR */
+wm 32 MX7_DDR_PHY_PHY_CON0 0x17420F40
+wm 32 MX7_DDR_PHY_PHY_CON1 0x10210100
+wm 32 MX7_DDR_PHY_PHY_CON4 0x00060807
+wm 32 MX7_DDR_PHY_MDLL_CON0 0x1010007E
+wm 32 MX7_DDR_PHY_DRVDS_CON0 0x00000924
+/* DDR_PHY_CMD_DESKEW_CON0 not set */
+/* DDR_PHY_CMD_DESKEW_CON1 not set */
+/* DDR_PHY_CMD_DESKEW_CON2 not set */
+/* DDR_PHY_CMD_DESKEW_CON3 not set */
+/* DDR_PHY_LVL_CON0 not set */
+wm 32 MX7_DDR_PHY_OFFSET_RD_CON0 0x0B0B0B0B
+wm 32 MX7_DDR_PHY_OFFSET_WR_CON0 0x06060606
+wm 32 MX7_DDR_PHY_CMD_SDLL_CON0 0x01000010
+wm 32 MX7_DDR_PHY_CMD_SDLL_CON0 0x00000010
+
+wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C407304
+wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C447304
+wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C447306
+check 32 until_all_bits_set MX7_DDR_PHY_ZQ_CON1 0x1 /* ZQ Calibration is finished */
+wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C447304
+wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C407304
+
+wm 32 0x30384130 0x00000000 /* CCM_CCGRn */
+wm 32 0x30340020 0x00000178 /* IOMUXC_GPR_GPR8 */
+wm 32 0x30384130 0x00000002 /* CCM_CCGRn */
+wm 32 0x30790018 0x0000000f /* DDR_PHY_LP_CON0 */
+
+/* DDRC_STAT */
+check 32 until_all_bits_set 0x307a0004 0x1
+
diff --git a/arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c b/arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c
new file mode 100644
index 000000000..8cd6d67f7
--- /dev/null
+++ b/arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c
@@ -0,0 +1,35 @@
+#include <debug_ll.h>
+#include <io.h>
+#include <common.h>
+#include <linux/sizes.h>
+#include <mach/generic.h>
+#include <asm/barebox-arm-head.h>
+#include <asm/barebox-arm.h>
+#include <mach/imx7-ccm-regs.h>
+#include <mach/iomux-mx7.h>
+#include <mach/debug_ll.h>
+#include <asm/cache.h>
+#include <mach/esdctl.h>
+
+extern char __dtb_z_imx7d_flex_concentrator_mfg_start[];
+
+static inline void setup_uart(void)
+{
+	imx7_early_setup_uart_clock();
+
+	imx7_setup_pad(MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX);
+
+	imx7_uart_setup_ll();
+
+	putc_ll('>');
+}
+
+ENTRY_FUNCTION(start_kamstrup_mx7_concentrator, r0, r1, r2)
+{
+	imx7_cpu_lowlevel_init();
+
+	if (IS_ENABLED(CONFIG_DEBUG_LL))
+		setup_uart();
+
+	imx7d_barebox_entry(__dtb_z_imx7d_flex_concentrator_mfg_start + get_runtime_offset());
+}
diff --git a/arch/arm/configs/imx_v7_defconfig b/arch/arm/configs/imx_v7_defconfig
index 16e109464..624698ae3 100644
--- a/arch/arm/configs/imx_v7_defconfig
+++ b/arch/arm/configs/imx_v7_defconfig
@@ -13,6 +13,7 @@ CONFIG_MACH_FREESCALE_MX53_VMX53=y
 CONFIG_MACH_TX53=y
 CONFIG_MACH_PHYTEC_SOM_IMX6=y
 CONFIG_MACH_PROTONIC_IMX6=y
+CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR=y
 CONFIG_MACH_KONTRON_SAMX6I=y
 CONFIG_MACH_DFI_FS700_M60=y
 CONFIG_MACH_GUF_SANTARO=y
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index d5f61768a..d66b6db07 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -30,6 +30,7 @@ lwl-$(CONFIG_MACH_GRINN_LITEBOARD) += imx6ul-liteboard.dtb.o
 lwl-$(CONFIG_MACH_GUF_SANTARO) += imx6q-guf-santaro.dtb.o
 lwl-$(CONFIG_MACH_GUF_VINCELL) += imx53-guf-vincell.dtb.o imx53-guf-vincell-lt.dtb.o
 lwl-$(CONFIG_MACH_GW_VENTANA) += imx6q-gw54xx.dtb.o
+lwl-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR) += imx7d-flex-concentrator-mfg.dtb.o
 lwl-$(CONFIG_MACH_KONTRON_SAMX6I) += imx6q-samx6i.dtb.o \
 					imx6dl-samx6i.dtb.o
 lwl-$(CONFIG_MACH_LENOVO_IX4_300D) += armada-xp-lenovo-ix4-300d-bb.dtb.o
diff --git a/arch/arm/dts/imx7d-flex-concentrator-mfg.dts b/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
new file mode 100644
index 000000000..d174ef725
--- /dev/null
+++ b/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
@@ -0,0 +1,108 @@
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <arm/imx7d-flex-concentrator-mfg.dts>
+
+/ {
+	chosen {
+		environment {
+			compatible = "barebox,environment";
+			device-path = &environment_emmc;
+		};
+	};
+
+	aliases {
+		state = &state_emmc;
+	};
+
+	state_emmc: state {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "barebox,state";
+		magic = <0x4b414d31>;
+		backend-type = "raw";
+		backend = <&backend_state_emmc>;
+		backend-stridesize = <0x200>;
+
+		bootstate {
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			system0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				remaining_attempts@0 {
+					reg = <0x0 0x4>;
+					type = "uint32";
+					default = <10>;
+				};
+
+				priority@4 {
+					reg = <0x4 0x4>;
+					type = "uint32";
+					default = <21>;
+				};
+			};
+
+			system1 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				remaining_attempts@8 {
+					reg = <0x8 0x4>;
+					type = "uint32";
+					default = <0>;
+				};
+
+				priority@c {
+					reg = <0xc 0x4>;
+					type = "uint32";
+					default = <20>;
+				};
+			};
+
+			last_chosen@10 {
+				reg = <0x10 0x4>;
+				type = "uint32";
+			};
+		};
+	};
+};
+
+/* eMMC */
+&usdhc3 {
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition@0 {
+			label = "barebox";
+			reg = <0x0 0x100000>;
+		};
+
+		environment_emmc: partition@100000 {
+			label = "barebox-environment";
+			reg = <0x100000 0x100000>;
+		};
+
+		backend_state_emmc: partition@200000 {
+			label = "barebox-state";
+			reg = <0x200000 0x100000>;
+		};
+	};
+};
+
+/* FIXME: barebox serial is broken when barebox applies requested reparenting */
+&uart4 {
+	/delete-property/ assigned-clocks;
+	/delete-property/ assigned-clock-parents;
+};
+
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 3f8012c73..cc73d0a0d 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -526,6 +526,11 @@ config MACH_FREESCALE_MX7_SABRESD
 
 	  https://goo.gl/6EKGdk
 
+config MACH_KAMSTRUP_MX7_CONCENTRATOR
+	bool "Kamstrup i.MX7 Concentrator"
+	select ARCH_IMX7
+	select ARM_USE_COMPRESSED_DTB
+
 config MACH_NXP_IMX6ULL_EVK
 	bool "NXP i.MX6ull EVK Board"
 	select ARCH_IMX6UL
diff --git a/images/Makefile.imx b/images/Makefile.imx
index b892ec019..bc5ad1c7c 100644
--- a/images/Makefile.imx
+++ b/images/Makefile.imx
@@ -403,6 +403,11 @@ CFG_start_zii_imx7d_dev.pblb.imximg = $(board)/zii-imx7d-dev/flash-header-zii-im
 FILE_barebox-zii-imx7d-dev.img = start_zii_imx7d_dev.pblb.imximg
 image-$(CONFIG_MACH_ZII_IMX7D_DEV) += barebox-zii-imx7d-dev.img
 
+pblb-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR) += start_kamstrup_mx7_concentrator
+CFG_start_kamstrup_mx7_concentrator.pblb.imximg = $(board)/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
+FILE_barebox-kamstrup-mx7-concentrator.img = start_kamstrup_mx7_concentrator.pblb.imximg
+image-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR) += barebox-kamstrup-mx7-concentrator.img
+
 # ----------------------- i.MX8mm based boards --------------------------
 pblb-$(CONFIG_MACH_NXP_IMX8MM_EVK) += start_nxp_imx8mm_evk
 CFG_start_nxp_imx8mm_evk.pblb.imximg = $(board)/nxp-imx8mm-evk/flash-header-imx8mm-evk.imxcfg
-- 
2.30.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support
  2021-04-13  6:17 [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Lars Pedersen
@ 2021-04-13  6:26 ` Ahmad Fatoum
  2021-04-13  9:23 ` [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg Lars Pedersen
  2021-04-14 14:37 ` [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Sascha Hauer
  2 siblings, 0 replies; 14+ messages in thread
From: Ahmad Fatoum @ 2021-04-13  6:26 UTC (permalink / raw)
  To: Lars Pedersen, barebox; +Cc: Bruno Thomsen

Hi,

On 13.04.21 08:17, Lars Pedersen wrote:
> +config MACH_KAMSTRUP_MX7_CONCENTRATOR
> +	bool "Kamstrup i.MX7 Concentrator"
> +	select ARCH_IMX7
> +	select ARM_USE_COMPRESSED_DTB

You probably want to select CONFIG_POWER_RESET_GPIO_RESTART
here eventually.

Cheers,
Ahmad

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13  6:17 [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Lars Pedersen
  2021-04-13  6:26 ` Ahmad Fatoum
@ 2021-04-13  9:23 ` Lars Pedersen
  2021-04-13 10:09   ` Ahmad Fatoum
                     ` (2 more replies)
  2021-04-14 14:37 ` [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Sascha Hauer
  2 siblings, 3 replies; 14+ messages in thread
From: Lars Pedersen @ 2021-04-13  9:23 UTC (permalink / raw)
  To: barebox; +Cc: Lars Pedersen, Bruno Thomsen

Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
board.

Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
---
Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support

 arch/arm/mach-imx/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index cc73d0a0d..4ee8ffe4b 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
 	bool "Kamstrup i.MX7 Concentrator"
 	select ARCH_IMX7
 	select ARM_USE_COMPRESSED_DTB
+	select CONFIG_POWER_RESET_GPIO_RESTART
 
 config MACH_NXP_IMX6ULL_EVK
 	bool "NXP i.MX6ull EVK Board"
-- 
2.30.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13  9:23 ` [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg Lars Pedersen
@ 2021-04-13 10:09   ` Ahmad Fatoum
  2021-04-13 11:03     ` Lars Pedersen
  2021-04-13 13:38   ` [PATCH v2] " Lars Pedersen
  2021-04-13 13:40   ` [PATCH] " Sascha Hauer
  2 siblings, 1 reply; 14+ messages in thread
From: Ahmad Fatoum @ 2021-04-13 10:09 UTC (permalink / raw)
  To: Lars Pedersen, barebox; +Cc: Bruno Thomsen

Hi,

On 13.04.21 11:23, Lars Pedersen wrote:
> Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
> board.
> 
> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> ---
> Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
> 
>  arch/arm/mach-imx/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index cc73d0a0d..4ee8ffe4b 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
>  	bool "Kamstrup i.MX7 Concentrator"
>  	select ARCH_IMX7
>  	select ARM_USE_COMPRESSED_DTB
> +	select CONFIG_POWER_RESET_GPIO_RESTART

Sorry, no CONFIG_ in Kconfig files. ^^

Cheers,
Ahmad

>  
>  config MACH_NXP_IMX6ULL_EVK
>  	bool "NXP i.MX6ull EVK Board"
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13 10:09   ` Ahmad Fatoum
@ 2021-04-13 11:03     ` Lars Pedersen
  2021-04-13 11:07       ` Ahmad Fatoum
  0 siblings, 1 reply; 14+ messages in thread
From: Lars Pedersen @ 2021-04-13 11:03 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: barebox, Bruno Thomsen

Hello Ahmad.

On Tue, 13 Apr 2021 at 12:09, Ahmad Fatoum <a.fatoum@pengutronix.de> wrote:
>
> Hi,
>
> On 13.04.21 11:23, Lars Pedersen wrote:
> > Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
> > board.
> >
> > Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
> > Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> > ---
> > Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
> >
> >  arch/arm/mach-imx/Kconfig | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> > index cc73d0a0d..4ee8ffe4b 100644
> > --- a/arch/arm/mach-imx/Kconfig
> > +++ b/arch/arm/mach-imx/Kconfig
> > @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
> >       bool "Kamstrup i.MX7 Concentrator"
> >       select ARCH_IMX7
> >       select ARM_USE_COMPRESSED_DTB
> > +     select CONFIG_POWER_RESET_GPIO_RESTART
>
> Sorry, no CONFIG_ in Kconfig files. ^^

Heh okay :) Then lets stay with the v2 patch and disregard the patch
fix in Kconfig.

>
> Cheers,
> Ahmad
>
> >
> >  config MACH_NXP_IMX6ULL_EVK
> >       bool "NXP i.MX6ull EVK Board"
> >
>
> --
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13 11:03     ` Lars Pedersen
@ 2021-04-13 11:07       ` Ahmad Fatoum
  2021-04-13 13:31         ` Lars Pedersen
  0 siblings, 1 reply; 14+ messages in thread
From: Ahmad Fatoum @ 2021-04-13 11:07 UTC (permalink / raw)
  To: Lars Pedersen; +Cc: barebox, Bruno Thomsen



On 13.04.21 13:03, Lars Pedersen wrote:
> Hello Ahmad.
> 
> On Tue, 13 Apr 2021 at 12:09, Ahmad Fatoum <a.fatoum@pengutronix.de> wrote:
>>
>> Hi,
>>
>> On 13.04.21 11:23, Lars Pedersen wrote:
>>> Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
>>> board.
>>>
>>> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
>>> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
>>> ---
>>> Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
>>>
>>>  arch/arm/mach-imx/Kconfig | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
>>> index cc73d0a0d..4ee8ffe4b 100644
>>> --- a/arch/arm/mach-imx/Kconfig
>>> +++ b/arch/arm/mach-imx/Kconfig
>>> @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
>>>       bool "Kamstrup i.MX7 Concentrator"
>>>       select ARCH_IMX7
>>>       select ARM_USE_COMPRESSED_DTB
>>> +     select CONFIG_POWER_RESET_GPIO_RESTART
>>
>> Sorry, no CONFIG_ in Kconfig files. ^^
> 
> Heh okay :) Then lets stay with the v2 patch and disregard the patch
> fix in Kconfig.

Sure, ss you like. Just for clarification, what I meant was that in Kconfig
files symbols don't have the CONFIG_ prefix. That's only used outside
(e.g. from Makefile or C preprocessor). 

Cheers,
Ahmad

> 
>>
>> Cheers,
>> Ahmad
>>
>>>
>>>  config MACH_NXP_IMX6ULL_EVK
>>>       bool "NXP i.MX6ull EVK Board"
>>>
>>
>> --
>> Pengutronix e.K.                           |                             |
>> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
>> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13 11:07       ` Ahmad Fatoum
@ 2021-04-13 13:31         ` Lars Pedersen
  0 siblings, 0 replies; 14+ messages in thread
From: Lars Pedersen @ 2021-04-13 13:31 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: barebox, Bruno Thomsen

On Tue, 13 Apr 2021 at 13:07, Ahmad Fatoum <a.fatoum@pengutronix.de> wrote:
>
>
>
> On 13.04.21 13:03, Lars Pedersen wrote:
> > Hello Ahmad.
> >
> > On Tue, 13 Apr 2021 at 12:09, Ahmad Fatoum <a.fatoum@pengutronix.de> wrote:
> >>
> >> Hi,
> >>
> >> On 13.04.21 11:23, Lars Pedersen wrote:
> >>> Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
> >>> board.
> >>>
> >>> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
> >>> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> >>> ---
> >>> Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
> >>>
> >>>  arch/arm/mach-imx/Kconfig | 1 +
> >>>  1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> >>> index cc73d0a0d..4ee8ffe4b 100644
> >>> --- a/arch/arm/mach-imx/Kconfig
> >>> +++ b/arch/arm/mach-imx/Kconfig
> >>> @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
> >>>       bool "Kamstrup i.MX7 Concentrator"
> >>>       select ARCH_IMX7
> >>>       select ARM_USE_COMPRESSED_DTB
> >>> +     select CONFIG_POWER_RESET_GPIO_RESTART
> >>
> >> Sorry, no CONFIG_ in Kconfig files. ^^
> >
> > Heh okay :) Then lets stay with the v2 patch and disregard the patch
> > fix in Kconfig.
>
> Sure, ss you like. Just for clarification, what I meant was that in Kconfig
> files symbols don't have the CONFIG_ prefix. That's only used outside
> (e.g. from Makefile or C preprocessor).

I misread your answer and was a little to quick with a fix. I'll send
a new one which also has been compile tested.

>
> Cheers,
> Ahmad
>
> >
> >>
> >> Cheers,
> >> Ahmad
> >>
> >>>
> >>>  config MACH_NXP_IMX6ULL_EVK
> >>>       bool "NXP i.MX6ull EVK Board"
> >>>
> >>
> >> --
> >> Pengutronix e.K.                           |                             |
> >> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> >> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> >> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> >
>
> --
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 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] 14+ messages in thread

* [PATCH v2] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13  9:23 ` [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg Lars Pedersen
  2021-04-13 10:09   ` Ahmad Fatoum
@ 2021-04-13 13:38   ` Lars Pedersen
  2021-04-13 13:40   ` [PATCH] " Sascha Hauer
  2 siblings, 0 replies; 14+ messages in thread
From: Lars Pedersen @ 2021-04-13 13:38 UTC (permalink / raw)
  To: barebox; +Cc: Lars Pedersen, Bruno Thomsen

Select POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
board.

Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
---
Changes since v1:
- Removed CONFIG_

 arch/arm/mach-imx/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index cc73d0a0d..8e156cda2 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
 	bool "Kamstrup i.MX7 Concentrator"
 	select ARCH_IMX7
 	select ARM_USE_COMPRESSED_DTB
+	select POWER_RESET_GPIO_RESTART
 
 config MACH_NXP_IMX6ULL_EVK
 	bool "NXP i.MX6ull EVK Board"
-- 
2.30.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13  9:23 ` [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg Lars Pedersen
  2021-04-13 10:09   ` Ahmad Fatoum
  2021-04-13 13:38   ` [PATCH v2] " Lars Pedersen
@ 2021-04-13 13:40   ` Sascha Hauer
  2021-04-13 15:04     ` Ahmad Fatoum
  2 siblings, 1 reply; 14+ messages in thread
From: Sascha Hauer @ 2021-04-13 13:40 UTC (permalink / raw)
  To: Lars Pedersen; +Cc: barebox, Bruno Thomsen

Hi Lars,

On Tue, Apr 13, 2021 at 11:23:40AM +0200, Lars Pedersen wrote:
> Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
> board.
> 
> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> ---
> Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
> 
>  arch/arm/mach-imx/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index cc73d0a0d..4ee8ffe4b 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
>  	bool "Kamstrup i.MX7 Concentrator"
>  	select ARCH_IMX7
>  	select ARM_USE_COMPRESSED_DTB
> +	select CONFIG_POWER_RESET_GPIO_RESTART

I wouldn't select it. CONFIG_POWER_RESET_GPIO_RESTART depends on other
options and Kconfig can't automatically select the dependencies.

Also if you don't want to make use of the gpio restart driver then you
don't want to be forced to compile it in.

Sascha


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13 13:40   ` [PATCH] " Sascha Hauer
@ 2021-04-13 15:04     ` Ahmad Fatoum
  2021-04-14  7:08       ` Sascha Hauer
  0 siblings, 1 reply; 14+ messages in thread
From: Ahmad Fatoum @ 2021-04-13 15:04 UTC (permalink / raw)
  To: Sascha Hauer, Lars Pedersen; +Cc: barebox, Bruno Thomsen

Hello Sascha,

On 13.04.21 15:40, Sascha Hauer wrote:
> Hi Lars,
> 
> On Tue, Apr 13, 2021 at 11:23:40AM +0200, Lars Pedersen wrote:
>> Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
>> board.
>>
>> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
>> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
>> ---
>> Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
>>
>>  arch/arm/mach-imx/Kconfig | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
>> index cc73d0a0d..4ee8ffe4b 100644
>> --- a/arch/arm/mach-imx/Kconfig
>> +++ b/arch/arm/mach-imx/Kconfig
>> @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
>>  	bool "Kamstrup i.MX7 Concentrator"
>>  	select ARCH_IMX7
>>  	select ARM_USE_COMPRESSED_DTB
>> +	select CONFIG_POWER_RESET_GPIO_RESTART
> 
> I wouldn't select it. CONFIG_POWER_RESET_GPIO_RESTART depends on other
> options and Kconfig can't automatically select the dependencies.

GPIOLIB is selected via ARCH_IMX. This leaves OFDEVICE=n, which
wouldn't be a valid configuration anyway for this board and probably
all of imx_v7_defconfig..? Should maybe IMX_MULTI_BOARDS select it?

> Also if you don't want to make use of the gpio restart driver then you
> don't want to be forced to compile it in.

If a board deems reset important enough to force it when enabled,
why not?

Cheers,
Ahmad

> 
> Sascha
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-13 15:04     ` Ahmad Fatoum
@ 2021-04-14  7:08       ` Sascha Hauer
  2021-04-14  7:15         ` Ahmad Fatoum
  0 siblings, 1 reply; 14+ messages in thread
From: Sascha Hauer @ 2021-04-14  7:08 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: Lars Pedersen, barebox, Bruno Thomsen

On Tue, Apr 13, 2021 at 05:04:14PM +0200, Ahmad Fatoum wrote:
> Hello Sascha,
> 
> On 13.04.21 15:40, Sascha Hauer wrote:
> > Hi Lars,
> > 
> > On Tue, Apr 13, 2021 at 11:23:40AM +0200, Lars Pedersen wrote:
> >> Select CONFIG_POWER_RESET_GPIO_RESTART for Kamstrup mx7 concentrator
> >> board.
> >>
> >> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
> >> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> >> ---
> >> Requires patch ARM: i.MX: Kamstrup mx7 concentrator board support
> >>
> >>  arch/arm/mach-imx/Kconfig | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> >> index cc73d0a0d..4ee8ffe4b 100644
> >> --- a/arch/arm/mach-imx/Kconfig
> >> +++ b/arch/arm/mach-imx/Kconfig
> >> @@ -530,6 +530,7 @@ config MACH_KAMSTRUP_MX7_CONCENTRATOR
> >>  	bool "Kamstrup i.MX7 Concentrator"
> >>  	select ARCH_IMX7
> >>  	select ARM_USE_COMPRESSED_DTB
> >> +	select CONFIG_POWER_RESET_GPIO_RESTART
> > 
> > I wouldn't select it. CONFIG_POWER_RESET_GPIO_RESTART depends on other
> > options and Kconfig can't automatically select the dependencies.
> 
> GPIOLIB is selected via ARCH_IMX. This leaves OFDEVICE=n, which
> wouldn't be a valid configuration anyway for this board and probably
> all of imx_v7_defconfig..? Should maybe IMX_MULTI_BOARDS select it?
> 
> > Also if you don't want to make use of the gpio restart driver then you
> > don't want to be forced to compile it in.
> 
> If a board deems reset important enough to force it when enabled,
> why not?

With that reasoning you could enable each and everything from a board. I
don't think that's a path we want to go.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-14  7:08       ` Sascha Hauer
@ 2021-04-14  7:15         ` Ahmad Fatoum
  2021-04-14  7:51           ` Sascha Hauer
  0 siblings, 1 reply; 14+ messages in thread
From: Ahmad Fatoum @ 2021-04-14  7:15 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: Lars Pedersen, barebox, Bruno Thomsen

Hi,

On 14.04.21 09:08, Sascha Hauer wrote:
>> If a board deems reset important enough to force it when enabled,
>> why not?
> 
> With that reasoning you could enable each and everything from a board. I
> don't think that's a path we want to go.

Hmm, okay. It could go into the defconfig though, if Lars wants to.

Cheers,
Ahmad

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg
  2021-04-14  7:15         ` Ahmad Fatoum
@ 2021-04-14  7:51           ` Sascha Hauer
  0 siblings, 0 replies; 14+ messages in thread
From: Sascha Hauer @ 2021-04-14  7:51 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: Lars Pedersen, barebox, Bruno Thomsen

On Wed, Apr 14, 2021 at 09:15:04AM +0200, Ahmad Fatoum wrote:
> Hi,
> 
> On 14.04.21 09:08, Sascha Hauer wrote:
> >> If a board deems reset important enough to force it when enabled,
> >> why not?
> > 
> > With that reasoning you could enable each and everything from a board. I
> > don't think that's a path we want to go.
> 
> Hmm, okay. It could go into the defconfig though, if Lars wants to.

Indeed, and I recommend doing so.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

* Re: [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support
  2021-04-13  6:17 [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Lars Pedersen
  2021-04-13  6:26 ` Ahmad Fatoum
  2021-04-13  9:23 ` [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg Lars Pedersen
@ 2021-04-14 14:37 ` Sascha Hauer
  2 siblings, 0 replies; 14+ messages in thread
From: Sascha Hauer @ 2021-04-14 14:37 UTC (permalink / raw)
  To: Lars Pedersen; +Cc: barebox, Bruno Thomsen, Ahmad Fatoum

On Tue, Apr 13, 2021 at 08:17:27AM +0200, Lars Pedersen wrote:
> This adds support for Kamstrup mx7 concentrator board
> 
> Signed-off-by: Lars Pedersen <lapeddk@gmail.com>
> Reviewed-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> ---
> Changes since v1:
> - Removed all board.c specific stuff
> - Board power reset via new GPIO board power-off driver
> - TPM reset will now be handled entirely in hardware
> - Set barebox_set_model removed.

Applied like it is here, without the fixup.

Sascha

> 
>  arch/arm/boards/Makefile                      |   1 +
>  .../boards/kamstrup-mx7-concentrator/Makefile |   1 +
>  .../flash-header-tqma7d.imxcfg                |  79 +++++++++++++
>  .../kamstrup-mx7-concentrator/lowlevel.c      |  35 ++++++
>  arch/arm/configs/imx_v7_defconfig             |   1 +
>  arch/arm/dts/Makefile                         |   1 +
>  arch/arm/dts/imx7d-flex-concentrator-mfg.dts  | 108 ++++++++++++++++++
>  arch/arm/mach-imx/Kconfig                     |   5 +
>  images/Makefile.imx                           |   5 +
>  9 files changed, 236 insertions(+)
>  create mode 100644 arch/arm/boards/kamstrup-mx7-concentrator/Makefile
>  create mode 100644 arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
>  create mode 100644 arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c
>  create mode 100644 arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> 
> diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
> index 9ccb75e27..0e59d6a77 100644
> --- a/arch/arm/boards/Makefile
> +++ b/arch/arm/boards/Makefile
> @@ -63,6 +63,7 @@ obj-$(CONFIG_MACH_HABA_KNX_LITE)		+= haba-knx/
>  obj-$(CONFIG_MACH_IMX21ADS)			+= freescale-mx21-ads/
>  obj-$(CONFIG_MACH_IMX233_OLINUXINO)		+= imx233-olinuxino/
>  obj-$(CONFIG_MACH_IMX27ADS)			+= freescale-mx27-ads/
> +obj-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR)	+= kamstrup-mx7-concentrator/
>  obj-$(CONFIG_MACH_KINDLE3)			+= kindle3/
>  obj-$(CONFIG_MACH_KONTRON_SAMX6I)		+= kontron-samx6i/
>  obj-$(CONFIG_MACH_LENOVO_IX4_300D)		+= lenovo-ix4-300d/
> diff --git a/arch/arm/boards/kamstrup-mx7-concentrator/Makefile b/arch/arm/boards/kamstrup-mx7-concentrator/Makefile
> new file mode 100644
> index 000000000..7ab9f5274
> --- /dev/null
> +++ b/arch/arm/boards/kamstrup-mx7-concentrator/Makefile
> @@ -0,0 +1 @@
> +lwl-y += lowlevel.o
> \ No newline at end of file
> diff --git a/arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg b/arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
> new file mode 100644
> index 000000000..4b3632411
> --- /dev/null
> +++ b/arch/arm/boards/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
> @@ -0,0 +1,79 @@
> +soc imx7
> +loadaddr 0xbfbff000
> +ivtofs 0x400
> +
> +#include <mach/imx7-ddr-regs.h>
> +
> +wm 32 0x30340004 0x4F400005 /* IOMUXC_GPR_GPR1 */
> +/* Clear then set bit30 to ensure exit from DDR retention */
> +wm 32 0x30360388 0x40000000
> +wm 32 0x30360384 0x40000000
> +
> +/* TQMa7x DRAM Timing REV0100 */
> +/* DCD Code i.MX7D/S 528 MHz 1 GByte Samsung K4B4G1646D */
> +wm 32 0x30360070 0x0070302C /* CCM_ANALOG_PLL_DDRx */
> +wm 32  0x30360090 0x00000000 /* CCM_ANALOG_PLL_NUM */
> +wm 32  0x30360070 0x0060302C /* CCM_ANALOG_PLL_DDRx */
> +check 32 until_all_bits_set 0x30360070 0x80000000
> +wm 32 0x30391000 0x00000002 /* SRC_DDRC_RCR */
> +
> +wm 32 MX7_DDRC_MSTR 0x01040001
> +wm 32 MX7_DDRC_DFIUPD0 0x80400003
> +wm 32 MX7_DDRC_DFIUPD1 0x00100020
> +wm 32 MX7_DDRC_DFIUPD2 0x80100004
> +wm 32 MX7_DDRC_RFSHTMG 0x00200045
> +wm 32 MX7_DDRC_MP_PCTRL_0 0x00000001
> +wm 32 MX7_DDRC_INIT0 0x00020081
> +wm 32 MX7_DDRC_INIT1 0x00680000
> +wm 32 MX7_DDRC_INIT3 0x09300004
> +wm 32 MX7_DDRC_INIT4 0x00480000
> +wm 32 MX7_DDRC_INIT5 0x00100004
> +wm 32 MX7_DDRC_RANKCTL 0x0000033F
> +wm 32 MX7_DDRC_DRAMTMG0 0x090E0809
> +wm 32 MX7_DDRC_DRAMTMG1 0x0007020E
> +wm 32 MX7_DDRC_DRAMTMG2 0x03040407
> +wm 32 MX7_DDRC_DRAMTMG3 0x00002006
> +wm 32 MX7_DDRC_DRAMTMG4 0x04020304
> +wm 32 MX7_DDRC_DRAMTMG5 0x03030202
> +wm 32 MX7_DDRC_DRAMTMG8 0x00000803
> +wm 32 MX7_DDRC_ZQCTL0 0x00800020
> +wm 32 MX7_DDRC_DFITMG0 0x02098204
> +wm 32 MX7_DDRC_DFITMG1 0x00030303
> +wm 32 MX7_DDRC_ADDRMAP0 0x00000016
> +wm 32 MX7_DDRC_ADDRMAP1 0x00171717
> +wm 32 MX7_DDRC_ADDRMAP4 0x00000F0F
> +wm 32 MX7_DDRC_ADDRMAP5 0x04040404
> +wm 32 MX7_DDRC_ADDRMAP6 0x0F040404
> +wm 32 MX7_DDRC_ODTCFG 0x06000604
> +wm 32 MX7_DDRC_ODTMAP 0x00000001
> +wm 32 0x30391000 0x00000000 /* SRC_DDRC_RCR */
> +wm 32 MX7_DDR_PHY_PHY_CON0 0x17420F40
> +wm 32 MX7_DDR_PHY_PHY_CON1 0x10210100
> +wm 32 MX7_DDR_PHY_PHY_CON4 0x00060807
> +wm 32 MX7_DDR_PHY_MDLL_CON0 0x1010007E
> +wm 32 MX7_DDR_PHY_DRVDS_CON0 0x00000924
> +/* DDR_PHY_CMD_DESKEW_CON0 not set */
> +/* DDR_PHY_CMD_DESKEW_CON1 not set */
> +/* DDR_PHY_CMD_DESKEW_CON2 not set */
> +/* DDR_PHY_CMD_DESKEW_CON3 not set */
> +/* DDR_PHY_LVL_CON0 not set */
> +wm 32 MX7_DDR_PHY_OFFSET_RD_CON0 0x0B0B0B0B
> +wm 32 MX7_DDR_PHY_OFFSET_WR_CON0 0x06060606
> +wm 32 MX7_DDR_PHY_CMD_SDLL_CON0 0x01000010
> +wm 32 MX7_DDR_PHY_CMD_SDLL_CON0 0x00000010
> +
> +wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C407304
> +wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C447304
> +wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C447306
> +check 32 until_all_bits_set MX7_DDR_PHY_ZQ_CON1 0x1 /* ZQ Calibration is finished */
> +wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C447304
> +wm 32 MX7_DDR_PHY_ZQ_CON0 0x0C407304
> +
> +wm 32 0x30384130 0x00000000 /* CCM_CCGRn */
> +wm 32 0x30340020 0x00000178 /* IOMUXC_GPR_GPR8 */
> +wm 32 0x30384130 0x00000002 /* CCM_CCGRn */
> +wm 32 0x30790018 0x0000000f /* DDR_PHY_LP_CON0 */
> +
> +/* DDRC_STAT */
> +check 32 until_all_bits_set 0x307a0004 0x1
> +
> diff --git a/arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c b/arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c
> new file mode 100644
> index 000000000..8cd6d67f7
> --- /dev/null
> +++ b/arch/arm/boards/kamstrup-mx7-concentrator/lowlevel.c
> @@ -0,0 +1,35 @@
> +#include <debug_ll.h>
> +#include <io.h>
> +#include <common.h>
> +#include <linux/sizes.h>
> +#include <mach/generic.h>
> +#include <asm/barebox-arm-head.h>
> +#include <asm/barebox-arm.h>
> +#include <mach/imx7-ccm-regs.h>
> +#include <mach/iomux-mx7.h>
> +#include <mach/debug_ll.h>
> +#include <asm/cache.h>
> +#include <mach/esdctl.h>
> +
> +extern char __dtb_z_imx7d_flex_concentrator_mfg_start[];
> +
> +static inline void setup_uart(void)
> +{
> +	imx7_early_setup_uart_clock();
> +
> +	imx7_setup_pad(MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX);
> +
> +	imx7_uart_setup_ll();
> +
> +	putc_ll('>');
> +}
> +
> +ENTRY_FUNCTION(start_kamstrup_mx7_concentrator, r0, r1, r2)
> +{
> +	imx7_cpu_lowlevel_init();
> +
> +	if (IS_ENABLED(CONFIG_DEBUG_LL))
> +		setup_uart();
> +
> +	imx7d_barebox_entry(__dtb_z_imx7d_flex_concentrator_mfg_start + get_runtime_offset());
> +}
> diff --git a/arch/arm/configs/imx_v7_defconfig b/arch/arm/configs/imx_v7_defconfig
> index 16e109464..624698ae3 100644
> --- a/arch/arm/configs/imx_v7_defconfig
> +++ b/arch/arm/configs/imx_v7_defconfig
> @@ -13,6 +13,7 @@ CONFIG_MACH_FREESCALE_MX53_VMX53=y
>  CONFIG_MACH_TX53=y
>  CONFIG_MACH_PHYTEC_SOM_IMX6=y
>  CONFIG_MACH_PROTONIC_IMX6=y
> +CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR=y
>  CONFIG_MACH_KONTRON_SAMX6I=y
>  CONFIG_MACH_DFI_FS700_M60=y
>  CONFIG_MACH_GUF_SANTARO=y
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index d5f61768a..d66b6db07 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -30,6 +30,7 @@ lwl-$(CONFIG_MACH_GRINN_LITEBOARD) += imx6ul-liteboard.dtb.o
>  lwl-$(CONFIG_MACH_GUF_SANTARO) += imx6q-guf-santaro.dtb.o
>  lwl-$(CONFIG_MACH_GUF_VINCELL) += imx53-guf-vincell.dtb.o imx53-guf-vincell-lt.dtb.o
>  lwl-$(CONFIG_MACH_GW_VENTANA) += imx6q-gw54xx.dtb.o
> +lwl-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR) += imx7d-flex-concentrator-mfg.dtb.o
>  lwl-$(CONFIG_MACH_KONTRON_SAMX6I) += imx6q-samx6i.dtb.o \
>  					imx6dl-samx6i.dtb.o
>  lwl-$(CONFIG_MACH_LENOVO_IX4_300D) += armada-xp-lenovo-ix4-300d-bb.dtb.o
> diff --git a/arch/arm/dts/imx7d-flex-concentrator-mfg.dts b/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> new file mode 100644
> index 000000000..d174ef725
> --- /dev/null
> +++ b/arch/arm/dts/imx7d-flex-concentrator-mfg.dts
> @@ -0,0 +1,108 @@
> +/*
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +#include <arm/imx7d-flex-concentrator-mfg.dts>
> +
> +/ {
> +	chosen {
> +		environment {
> +			compatible = "barebox,environment";
> +			device-path = &environment_emmc;
> +		};
> +	};
> +
> +	aliases {
> +		state = &state_emmc;
> +	};
> +
> +	state_emmc: state {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "barebox,state";
> +		magic = <0x4b414d31>;
> +		backend-type = "raw";
> +		backend = <&backend_state_emmc>;
> +		backend-stridesize = <0x200>;
> +
> +		bootstate {
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			system0 {
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +
> +				remaining_attempts@0 {
> +					reg = <0x0 0x4>;
> +					type = "uint32";
> +					default = <10>;
> +				};
> +
> +				priority@4 {
> +					reg = <0x4 0x4>;
> +					type = "uint32";
> +					default = <21>;
> +				};
> +			};
> +
> +			system1 {
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +
> +				remaining_attempts@8 {
> +					reg = <0x8 0x4>;
> +					type = "uint32";
> +					default = <0>;
> +				};
> +
> +				priority@c {
> +					reg = <0xc 0x4>;
> +					type = "uint32";
> +					default = <20>;
> +				};
> +			};
> +
> +			last_chosen@10 {
> +				reg = <0x10 0x4>;
> +				type = "uint32";
> +			};
> +		};
> +	};
> +};
> +
> +/* eMMC */
> +&usdhc3 {
> +	partitions {
> +		compatible = "fixed-partitions";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		partition@0 {
> +			label = "barebox";
> +			reg = <0x0 0x100000>;
> +		};
> +
> +		environment_emmc: partition@100000 {
> +			label = "barebox-environment";
> +			reg = <0x100000 0x100000>;
> +		};
> +
> +		backend_state_emmc: partition@200000 {
> +			label = "barebox-state";
> +			reg = <0x200000 0x100000>;
> +		};
> +	};
> +};
> +
> +/* FIXME: barebox serial is broken when barebox applies requested reparenting */
> +&uart4 {
> +	/delete-property/ assigned-clocks;
> +	/delete-property/ assigned-clock-parents;
> +};
> +
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index 3f8012c73..cc73d0a0d 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -526,6 +526,11 @@ config MACH_FREESCALE_MX7_SABRESD
>  
>  	  https://goo.gl/6EKGdk
>  
> +config MACH_KAMSTRUP_MX7_CONCENTRATOR
> +	bool "Kamstrup i.MX7 Concentrator"
> +	select ARCH_IMX7
> +	select ARM_USE_COMPRESSED_DTB
> +
>  config MACH_NXP_IMX6ULL_EVK
>  	bool "NXP i.MX6ull EVK Board"
>  	select ARCH_IMX6UL
> diff --git a/images/Makefile.imx b/images/Makefile.imx
> index b892ec019..bc5ad1c7c 100644
> --- a/images/Makefile.imx
> +++ b/images/Makefile.imx
> @@ -403,6 +403,11 @@ CFG_start_zii_imx7d_dev.pblb.imximg = $(board)/zii-imx7d-dev/flash-header-zii-im
>  FILE_barebox-zii-imx7d-dev.img = start_zii_imx7d_dev.pblb.imximg
>  image-$(CONFIG_MACH_ZII_IMX7D_DEV) += barebox-zii-imx7d-dev.img
>  
> +pblb-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR) += start_kamstrup_mx7_concentrator
> +CFG_start_kamstrup_mx7_concentrator.pblb.imximg = $(board)/kamstrup-mx7-concentrator/flash-header-tqma7d.imxcfg
> +FILE_barebox-kamstrup-mx7-concentrator.img = start_kamstrup_mx7_concentrator.pblb.imximg
> +image-$(CONFIG_MACH_KAMSTRUP_MX7_CONCENTRATOR) += barebox-kamstrup-mx7-concentrator.img
> +
>  # ----------------------- i.MX8mm based boards --------------------------
>  pblb-$(CONFIG_MACH_NXP_IMX8MM_EVK) += start_nxp_imx8mm_evk
>  CFG_start_nxp_imx8mm_evk.pblb.imximg = $(board)/nxp-imx8mm-evk/flash-header-imx8mm-evk.imxcfg
> -- 
> 2.30.2
> 
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
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] 14+ messages in thread

end of thread, other threads:[~2021-04-14 14:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-13  6:17 [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Lars Pedersen
2021-04-13  6:26 ` Ahmad Fatoum
2021-04-13  9:23 ` [PATCH] ARM: i.MX: Fix Kamstrup mx7 concentrator default cfg Lars Pedersen
2021-04-13 10:09   ` Ahmad Fatoum
2021-04-13 11:03     ` Lars Pedersen
2021-04-13 11:07       ` Ahmad Fatoum
2021-04-13 13:31         ` Lars Pedersen
2021-04-13 13:38   ` [PATCH v2] " Lars Pedersen
2021-04-13 13:40   ` [PATCH] " Sascha Hauer
2021-04-13 15:04     ` Ahmad Fatoum
2021-04-14  7:08       ` Sascha Hauer
2021-04-14  7:15         ` Ahmad Fatoum
2021-04-14  7:51           ` Sascha Hauer
2021-04-14 14:37 ` [PATCH v2] ARM: i.MX: Kamstrup mx7 concentrator board support Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox