From: Murali Karicheri <m-karicheri2@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-boot PATCH] keystone: set default pci mode to root complex
Date: Fri, 19 Dec 2014 11:28:49 -0500 [thread overview]
Message-ID: <54945241.5020503@ti.com> (raw)
In-Reply-To: <1418153546-14445-1-git-send-email-m-karicheri2@ti.com>
On 12/09/2014 02:32 PM, Murali Karicheri wrote:
> pci ports are used as root complex in Linux. So set this as default
> in u-boot for keystone devices
>
> Signed-off-by: Murali Karicheri<m-karicheri2@ti.com>
> ---
> arch/arm/cpu/armv7/keystone/init.c | 33 +++++++++++++++++++++++++
> arch/arm/include/asm/arch-keystone/hardware.h | 1 +
> 2 files changed, 34 insertions(+)
>
> diff --git a/arch/arm/cpu/armv7/keystone/init.c b/arch/arm/cpu/armv7/keystone/init.c
> index c2b9478..c96845c 100644
> --- a/arch/arm/cpu/armv7/keystone/init.c
> +++ b/arch/arm/cpu/armv7/keystone/init.c
> @@ -15,6 +15,16 @@
> #include<asm/arch/hardware.h>
> #include<asm/arch/psc_defs.h>
>
> +#define MAX_PCI_PORTS 2
> +enum pci_mode {
> + ENDPOINT,
> + LEGACY_ENDPOINT,
> + ROOTCOMPLEX,
> +};
> +
> +#define DEVCFG_MODE_MASK (BIT(2) | BIT(1))
> +#define DEVCFG_MODE_SHIFT 1
> +
> void chip_configuration_unlock(void)
> {
> __raw_writel(KS2_KICK0_MAGIC, KS2_KICK0);
> @@ -68,6 +78,24 @@ void osr_init(void)
> }
> #endif
>
> +/* Function to set up PCIe mode */
> +static void config_pcie_mode(int pcie_port, enum pci_mode mode)
> +{
> + u32 val = __raw_readl(KS2_DEVCFG);
> +
> + if (pcie_port>= MAX_PCI_PORTS)
> + return;
> +
> + /**
> + * each pci port has two bits for mode and it starts at
> + * bit 1. So use port number to get the right bit position.
> + */
> + pcie_port<<= 1;
> + val&= ~(DEVCFG_MODE_MASK<< pcie_port);
> + val |= ((mode<< DEVCFG_MODE_SHIFT)<< pcie_port);
> + __raw_writel(val, KS2_DEVCFG);
> +}
> +
> int arch_cpu_init(void)
> {
> chip_configuration_unlock();
> @@ -77,8 +105,13 @@ int arch_cpu_init(void)
> msmc_share_all_segments(KS2_MSMC_SEGMENT_NETCP);
> msmc_share_all_segments(KS2_MSMC_SEGMENT_QM_PDSP);
> msmc_share_all_segments(KS2_MSMC_SEGMENT_PCIE0);
> +
> + /* 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
> #ifdef CONFIG_SOC_K2L
> osr_init();
> diff --git a/arch/arm/include/asm/arch-keystone/hardware.h b/arch/arm/include/asm/arch-keystone/hardware.h
> index be22bdb..16cbcee 100644
> --- a/arch/arm/include/asm/arch-keystone/hardware.h
> +++ b/arch/arm/include/asm/arch-keystone/hardware.h
> @@ -144,6 +144,7 @@ typedef volatile unsigned int *dv_reg_p;
> #define KS2_DEVICE_STATE_CTRL_BASE 0x02620000
> #define KS2_JTAG_ID_REG (KS2_DEVICE_STATE_CTRL_BASE + 0x18)
> #define KS2_DEVSTAT (KS2_DEVICE_STATE_CTRL_BASE + 0x20)
> +#define KS2_DEVCFG (KS2_DEVICE_STATE_CTRL_BASE + 0x14c)
>
> /* PSC */
> #define KS2_PSC_BASE 0x02350000
Tom,
Please apply this when you get a chance if there are no comments.
--
Murali Karicheri
Linux Kernel, Texas Instruments
next prev parent reply other threads:[~2014-12-19 16:28 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-09 19:32 [U-Boot] [U-boot PATCH] keystone: set default pci mode to root complex Murali Karicheri
2014-12-19 16:28 ` Murali Karicheri [this message]
2015-01-07 15:11 ` [U-Boot] [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=54945241.5020503@ti.com \
--to=m-karicheri2@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 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.