MIPS: Netlogic: Make number of nodes configurable
There can be 1, 2 or 4 SoCs(nodes) in a multi-chip XLP board. Add an option for multi-chip boards in case of XLP, and make the number of nodes configurable. Signed-off-by: Jayachandran C <jchandra@broadcom.com> Patchwork: http://patchwork.linux-mips.org/patch/4470 Signed-off-by: John Crispin <blogic@openwrt.org>
This commit is contained in:
parent
77ae798f5b
commit
bb1e4bc5cd
|
@ -8,7 +8,9 @@
|
|||
#ifndef __ASM_NETLOGIC_IRQ_H
|
||||
#define __ASM_NETLOGIC_IRQ_H
|
||||
|
||||
#define NR_IRQS 64
|
||||
#include <asm/mach-netlogic/multi-node.h>
|
||||
#define NR_IRQS (64 * NLM_NR_NODES)
|
||||
|
||||
#define MIPS_CPU_IRQ_BASE 0
|
||||
|
||||
#endif /* __ASM_NETLOGIC_IRQ_H */
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyright (c) 2003-2012 Broadcom Corporation
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the Broadcom
|
||||
* license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BROADCOM ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL BROADCOM OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _NETLOGIC_MULTI_NODE_H_
|
||||
#define _NETLOGIC_MULTI_NODE_H_
|
||||
|
||||
#ifndef CONFIG_NLM_MULTINODE
|
||||
#define NLM_NR_NODES 1
|
||||
#else
|
||||
#if defined(CONFIG_NLM_MULTINODE_2)
|
||||
#define NLM_NR_NODES 2
|
||||
#elif defined(CONFIG_NLM_MULTINODE_4)
|
||||
#define NLM_NR_NODES 4
|
||||
#else
|
||||
#define NLM_NR_NODES 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define NLM_CORES_PER_NODE 8
|
||||
#define NLM_THREADS_PER_CORE 4
|
||||
#define NLM_CPUS_PER_NODE (NLM_CORES_PER_NODE * NLM_THREADS_PER_CORE)
|
||||
|
||||
#endif
|
|
@ -48,6 +48,7 @@
|
|||
#include <linux/cpumask.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach-netlogic/multi-node.h>
|
||||
|
||||
struct irq_desc;
|
||||
void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc);
|
||||
|
@ -86,12 +87,12 @@ struct nlm_soc_info {
|
|||
spinlock_t piclock;
|
||||
};
|
||||
|
||||
#define NLM_CORES_PER_NODE 8
|
||||
#define NLM_THREADS_PER_CORE 4
|
||||
#define NLM_CPUS_PER_NODE (NLM_CORES_PER_NODE * NLM_THREADS_PER_CORE)
|
||||
#define nlm_get_node(i) (&nlm_nodes[i])
|
||||
#define NLM_NR_NODES 1
|
||||
#ifdef CONFIG_CPU_XLR
|
||||
#define nlm_current_node() (&nlm_nodes[0])
|
||||
#else
|
||||
#define nlm_current_node() (&nlm_nodes[nlm_nodeid()])
|
||||
#endif
|
||||
|
||||
struct irq_data;
|
||||
uint64_t nlm_pci_irqmask(int node);
|
||||
|
|
|
@ -9,6 +9,34 @@ config DT_XLP_EVP
|
|||
This DTB will be used if the firmware does not pass in a DTB
|
||||
pointer to the kernel. The corresponding DTS file is at
|
||||
arch/mips/netlogic/dts/xlp_evp.dts
|
||||
|
||||
config NLM_MULTINODE
|
||||
bool "Support for multi-chip boards"
|
||||
depends on NLM_XLP_BOARD
|
||||
default n
|
||||
help
|
||||
Add support for boards with 2 or 4 XLPs connected over ICI.
|
||||
|
||||
if NLM_MULTINODE
|
||||
choice
|
||||
prompt "Number of XLPs on the board"
|
||||
default NLM_MULTINODE_2
|
||||
help
|
||||
In the multi-node case, specify the number of SoCs on the board.
|
||||
|
||||
config NLM_MULTINODE_2
|
||||
bool "Dual-XLP board"
|
||||
help
|
||||
Support boards with upto two XLPs connected over ICI.
|
||||
|
||||
config NLM_MULTINODE_4
|
||||
bool "Quad-XLP board"
|
||||
help
|
||||
Support boards with upto four XLPs connected over ICI.
|
||||
|
||||
endchoice
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
config NLM_COMMON
|
||||
|
|
Loading…
Reference in New Issue