diff mbox

[U-Boot,4/5] fsl: csu: add an API to set R/W permission to PCIe

Message ID 1470135807-48880-4-git-send-email-Zhiqiang.Hou@nxp.com
State Accepted
Commit 664b6520582fcea7e150f57258c7a63627837318
Delegated to: York Sun
Headers show

Commit Message

Z.Q. Hou Aug. 2, 2016, 11:03 a.m. UTC
From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V2
 - mv disable_pcie_ns_access() to set_pcie_ns_access().

 .../include/asm/arch-fsl-layerscape/ns_access.h    |  1 +
 board/freescale/common/ns_access.c                 | 28 ++++++++++++++++++++++
 include/fsl_csu.h                                  |  1 +
 3 files changed, 30 insertions(+)

Comments

Z.Q. Hou Aug. 2, 2016, 11:20 a.m. UTC | #1
Hi All,

Drop this patch.

> -----Original Message-----

> From: Zhiqiang Hou [mailto:Zhiqiang.Hou@nxp.com]

> Sent: 2016年8月2日 19:03

> To: u-boot@lists.denx.de; albert.u.boot@aribaud.net; york sun

> <york.sun@nxp.com>; wd@denx.de; Prabhakar Kushwaha

> <prabhakar.kushwaha@nxp.com>; Huan Wang <alison.wang@nxp.com>;

> Mingkai Hu <mingkai.hu@nxp.com>

> Cc: Yao Yuan <yao.yuan@nxp.com>; Qianyu Gong <qianyu.gong@nxp.com>;

> bmeng.cn@gmail.com; Shengzhou Liu <shengzhou.liu@nxp.com>; Zhiqiang

> Hou <zhiqiang.hou@nxp.com>

> Subject: [PATCH 4/5] fsl: csu: add an API to set R/W permission to PCIe

> 

> From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>

> 

> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>

> ---

> V2

>  - mv disable_pcie_ns_access() to set_pcie_ns_access().

> 

>  .../include/asm/arch-fsl-layerscape/ns_access.h    |  1 +

>  board/freescale/common/ns_access.c                 | 28

> ++++++++++++++++++++++

>  include/fsl_csu.h                                  |  1 +

>  3 files changed, 30 insertions(+)

> 

> diff --git a/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h

> b/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h

> index db76066..f46f1d8 100644

> --- a/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h

> +++ b/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h

> @@ -6,6 +6,7 @@

> 

>  #ifndef __FSL_NS_ACCESS_H_

>  #define __FSL_NS_ACCESS_H_

> +#include <fsl_csu.h>

> 

>  enum csu_cslx_ind {

>  	CSU_CSLX_PCIE2_IO = 0,

> diff --git a/board/freescale/common/ns_access.c

> b/board/freescale/common/ns_access.c

> index c3d7a5e..6d547fa 100644

> --- a/board/freescale/common/ns_access.c

> +++ b/board/freescale/common/ns_access.c

> @@ -8,6 +8,7 @@

>  #include <asm/io.h>

>  #include <fsl_csu.h>

>  #include <asm/arch/ns_access.h>

> +#include <asm/arch/fsl_serdes.h>

> 

>  void set_devices_ns_access(struct csu_ns_dev *ns_dev, u16 val)  { @@

> -40,3 +41,30 @@ void enable_layerscape_ns_access(void)  {

>  	enable_devices_ns_access(ns_dev, ARRAY_SIZE(ns_dev));  }

> +

> +void set_pcie_ns_access(int pcie, u16 val) {

> +	switch (pcie) {

> +#ifdef CONFIG_PCIE1

> +	case PCIE1:

> +		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE1], val);

> +		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE1_IO], val);

> +		return;

> +#endif

> +#ifdef CONFIG_PCIE2

> +	case PCIE2:

> +		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE2], val);

> +		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE2_IO], val);

> +		return;

> +#endif

> +#ifdef CONFIG_PCIE3

> +	case PCIE3:

> +		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE3], val);

> +		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE3_IO], val);

> +		return;

> +#endif

> +	default:

> +		debug("The PCIE%d doesn't exist!\n", pcie);

> +		return;

> +	}

> +}

> diff --git a/include/fsl_csu.h b/include/fsl_csu.h index 57a9985..42ca433

> 100644

> --- a/include/fsl_csu.h

> +++ b/include/fsl_csu.h

> @@ -31,5 +31,6 @@ struct csu_ns_dev {

> 

>  void enable_layerscape_ns_access(void);

>  void set_devices_ns_access(struct csu_ns_dev *ns_dev, u16 val);

> +void set_pcie_ns_access(int pcie, u16 val);

> 

>  #endif

> --

> 2.1.0.27.g96db324


Thanks,
Zhiqiang
diff mbox

Patch

diff --git a/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h b/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h
index db76066..f46f1d8 100644
--- a/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h
+++ b/arch/arm/include/asm/arch-fsl-layerscape/ns_access.h
@@ -6,6 +6,7 @@ 
 
 #ifndef __FSL_NS_ACCESS_H_
 #define __FSL_NS_ACCESS_H_
+#include <fsl_csu.h>
 
 enum csu_cslx_ind {
 	CSU_CSLX_PCIE2_IO = 0,
diff --git a/board/freescale/common/ns_access.c b/board/freescale/common/ns_access.c
index c3d7a5e..6d547fa 100644
--- a/board/freescale/common/ns_access.c
+++ b/board/freescale/common/ns_access.c
@@ -8,6 +8,7 @@ 
 #include <asm/io.h>
 #include <fsl_csu.h>
 #include <asm/arch/ns_access.h>
+#include <asm/arch/fsl_serdes.h>
 
 void set_devices_ns_access(struct csu_ns_dev *ns_dev, u16 val)
 {
@@ -40,3 +41,30 @@  void enable_layerscape_ns_access(void)
 {
 	enable_devices_ns_access(ns_dev, ARRAY_SIZE(ns_dev));
 }
+
+void set_pcie_ns_access(int pcie, u16 val)
+{
+	switch (pcie) {
+#ifdef CONFIG_PCIE1
+	case PCIE1:
+		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE1], val);
+		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE1_IO], val);
+		return;
+#endif
+#ifdef CONFIG_PCIE2
+	case PCIE2:
+		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE2], val);
+		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE2_IO], val);
+		return;
+#endif
+#ifdef CONFIG_PCIE3
+	case PCIE3:
+		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE3], val);
+		set_devices_ns_access(&ns_dev[CSU_CSLX_PCIE3_IO], val);
+		return;
+#endif
+	default:
+		debug("The PCIE%d doesn't exist!\n", pcie);
+		return;
+	}
+}
diff --git a/include/fsl_csu.h b/include/fsl_csu.h
index 57a9985..42ca433 100644
--- a/include/fsl_csu.h
+++ b/include/fsl_csu.h
@@ -31,5 +31,6 @@  struct csu_ns_dev {
 
 void enable_layerscape_ns_access(void);
 void set_devices_ns_access(struct csu_ns_dev *ns_dev, u16 val);
+void set_pcie_ns_access(int pcie, u16 val);
 
 #endif