summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/config/Config.in.cpu76
-rw-r--r--target/config/Config.in.fpu11
-rw-r--r--target/config/Config.in.libc2
-rw-r--r--target/linux/config/Config.in.ethernet2
-rw-r--r--target/linux/config/Config.in.serial4
-rw-r--r--target/ppc/Makefile18
-rw-r--r--target/ppc/kernel/qemu-ppc-mpc8544ds11
-rw-r--r--target/ppc/systems/qemu-ppc-mpc8544ds8
8 files changed, 118 insertions, 14 deletions
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 5e66cdcef..94d65946f 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -1060,6 +1060,50 @@ config ADK_TARGET_CPU_PPC_7400
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
+ depends on ADK_TARGET_ARCH_PPC
+
+config ADK_TARGET_CPU_PPC_7450
+ bool "7450"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
+ depends on ADK_TARGET_ARCH_PPC
+
+config ADK_TARGET_CPU_PPC_750
+ bool "750"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_PPC
+
+config ADK_TARGET_CPU_PPC_8540
+ bool "8540"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_SPE
+ depends on ADK_TARGET_ARCH_PPC
+
+config ADK_TARGET_CPU_PPC_8548
+ bool "8548"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_SPE
+ depends on ADK_TARGET_ARCH_PPC
+
+config ADK_TARGET_CPU_PPC_E500MC
+ bool "e500mc"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_PPC
config ADK_TARGET_CPU_PPC_970
@@ -1068,6 +1112,7 @@ config ADK_TARGET_CPU_PPC_970
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
depends on ADK_TARGET_ARCH_PPC
# ppc64
@@ -1080,12 +1125,31 @@ config ADK_TARGET_CPU_PPC64_POWERPC64
depends on ADK_TARGET_ARCH_PPC64
depends on ADK_TARGET_BIG_ENDIAN
+config ADK_TARGET_CPU_PPC64_POWER4
+ bool "power4"
+ select ADK_LINUX_64
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_PPC64
+ depends on ADK_TARGET_BIG_ENDIAN
+
+config ADK_TARGET_CPU_PPC64_POWER5
+ bool "power5"
+ select ADK_LINUX_64
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_PPC64
+ depends on ADK_TARGET_BIG_ENDIAN
+
config ADK_TARGET_CPU_PPC64_POWER6
bool "power6"
select ADK_LINUX_64
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
depends on ADK_TARGET_ARCH_PPC64
depends on ADK_TARGET_BIG_ENDIAN
@@ -1095,6 +1159,7 @@ config ADK_TARGET_CPU_PPC64_POWER7
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
depends on ADK_TARGET_ARCH_PPC64
depends on ADK_TARGET_BIG_ENDIAN
@@ -1104,6 +1169,7 @@ config ADK_TARGET_CPU_PPC64_POWER8
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
depends on ADK_TARGET_ARCH_PPC64
# riscv
@@ -1806,6 +1872,9 @@ config ADK_TARGET_CPU_WITH_VT
config ADK_TARGET_CPU_WITH_MTRR
bool
+config ADK_TARGET_CPU_WITH_ALTIVEC
+ bool
+
config ADK_TARGET_CPU_WITH_MMX
bool
@@ -1851,7 +1920,6 @@ config ADK_TARGET_CPU_WITH_3DNOWEXT
# for gcc --with-cpu
config ADK_TARGET_GCC_CPU
string
- default "440" if ADK_TARGET_CPU_PPC_440
default "51" if ADK_TARGET_CPU_CF_51
default "5206" if ADK_TARGET_CPU_CF_5206
default "5206e" if ADK_TARGET_CPU_CF_5206E
@@ -1907,6 +1975,8 @@ config ADK_TARGET_GCC_CPU
default "n13" if ADK_TARGET_CPU_NDS32
default "powerpc" if ADK_TARGET_CPU_PPC
default "powerpc64" if ADK_TARGET_CPU_PPC64_POWERPC64
+ default "power4" if ADK_TARGET_CPU_PPC64_POWER4
+ default "power5" if ADK_TARGET_CPU_PPC64_POWER5
default "power6" if ADK_TARGET_CPU_PPC64_POWER6
default "power7" if ADK_TARGET_CPU_PPC64_POWER7
default "power8" if ADK_TARGET_CPU_PPC64_POWER8
@@ -1915,7 +1985,11 @@ config ADK_TARGET_GCC_CPU
default "xscale" if ADK_TARGET_CPU_ARM_XSCALE
default "440" if ADK_TARGET_CPU_PPC_440
default "740" if ADK_TARGET_CPU_PPC_740
+ default "750" if ADK_TARGET_CPU_PPC_750
default "7400" if ADK_TARGET_CPU_PPC_7400
+ default "7450" if ADK_TARGET_CPU_PPC_7450
+ default "8540" if ADK_TARGET_CPU_PPC_8540
+ default "8548" if ADK_TARGET_CPU_PPC_8548
default "970" if ADK_TARGET_CPU_PPC_970
# for gcc --with-arch
diff --git a/target/config/Config.in.fpu b/target/config/Config.in.fpu
index 1ea04be3e..0abb5f8e0 100644
--- a/target/config/Config.in.fpu
+++ b/target/config/Config.in.fpu
@@ -1,6 +1,17 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
+config ADK_TARGET_ARCH_PPC_WITH_SPE
+ bool
+ default n
+
+config ADK_TARGET_ARCH_PPC_WITH_ALTIVEC
+ bool "enable AltiVec SIMD support"
+ depends on ADK_TARGET_ARCH_PPC && ADK_TARGET_CPU_WITH_ALTIVEC
+ default n
+ help
+ Enable support for AltiVec SIMD CPU extensions.
+
config ADK_TARGET_ARCH_ARM_WITH_NEON
bool "enable NEON SIMD support"
depends on ADK_TARGET_ARCH_ARM && ADK_TARGET_CPU_WITH_NEON
diff --git a/target/config/Config.in.libc b/target/config/Config.in.libc
index 086578a54..3a8099b4a 100644
--- a/target/config/Config.in.libc
+++ b/target/config/Config.in.libc
@@ -243,6 +243,7 @@ config ADK_TARGET_SUFFIX
default "gnuabi32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_O64
default "gnu32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_32 && ADK_LINUX_64
default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
+ default "gnuspe" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
default "gnu" if ADK_TARGET_LIB_GLIBC
default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
@@ -251,6 +252,7 @@ config ADK_TARGET_SUFFIX
default "uclibcabin32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_N32
default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32
default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64
+ default "uclibcspe" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG
default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM
diff --git a/target/linux/config/Config.in.ethernet b/target/linux/config/Config.in.ethernet
index 3a3f36aa0..787f5d5ef 100644
--- a/target/linux/config/Config.in.ethernet
+++ b/target/linux/config/Config.in.ethernet
@@ -337,6 +337,7 @@ config ADK_KERNEL_E1000
ADK_TARGET_SYSTEM_QEMU_MIPS64 || \
ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC || \
ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO || \
+ ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS || \
ADK_TARGET_SYSTEM_QEMU_ALPHA || \
ADK_TARGET_SYSTEM_QEMU_SPARC64 || \
ADK_TARGET_VBOX || \
@@ -348,6 +349,7 @@ config ADK_KERNEL_E1000
default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
default y if ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC
default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO
+ default y if ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS
default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
default y if ADK_TARGET_SYSTEM_QEMU_SPARC64
default y if ADK_TARGET_VBOX
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
index d8546b041..987ad5188 100644
--- a/target/linux/config/Config.in.serial
+++ b/target/linux/config/Config.in.serial
@@ -86,6 +86,7 @@ config ADK_KERNEL_SERIAL_BFIN
config ADK_KERNEL_SERIAL_8250
bool "8250 serial driver"
+ select ADK_KERNEL_SERIAL_8250_CONSOLE
select ADK_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
|| ADK_TARGET_SYSTEM_IMGTEC_CI20 \
|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
@@ -99,7 +100,6 @@ config ADK_KERNEL_SERIAL_8250
select ADK_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
select ADK_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
- select ADK_KERNEL_SERIAL_8250_CONSOLE
select ADK_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
|| ADK_TARGET_SYSTEM_IMGTEC_CI20 \
@@ -115,6 +115,7 @@ config ADK_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
|| ADK_TARGET_SYSTEM_QEMU_OR1K \
|| ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO \
+ || ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS \
|| ADK_TARGET_SYSTEM_QEMU_X86 \
|| ADK_TARGET_SYSTEM_QEMU_X86_64 \
|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
@@ -141,6 +142,7 @@ config ADK_KERNEL_SERIAL_8250
default y if ADK_TARGET_SYSTEM_QEMU_NIOS2
default y if ADK_TARGET_SYSTEM_QEMU_OR1K
default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO
+ default y if ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS
default y if ADK_TARGET_SYSTEM_QEMU_X86
default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_QEMU_XTENSA
diff --git a/target/ppc/Makefile b/target/ppc/Makefile
index 64660ef59..2eec72d23 100644
--- a/target/ppc/Makefile
+++ b/target/ppc/Makefile
@@ -20,6 +20,10 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO),y)
QEMU_ARGS+=-M bamboo
QEMU_ARGS+=-device e1000,netdev=adk0 -netdev user,id=adk0
endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS),y)
+QEMU_ARGS+=-M mpc8544ds
+QEMU_ARGS+=-device e1000,netdev=adk0 -netdev user,id=adk0
+endif
# target helper text
ifeq ($(ADK_TARGET_FS),archive)
@@ -69,35 +73,25 @@ kernel-install: kernel-strip
@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
dtb-install:
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507),y)
env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
-j${ADK_MAKE_JOBS} virtex440-ml507.dtb $(MAKE_TRACE)
$(CP) $(LINUX_DIR)/arch/powerpc/boot/virtex440-ml507.dtb \
$(FW_DIR)/ppc.dtb
+endif
# filesystem specific targets
ifeq ($(ADK_TARGET_FS),archive)
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507),y)
imageinstall: dtb-install $(FW_DIR)/$(ROOTFSTARBALL) targethelp
-else
-imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
-endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507),y)
imageinstall: dtb-install kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
-else
-imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
-endif
endif
ifeq ($(ADK_TARGET_FS),initramfsarchive)
imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507),y)
imageinstall: dtb-install createinitramfs targethelp
-else
-imageinstall: createinitramfs targethelp
-endif
endif
ifeq ($(ADK_TARGET_FS),nfsroot)
imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
diff --git a/target/ppc/kernel/qemu-ppc-mpc8544ds b/target/ppc/kernel/qemu-ppc-mpc8544ds
new file mode 100644
index 000000000..1e51d4b07
--- /dev/null
+++ b/target/ppc/kernel/qemu-ppc-mpc8544ds
@@ -0,0 +1,11 @@
+CONFIG_PPC=y
+CONFIG_PPC32=y
+CONFIG_PPC_85xx=y
+CONFIG_E500=y
+CONFIG_FSL_SOC_BOOKE=y
+CONFIG_MPC8540_ADS=y
+CONFIG_MPC85xx_DS=y
+CONFIG_PHYS_64BIT=y
+CONFIG_SPE=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_DEFAULT_UIMAGE=y
diff --git a/target/ppc/systems/qemu-ppc-mpc8544ds b/target/ppc/systems/qemu-ppc-mpc8544ds
new file mode 100644
index 000000000..a71eb4639
--- /dev/null
+++ b/target/ppc/systems/qemu-ppc-mpc8544ds
@@ -0,0 +1,8 @@
+config ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS
+ bool "Qemu Emulator (mpc8544ds)"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_CPU_PPC_8548
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ help
+ Support for Qemu Emulator PPC architecture (mpc8544ds).
+