arch/power8: Rename to ppc64

POWER8 is a specific implementation of ppc64, which is by now outdated
(POWER9 has been on the market for a while). Rename arch/power8/ to
potentially cover a wider range of hardware.

TEST=Toolchains built before/after this commit can build coreboot for
     emulation/qemu-power8 from before/after this commit.

Change-Id: I2d6f08b12a9ffc8a652ddcd6f24ad85ecb33ca52
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-on: https://review.coreboot.org/c/29943
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Timothy Pearson <tpearson@raptorengineering.com>
This commit is contained in:
Jonathan Neuschäfer 2018-11-30 00:06:50 +01:00 committed by Timothy Pearson
parent 2af17af829
commit c22ad581c8
33 changed files with 66 additions and 64 deletions

View File

@ -23,6 +23,8 @@ General changes
* Add bootblock compression capability: on systems that copy the bootblock
from very slow flash to ERAM, allow adding a stub that decompresses the
bootblock into ERAM to minimize the amount of flash reads
* Rename the POWER8 architecture port to PPC64 to reflect that it isn't limited
to POWER8
Toolchain
---------

View File

@ -144,11 +144,11 @@ F: src/mainboard/emulation/*-riscv/
F: src/mainboard/sifive/
F: util/riscv/
POWER8 ARCHITECTURE
PPC64 ARCHITECTURE
M: Ronald Minnich <rminnich@gmail.com>
M: Timothy Pearson <tpearson@raptorengineeringinc.com>
S: Maintained
F: src/arch/power8/
F: src/arch/ppc64/
F: src/cpu/qemu-power8/
F: src/mainboard/emulation/qemu-power8/

View File

@ -1,25 +0,0 @@
config ARCH_POWER8
bool
default n
config ARCH_BOOTBLOCK_POWER8
bool
default n
select ARCH_POWER8
select BOOTBLOCK_CUSTOM
select C_ENVIRONMENT_BOOTBLOCK
select ARCH_VERSTAGE_POWER8
select ARCH_ROMSTAGE_POWER8
select ARCH_RAMSTAGE_POWER8
config ARCH_VERSTAGE_POWER8
bool
default n
config ARCH_ROMSTAGE_POWER8
bool
default n
config ARCH_RAMSTAGE_POWER8
bool
default n

25
src/arch/ppc64/Kconfig Normal file
View File

@ -0,0 +1,25 @@
config ARCH_PPC64
bool
default n
config ARCH_BOOTBLOCK_PPC64
bool
default n
select ARCH_PPC64
select BOOTBLOCK_CUSTOM
select C_ENVIRONMENT_BOOTBLOCK
select ARCH_VERSTAGE_PPC64
select ARCH_ROMSTAGE_PPC64
select ARCH_RAMSTAGE_PPC64
config ARCH_VERSTAGE_PPC64
bool
default n
config ARCH_ROMSTAGE_PPC64
bool
default n
config ARCH_RAMSTAGE_PPC64
bool
default n

View File

@ -16,14 +16,14 @@
##
################################################################################
power8_flags = -I$(src)/arch/power8/ -mbig-endian -mcpu=power8 -mtune=power8
ppc64_flags = -I$(src)/arch/ppc64/ -mbig-endian -mcpu=power8 -mtune=power8
power8_asm_flags =
ppc64_asm_flags =
################################################################################
## bootblock
################################################################################
ifeq ($(CONFIG_ARCH_BOOTBLOCK_POWER8),y)
ifeq ($(CONFIG_ARCH_BOOTBLOCK_PPC64),y)
bootblock-y = bootblock.S stages.c
bootblock-y += boot.c
@ -35,7 +35,7 @@ bootblock-y += \
$(top)/src/lib/memmove.c \
$(top)/src/lib/memset.c
bootblock-generic-ccopts += $(power8_flags)
bootblock-generic-ccopts += $(ppc64_flags)
$(objcbfs)/bootblock.debug: $$(bootblock-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
@ -48,7 +48,7 @@ endif
################################################################################
## romstage
################################################################################
ifeq ($(CONFIG_ARCH_ROMSTAGE_POWER8),y)
ifeq ($(CONFIG_ARCH_ROMSTAGE_PPC64),y)
romstage-y += boot.c
romstage-y += stages.c
@ -68,15 +68,15 @@ $(objcbfs)/romstage.debug: $$(romstage-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group $(COMPILER_RT_romstage)
romstage-c-ccopts += $(power8_flags)
romstage-S-ccopts += $(power8_asm_flags)
romstage-c-ccopts += $(ppc64_flags)
romstage-S-ccopts += $(ppc64_asm_flags)
endif
################################################################################
## ramstage
################################################################################
ifeq ($(CONFIG_ARCH_RAMSTAGE_POWER8),y)
ifeq ($(CONFIG_ARCH_RAMSTAGE_PPC64),y)
ramstage-y += rom_media.c
ramstage-y += stages.c
@ -102,7 +102,7 @@ $(objcbfs)/ramstage.debug: $$(ramstage-objs)
@printf " CC $(subst $(obj)/,,$(@))\n"
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group $(COMPILER_RT_ramstage)
ramstage-c-ccopts += $(power8_flags)
ramstage-S-ccopts += $(power8_asm_flags)
ramstage-c-ccopts += $(ppc64_flags)
ramstage-S-ccopts += $(ppc64_asm_flags)
endif

View File

@ -36,10 +36,10 @@ struct cpu_info {
#endif
};
struct cpuinfo_power8 {
uint8_t power8; /* CPU family */
uint8_t power8_vendor; /* CPU vendor */
uint8_t power8_model;
struct cpuinfo_ppc64 {
uint8_t ppc64; /* CPU family */
uint8_t ppc64_vendor; /* CPU vendor */
uint8_t ppc64_model;
};
#endif

View File

@ -11,8 +11,8 @@
* GNU General Public License for more details.
*/
#ifndef POWER8_STDINT_H
#define POWER8_STDINT_H
#ifndef PPC64_STDINT_H
#define PPC64_STDINT_H
/* Exact integral types */
typedef unsigned char uint8_t;
@ -73,4 +73,4 @@ typedef uint8_t bool;
typedef s64 intptr_t;
typedef u64 uintptr_t;
#endif /* POWER8_STDINT_H */
#endif /* PPC64_STDINT_H */

View File

@ -15,7 +15,7 @@
config CPU_QEMU_POWER8
bool
select ARCH_BOOTBLOCK_POWER8
select ARCH_VERSTAGE_POWER8
select ARCH_ROMSTAGE_POWER8
select ARCH_RAMSTAGE_POWER8
select ARCH_BOOTBLOCK_PPC64
select ARCH_VERSTAGE_PPC64
select ARCH_ROMSTAGE_PPC64
select ARCH_RAMSTAGE_PPC64

View File

@ -85,7 +85,7 @@ config MAINBOARD_USE_LIBGFXINIT
# TODO: Explain differences (if any) for onboard cards.
config VGA_ROM_RUN
bool "Run VGA Option ROMs"
depends on PCI && (ARCH_X86 || ARCH_POWER8) && !MAINBOARD_FORCE_NATIVE_VGA_INIT
depends on PCI && (ARCH_X86 || ARCH_PPC64) && !MAINBOARD_FORCE_NATIVE_VGA_INIT
select HAVE_VGA_TEXT_FRAMEBUFFER
help
Execute VGA Option ROMs in coreboot if found. This can be used

View File

@ -20,9 +20,9 @@ if BOARD_EMULATION_QEMU_POWER8
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BOARD_ROMSIZE_KB_4096
select ARCH_BOOTBLOCK_POWER8
select ARCH_BOOTBLOCK_PPC64
select HAVE_UART_SPECIAL
select ARCH_POWER8
select ARCH_PPC64
select BOOT_DEVICE_NOT_SPI_FLASH
select MISSING_BOARD_RESET

View File

@ -57,7 +57,7 @@ ARCHDIR-arm := arm
ARCHDIR-arm64 := arm64
ARCHDIR-riscv := riscv
ARCHDIR-mips := mips
ARCHDIR-power8 := power8
ARCHDIR-ppc64 := ppc64
CFLAGS_arm +=
CFLAGS_arm64 += -mgeneral-regs-only
@ -65,7 +65,7 @@ CFLAGS_mips += -mips32r2 -G 0 -mno-abicalls -fno-pic
CFLAGS_riscv +=
CFLAGS_x86_32 +=
CFLAGS_x86_64 += -mcmodel=large -mno-red-zone
CFLAGS_power8 +=
CFLAGS_ppc64 +=
# Some boards only provide 2K stacks, so storing lots of data there leads to
# problems. Since C rules don't allow us to statically determine the maximum
@ -85,7 +85,7 @@ CFLAGS_arm += -Wstack-usage=1536
CFLAGS_arm64 += -Wstack-usage=1536
CFLAGS_mips += -Wstack-usage=1536
CFLAGS_riscv += -Wstack-usage=1536
CFLAGS_power8 += -Wstack-usage=1536
CFLAGS_ppc64 += -Wstack-usage=1536
endif
toolchain_to_dir = \

View File

@ -9,12 +9,12 @@ DEST ?= $(CURDIR)/xgcc
all all_with_gdb:
$(MAKE) build-i386 build-x64 build-arm build-mips \
build-riscv build-aarch64 build-power8 build-nds32le \
build-riscv build-aarch64 build-ppc64 build-nds32le \
build_clang build_iasl build_make
all_without_gdb:
$(MAKE) SKIP_GDB=1 build-i386 build-x64 build-arm build-mips \
build-riscv build-aarch64 build-power8 build-nds32le \
build-riscv build-aarch64 build-ppc64 build-nds32le \
build_clang build_iasl build_make
build_tools: build_gcc build_gdb
@ -63,7 +63,7 @@ build-riscv:
# GDB is currently not supported on RISC-V
@$(MAKE) build_gcc BUILD_PLATFORM=riscv-elf
build-power8:
build-ppc64:
@$(MAKE) build_tools BUILD_PLATFORM=powerpc64-linux-gnu
build-nds32le:
@ -85,6 +85,6 @@ distclean: clean
.PHONY: build_gcc build_iasl build_gdb build_clang all all_with_gdb \
all_without_gdb build_tools build-i386 build-x64 build-arm \
build-aarch64 build-mips build-riscv build-power8 build-nds32le \
build-aarch64 build-mips build-riscv build-ppc64 build-nds32le \
clean distclean clean_tempfiles
.NOTPARALLEL:

View File

@ -13,7 +13,7 @@
## GNU General Public License for more details.
##
TOOLCHAIN_ARCHES := i386 x64 arm aarch64 mips riscv power8 nds32le
TOOLCHAIN_ARCHES := i386 x64 arm aarch64 mips riscv ppc64 nds32le
help_toolchain help::
@echo '*** Toolchain targets ***'

View File

@ -6,7 +6,7 @@ UNDERSCORE='_'
#lint-stable-000-license-headers
TESTFILE000a=src/arch/x86/thread.c
TESTFILE000b=src/arch/power8/misc.c
TESTFILE000b=src/arch/ppc64/misc.c
sed -i.bak 's/^[[:space:]]\*[[:space:]].*//' ${TESTFILE000a}
sed -i.bak 's/^[[:space:]]\*[[:space:]]but WITHOUT ANY WARRANTY;//' ${TESTFILE000b}

View File

@ -303,7 +303,7 @@ EOF
}
# Architecture definitions
SUPPORTED_ARCHITECTURES="arm arm64 mipsel riscv x64 x86 power8"
SUPPORTED_ARCHITECTURES="arm arm64 mipsel riscv x64 x86 ppc64"
# TARCH: local name for the architecture
# (used as CC_${TARCH} in the build system)
@ -366,12 +366,12 @@ arch_config_mipsel() {
TENDIAN="EL"
}
arch_config_power8() {
TARCH="power8"
arch_config_ppc64() {
TARCH="ppc64"
TBFDARCHS="powerpc"
TCLIST="powerpc64"
TWIDTH="64"
TSUPP="power8"
TSUPP="ppc64"
TABI="linux-gnu" # there is no generic ABI on ppc64
CC_RT_EXTRA_GCC="-mcpu=power8 -mbig-endian"
}