All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [Patch V2 1/3] qe: move drivers/qe/qe.h to include/fsl_qe.h
@ 2016-01-22 12:07 Gong Qianyu
  2016-01-22 12:07 ` [U-Boot] [Patch V2 2/3] fm: fdt: Move fman ucode fixup to Fman driver code Gong Qianyu
  2016-01-22 12:07 ` [U-Boot] [Patch V2 3/3] armv8/fsl-layerscape: fdt: add fixup for fman Gong Qianyu
  0 siblings, 2 replies; 5+ messages in thread
From: Gong Qianyu @ 2016-01-22 12:07 UTC (permalink / raw)
  To: u-boot

As the QE firmware struct is shared with Fman, move the header file
out of drivers/qe/.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
---
V2:
 - New patch.

 drivers/net/fm/fm.c                 | 2 +-
 drivers/qe/fdt.c                    | 2 +-
 drivers/qe/qe.c                     | 2 +-
 drivers/qe/uccf.c                   | 2 +-
 drivers/qe/uccf.h                   | 2 +-
 drivers/qe/uec.c                    | 2 +-
 drivers/qe/uec.h                    | 2 +-
 drivers/qe/uec_phy.c                | 2 +-
 drivers/qe/qe.h => include/fsl_qe.h | 0
 9 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c
index 40fbf19..e2a8ed3 100644
--- a/drivers/net/fm/fm.c
+++ b/drivers/net/fm/fm.c
@@ -10,7 +10,7 @@
 #include <asm/errno.h>
 
 #include "fm.h"
-#include "../../qe/qe.h"		/* For struct qe_firmware */
+#include <fsl_qe.h>		/* For struct qe_firmware */
 
 #ifdef CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #include <nand.h>
diff --git a/drivers/qe/fdt.c b/drivers/qe/fdt.c
index dfae4bf..4f48f98 100644
--- a/drivers/qe/fdt.c
+++ b/drivers/qe/fdt.c
@@ -10,7 +10,7 @@
 #include <common.h>
 #include <libfdt.h>
 #include <fdt_support.h>
-#include "qe.h"
+#include <fsl_qe.h>
 
 #ifdef CONFIG_QE
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/qe/qe.c b/drivers/qe/qe.c
index 08620b2..8f00817 100644
--- a/drivers/qe/qe.c
+++ b/drivers/qe/qe.c
@@ -12,7 +12,7 @@
 #include "asm/errno.h"
 #include "asm/io.h"
 #include "linux/immap_qe.h"
-#include "qe.h"
+#include <fsl_qe.h>
 #ifdef CONFIG_LS102XA
 #include <asm/arch/immap_ls102xa.h>
 #endif
diff --git a/drivers/qe/uccf.c b/drivers/qe/uccf.c
index 85386bf..e011886 100644
--- a/drivers/qe/uccf.c
+++ b/drivers/qe/uccf.c
@@ -12,8 +12,8 @@
 #include "asm/errno.h"
 #include "asm/io.h"
 #include "linux/immap_qe.h"
-#include "qe.h"
 #include "uccf.h"
+#include <fsl_qe.h>
 
 void ucc_fast_transmit_on_demand(ucc_fast_private_t *uccf)
 {
diff --git a/drivers/qe/uccf.h b/drivers/qe/uccf.h
index 55941e4..aa817e7 100644
--- a/drivers/qe/uccf.h
+++ b/drivers/qe/uccf.h
@@ -11,8 +11,8 @@
 #define __UCCF_H__
 
 #include "common.h"
-#include "qe.h"
 #include "linux/immap_qe.h"
+#include <fsl_qe.h>
 
 /* Fast or Giga ethernet
 */
diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
index e0ab04a..40cccc2 100644
--- a/drivers/qe/uec.c
+++ b/drivers/qe/uec.c
@@ -12,11 +12,11 @@
 #include "asm/errno.h"
 #include "asm/io.h"
 #include "linux/immap_qe.h"
-#include "qe.h"
 #include "uccf.h"
 #include "uec.h"
 #include "uec_phy.h"
 #include "miiphy.h"
+#include <fsl_qe.h>
 #include <phy.h>
 
 /* Default UTBIPAR SMI address */
diff --git a/drivers/qe/uec.h b/drivers/qe/uec.h
index 6b559f7..22e248f 100644
--- a/drivers/qe/uec.h
+++ b/drivers/qe/uec.h
@@ -10,8 +10,8 @@
 #ifndef __UEC_H__
 #define __UEC_H__
 
-#include "qe.h"
 #include "uccf.h"
+#include <fsl_qe.h>
 #include <phy.h>
 
 #define MAX_TX_THREADS				8
diff --git a/drivers/qe/uec_phy.c b/drivers/qe/uec_phy.c
index e701787..272874d 100644
--- a/drivers/qe/uec_phy.c
+++ b/drivers/qe/uec_phy.c
@@ -16,11 +16,11 @@
 #include "asm/errno.h"
 #include "linux/immap_qe.h"
 #include "asm/io.h"
-#include "qe.h"
 #include "uccf.h"
 #include "uec.h"
 #include "uec_phy.h"
 #include "miiphy.h"
+#include <fsl_qe.h>
 #include <phy.h>
 
 #define ugphy_printk(format, arg...)  \
diff --git a/drivers/qe/qe.h b/include/fsl_qe.h
similarity index 100%
rename from drivers/qe/qe.h
rename to include/fsl_qe.h
-- 
2.1.0.27.g96db324

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

* [U-Boot] [Patch V2 2/3] fm: fdt: Move fman ucode fixup to Fman driver code
  2016-01-22 12:07 [U-Boot] [Patch V2 1/3] qe: move drivers/qe/qe.h to include/fsl_qe.h Gong Qianyu
@ 2016-01-22 12:07 ` Gong Qianyu
  2016-01-22 20:02   ` Scott Wood
  2016-01-22 12:07 ` [U-Boot] [Patch V2 3/3] armv8/fsl-layerscape: fdt: add fixup for fman Gong Qianyu
  1 sibling, 1 reply; 5+ messages in thread
From: Gong Qianyu @ 2016-01-22 12:07 UTC (permalink / raw)
  To: u-boot

Both Freescale Layerscape and powerpc/mpc85xx platforms are using
fdt_fixup_fman_firmware() to insert Fman ucode blob into the device
tree. So move it to driver code.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
---
V2:
 - New patch.
 
 arch/powerpc/cpu/mpc85xx/cpu_init.c     |   2 +-
 arch/powerpc/cpu/mpc85xx/fdt.c          | 125 ++-----------------------------
 board/freescale/common/arm_sleep.c      |   2 +-
 board/freescale/common/mpc85xx_sleep.c  |   2 +-
 board/freescale/ls1021aqds/ls1021aqds.c |   2 +-
 board/freescale/ls1021atwr/ls1021atwr.c |   2 +-
 drivers/net/fm/Makefile                 |   1 +
 drivers/net/fm/fdt.c                    | 129 ++++++++++++++++++++++++++++++++
 include/fsl_fman.h                      |   1 +
 9 files changed, 141 insertions(+), 125 deletions(-)

diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c
index 13a7d0f..2946b92 100644
--- a/arch/powerpc/cpu/mpc85xx/cpu_init.c
+++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c
@@ -37,7 +37,7 @@
 
 #include "../../../../drivers/block/fsl_sata.h"
 #ifdef CONFIG_U_QE
-#include "../../../../drivers/qe/qe.h"
+#include <fsl_qe.h>
 #endif
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/arch/powerpc/cpu/mpc85xx/fdt.c b/arch/powerpc/cpu/mpc85xx/fdt.c
index 7270be1..ced216c 100644
--- a/arch/powerpc/cpu/mpc85xx/fdt.c
+++ b/arch/powerpc/cpu/mpc85xx/fdt.c
@@ -19,7 +19,9 @@
 #ifdef CONFIG_FSL_ESDHC
 #include <fsl_esdhc.h>
 #endif
-#include "../../../../drivers/qe/qe.h"		/* For struct qe_firmware */
+#ifdef CONFIG_SYS_DPAA_FMAN
+#include <fsl_fman.h>
+#endif
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -488,125 +490,6 @@ static void ft_fixup_qe_snum(void *blob)
 }
 #endif
 
-/**
- * fdt_fixup_fman_firmware -- insert the Fman firmware into the device tree
- *
- * The binding for an Fman firmware node is documented in
- * Documentation/powerpc/dts-bindings/fsl/dpaa/fman.txt.  This node contains
- * the actual Fman firmware binary data.  The operating system is expected to
- * be able to parse the binary data to determine any attributes it needs.
- */
-#ifdef CONFIG_SYS_DPAA_FMAN
-void fdt_fixup_fman_firmware(void *blob)
-{
-	int rc, fmnode, fwnode = -1;
-	uint32_t phandle;
-	struct qe_firmware *fmanfw;
-	const struct qe_header *hdr;
-	unsigned int length;
-	uint32_t crc;
-	const char *p;
-
-	/* The first Fman we find will contain the actual firmware. */
-	fmnode = fdt_node_offset_by_compatible(blob, -1, "fsl,fman");
-	if (fmnode < 0)
-		/* Exit silently if there are no Fman devices */
-		return;
-
-	/* If we already have a firmware node, then also exit silently. */
-	if (fdt_node_offset_by_compatible(blob, -1, "fsl,fman-firmware") > 0)
-		return;
-
-	/* If the environment variable is not set, then exit silently */
-	p = getenv("fman_ucode");
-	if (!p)
-		return;
-
-	fmanfw = (struct qe_firmware *) simple_strtoul(p, NULL, 16);
-	if (!fmanfw)
-		return;
-
-	hdr = &fmanfw->header;
-	length = be32_to_cpu(hdr->length);
-
-	/* Verify the firmware. */
-	if ((hdr->magic[0] != 'Q') || (hdr->magic[1] != 'E') ||
-		(hdr->magic[2] != 'F')) {
-		printf("Data at %p is not an Fman firmware\n", fmanfw);
-		return;
-	}
-
-	if (length > CONFIG_SYS_QE_FMAN_FW_LENGTH) {
-		printf("Fman firmware at %p is too large (size=%u)\n",
-		       fmanfw, length);
-		return;
-	}
-
-	length -= sizeof(u32);	/* Subtract the size of the CRC */
-	crc = be32_to_cpu(*(u32 *)((void *)fmanfw + length));
-	if (crc != crc32_no_comp(0, (void *)fmanfw, length)) {
-		printf("Fman firmware at %p has invalid CRC\n", fmanfw);
-		return;
-	}
-
-	/* Increase the size of the fdt to make room for the node. */
-	rc = fdt_increase_size(blob, fmanfw->header.length);
-	if (rc < 0) {
-		printf("Unable to make room for Fman firmware: %s\n",
-			fdt_strerror(rc));
-		return;
-	}
-
-	/* Create the firmware node. */
-	fwnode = fdt_add_subnode(blob, fmnode, "fman-firmware");
-	if (fwnode < 0) {
-		char s[64];
-		fdt_get_path(blob, fmnode, s, sizeof(s));
-		printf("Could not add firmware node to %s: %s\n", s,
-		       fdt_strerror(fwnode));
-		return;
-	}
-	rc = fdt_setprop_string(blob, fwnode, "compatible", "fsl,fman-firmware");
-	if (rc < 0) {
-		char s[64];
-		fdt_get_path(blob, fwnode, s, sizeof(s));
-		printf("Could not add compatible property to node %s: %s\n", s,
-		       fdt_strerror(rc));
-		return;
-	}
-	phandle = fdt_create_phandle(blob, fwnode);
-	if (!phandle) {
-		char s[64];
-		fdt_get_path(blob, fwnode, s, sizeof(s));
-		printf("Could not add phandle property to node %s: %s\n", s,
-		       fdt_strerror(rc));
-		return;
-	}
-	rc = fdt_setprop(blob, fwnode, "fsl,firmware", fmanfw, fmanfw->header.length);
-	if (rc < 0) {
-		char s[64];
-		fdt_get_path(blob, fwnode, s, sizeof(s));
-		printf("Could not add firmware property to node %s: %s\n", s,
-		       fdt_strerror(rc));
-		return;
-	}
-
-	/* Find all other Fman nodes and point them to the firmware node. */
-	while ((fmnode = fdt_node_offset_by_compatible(blob, fmnode, "fsl,fman")) > 0) {
-		rc = fdt_setprop_cell(blob, fmnode, "fsl,firmware-phandle", phandle);
-		if (rc < 0) {
-			char s[64];
-			fdt_get_path(blob, fmnode, s, sizeof(s));
-			printf("Could not add pointer property to node %s: %s\n",
-			       s, fdt_strerror(rc));
-			return;
-		}
-	}
-}
-#else
-#define fdt_fixup_fman_firmware(x)
-#endif
-
 #if defined(CONFIG_PPC_P4080)
 static void fdt_fixup_usb(void *fdt)
 {
@@ -752,7 +635,9 @@ void ft_cpu_setup(void *blob, bd_t *bd)
 	ft_fixup_qe_snum(blob);
 #endif
 
+#ifdef CONFIG_SYS_DPAA_FMAN
 	fdt_fixup_fman_firmware(blob);
+#endif
 
 #ifdef CONFIG_SYS_NS16550
 	do_fixup_by_compat_u32(blob, "ns16550",
diff --git a/board/freescale/common/arm_sleep.c b/board/freescale/common/arm_sleep.c
index a498c65..71ed15e 100644
--- a/board/freescale/common/arm_sleep.c
+++ b/board/freescale/common/arm_sleep.c
@@ -19,7 +19,7 @@
 
 #include "sleep.h"
 #ifdef CONFIG_U_QE
-#include "../../../drivers/qe/qe.h"
+#include <fsl_qe.h>
 #endif
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/common/mpc85xx_sleep.c b/board/freescale/common/mpc85xx_sleep.c
index e9cbd51..498d770 100644
--- a/board/freescale/common/mpc85xx_sleep.c
+++ b/board/freescale/common/mpc85xx_sleep.c
@@ -8,7 +8,7 @@
 #include <asm/immap_85xx.h>
 #include "sleep.h"
 #ifdef CONFIG_U_QE
-#include "../../../drivers/qe/qe.h"
+#include <fsl_qe.h>
 #endif
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/ls1021aqds/ls1021aqds.c b/board/freescale/ls1021aqds/ls1021aqds.c
index be3358a..f2412ff 100644
--- a/board/freescale/ls1021aqds/ls1021aqds.c
+++ b/board/freescale/ls1021aqds/ls1021aqds.c
@@ -27,7 +27,7 @@
 #include "../common/qixis.h"
 #include "ls1021aqds_qixis.h"
 #ifdef CONFIG_U_QE
-#include "../../../drivers/qe/qe.h"
+#include <fsl_qe.h>
 #endif
 
 #define PIN_MUX_SEL_CAN		0x03
diff --git a/board/freescale/ls1021atwr/ls1021atwr.c b/board/freescale/ls1021atwr/ls1021atwr.c
index 8eaff5f..15b7cec 100644
--- a/board/freescale/ls1021atwr/ls1021atwr.c
+++ b/board/freescale/ls1021atwr/ls1021atwr.c
@@ -28,7 +28,7 @@
 #include <spl.h>
 #include "../common/sleep.h"
 #ifdef CONFIG_U_QE
-#include "../../../drivers/qe/qe.h"
+#include <fsl_qe.h>
 #endif
 
 
diff --git a/drivers/net/fm/Makefile b/drivers/net/fm/Makefile
index a3c9f99..493cdc6 100644
--- a/drivers/net/fm/Makefile
+++ b/drivers/net/fm/Makefile
@@ -6,6 +6,7 @@
 
 obj-y += dtsec.o
 obj-y += eth.o
+obj-y += fdt.o
 obj-y += fm.o
 obj-y += init.o
 obj-y += tgec.o
diff --git a/drivers/net/fm/fdt.c b/drivers/net/fm/fdt.c
new file mode 100644
index 0000000..bb53bcb
--- /dev/null
+++ b/drivers/net/fm/fdt.c
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2016 Freescale Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+#include <fsl_qe.h>	/* For struct qe_firmware */
+#include <asm/io.h>
+
+#ifdef CONFIG_SYS_DPAA_FMAN
+/**
+ * fdt_fixup_fman_firmware -- insert the Fman firmware into the device tree
+ *
+ * The binding for an Fman firmware node is documented in
+ * Documentation/powerpc/dts-bindings/fsl/dpaa/fman.txt.  This node contains
+ * the actual Fman firmware binary data.  The operating system is expected to
+ * be able to parse the binary data to determine any attributes it needs.
+ */
+void fdt_fixup_fman_firmware(void *blob)
+{
+	int rc, fmnode, fwnode = -1;
+	uint32_t phandle;
+	struct qe_firmware *fmanfw;
+	const struct qe_header *hdr;
+	unsigned int length;
+	uint32_t crc;
+	const char *p;
+
+	/* The first Fman we find will contain the actual firmware. */
+	fmnode = fdt_node_offset_by_compatible(blob, -1, "fsl,fman");
+	if (fmnode < 0)
+		/* Exit silently if there are no Fman devices */
+		return;
+
+	/* If we already have a firmware node, then also exit silently. */
+	if (fdt_node_offset_by_compatible(blob, -1, "fsl,fman-firmware") > 0)
+		return;
+
+	/* If the environment variable is not set, then exit silently */
+	p = getenv("fman_ucode");
+	if (!p)
+		return;
+
+	fmanfw = (struct qe_firmware *)simple_strtoul(p, NULL, 16);
+	if (!fmanfw)
+		return;
+
+	hdr = &fmanfw->header;
+	length = fdt32_to_cpu(hdr->length);
+
+	/* Verify the firmware. */
+	if ((hdr->magic[0] != 'Q') || (hdr->magic[1] != 'E') ||
+	    (hdr->magic[2] != 'F')) {
+		printf("Data at %p is not an Fman firmware\n", fmanfw);
+		return;
+	}
+
+	if (length > CONFIG_SYS_QE_FMAN_FW_LENGTH) {
+		printf("Fman firmware at %p is too large (size=%u)\n",
+		       fmanfw, length);
+		return;
+	}
+
+	length -= sizeof(u32);	/* Subtract the size of the CRC */
+	crc = fdt32_to_cpu(*(u32 *)((void *)fmanfw + length));
+	if (crc != crc32_no_comp(0, (void *)fmanfw, length)) {
+		printf("Fman firmware at %p has invalid CRC\n", fmanfw);
+		return;
+	}
+
+	length += sizeof(u32);
+
+	/* Increase the size of the fdt to make room for the node. */
+	rc = fdt_increase_size(blob, length);
+	if (rc < 0) {
+		printf("Unable to make room for Fman firmware: %s\n",
+		       fdt_strerror(rc));
+		return;
+	}
+
+	/* Create the firmware node. */
+	fwnode = fdt_add_subnode(blob, fmnode, "fman-firmware");
+	if (fwnode < 0) {
+		char s[64];
+		fdt_get_path(blob, fmnode, s, sizeof(s));
+		printf("Could not add firmware node to %s: %s\n", s,
+		       fdt_strerror(fwnode));
+		return;
+	}
+	rc = fdt_setprop_string(blob, fwnode, "compatible",
+					"fsl,fman-firmware");
+	if (rc < 0) {
+		char s[64];
+		fdt_get_path(blob, fwnode, s, sizeof(s));
+		printf("Could not add compatible property to node %s: %s\n", s,
+		       fdt_strerror(rc));
+		return;
+	}
+	phandle = fdt_create_phandle(blob, fwnode);
+	if (!phandle) {
+		char s[64];
+		fdt_get_path(blob, fwnode, s, sizeof(s));
+		printf("Could not add phandle property to node %s: %s\n", s,
+		       fdt_strerror(rc));
+		return;
+	}
+	rc = fdt_setprop(blob, fwnode, "fsl,firmware", fmanfw, length);
+	if (rc < 0) {
+		char s[64];
+		fdt_get_path(blob, fwnode, s, sizeof(s));
+		printf("Could not add firmware property to node %s: %s\n", s,
+		       fdt_strerror(rc));
+		return;
+	}
+
+	/* Find all other Fman nodes and point them to the firmware node. */
+	while ((fmnode = fdt_node_offset_by_compatible(blob, fmnode,
+		"fsl,fman")) > 0) {
+		rc = fdt_setprop_cell(blob, fmnode, "fsl,firmware-phandle",
+				      phandle);
+		if (rc < 0) {
+			char s[64];
+			fdt_get_path(blob, fmnode, s, sizeof(s));
+			printf("Could not add pointer property to node %s: %s\n",
+			       s, fdt_strerror(rc));
+			return;
+		}
+	}
+}
+#endif
diff --git a/include/fsl_fman.h b/include/fsl_fman.h
index 4d04415..f3e35f8 100644
--- a/include/fsl_fman.h
+++ b/include/fsl_fman.h
@@ -460,4 +460,5 @@ typedef struct ccsr_fman {
 	u8			res5[4*1024];
 } ccsr_fman_t;
 
+void fdt_fixup_fman_firmware(void *blob);
 #endif /*__FSL_FMAN_H__*/
-- 
2.1.0.27.g96db324

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

* [U-Boot] [Patch V2 3/3] armv8/fsl-layerscape: fdt: add fixup for fman
  2016-01-22 12:07 [U-Boot] [Patch V2 1/3] qe: move drivers/qe/qe.h to include/fsl_qe.h Gong Qianyu
  2016-01-22 12:07 ` [U-Boot] [Patch V2 2/3] fm: fdt: Move fman ucode fixup to Fman driver code Gong Qianyu
@ 2016-01-22 12:07 ` Gong Qianyu
  2016-01-22 20:05   ` Scott Wood
  1 sibling, 1 reply; 5+ messages in thread
From: Gong Qianyu @ 2016-01-22 12:07 UTC (permalink / raw)
  To: u-boot

Add fdt fixup for Fman clock and inserting Fman ucode blob
into the device tree.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
---
V2:
 - Removed the duplicated function.

 arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
index eafdd71..8a6b694 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
@@ -8,12 +8,16 @@
 #include <libfdt.h>
 #include <fdt_support.h>
 #include <phy.h>
+#include <asm/arch/speed.h>
 #ifdef CONFIG_FSL_LSCH3
 #include <asm/arch/fdt.h>
 #endif
 #ifdef CONFIG_FSL_ESDHC
 #include <fsl_esdhc.h>
 #endif
+#ifdef CONFIG_SYS_DPAA_FMAN
+#include <fsl_fman.h>
+#endif
 #ifdef CONFIG_MP
 #include <asm/arch/mp.h>
 #endif
@@ -181,6 +185,10 @@ static void fdt_fixup_smmu(void *blob)
 
 void ft_cpu_setup(void *blob, bd_t *bd)
 {
+	struct sys_info sysinfo;
+
+	get_sys_info(&sysinfo);
+
 #ifdef CONFIG_MP
 	ft_fixup_cpu(blob);
 #endif
@@ -201,4 +209,10 @@ void ft_cpu_setup(void *blob, bd_t *bd)
 #ifdef CONFIG_FSL_LSCH3
 	fdt_fixup_smmu(blob);
 #endif
+
+#ifdef CONFIG_SYS_DPAA_FMAN
+	do_fixup_by_compat_u32(blob, "fsl,fman",
+			       "clock-frequency", sysinfo.freq_fman[0], 1);
+	fdt_fixup_fman_firmware(blob);
+#endif
 }
-- 
2.1.0.27.g96db324

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

* [U-Boot] [Patch V2 2/3] fm: fdt: Move fman ucode fixup to Fman driver code
  2016-01-22 12:07 ` [U-Boot] [Patch V2 2/3] fm: fdt: Move fman ucode fixup to Fman driver code Gong Qianyu
@ 2016-01-22 20:02   ` Scott Wood
  0 siblings, 0 replies; 5+ messages in thread
From: Scott Wood @ 2016-01-22 20:02 UTC (permalink / raw)
  To: u-boot

On Fri, 2016-01-22 at 20:07 +0800, Gong Qianyu wrote:
> Both Freescale Layerscape and powerpc/mpc85xx platforms are using
> fdt_fixup_fman_firmware() to insert Fman ucode blob into the device
> tree. So move it to driver code.
> 
> Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
> ---
> V2:
>  - New patch.
>  
>  arch/powerpc/cpu/mpc85xx/cpu_init.c     |   2 +-
>  arch/powerpc/cpu/mpc85xx/fdt.c          | 125 ++---------------------------
> --
>  board/freescale/common/arm_sleep.c      |   2 +-
>  board/freescale/common/mpc85xx_sleep.c  |   2 +-
>  board/freescale/ls1021aqds/ls1021aqds.c |   2 +-
>  board/freescale/ls1021atwr/ls1021atwr.c |   2 +-
>  drivers/net/fm/Makefile                 |   1 +
>  drivers/net/fm/fdt.c                    | 129
> ++++++++++++++++++++++++++++++++
>  include/fsl_fman.h                      |   1 +
>  9 files changed, 141 insertions(+), 125 deletions(-)

Use -M -C with git format-patch so we can see what (if anything) changed
during the move.

-Scott

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

* [U-Boot] [Patch V2 3/3] armv8/fsl-layerscape: fdt: add fixup for fman
  2016-01-22 12:07 ` [U-Boot] [Patch V2 3/3] armv8/fsl-layerscape: fdt: add fixup for fman Gong Qianyu
@ 2016-01-22 20:05   ` Scott Wood
  0 siblings, 0 replies; 5+ messages in thread
From: Scott Wood @ 2016-01-22 20:05 UTC (permalink / raw)
  To: u-boot

On Fri, 2016-01-22 at 20:07 +0800, Gong Qianyu wrote:
> Add fdt fixup for Fman clock and inserting Fman ucode blob
> into the device tree.
> 
> Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
> ---
> V2:
>  - Removed the duplicated function.
> 
>  arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
> b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
> index eafdd71..8a6b694 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c
> @@ -8,12 +8,16 @@
>  #include <libfdt.h>
>  #include <fdt_support.h>
>  #include <phy.h>
> +#include <asm/arch/speed.h>
>  #ifdef CONFIG_FSL_LSCH3
>  #include <asm/arch/fdt.h>
>  #endif
>  #ifdef CONFIG_FSL_ESDHC
>  #include <fsl_esdhc.h>
>  #endif
> +#ifdef CONFIG_SYS_DPAA_FMAN
> +#include <fsl_fman.h>
> +#endif
>  #ifdef CONFIG_MP
>  #include <asm/arch/mp.h>
>  #endif
> @@ -181,6 +185,10 @@ static void fdt_fixup_smmu(void *blob)
>  
>  void ft_cpu_setup(void *blob, bd_t *bd)
>  {
> +	struct sys_info sysinfo;
> +
> +	get_sys_info(&sysinfo);
> +
>  #ifdef CONFIG_MP
>  	ft_fixup_cpu(blob);
>  #endif
> @@ -201,4 +209,10 @@ void ft_cpu_setup(void *blob, bd_t *bd)
>  #ifdef CONFIG_FSL_LSCH3
>  	fdt_fixup_smmu(blob);
>  #endif
> +
> +#ifdef CONFIG_SYS_DPAA_FMAN
> +	do_fixup_by_compat_u32(blob, "fsl,fman",
> +			       "clock-frequency", sysinfo.freq_fman[0], 1);
> +	fdt_fixup_fman_firmware(blob);
> +#endif
>  }


There is no clock-frequency in the fman binding.  A clocks property is used
instead (which does not require a fixup).

-Scott

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

end of thread, other threads:[~2016-01-22 20:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-22 12:07 [U-Boot] [Patch V2 1/3] qe: move drivers/qe/qe.h to include/fsl_qe.h Gong Qianyu
2016-01-22 12:07 ` [U-Boot] [Patch V2 2/3] fm: fdt: Move fman ucode fixup to Fman driver code Gong Qianyu
2016-01-22 20:02   ` Scott Wood
2016-01-22 12:07 ` [U-Boot] [Patch V2 3/3] armv8/fsl-layerscape: fdt: add fixup for fman Gong Qianyu
2016-01-22 20:05   ` Scott Wood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.