linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Corenet: Add QE platform support for Corenet
@ 2014-02-28  8:48 Zhao Qiang
  2014-03-03 15:51 ` Kumar Gala
  0 siblings, 1 reply; 4+ messages in thread
From: Zhao Qiang @ 2014-02-28  8:48 UTC (permalink / raw)
  To: linuxppc-dev, B07421; +Cc: Zhao Qiang, R63061

There is QE on platform T104x, add support.
Call funcs qe_ic_init and qe_init if CONFIG_QUICC_ENGINE is defined.

Signed-off-by: Zhao Qiang <B45475@freescale.com>
---
 arch/powerpc/platforms/85xx/corenet_generic.c | 32 +++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c
index fbd871e..f8c8e0c 100644
--- a/arch/powerpc/platforms/85xx/corenet_generic.c
+++ b/arch/powerpc/platforms/85xx/corenet_generic.c
@@ -26,6 +26,8 @@
 #include <asm/udbg.h>
 #include <asm/mpic.h>
 #include <asm/ehv_pic.h>
+#include <asm/qe.h>
+#include <asm/qe_ic.h>
 
 #include <linux/of_platform.h>
 #include <sysdev/fsl_soc.h>
@@ -38,6 +40,10 @@ void __init corenet_gen_pic_init(void)
 	unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU |
 		MPIC_NO_RESET;
 
+#ifdef CONFIG_QUICC_ENGINE
+	struct device_node *np;
+#endif
+
 	if (ppc_md.get_irq == mpic_get_coreint_irq)
 		flags |= MPIC_ENABLE_COREINT;
 
@@ -45,6 +51,16 @@ void __init corenet_gen_pic_init(void)
 	BUG_ON(mpic == NULL);
 
 	mpic_init(mpic);
+
+#ifdef CONFIG_QUICC_ENGINE
+	np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
+	if (np) {
+		qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
+				qe_ic_cascade_high_mpic);
+		of_node_put(np);
+	}
+#endif
+
 }
 
 /*
@@ -52,11 +68,24 @@ void __init corenet_gen_pic_init(void)
  */
 void __init corenet_gen_setup_arch(void)
 {
+#ifdef CONFIG_QUICC_ENGINE
+	struct device_node *np;
+#endif
 	mpc85xx_smp_init();
 
 	swiotlb_detect_4g();
 
 	pr_info("%s board from Freescale Semiconductor\n", ppc_md.name);
+
+#ifdef CONFIG_QUICC_ENGINE
+	np = of_find_compatible_node(NULL, NULL, "fsl,qe");
+	if (!np) {
+		pr_err("%s: Could not find Quicc Engine node\n", __func__);
+		return;
+	}
+	qe_reset();
+	of_node_put(np);
+#endif
 }
 
 static const struct of_device_id of_device_ids[] = {
@@ -81,6 +110,9 @@ static const struct of_device_id of_device_ids[] = {
 	{
 		.compatible	= "fsl,qoriq-pcie-v3.0",
 	},
+	{
+		.compatible	= "fsl,qe",
+	},
 	/* The following two are for the Freescale hypervisor */
 	{
 		.name		= "hypervisor",
-- 
1.8.5

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

* Re: [PATCH] Corenet: Add QE platform support for Corenet
  2014-02-28  8:48 [PATCH] Corenet: Add QE platform support for Corenet Zhao Qiang
@ 2014-03-03 15:51 ` Kumar Gala
  2014-03-04  9:09   ` qiang.zhao
  0 siblings, 1 reply; 4+ messages in thread
From: Kumar Gala @ 2014-03-03 15:51 UTC (permalink / raw)
  To: Zhao Qiang; +Cc: B07421, R63061, linuxppc-dev


On Feb 28, 2014, at 2:48 AM, Zhao Qiang <B45475@freescale.com> wrote:

> There is QE on platform T104x, add support.
> Call funcs qe_ic_init and qe_init if CONFIG_QUICC_ENGINE is defined.
>=20
> Signed-off-by: Zhao Qiang <B45475@freescale.com>
> ---
> arch/powerpc/platforms/85xx/corenet_generic.c | 32 =
+++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)

Can you use mpc85xx_qe_init() instead?

>=20
> diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c =
b/arch/powerpc/platforms/85xx/corenet_generic.c
> index fbd871e..f8c8e0c 100644
> --- a/arch/powerpc/platforms/85xx/corenet_generic.c
> +++ b/arch/powerpc/platforms/85xx/corenet_generic.c
> @@ -26,6 +26,8 @@
> #include <asm/udbg.h>
> #include <asm/mpic.h>
> #include <asm/ehv_pic.h>
> +#include <asm/qe.h>
> +#include <asm/qe_ic.h>
>=20
> #include <linux/of_platform.h>
> #include <sysdev/fsl_soc.h>
> @@ -38,6 +40,10 @@ void __init corenet_gen_pic_init(void)
> 	unsigned int flags =3D MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU |
> 		MPIC_NO_RESET;
>=20
> +#ifdef CONFIG_QUICC_ENGINE
> +	struct device_node *np;
> +#endif
> +
> 	if (ppc_md.get_irq =3D=3D mpic_get_coreint_irq)
> 		flags |=3D MPIC_ENABLE_COREINT;
>=20
> @@ -45,6 +51,16 @@ void __init corenet_gen_pic_init(void)
> 	BUG_ON(mpic =3D=3D NULL);
>=20
> 	mpic_init(mpic);
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +	np =3D of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
> +	if (np) {
> +		qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
> +				qe_ic_cascade_high_mpic);
> +		of_node_put(np);
> +	}
> +#endif
> +
> }
>=20
> /*
> @@ -52,11 +68,24 @@ void __init corenet_gen_pic_init(void)
>  */
> void __init corenet_gen_setup_arch(void)
> {
> +#ifdef CONFIG_QUICC_ENGINE
> +	struct device_node *np;
> +#endif
> 	mpc85xx_smp_init();
>=20
> 	swiotlb_detect_4g();
>=20
> 	pr_info("%s board from Freescale Semiconductor\n", ppc_md.name);
> +
> +#ifdef CONFIG_QUICC_ENGINE
> +	np =3D of_find_compatible_node(NULL, NULL, "fsl,qe");
> +	if (!np) {
> +		pr_err("%s: Could not find Quicc Engine node\n", =
__func__);
> +		return;

This doesn=92t seem like an reasonable error message for common corenet =
platform.  It seems reasonable to build QE support but boot on a chip =
w/o QE.

> +	}
> +	qe_reset();
> +	of_node_put(np);
> +#endif
> }
>=20
> static const struct of_device_id of_device_ids[] =3D {
> @@ -81,6 +110,9 @@ static const struct of_device_id of_device_ids[] =3D =
{
> 	{
> 		.compatible	=3D "fsl,qoriq-pcie-v3.0",
> 	},
> +	{
> +		.compatible	=3D "fsl,qe",
> +	},
> 	/* The following two are for the Freescale hypervisor */
> 	{
> 		.name		=3D "hypervisor",
> --=20
> 1.8.5
>=20
>=20
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

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

* RE: [PATCH] Corenet: Add QE platform support for Corenet
  2014-03-03 15:51 ` Kumar Gala
@ 2014-03-04  9:09   ` qiang.zhao
  2014-03-04 18:53     ` Scott Wood
  0 siblings, 1 reply; 4+ messages in thread
From: qiang.zhao @ 2014-03-04  9:09 UTC (permalink / raw)
  To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev@lists.ozlabs.org, Xiaobo Xie

On Mar 3, 2014, at 11:51 PM, Kumar Gala [galak@kernel.crashing.org] wrote:



> -----Original Message-----
> From: Kumar Gala [mailto:galak@kernel.crashing.org]
> Sent: Monday, March 03, 2014 11:51 PM
> To: Zhao Qiang-B45475
> Cc: linuxppc-dev@lists.ozlabs.org; Wood Scott-B07421; Xie Xiaobo-R63061
> Subject: Re: [PATCH] Corenet: Add QE platform support for Corenet
>=20
>=20
> On Feb 28, 2014, at 2:48 AM, Zhao Qiang <B45475@freescale.com> wrote:
>=20
> > There is QE on platform T104x, add support.
> > Call funcs qe_ic_init and qe_init if CONFIG_QUICC_ENGINE is defined.
> >
> > Signed-off-by: Zhao Qiang <B45475@freescale.com>
> > ---
> > arch/powerpc/platforms/85xx/corenet_generic.c | 32
> > +++++++++++++++++++++++++++
> > 1 file changed, 32 insertions(+)
>=20
> Can you use mpc85xx_qe_init() instead?


mpc85xx_qe_init() is for old QE which is different from new QE.
New QE has no par_io, and it is not correct to init=20
par_io(par_io_init() called in mpc85xx_qe_init()) for new QE.=20

>=20
> >
> > diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c
> > b/arch/powerpc/platforms/85xx/corenet_generic.c
> > index fbd871e..f8c8e0c 100644
> > --- a/arch/powerpc/platforms/85xx/corenet_generic.c
> > +++ b/arch/powerpc/platforms/85xx/corenet_generic.c
> >
> > /*
> > @@ -52,11 +68,24 @@ void __init corenet_gen_pic_init(void)  */ void
> > __init corenet_gen_setup_arch(void) {
> > +#ifdef CONFIG_QUICC_ENGINE
> > +	struct device_node *np;
> > +#endif
> > 	mpc85xx_smp_init();
> >
> > 	swiotlb_detect_4g();
> >
> > 	pr_info("%s board from Freescale Semiconductor\n", ppc_md.name);
> > +
> > +#ifdef CONFIG_QUICC_ENGINE
> > +	np =3D of_find_compatible_node(NULL, NULL, "fsl,qe");
> > +	if (!np) {
> > +		pr_err("%s: Could not find Quicc Engine node\n", __func__);
> > +		return;
>=20
> This doesn't seem like an reasonable error message for common corenet
> platform.  It seems reasonable to build QE support but boot on a chip w/o
> QE.
>=20
> > +	}
> > +	qe_reset();
> > +	of_node_put(np);
> > +#endif
> > }
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
>=20
>=20


Regards,
Zhao Qiang

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

* Re: [PATCH] Corenet: Add QE platform support for Corenet
  2014-03-04  9:09   ` qiang.zhao
@ 2014-03-04 18:53     ` Scott Wood
  0 siblings, 0 replies; 4+ messages in thread
From: Scott Wood @ 2014-03-04 18:53 UTC (permalink / raw)
  To: Zhao Qiang-B45475; +Cc: linuxppc-dev@lists.ozlabs.org, Xie Xiaobo-R63061

On Tue, 2014-03-04 at 03:09 -0600, Zhao Qiang-B45475 wrote:
> On Mar 3, 2014, at 11:51 PM, Kumar Gala [galak@kernel.crashing.org] wrote:
> 
> 
> 
> > -----Original Message-----
> > From: Kumar Gala [mailto:galak@kernel.crashing.org]
> > Sent: Monday, March 03, 2014 11:51 PM
> > To: Zhao Qiang-B45475
> > Cc: linuxppc-dev@lists.ozlabs.org; Wood Scott-B07421; Xie Xiaobo-R63061
> > Subject: Re: [PATCH] Corenet: Add QE platform support for Corenet
> > 
> > 
> > On Feb 28, 2014, at 2:48 AM, Zhao Qiang <B45475@freescale.com> wrote:
> > 
> > > There is QE on platform T104x, add support.
> > > Call funcs qe_ic_init and qe_init if CONFIG_QUICC_ENGINE is defined.
> > >
> > > Signed-off-by: Zhao Qiang <B45475@freescale.com>
> > > ---
> > > arch/powerpc/platforms/85xx/corenet_generic.c | 32
> > > +++++++++++++++++++++++++++
> > > 1 file changed, 32 insertions(+)
> > 
> > Can you use mpc85xx_qe_init() instead?
> 
> 
> mpc85xx_qe_init() is for old QE which is different from new QE.
> New QE has no par_io, and it is not correct to init 
> par_io(par_io_init() called in mpc85xx_qe_init()) for new QE. 

So split that function into mpc85xx_qe_init() and
mpc85xx_qe_par_io_init().

> > >
> > > diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c
> > > b/arch/powerpc/platforms/85xx/corenet_generic.c
> > > index fbd871e..f8c8e0c 100644
> > > --- a/arch/powerpc/platforms/85xx/corenet_generic.c
> > > +++ b/arch/powerpc/platforms/85xx/corenet_generic.c
> > >
> > > /*
> > > @@ -52,11 +68,24 @@ void __init corenet_gen_pic_init(void)  */ void
> > > __init corenet_gen_setup_arch(void) {
> > > +#ifdef CONFIG_QUICC_ENGINE
> > > +	struct device_node *np;
> > > +#endif
> > > 	mpc85xx_smp_init();
> > >
> > > 	swiotlb_detect_4g();
> > >
> > > 	pr_info("%s board from Freescale Semiconductor\n", ppc_md.name);
> > > +
> > > +#ifdef CONFIG_QUICC_ENGINE
> > > +	np = of_find_compatible_node(NULL, NULL, "fsl,qe");
> > > +	if (!np) {
> > > +		pr_err("%s: Could not find Quicc Engine node\n", __func__);
> > > +		return;
> > 
> > This doesn't seem like an reasonable error message for common corenet
> > platform.  It seems reasonable to build QE support but boot on a chip w/o
> > QE.

mpc85xx_qe_init() has a similar problem regarding the error message, but
the above is worse because it does an early return from
corenet_gen_setup_arch() rather than just from mpc85xx_qe_init() -- what
if someone added non-QE things after this point?

-Scott

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

end of thread, other threads:[~2014-03-04 18:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28  8:48 [PATCH] Corenet: Add QE platform support for Corenet Zhao Qiang
2014-03-03 15:51 ` Kumar Gala
2014-03-04  9:09   ` qiang.zhao
2014-03-04 18:53     ` Scott Wood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).