Skip to contentSkip to conversation

arm64: Initial patch-set for APM X-Gene SOC family

PATCH New Vinayak Kale 3 participants 9 messages Apr 24, 2013 – Jun 21, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

v3 cover arm64: Initial patch-set for APM X-Gene SOC family

These are initial patches for APM X-Gene SOC family.
This patch-set is based on soc-armv8-model branch of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64.git

Changelog:

-V3:
* added compatible field for board in dts file
* made the model name string more descriptive in dts file
* fixed the compatible field for cpu nodes in dts file
* removed 'arm,cortex-a9-gic' fallback string from compatible field of gic node in dts file

-V2:
* set NR_CPUS in arch/arm64/Kconfig based on selected targets
* use default defconfig instead of xgene_defconfig
* added 'apm-' prefix to dts filenames
* fixed #address-cells in /cpus node in dts file
* fixed cpu node naming under /cpus node in dts file
* fixed serial device node name in dts file

-V1: Initial post

Vinayak Kale (4):
arm64: Add Kconfig option for APM X-Gene SOC family
arm64: Enable APM X-Gene SOC family in the defconfig
arm64: Add defines for APM ARMv8 implementation
arm64: Add initial DTS for APM X-Gene Storm SOC and APM Mustang board

 arch/arm64/Kconfig                  |    7 ++
 arch/arm64/boot/dts/Makefile        |    1 +
 arch/arm64/boot/dts/apm-mustang.dts |   26 ++++++++
 arch/arm64/boot/dts/apm-storm.dtsi  |  116 +++++++++++++++++++++++++++++++++++
 arch/arm64/configs/defconfig        |    4 +
 arch/arm64/include/asm/cputype.h    |    3 +
 6 files changed, 157 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm64/boot/dts/apm-mustang.dts
 create mode 100644 arch/arm64/boot/dts/apm-storm.dtsi
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH v3 1/4 arm64: Add Kconfig option for APM X-Gene SOC family

This patch adds arm64/Kconfig option for APM X-Gene SOC family.

---
 arch/arm64/Kconfig |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm64/Kconfig +7 -0
index 43b0e9f..16d0198 100644
@@ -114,6 +114,11 @@ config ARCH_VEXPRESS
 	  This enables support for the ARMv8 software model (Versatile
 	  Express).
 
+config ARCH_XGENE
+	bool "AppliedMicro X-Gene SOC Family"
+	help
+	  This enables support for AppliedMicro X-Gene SOC Family
+
 endmenu
 
 menu "Bus support"
@@ -153,6 +158,8 @@ config NR_CPUS
 	int "Maximum number of CPUs (2-32)"
 	range 2 32
 	depends on SMP
+	# These have to remain sorted largest to smallest
+	default "8" if ARCH_XGENE
 	default "4"
 
 source kernel/Kconfig.preempt
Signature · 1 line
1.7.4.1
maintainer
#2 lore raw

PATCH v3 1/4 arm64: Add Kconfig option for APM X-Gene SOC family

Hi Vinayak,

Quoted 26 lines · Vinayak Kale

This patch adds arm64/Kconfig option for APM X-Gene SOC family.

---
 arch/arm64/Kconfig |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm64/Kconfig +5 -0
index 43b0e9f..16d0198 100644
@@ -114,6 +114,11 @@ config ARCH_VEXPRESS
 	  This enables support for the ARMv8 software model (Versatile
 	  Express).
 
+config ARCH_XGENE
+	bool "AppliedMicro X-Gene SOC Family"
+	help
+	  This enables support for AppliedMicro X-Gene SOC Family
+
 endmenu
 
 menu "Bus support"

arch/arm64/Kconfig config NR_CPUS · line 163

Quoted 6 lines
arch/arm64/Kconfig +2 -0
@@ -153,6 +158,8 @@ config NR_CPUS
 	int "Maximum number of CPUs (2-32)"
 	range 2 32
 	depends on SMP
+	# These have to remain sorted largest to smallest
+	default "8" if ARCH_XGENE
 	default "4"

For ARCH_VEXPRESS I was planning to get rid of the Kconfig entry and just select the drivers in the defconfig file (once some other patches get merged). Do you have any dependencies on ARCH_XGENE apart from what's here?

Signature · 1 line
Catalin
#3 lore raw

PATCH v3 1/4 arm64: Add Kconfig option for APM X-Gene SOC family

Hi Catalin,

Quoted 27 lines · Catalin Marinas

Hi Vinayak,

Quoted 24 lines · Vinayak Kale

This patch adds arm64/Kconfig option for APM X-Gene SOC family.

---
 arch/arm64/Kconfig |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm64/Kconfig +5 -0
index 43b0e9f..16d0198 100644
@@ -114,6 +114,11 @@ config ARCH_VEXPRESS
        This enables support for the ARMv8 software model (Versatile
        Express).
 
+config ARCH_XGENE
+     bool "AppliedMicro X-Gene SOC Family"
+     help
+       This enables support for AppliedMicro X-Gene SOC Family
+
 endmenu
 
Quoted 14 lines

arch/arm64/Kconfig config NR_CPUS · line 163

Quoted 8 lines
arch/arm64/Kconfig +2 -0
 menu "Bus support"
@@ -153,6 +158,8 @@ config NR_CPUS
      int "Maximum number of CPUs (2-32)"
      range 2 32
      depends on SMP
+     # These have to remain sorted largest to smallest
+     default "8" if ARCH_XGENE
      default "4"

For ARCH_VEXPRESS I was planning to get rid of the Kconfig entry and just select the drivers in the defconfig file (once some other patches get merged). Do you have any dependencies on ARCH_XGENE apart from what's here?

Apart from here, we do have dependency on ARCH_XGENE:
1) To select XGENE SoC specific dtb compilation
2) Use this to forcefully select certain platform drivers such as Clock.

Quoted 2 lines

--
Catalin

-Vinayak

maintainer
#4 lore raw

PATCH v3 1/4 arm64: Add Kconfig option for APM X-Gene SOC family

Quoted 43 lines · Vinayak Kale
Quoted 27 lines · Catalin Marinas

Hi Vinayak,

Quoted 24 lines · Vinayak Kale

This patch adds arm64/Kconfig option for APM X-Gene SOC family.

---
 arch/arm64/Kconfig |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm64/Kconfig +5 -0
index 43b0e9f..16d0198 100644
@@ -114,6 +114,11 @@ config ARCH_VEXPRESS
        This enables support for the ARMv8 software model (Versatile
        Express).
 
+config ARCH_XGENE
+     bool "AppliedMicro X-Gene SOC Family"
+     help
+       This enables support for AppliedMicro X-Gene SOC Family
+
 endmenu
 
Quoted 13 lines

arch/arm64/Kconfig config NR_CPUS · line 163

Quoted 8 lines
arch/arm64/Kconfig +2 -0
 menu "Bus support"
@@ -153,6 +158,8 @@ config NR_CPUS
      int "Maximum number of CPUs (2-32)"
      range 2 32
      depends on SMP
+     # These have to remain sorted largest to smallest
+     default "8" if ARCH_XGENE
      default "4"

For ARCH_VEXPRESS I was planning to get rid of the Kconfig entry and just select the drivers in the defconfig file (once some other patches get merged). Do you have any dependencies on ARCH_XGENE apart from what's here?

Quoted 2 lines

Apart from here, we do have dependency on ARCH_XGENE:
1) To select XGENE SoC specific dtb compilation

We can build all of them.

Quoted 1 line

2) Use this to forcefully select certain platform drivers such as Clock.

The vexpress-related clocks etc. will simply depend on ARM64 (patches going upstream) and we enable them in defconfig. Can you do the same for X-Gene?

Signature · 1 line
Catalin
#5 lore raw

PATCH v3 1/4 arm64: Add Kconfig option for APM X-Gene SOC family

Hi,

Yes... We will do the same if there is no concern with the growing number of drivers.

-Loc

Quoted 57 lines · Catalin Marinas
Quoted 43 lines · Vinayak Kale
Quoted 27 lines · Catalin Marinas

Hi Vinayak,

Quoted 24 lines · Vinayak Kale

This patch adds arm64/Kconfig option for APM X-Gene SOC family.

---
 arch/arm64/Kconfig |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm64/Kconfig +5 -0
index 43b0e9f..16d0198 100644
@@ -114,6 +114,11 @@ config ARCH_VEXPRESS
        This enables support for the ARMv8 software model (Versatile
        Express).
 
+config ARCH_XGENE
+     bool "AppliedMicro X-Gene SOC Family"
+     help
+       This enables support for AppliedMicro X-Gene SOC Family
+
 endmenu
 
Quoted 13 lines

arch/arm64/Kconfig config NR_CPUS · line 163

Quoted 8 lines
arch/arm64/Kconfig +2 -0
 menu "Bus support"
@@ -153,6 +158,8 @@ config NR_CPUS
      int "Maximum number of CPUs (2-32)"
      range 2 32
      depends on SMP
+     # These have to remain sorted largest to smallest
+     default "8" if ARCH_XGENE
      default "4"

For ARCH_VEXPRESS I was planning to get rid of the Kconfig entry and just select the drivers in the defconfig file (once some other patches get merged). Do you have any dependencies on ARCH_XGENE apart from what's here?

Quoted 2 lines

Apart from here, we do have dependency on ARCH_XGENE:
1) To select XGENE SoC specific dtb compilation

We can build all of them.

Quoted 1 line

2) Use this to forcefully select certain platform drivers such as Clock.

The vexpress-related clocks etc. will simply depend on ARM64 (patches going upstream) and we enable them in defconfig. Can you do the same for X-Gene?

--
Catalin

#6 lore raw

PATCH v3 2/4 arm64: Enable APM X-Gene SOC family in the defconfig

In reply to Vinayak Kale

This patch enables APM X-Gene SOC family in the defconfig. It also enables 8250 serial driver needed by X-Gene SOC family.

---
 arch/arm64/configs/defconfig |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
arch/arm64/configs/defconfig +4 -0
index 09bef29..7dfad0a 100644
@@ -23,6 +23,7 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
 # CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_ARCH_XGENE=y
 CONFIG_SMP=y
 CONFIG_PREEMPT_VOLUNTARY=y
 CONFIG_CMDLINE="console=ttyAMA0"
@@ -52,6 +53,9 @@ CONFIG_INPUT_EVDEV=y
 # CONFIG_SERIO_I8042 is not set
 # CONFIG_SERIO_SERPORT is not set
 CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HWMON is not set
 CONFIG_FB=y
Signature · 1 line
1.7.4.1
#7 lore raw

PATCH v3 3/4 arm64: Add defines for APM ARMv8 implementation

In reply to Vinayak Kale

This patch adds defines for APM CPU implementer ID and APM CPU part numbers in asm/cputype.h

---
 arch/arm64/include/asm/cputype.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
arch/arm64/include/asm/cputype.h +3 -0
index cf27494..5fe138e 100644
@@ -37,11 +37,14 @@
 })
 
 #define ARM_CPU_IMP_ARM		0x41
+#define ARM_CPU_IMP_APM		0x50
 
 #define ARM_CPU_PART_AEM_V8	0xD0F0
 #define ARM_CPU_PART_FOUNDATION	0xD000
 #define ARM_CPU_PART_CORTEX_A57	0xD070
 
+#define APM_CPU_PART_POTENZA	0x0000
+
 #ifndef __ASSEMBLY__
 
 /*
Signature · 1 line
1.7.4.1
#8 lore raw

PATCH v3 4/4 arm64: Add initial DTS for APM X-Gene Storm SOC and APM Mustang board

In reply to Vinayak Kale

This patch adds initial DTS files required for APM Mustang board.

---
 arch/arm64/boot/dts/Makefile        |    1 +
 arch/arm64/boot/dts/apm-mustang.dts |   26 ++++++++
 arch/arm64/boot/dts/apm-storm.dtsi  |  116 +++++++++++++++++++++++++++++++++++
 3 files changed, 143 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm64/boot/dts/apm-mustang.dts
 create mode 100644 arch/arm64/boot/dts/apm-storm.dtsi
arch/arm64/boot/dts/Makefile +1 -0
index 68457e9..c52bdb0 100644
@@ -1,4 +1,5 @@
 dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
+dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
 
 targets += dtbs
 targets += $(dtb-y)
arch/arm64/boot/dts/apm-mustang.dts new file +26 -0
new file mode 100644
index 0000000..1247ca1
@@ -0,0 +1,26 @@
+/*
+ * dts file for AppliedMicro (APM) Mustang Board
+ *
+ * Copyright (C) 2013, Applied Micro Circuits Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+/include/ "apm-storm.dtsi"
+
+/ {
+	model = "APM X-Gene Mustang board";
+	compatible = "apm,mustang", "apm,xgene-storm";
+
+	chosen { };
+
+	memory {
+		device_type = "memory";
+		reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
+	};
+};
arch/arm64/boot/dts/apm-storm.dtsi new file +116 -0

116 lines not on this page · raw message

Signature · 1 line
1.7.4.1