All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] MIPS: Support for Netlogic XLP processors
@ 2011-11-11 11:37 ` Jayachandran C
  0 siblings, 0 replies; 44+ messages in thread
From: Jayachandran C @ 2011-11-11 11:37 UTC (permalink / raw)
  To: linux-mips, ralf

[Here's is the patchset again, it has been re-based on top of the
ralf/upstream-sfr.git and few conflicts there have been resolved.]

This patchset adds support for Netlogic's XLP processor family.

The first few patches are to update XLR and move common files to a new
netlogic/common directory.

As always, comments and suggestions welcome. More details on the chip at
http://www.netlogicmicro.com/Products/ProductBriefs/MultiCore/XLP832.htm

Changes from  version:
 - merge smp wakeup code of XLR and XLP
 - common support for booting with 1/2/4 threads per core
 - Add supprt for XLP 3xx processors
 - mark netlogic chips SMT capable

Hillf Danton (1):
  MIPS: Netlogic: Mark Netlogic chips as SMT capable

Jayachandran C (11):
  MIPS: Netlogic: Style fixes for Platform
  MIPS: Netlogic: Use CPU_XLR instead of NLM_XLR
  MIPS: Netlogic: No need to set -Werror in mips/xlr
  MIPS: Netlogic: Move code common with XLP to common/
  MIPS: Netlogic: Update default config
  MIPS: Netlogic: XLP CPU support.
  MIPS: Netlogic: Add XLP platform files for XLP SoC
  MIPS: Netlogic: Add XLP makefiles and config
  MIPS: Netlogic: Add default XLP config.
  MIPS: Netlogic: Merge some of XLR/XLP wakup code
  MIPS: Netlogic: Add support for XLP 3XX cores

 arch/mips/Kconfig                                  |   44 ++-
 arch/mips/configs/nlm_xlp_defconfig                |  570 ++++++++++++++++++++
 arch/mips/configs/nlm_xlr_defconfig                |   16 +-
 arch/mips/include/asm/cpu.h                        |    5 +-
 .../asm/mach-netlogic/cpu-feature-overrides.h      |   18 +-
 arch/mips/include/asm/module.h                     |    2 +
 arch/mips/include/asm/netlogic/common.h            |   76 +++
 arch/mips/include/asm/netlogic/haldefs.h           |  163 ++++++
 arch/mips/include/asm/netlogic/xlp-hal/bridge.h    |  187 +++++++
 .../mips/include/asm/netlogic/xlp-hal/cpucontrol.h |   83 +++
 arch/mips/include/asm/netlogic/xlp-hal/iomap.h     |  153 ++++++
 arch/mips/include/asm/netlogic/xlp-hal/pic.h       |  411 ++++++++++++++
 arch/mips/include/asm/netlogic/xlp-hal/sys.h       |  129 +++++
 arch/mips/include/asm/netlogic/xlp-hal/uart.h      |  191 +++++++
 arch/mips/include/asm/netlogic/xlp-hal/xlp.h       |   51 ++
 arch/mips/include/asm/netlogic/xlr/iomap.h         |   22 -
 arch/mips/include/asm/netlogic/xlr/pic.h           |   69 ++-
 arch/mips/include/asm/netlogic/xlr/xlr.h           |   13 +-
 arch/mips/kernel/Makefile                          |    1 +
 arch/mips/kernel/cpu-probe.c                       |   20 +-
 arch/mips/lib/Makefile                             |    1 +
 arch/mips/mm/Makefile                              |    1 +
 arch/mips/mm/c-r4k.c                               |    3 +
 arch/mips/netlogic/Kconfig                         |    3 -
 arch/mips/netlogic/Makefile                        |    3 +
 arch/mips/netlogic/Platform                        |   13 +-
 arch/mips/netlogic/common/Makefile                 |    3 +
 arch/mips/netlogic/common/earlycons.c              |   60 ++
 arch/mips/netlogic/common/irq.c                    |  238 ++++++++
 arch/mips/netlogic/common/smp.c                    |  270 +++++++++
 arch/mips/netlogic/common/smpboot.S                |  272 ++++++++++
 arch/mips/netlogic/common/time.c                   |   51 ++
 arch/mips/netlogic/xlp/Makefile                    |    2 +
 arch/mips/netlogic/xlp/nlm_hal.c                   |  111 ++++
 arch/mips/netlogic/xlp/platform.c                  |  108 ++++
 arch/mips/netlogic/xlp/setup.c                     |  105 ++++
 arch/mips/netlogic/xlp/wakeup.c                    |  102 ++++
 arch/mips/netlogic/xlr/Makefile                    |    7 +-
 arch/mips/netlogic/xlr/irq.c                       |  305 -----------
 arch/mips/netlogic/xlr/platform.c                  |   31 +-
 arch/mips/netlogic/xlr/setup.c                     |   31 +-
 arch/mips/netlogic/xlr/smp.c                       |  220 --------
 arch/mips/netlogic/xlr/smpboot.S                   |  100 ----
 arch/mips/netlogic/xlr/time.c                      |   51 --
 arch/mips/netlogic/xlr/wakeup.c                    |   68 +++
 arch/mips/netlogic/xlr/xlr_console.c               |   46 --
 arch/mips/pci/Makefile                             |    2 +-
 arch/mips/pci/pci-xlr.c                            |   77 +++
 48 files changed, 3679 insertions(+), 829 deletions(-)
 create mode 100644 arch/mips/configs/nlm_xlp_defconfig
 create mode 100644 arch/mips/include/asm/netlogic/common.h
 create mode 100644 arch/mips/include/asm/netlogic/haldefs.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/bridge.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/iomap.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/pic.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/sys.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/uart.h
 create mode 100644 arch/mips/include/asm/netlogic/xlp-hal/xlp.h
 create mode 100644 arch/mips/netlogic/Makefile
 create mode 100644 arch/mips/netlogic/common/Makefile
 create mode 100644 arch/mips/netlogic/common/earlycons.c
 create mode 100644 arch/mips/netlogic/common/irq.c
 create mode 100644 arch/mips/netlogic/common/smp.c
 create mode 100644 arch/mips/netlogic/common/smpboot.S
 create mode 100644 arch/mips/netlogic/common/time.c
 create mode 100644 arch/mips/netlogic/xlp/Makefile
 create mode 100644 arch/mips/netlogic/xlp/nlm_hal.c
 create mode 100644 arch/mips/netlogic/xlp/platform.c
 create mode 100644 arch/mips/netlogic/xlp/setup.c
 create mode 100644 arch/mips/netlogic/xlp/wakeup.c
 delete mode 100644 arch/mips/netlogic/xlr/irq.c
 delete mode 100644 arch/mips/netlogic/xlr/smp.c
 delete mode 100644 arch/mips/netlogic/xlr/smpboot.S
 delete mode 100644 arch/mips/netlogic/xlr/time.c
 create mode 100644 arch/mips/netlogic/xlr/wakeup.c
 delete mode 100644 arch/mips/netlogic/xlr/xlr_console.c

-- 
1.7.5.4

^ permalink raw reply	[flat|nested] 44+ messages in thread
* [PATCH 11/12] MIPS: Netlogic: Add support for XLP 3XX cores
@ 2011-10-23 13:42 ` Jayachandran C
  0 siblings, 0 replies; 44+ messages in thread
From: Jayachandran C @ 2011-10-23 13:42 UTC (permalink / raw)
  To: ralf, linux-mips

Add new processor ID to asm/cpu.h and kernel/cpu-probe.c.
Update to new CPU frequency detection code which works on XLP 3XX
and 8XX.

Signed-off-by: Jayachandran C <jayachandranc@netlogicmicro.com>
---
 arch/mips/include/asm/cpu.h      |    4 +++-
 arch/mips/kernel/cpu-probe.c     |    3 ++-
 arch/mips/netlogic/xlp/nlm_hal.c |   26 ++++++++++++++++----------
 3 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index 4bcb668b..4617e5d 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -167,7 +167,9 @@
 #define PRID_IMP_NETLOGIC_XLS408B	0x4e00
 #define PRID_IMP_NETLOGIC_XLS404B	0x4f00
 
-#define PRID_IMP_NETLOGIC_XLP832	0x1000
+#define PRID_IMP_NETLOGIC_XLP8XX	0x1000
+#define PRID_IMP_NETLOGIC_XLP3XX	0x1100
+
 /*
  * Definitions for 7:0 on legacy processors
  */
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 501d302..757a3c4 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -1021,7 +1021,8 @@ static inline void cpu_probe_netlogic(struct cpuinfo_mips *c, int cpu)
 			MIPS_CPU_LLSC);
 
 	switch (c->processor_id & 0xff00) {
-	case PRID_IMP_NETLOGIC_XLP832:
+	case PRID_IMP_NETLOGIC_XLP8XX:
+	case PRID_IMP_NETLOGIC_XLP3XX:
 		c->cputype = CPU_XLP;
 		__cpu_name[cpu] = "Netlogic XLP";
 		break;
diff --git a/arch/mips/netlogic/xlp/nlm_hal.c b/arch/mips/netlogic/xlp/nlm_hal.c
index 885f687..9428e71 100644
--- a/arch/mips/netlogic/xlp/nlm_hal.c
+++ b/arch/mips/netlogic/xlp/nlm_hal.c
@@ -86,20 +86,26 @@ int nlm_irt_to_irq(int irt)
 	}
 }
 
-unsigned int nlm_get_cpu_frequency(void)
+unsigned int nlm_get_core_frequency(int core)
 {
-	unsigned int pll_divf, pll_divr, dfs_div, denom;
-	unsigned int val;
+	unsigned int pll_divf, pll_divr, dfs_div, ext_div;
+	unsigned int rstval, dfsval, denom;
 	uint64_t num;
 
-	val = nlm_read_sys_reg(nlm_sys_base, SYS_POWER_ON_RESET_CFG);
-	pll_divf = (val >> 10) & 0x7f;
-	pll_divr = (val >> 8)  & 0x3;
-	dfs_div  = (val >> 17) & 0x3;
+	rstval = nlm_read_sys_reg(nlm_sys_base, SYS_POWER_ON_RESET_CFG);
+	dfsval = nlm_read_sys_reg(nlm_sys_base, SYS_CORE_DFS_DIV_VALUE);
+	pll_divf = ((rstval >> 10) & 0x7f) + 1;
+	pll_divr = ((rstval >> 8)  & 0x3) + 1;
+	ext_div  = ((rstval >> 30) & 0x3) + 1;
+	dfs_div  = ((dfsval >> (core * 4)) & 0xf) + 1;
 
-	num = pll_divf + 1;
-	denom = 3 * (pll_divr + 1) * (1 << (dfs_div + 1));
-	num = num * 800000000ULL;
+	num = 800000000ULL * pll_divf;
+	denom = 3 * pll_divr * ext_div * dfs_div;
 	do_div(num, denom);
 	return (unsigned int)num;
 }
+
+unsigned int nlm_get_cpu_frequency(void)
+{
+	return nlm_get_core_frequency(0);
+}
-- 
1.7.4.1

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

end of thread, other threads:[~2011-11-16  0:51 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-11 11:37 [PATCH 00/12] MIPS: Support for Netlogic XLP processors Jayachandran C
2011-11-11 11:37 ` Jayachandran C
2011-11-11 11:37 ` [PATCH 01/12] MIPS: Netlogic: Style fixes for Platform Jayachandran C
2011-11-11 11:37   ` Jayachandran C
2011-11-16  0:46   ` Ralf Baechle
2011-11-11 11:37 ` [PATCH 02/12] MIPS: Netlogic: Use CPU_XLR instead of NLM_XLR Jayachandran C
2011-11-11 11:37   ` Jayachandran C
2011-11-16  0:46   ` Ralf Baechle
2011-11-11 11:37 ` [PATCH 03/12] MIPS: Netlogic: No need to set -Werror in mips/xlr Jayachandran C
2011-11-11 11:37   ` Jayachandran C
2011-11-16  0:46   ` Ralf Baechle
2011-11-11 11:38 ` [PATCH 04/12] MIPS: Netlogic: Move code common with XLP to common/ Jayachandran C
2011-11-11 11:38   ` Jayachandran C
2011-11-16  0:46   ` Ralf Baechle
2011-11-11 11:38 ` [PATCH 05/12] MIPS: Netlogic: Update default config Jayachandran C
2011-11-11 11:38   ` Jayachandran C
2011-11-16  0:47   ` Ralf Baechle
2011-11-11 11:39 ` [PATCH 06/12] MIPS: Netlogic: XLP CPU support Jayachandran C
2011-11-11 11:39   ` Jayachandran C
2011-11-16  0:47   ` Ralf Baechle
2011-11-11 11:39 ` [PATCH 07/12] MIPS: Netlogic: Add XLP platform files for XLP SoC Jayachandran C
2011-11-11 11:39   ` Jayachandran C
2011-11-16  0:47   ` Ralf Baechle
2011-11-11 11:39 ` [PATCH 08/12] MIPS: Netlogic: Add XLP makefiles and config Jayachandran C
2011-11-11 11:39   ` Jayachandran C
2011-11-16  0:47   ` Ralf Baechle
2011-11-11 11:40 ` [PATCH 09/12] MIPS: Netlogic: Add default XLP config Jayachandran C
2011-11-11 11:40   ` Jayachandran C
2011-11-16  0:47   ` Ralf Baechle
2011-11-11 11:40 ` [PATCH 10/12] MIPS: Netlogic: Merge some of XLR/XLP wakup code Jayachandran C
2011-11-11 11:40   ` Jayachandran C
2011-11-16  0:47   ` Ralf Baechle
2011-11-11 11:40 ` [PATCH 11/12] MIPS: Netlogic: Add support for XLP 3XX cores Jayachandran C
2011-11-11 11:40   ` Jayachandran C
2011-11-16  0:48   ` Ralf Baechle
2011-11-11 11:41 ` [PATCH 12/12] MIPS: Netlogic: Mark Netlogic chips as SMT capable Hillf Danton
2011-11-11 11:41   ` Hillf Danton
2011-11-11 12:54   ` Ralf Baechle
2011-11-11 13:38     ` Ralf Baechle
2011-11-11 13:39     ` Hillf Danton
2011-11-11 13:49       ` Ralf Baechle
2011-11-16  0:49   ` Ralf Baechle
  -- strict thread matches above, loose matches on Subject: below --
2011-10-23 13:42 [PATCH 11/12] MIPS: Netlogic: Add support for XLP 3XX cores Jayachandran C
2011-10-23 13:42 ` Jayachandran C

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.