[OpenWrt-Devel] [PATCH] mpc85xx: Add T4240 sub-target

Helmut Schaa helmut.schaa at googlemail.com
Tue Apr 26 05:48:25 EDT 2016


The Freescale T4240 is a 12 core (24 threads) SoC.
Add a sub-target to the mpc85xx target to build images for the T4240
Reference Design Board.

Currently CPU thread support is only available in 64bit kernel builds,
hence the sub-target uses the powerpc64 feature flag.

Using musl libc doesn't compile properly on that sub-target yet, hence
we'd select glibc by default for T4240.

Networking is not yet supported as the required fman/bman/qman/dpaa
drivers are not yet included in mainline.

Signed-off-by: Helmut Schaa <helmut.schaa at googlemail.com>
---
 config/Config-devel.in                    |  2 +-
 target/linux/mpc85xx/Makefile             |  2 +-
 target/linux/mpc85xx/image/Makefile       |  2 +-
 target/linux/mpc85xx/t4240/config-default | 82 +++++++++++++++++++++++++++++++
 target/linux/mpc85xx/t4240/target.mk      | 12 +++++
 toolchain/Config.in                       |  5 +-
 6 files changed, 100 insertions(+), 5 deletions(-)
 create mode 100644 target/linux/mpc85xx/t4240/config-default
 create mode 100644 target/linux/mpc85xx/t4240/target.mk

diff --git a/config/Config-devel.in b/config/Config-devel.in
index 938f0b3..474b12f 100644
--- a/config/Config-devel.in
+++ b/config/Config-devel.in
@@ -106,7 +106,7 @@ menuconfig DEVEL
 
 	config EXTRA_OPTIMIZATION
 		string "Additional compiler options" if DEVEL
-		default "-fno-caller-saves -fno-plt" if !CONFIG_EXTERNAL_TOOLCHAIN && !arc
+		default "-fno-caller-saves -fno-plt" if !CONFIG_EXTERNAL_TOOLCHAIN && !arc && !powerpc64
 		default "-fno-caller-saves"
 		help
 		  Extra target-independent optimizations to use when building for the target.
diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile
index a32be90..8ba739a 100644
--- a/target/linux/mpc85xx/Makefile
+++ b/target/linux/mpc85xx/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Freescale MPC85xx
 CPU_TYPE:=8540
 FEATURES:=squashfs
 MAINTAINER:=Imre Kaloz <kaloz at openwrt.org>
-SUBTARGETS=generic p1020
+SUBTARGETS=generic p1020 t4240
 
 KERNEL_PATCHVER:=4.4
 
diff --git a/target/linux/mpc85xx/image/Makefile b/target/linux/mpc85xx/image/Makefile
index 25a9b07..82035eb 100644
--- a/target/linux/mpc85xx/image/Makefile
+++ b/target/linux/mpc85xx/image/Makefile
@@ -21,7 +21,7 @@ endef
 
 zImage:=$(BIN_DIR)/$(IMG_PREFIX)-zImage
 
-DTS_TARGETS = fsl/p1010rdb-pa tl-wdr4900-v1 fsl/p1020rdb
+DTS_TARGETS = fsl/p1010rdb-pa tl-wdr4900-v1 fsl/p1020rdb fsl/t4240rdb
 
 define Image/BuildKernel
 	cp $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
diff --git a/target/linux/mpc85xx/t4240/config-default b/target/linux/mpc85xx/t4240/config-default
new file mode 100644
index 0000000..18fd6d6
--- /dev/null
+++ b/target/linux/mpc85xx/t4240/config-default
@@ -0,0 +1,82 @@
+CONFIG_64BIT=y
+CONFIG_ALTIVEC=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_HAS_ILOG2_U64=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_BLOCK_COMPAT=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_COMMON_CLK=y
+CONFIG_COMPAT=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_CORENET_GENERIC=y
+CONFIG_CPU_RMAP=y
+# CONFIG_E5500_CPU is not set
+CONFIG_E6500_CPU=y
+CONFIG_EPAPR_PARAVIRT=y
+CONFIG_FORCE_MAX_ZONEORDER=13
+# CONFIG_FSL_ULI1575 is not set
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+# CONFIG_GENERIC_CPU is not set
+# CONFIG_HANGCHECK_TIMER is not set
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+# CONFIG_HUGETLBFS is not set
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_KERNEL_START=0xc000000000000000
+# CONFIG_LIQUIDIO is not set
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NR_CPUS=24
+# CONFIG_NUMA is not set
+CONFIG_PAGE_OFFSET=0xc000000000000000
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_PHYS_64BIT=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PPC64=y
+CONFIG_PPC_BOOK3E=y
+CONFIG_PPC_BOOK3E_64=y
+# CONFIG_PPC_BOOK3S_64 is not set
+CONFIG_PPC_E500MC=y
+CONFIG_PPC_EPAPR_HV_PIC=y
+CONFIG_PPC_FPU=y
+# CONFIG_PPC_I8259 is not set
+CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
+# CONFIG_PPC_OF_PLATFORM_PCI is not set
+CONFIG_PTE_64BIT=y
+CONFIG_RATIONAL=y
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RELOCATABLE is not set
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SMP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+# CONFIG_THUNDER_NIC_BGX is not set
+# CONFIG_THUNDER_NIC_PF is not set
+# CONFIG_THUNDER_NIC_VF is not set
+CONFIG_TREE_RCU=y
+# CONFIG_U3_DART is not set
+# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
+CONFIG_WORD_SIZE=64
+CONFIG_XPS=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZONE_DMA32=y
diff --git a/target/linux/mpc85xx/t4240/target.mk b/target/linux/mpc85xx/t4240/target.mk
new file mode 100644
index 0000000..1b515ab
--- /dev/null
+++ b/target/linux/mpc85xx/t4240/target.mk
@@ -0,0 +1,12 @@
+BOARDNAME:=T4240
+FEATURES:=squashfs powerpc64
+MAINTAINER:=Helmut Schaa <helmut.schaa at googlemail.com>
+
+# Let the kernel figure out the correct usage of -m64 and -m32
+# for different parts.
+KERNEL_CC:=
+
+define Target/Description
+	Build firmware images for Freescale T4240 based boards.
+endef
+
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 49c3461..8f27cfb 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -230,7 +230,7 @@ choice
 	config LIBC_USE_MUSL
 		select USE_MUSL
 		bool "Use musl"
-		depends on !(arc)
+		depends on !(arc) && !(powerpc64)
 
 endchoice
 
@@ -257,6 +257,7 @@ config INSIGHT
 	  Enable if you want to build insight-gdb.
 
 config USE_GLIBC
+	default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && (powerpc64)
 	bool
 
 config USE_UCLIBC
@@ -264,7 +265,7 @@ config USE_UCLIBC
 	bool
 
 config USE_MUSL
-	default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && !(arc)
+	default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN && !(arc) && !(powerpc64)
 	bool
 
 config USE_EXTERNAL_LIBC
-- 
2.8.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list