public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lokesh Vutla <a0131933@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] ARM: keystone2: Refactor MSMC macros to avoid #ifdeffery
Date: Thu, 24 Mar 2016 08:12:49 +0530	[thread overview]
Message-ID: <56F35429.4010700@ti.com> (raw)
In-Reply-To: <1458746059-17893-2-git-send-email-nm@ti.com>



On Wednesday 23 March 2016 08:44 PM, Nishanth Menon wrote:
> MSMC segment Privilege ID is not consistent accross the keystone2 SoCs.
> As the first step to ensure complete SoC wide coherency setup, lets
> refactor the macros to remove the #if-deffery around the code which
> obfuscates which IDs are actually enabled for which SoC.
> 
> As a result of this change the PCIe configuration is moved after the
> msmc configuration is complete, but that should ideally have no
> functional impact.

Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>

Thanks and regards,
Lokesh

> 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  arch/arm/mach-keystone/include/mach/hardware-k2e.h |  3 --
>  arch/arm/mach-keystone/include/mach/hardware-k2l.h |  3 --
>  arch/arm/mach-keystone/include/mach/hardware.h     | 27 +++++++++-----
>  arch/arm/mach-keystone/init.c                      | 43 ++++++++++++++++++----
>  4 files changed, 53 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/arm/mach-keystone/include/mach/hardware-k2e.h b/arch/arm/mach-keystone/include/mach/hardware-k2e.h
> index df499957e54d..e6bc77caaf09 100644
> --- a/arch/arm/mach-keystone/include/mach/hardware-k2e.h
> +++ b/arch/arm/mach-keystone/include/mach/hardware-k2e.h
> @@ -34,9 +34,6 @@
>  #define KS2_LPSC_PCIE_1			27
>  #define KS2_LPSC_XGE			50
>  
> -/* MSMC */
> -#define KS2_MSMC_SEGMENT_PCIE1		13
> -
>  /* Chip Interrupt Controller */
>  #define KS2_CIC2_DDR3_ECC_IRQ_NUM	-1	/* not defined in K2E */
>  #define KS2_CIC2_DDR3_ECC_CHAN_NUM	-1	/* not defined in K2E */
> diff --git a/arch/arm/mach-keystone/include/mach/hardware-k2l.h b/arch/arm/mach-keystone/include/mach/hardware-k2l.h
> index a59e0713593f..92c17d7dd5ba 100644
> --- a/arch/arm/mach-keystone/include/mach/hardware-k2l.h
> +++ b/arch/arm/mach-keystone/include/mach/hardware-k2l.h
> @@ -53,9 +53,6 @@
>  #define KS2_LPSC_FFTC_B			49
>  #define KS2_LPSC_IQN_AIL		50
>  
> -/* MSMC */
> -#define KS2_MSMC_SEGMENT_PCIE1		14
> -
>  /* Chip Interrupt Controller */
>  #define KS2_CIC2_DDR3_ECC_IRQ_NUM	0x0D3
>  #define KS2_CIC2_DDR3_ECC_CHAN_NUM	0x01D
> diff --git a/arch/arm/mach-keystone/include/mach/hardware.h b/arch/arm/mach-keystone/include/mach/hardware.h
> index 8ca19bbcdbe9..dd9268fbf209 100644
> --- a/arch/arm/mach-keystone/include/mach/hardware.h
> +++ b/arch/arm/mach-keystone/include/mach/hardware.h
> @@ -215,16 +215,23 @@ typedef volatile unsigned int   *dv_reg_p;
>  /* MSMC control */
>  #define KS2_MSMC_CTRL_BASE		0x0bc00000
>  #define KS2_MSMC_DATA_BASE		0x0c000000
> -#ifndef CONFIG_SOC_K2G
> -#define KS2_MSMC_SEGMENT_TETRIS		8
> -#define KS2_MSMC_SEGMENT_NETCP		9
> -#define KS2_MSMC_SEGMENT_QM_PDSP	10
> -#define KS2_MSMC_SEGMENT_PCIE0		11
> -#else
> -#define KS2_MSMC_SEGMENT_TETRIS		1
> -#define KS2_MSMC_SEGMENT_NETCP		4
> -#define KS2_MSMC_SEGMENT_PCIE0		5
> -#endif
> +
> +/* KS2 HK/L/E MSMC PRIVIDs  for MSMC2 */
> +#define K2HKLE_MSMC_SEGMENT_ARM		8
> +#define K2HKLE_MSMC_SEGMENT_NETCP	9
> +#define K2HKLE_MSMC_SEGMENT_QM_PDSP	10
> +#define K2HKLE_MSMC_SEGMENT_PCIE0	11
> +
> +/* K2L specific Privilege ID Settings */
> +#define K2L_MSMC_SEGMENT_PCIE1		14
> +
> +/* K2E specific Privilege ID Settings */
> +#define K2E_MSMC_SEGMENT_PCIE1		13
> +
> +/* K2G specific Privilege ID Settings */
> +#define K2G_MSMC_SEGMENT_ARM		1
> +#define K2G_MSMC_SEGMENT_NSS		4
> +#define K2G_MSMC_SEGMENT_PCIE		5
>  
>  /* MSMC segment size shift bits */
>  #define KS2_MSMC_SEG_SIZE_SHIFT		12
> diff --git a/arch/arm/mach-keystone/init.c b/arch/arm/mach-keystone/init.c
> index aadd10bff270..2368315ff68c 100644
> --- a/arch/arm/mach-keystone/init.c
> +++ b/arch/arm/mach-keystone/init.c
> @@ -96,22 +96,51 @@ static void config_pcie_mode(int pcie_port,  enum pci_mode mode)
>  	__raw_writel(val, KS2_DEVCFG);
>  }
>  
> +static void msmc_k2hkle_common_setup(void)
> +{
> +	msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_ARM);
> +	msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_NETCP);
> +#ifdef KS2_MSMC_SEGMENT_QM_PDSP
> +	msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_QM_PDSP);
> +#endif
> +	msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_PCIE0);
> +}
> +
> +static inline void msmc_k2l_setup(void)
> +{
> +	msmc_share_all_segments(K2L_MSMC_SEGMENT_PCIE1);
> +}
> +
> +static inline void msmc_k2e_setup(void)
> +{
> +	msmc_share_all_segments(K2E_MSMC_SEGMENT_PCIE1);
> +}
> +
> +static inline void msmc_k2g_setup(void)
> +{
> +	msmc_share_all_segments(K2G_MSMC_SEGMENT_ARM);
> +	msmc_share_all_segments(K2G_MSMC_SEGMENT_NSS);
> +	msmc_share_all_segments(K2G_MSMC_SEGMENT_PCIE);
> +}
> +
>  int arch_cpu_init(void)
>  {
>  	chip_configuration_unlock();
>  	icache_enable();
>  
> -	msmc_share_all_segments(KS2_MSMC_SEGMENT_TETRIS);
> -	msmc_share_all_segments(KS2_MSMC_SEGMENT_NETCP);
> -#ifdef KS2_MSMC_SEGMENT_QM_PDSP
> -	msmc_share_all_segments(KS2_MSMC_SEGMENT_QM_PDSP);
> -#endif
> -	msmc_share_all_segments(KS2_MSMC_SEGMENT_PCIE0);
> +	if (cpu_is_k2g()) {
> +		msmc_k2g_setup();
> +	} else {
> +		msmc_k2hkle_common_setup();
> +		if (cpu_is_k2e())
> +			msmc_k2e_setup();
> +		else if (cpu_is_k2l())
> +			msmc_k2l_setup();
> +	}
>  
>  	/* Initialize the PCIe-0 to work as Root Complex */
>  	config_pcie_mode(0, ROOTCOMPLEX);
>  #if defined(CONFIG_SOC_K2E) || defined(CONFIG_SOC_K2L)
> -	msmc_share_all_segments(KS2_MSMC_SEGMENT_PCIE1);
>  	/* Initialize the PCIe-1 to work as Root Complex */
>  	config_pcie_mode(1, ROOTCOMPLEX);
>  #endif
> 

  reply	other threads:[~2016-03-24  2:42 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-23 15:14 [U-Boot] [PATCH 0/2] ARM: keystone2: Fix missing privilege ID Nishanth Menon
2016-03-23 15:14 ` [U-Boot] [PATCH 1/2] ARM: keystone2: Refactor MSMC macros to avoid #ifdeffery Nishanth Menon
2016-03-24  2:42   ` Lokesh Vutla [this message]
2016-03-25 22:59   ` Tom Rini
2016-04-02  1:56   ` [U-Boot] [U-Boot, " Tom Rini
2016-03-23 15:14 ` [U-Boot] [PATCH 2/2] ARM: keystone2: Add missing privilege ID settings Nishanth Menon
2016-03-24  2:43   ` Lokesh Vutla
2016-03-25 22:59   ` Tom Rini
2016-04-02  1:56   ` [U-Boot] [U-Boot, " Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56F35429.4010700@ti.com \
    --to=a0131933@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox