-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
powerpc: Merge enough to start building in arch/powerpc.
This creates the directory structure under arch/powerpc and a bunch of Kconfig files. It does a first-cut merge of arch/powerpc/mm, arch/powerpc/lib and arch/powerpc/platforms/powermac. This is enough to build a 32-bit powermac kernel with ARCH=powerpc. For now we are getting some unmerged files from arch/ppc/kernel and arch/ppc/syslib, or arch/ppc64/kernel. This makes some minor changes to files in those directories and files outside arch/powerpc. The boot directory is still not merged. That's going to be interesting. Signed-off-by: Paul Mackerras <paulus@samba.org>
- Loading branch information
Paul Mackerras
committed
Sep 26, 2005
1 parent
e5baa39
commit 14cf11a
Showing
89 changed files
with
32,423 additions
and
25 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
menu "Kernel hacking" | ||
|
||
source "lib/Kconfig.debug" | ||
|
||
config KGDB | ||
bool "Include kgdb kernel debugger" | ||
depends on DEBUG_KERNEL && (BROKEN || PPC_GEN550 || 4xx) | ||
select DEBUG_INFO | ||
help | ||
Include in-kernel hooks for kgdb, the Linux kernel source level | ||
debugger. See <http://kgdb.sourceforge.net/> for more information. | ||
Unless you are intending to debug the kernel, say N here. | ||
|
||
choice | ||
prompt "Serial Port" | ||
depends on KGDB | ||
default KGDB_TTYS1 | ||
|
||
config KGDB_TTYS0 | ||
bool "ttyS0" | ||
|
||
config KGDB_TTYS1 | ||
bool "ttyS1" | ||
|
||
config KGDB_TTYS2 | ||
bool "ttyS2" | ||
|
||
config KGDB_TTYS3 | ||
bool "ttyS3" | ||
|
||
endchoice | ||
|
||
config KGDB_CONSOLE | ||
bool "Enable serial console thru kgdb port" | ||
depends on KGDB && 8xx || CPM2 | ||
help | ||
If you enable this, all serial console messages will be sent | ||
over the gdb stub. | ||
If unsure, say N. | ||
|
||
config XMON | ||
bool "Include xmon kernel debugger" | ||
depends on DEBUG_KERNEL | ||
help | ||
Include in-kernel hooks for the xmon kernel monitor/debugger. | ||
Unless you are intending to debug the kernel, say N here. | ||
|
||
config BDI_SWITCH | ||
bool "Include BDI-2000 user context switcher" | ||
depends on DEBUG_KERNEL | ||
help | ||
Include in-kernel support for the Abatron BDI2000 debugger. | ||
Unless you are intending to debug the kernel with one of these | ||
machines, say N here. | ||
|
||
config BOOTX_TEXT | ||
bool "Support for early boot text console (BootX or OpenFirmware only)" | ||
depends PPC_OF | ||
help | ||
Say Y here to see progress messages from the boot firmware in text | ||
mode. Requires either BootX or Open Firmware. | ||
|
||
config SERIAL_TEXT_DEBUG | ||
bool "Support for early boot texts over serial port" | ||
depends on 4xx || LOPEC || MV64X60 || PPLUS || PRPMC800 || \ | ||
PPC_GEN550 || PPC_MPC52xx | ||
|
||
config PPC_OCP | ||
bool | ||
depends on IBM_OCP || XILINX_OCP | ||
default y | ||
|
||
endmenu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,222 @@ | ||
# This file is included by the global makefile so that you can add your own | ||
# architecture-specific flags and dependencies. Remember to do have actions | ||
# for "archclean" and "archdep" for cleaning up and making dependencies for | ||
# this architecture. | ||
# | ||
# This file is subject to the terms and conditions of the GNU General Public | ||
# License. See the file "COPYING" in the main directory of this archive | ||
# for more details. | ||
# | ||
# Copyright (C) 1994 by Linus Torvalds | ||
# Changes for PPC by Gary Thomas | ||
# Rewritten by Cort Dougan and Paul Mackerras | ||
# | ||
|
||
# This must match PAGE_OFFSET in include/asm-powerpc/page.h. | ||
KERNELLOAD := $(CONFIG_KERNEL_START) | ||
|
||
HAS_BIARCH := $(call cc-option-yn, -m32) | ||
|
||
ifeq ($(CONFIG_PPC64),y) | ||
SZ := 64 | ||
|
||
# Set default 32 bits cross compilers for vdso and boot wrapper | ||
CROSS32_COMPILE ?= | ||
|
||
CROSS32CC := $(CROSS32_COMPILE)gcc | ||
CROSS32AS := $(CROSS32_COMPILE)as | ||
CROSS32LD := $(CROSS32_COMPILE)ld | ||
CROSS32OBJCOPY := $(CROSS32_COMPILE)objcopy | ||
|
||
ifeq ($(HAS_BIARCH),y) | ||
ifeq ($(CROSS32_COMPILE),) | ||
CROSS32CC := $(CC) -m32 | ||
CROSS32AS := $(AS) -a32 | ||
CROSS32LD := $(LD) -m elf32ppc | ||
CROSS32OBJCOPY := $(OBJCOPY) | ||
endif | ||
endif | ||
|
||
export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY | ||
|
||
new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi) | ||
|
||
ifeq ($(new_nm),y) | ||
NM := $(NM) --synthetic | ||
endif | ||
|
||
else | ||
SZ := 32 | ||
endif | ||
|
||
ifeq ($(HAS_BIARCH),y) | ||
override AS += -a$(SZ) | ||
override LD += -m elf$(SZ)ppc | ||
override CC += -m$(SZ) | ||
endif | ||
|
||
LDFLAGS_vmlinux := -Ttext $(KERNELLOAD) -Bstatic -e $(KERNELLOAD) | ||
|
||
# The -Iarch/$(ARCH)/include is temporary while we are merging | ||
CPPFLAGS += -Iarch/$(ARCH) -Iarch/$(ARCH)/include | ||
AFLAGS += -Iarch/$(ARCH) | ||
CFLAGS += -Iarch/$(ARCH) -msoft-float -pipe | ||
ifeq ($(CONFIG_PPC64),y) | ||
CFLAGS += -mminimal-toc -mtraceback=none -mcall-aixdesc | ||
else | ||
CFLAGS += -ffixed-r2 -mmultiple | ||
endif | ||
CPP = $(CC) -E $(CFLAGS) | ||
# Temporary hack until we have migrated to asm-powerpc | ||
LINUXINCLUDE += -Iarch/$(ARCH)/include | ||
|
||
CHECKFLAGS += -m$(SZ) -D__powerpc__ -D__powerpc$(SZ)__ | ||
|
||
ifeq ($(CONFIG_PPC64),y) | ||
GCC_VERSION := $(call cc-version) | ||
GCC_BROKEN_VEC := $(shell if [ $(GCC_VERSION) -lt 0400 ] ; then echo "y"; fi) | ||
|
||
ifeq ($(CONFIG_POWER4_ONLY),y) | ||
ifeq ($(CONFIG_ALTIVEC),y) | ||
ifeq ($(GCC_BROKEN_VEC),y) | ||
CFLAGS += $(call cc-option,-mcpu=970) | ||
else | ||
CFLAGS += $(call cc-option,-mcpu=power4) | ||
endif | ||
else | ||
CFLAGS += $(call cc-option,-mcpu=power4) | ||
endif | ||
else | ||
CFLAGS += $(call cc-option,-mtune=power4) | ||
endif | ||
endif | ||
|
||
# Enable unit-at-a-time mode when possible. It shrinks the | ||
# kernel considerably. | ||
CFLAGS += $(call cc-option,-funit-at-a-time) | ||
|
||
ifndef CONFIG_FSL_BOOKE | ||
CFLAGS += -mstring | ||
endif | ||
|
||
cpu-as-$(CONFIG_PPC64BRIDGE) += -Wa,-mppc64bridge | ||
cpu-as-$(CONFIG_4xx) += -Wa,-m405 | ||
cpu-as-$(CONFIG_6xx) += -Wa,-maltivec | ||
cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec | ||
cpu-as-$(CONFIG_E500) += -Wa,-me500 | ||
cpu-as-$(CONFIG_E200) += -Wa,-me200 | ||
|
||
AFLAGS += $(cpu-as-y) | ||
CFLAGS += $(cpu-as-y) | ||
|
||
# Default to the common case. | ||
KBUILD_DEFCONFIG := common_defconfig | ||
|
||
head-y := arch/powerpc/kernel/head.o | ||
head-$(CONFIG_PPC64) := arch/powerpc/kernel/head_64.o | ||
head-$(CONFIG_8xx) := arch/powerpc/kernel/head_8xx.o | ||
head-$(CONFIG_4xx) := arch/powerpc/kernel/head_4xx.o | ||
head-$(CONFIG_44x) := arch/powerpc/kernel/head_44x.o | ||
head-$(CONFIG_FSL_BOOKE) := arch/powerpc/kernel/head_fsl_booke.o | ||
|
||
ifeq ($(CONFIG_PPC32),y) | ||
head-$(CONFIG_6xx) += arch/powerpc/kernel/idle_6xx.o | ||
head-$(CONFIG_POWER4) += arch/powerpc/kernel/idle_power4.o | ||
head-$(CONFIG_PPC_FPU) += arch/powerpc/kernel/fpu.o | ||
endif | ||
|
||
core-y += arch/powerpc/kernel/ \ | ||
arch/powerpc/mm/ \ | ||
arch/powerpc/lib/ \ | ||
arch/powerpc/sysdev/ | ||
core-$(CONFIG_PPC32) += arch/ppc/kernel/ \ | ||
arch/ppc/syslib/ | ||
core-$(CONFIG_PPC64) += arch/ppc64/kernel/ | ||
core-$(CONFIG_PPC_PMAC) += arch/powerpc/platforms/powermac/ | ||
core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/ | ||
core-$(CONFIG_83xx) += arch/ppc/platforms/83xx/ | ||
core-$(CONFIG_85xx) += arch/ppc/platforms/85xx/ | ||
core-$(CONFIG_MATH_EMULATION) += arch/ppc/math-emu/ | ||
core-$(CONFIG_XMON) += arch/powerpc/xmon/ | ||
core-$(CONFIG_APUS) += arch/ppc/amiga/ | ||
drivers-$(CONFIG_8xx) += arch/ppc/8xx_io/ | ||
drivers-$(CONFIG_4xx) += arch/ppc/4xx_io/ | ||
drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/ | ||
|
||
drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ | ||
|
||
BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm | ||
|
||
.PHONY: $(BOOT_TARGETS) | ||
|
||
all: uImage zImage | ||
|
||
CPPFLAGS_vmlinux.lds := -Upowerpc | ||
|
||
# All the instructions talk about "make bzImage". | ||
bzImage: zImage | ||
|
||
boot := arch/$(ARCH)/boot | ||
|
||
$(BOOT_TARGETS): vmlinux | ||
$(Q)$(MAKE) $(build)=$(boot) $@ | ||
|
||
uImage: vmlinux | ||
$(Q)$(MAKE) $(build)=$(boot)/images $(boot)/images/$@ | ||
|
||
define archhelp | ||
@echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/images/zImage.*)' | ||
@echo ' uImage - Create a bootable image for U-Boot / PPCBoot' | ||
@echo ' install - Install kernel using' | ||
@echo ' (your) ~/bin/installkernel or' | ||
@echo ' (distribution) /sbin/installkernel or' | ||
@echo ' install to $$(INSTALL_PATH) and run lilo' | ||
@echo ' *_defconfig - Select default config from arch/$(ARCH)/ppc/configs' | ||
endef | ||
|
||
archclean: | ||
$(Q)$(MAKE) $(clean)=arch/ppc/boot | ||
# Temporary hack until we have migrated to asm-powerpc | ||
$(Q)rm -rf arch/$(ARCH)/include | ||
|
||
archprepare: checkbin | ||
|
||
# Temporary hack until we have migrated to asm-powerpc | ||
ifeq ($(CONFIG_PPC64),y) | ||
include/asm: arch/$(ARCH)/include/asm | ||
arch/$(ARCH)/include/asm: | ||
$(Q)if [ ! -d arch/$(ARCH)/include ]; then mkdir -p arch/$(ARCH)/include; fi | ||
$(Q)ln -fsn $(srctree)/include/asm-ppc64 arch/$(ARCH)/include/asm | ||
else | ||
include/asm: arch/$(ARCH)/include/asm | ||
arch/$(ARCH)/include/asm: | ||
$(Q)if [ ! -d arch/$(ARCH)/include ]; then mkdir -p arch/$(ARCH)/include; fi | ||
$(Q)ln -fsn $(srctree)/include/asm-ppc arch/$(ARCH)/include/asm | ||
endif | ||
|
||
# Use the file '.tmp_gas_check' for binutils tests, as gas won't output | ||
# to stdout and these checks are run even on install targets. | ||
TOUT := .tmp_gas_check | ||
# Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec | ||
# instructions. | ||
# gcc-3.4 and binutils-2.14 are a fatal combination. | ||
GCC_VERSION := $(call cc-version) | ||
|
||
checkbin: | ||
@if test "$(GCC_VERSION)" = "0304" ; then \ | ||
if ! /bin/echo mftb 5 | $(AS) -v -mppc -many -o $(TOUT) >/dev/null 2>&1 ; then \ | ||
echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build '; \ | ||
echo 'correctly with gcc-3.4 and your version of binutils.'; \ | ||
echo '*** Please upgrade your binutils or downgrade your gcc'; \ | ||
false; \ | ||
fi ; \ | ||
fi | ||
@if ! /bin/echo dssall | $(AS) -many -o $(TOUT) >/dev/null 2>&1 ; then \ | ||
echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build ' ; \ | ||
echo 'correctly with old versions of binutils.' ; \ | ||
echo '*** Please upgrade your binutils to 2.12.1 or newer' ; \ | ||
false ; \ | ||
fi | ||
|
||
CLEAN_FILES += $(TOUT) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# | ||
# Makefile for the linux kernel. | ||
# | ||
|
||
extra-$(CONFIG_PPC_STD_MMU) := head.o | ||
extra_$(CONFIG_PPC64) := head_64.o | ||
extra-$(CONFIG_40x) := head_4xx.o | ||
extra-$(CONFIG_44x) := head_44x.o | ||
extra-$(CONFIG_FSL_BOOKE) := head_fsl_booke.o | ||
extra-$(CONFIG_8xx) := head_8xx.o | ||
extra-$(CONFIG_6xx) += idle_6xx.o | ||
extra-$(CONFIG_POWER4) += idle_power4.o | ||
extra-$(CONFIG_PPC_FPU) += fpu.o | ||
extra-y += vmlinux.lds | ||
|
||
obj-y := semaphore.o traps.o process.o | ||
|
||
obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o |
Oops, something went wrong.