projects/linux·commit b9fa38f7

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

b9fa38f7 · Linus Torvalds <[email protected]> · 2008-04-25 12:52:16 -07:00

* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (49 commits)
  [POWERPC] Add zImage.iseries to arch/powerpc/boot/.gitignore
  [POWERPC] bootwrapper: fix build error on virtex405-head.S
  [POWERPC] 4xx: Fix 460GT support to not enable FPU
  [POWERPC] 4xx: Add NOR FLASH entries to Canyonlands and Glacier dts
  [POWERPC] Xilinx: of_serial support for Xilinx uart 16550.
  [POWERPC] Xilinx: boot support for Xilinx uart 16550.
  [POWERPC] celleb: Add support for PCI Express
  [POWERPC] celleb: Move miscellaneous files for Beat
  [POWERPC] celleb: Move a file for SPU on Beat
  [POWERPC] celleb: Move files for Beat mmu and iommu
  [POWERPC] celleb: Move files for Beat hvcall interfaces
  [POWERPC] celleb: Move the SCC related code for celleb
  [POWERPC] celleb: Move the files for celleb base support
  [POWERPC] celleb: Consolidate io-workarounds code
  [POWERPC] cell: Generalize io-workarounds code
  [POWERPC] Add CONFIG_PPC_PSERIES_DEBUG to enable debugging for platforms/pseries
  [POWERPC] Convert from DBG() to pr_debug() in platforms/pseries/
  [POWERPC] Register udbg console early on pseries LPAR
  [POWERPC] Mark udbg console as CON_ANYTIME, ie. callable early in boot
  [POWERPC] Set udbg_console index to 0
  ...
Commit
b9fa38f75ea7e1f64bc29653ca9758303ce698e4
Parents
6e18933f · f360bf00

Merge commit. Changes below are compared with the first parent: 6e18933f.

Changes

123 files changed · +1923 −4572

FileStatusAddDelContent
Documentation/powerpc/booting-without-of.txtmodified+11−0View file
MAINTAINERSmodified+25−0View file
arch/powerpc/Kconfigmodified+66−17View file
arch/powerpc/boot/.gitignoremodified+1−0View file
arch/powerpc/boot/Makefilemodified+1−1View file
arch/powerpc/boot/dts/canyonlands.dtsmodified+37−0View file
arch/powerpc/boot/dts/glacier.dtsmodified+37−0View file
arch/powerpc/boot/ns16550.cmodified+5−0View file
arch/powerpc/kernel/Makefilemodified+9−0View file
arch/powerpc/kernel/asm-offsets.cmodified+2−9View file
arch/powerpc/kernel/cpu_setup_44x.Smodified+0−1View file
arch/powerpc/kernel/cpu_setup_6xx.Smodified+7−1View file
arch/powerpc/kernel/cputable.cmodified+1−3View file
arch/powerpc/kernel/head_fsl_booke.Smodified+11−0View file
arch/powerpc/kernel/misc_32.Smodified+3−3View file
arch/powerpc/kernel/misc_64.Smodified+4−16View file
arch/powerpc/kernel/of_platform.cmodified+2−0View file
arch/powerpc/kernel/paca.cmodified+25−62View file
arch/powerpc/kernel/ppc32.hmodified+0−2View file
arch/powerpc/kernel/process.cmodified+31−0View file
arch/powerpc/kernel/prom.cmodified+4−0View file
arch/powerpc/kernel/prom_init_check.shadded+58−0View file
arch/powerpc/kernel/ptrace32.cmodified+0−27View file
arch/powerpc/kernel/setup_64.cmodified+4−1View file
arch/powerpc/kernel/stacktrace.cmodified+0−1View file
arch/powerpc/kernel/udbg.cmodified+2−2View file
arch/powerpc/mm/fsl_booke_mmu.cmodified+1−1View file
arch/powerpc/mm/hash_low_32.Smodified+2−2View file
arch/powerpc/mm/init_32.cmodified+4−9View file
arch/powerpc/mm/init_64.cmodified+2−1View file
arch/powerpc/mm/mem.cmodified+29−8View file
arch/powerpc/mm/numa.cmodified+1−0View file
arch/powerpc/mm/pgtable_32.cmodified+23−0View file
arch/powerpc/platforms/Kconfigmodified+0−1View file
arch/powerpc/platforms/Kconfig.cputypemodified+2−2View file
arch/powerpc/platforms/Makefilemodified+0−1View file
arch/powerpc/platforms/cell/Kconfigmodified+13−0View file
arch/powerpc/platforms/cell/Makefilemodified+19−1View file
arch/powerpc/platforms/cell/axon_msi.cmodified+3−3View file
arch/powerpc/platforms/celleb/beat.c → arch/powerpc/platforms/cell/beat.crenamed+1−1View file
arch/powerpc/platforms/celleb/beat.h → arch/powerpc/platforms/cell/beat.hrenamed+0−0View file
arch/powerpc/platforms/celleb/htab.c → arch/powerpc/platforms/cell/beat_htab.crenamed+0−0View file
arch/powerpc/platforms/celleb/hvCall.S → arch/powerpc/platforms/cell/beat_hvCall.Srenamed+0−0View file
arch/powerpc/platforms/celleb/interrupt.c → arch/powerpc/platforms/cell/beat_interrupt.crenamed+1−1View file
arch/powerpc/platforms/celleb/interrupt.h → arch/powerpc/platforms/cell/beat_interrupt.hrenamed+0−0View file
arch/powerpc/platforms/celleb/iommu.c → arch/powerpc/platforms/cell/beat_iommu.crenamed+0−0View file
arch/powerpc/platforms/celleb/smp.c → arch/powerpc/platforms/cell/beat_smp.crenamed+1−1View file
arch/powerpc/platforms/celleb/spu_priv1.c → arch/powerpc/platforms/cell/beat_spu_priv1.crenamed+0−0View file
arch/powerpc/platforms/celleb/beat_syscall.h → arch/powerpc/platforms/cell/beat_syscall.hrenamed+0−0View file
arch/powerpc/platforms/celleb/udbg_beat.c → arch/powerpc/platforms/cell/beat_udbg.crenamed+0−0View file
arch/powerpc/platforms/celleb/beat_wrapper.h → arch/powerpc/platforms/cell/beat_wrapper.hrenamed+0−0View file
arch/powerpc/platforms/celleb/pci.c → arch/powerpc/platforms/cell/celleb_pci.crenamed+31−19View file
arch/powerpc/platforms/celleb/pci.h → arch/powerpc/platforms/cell/celleb_pci.hrenamed+11−8View file
arch/powerpc/platforms/celleb/scc.h → arch/powerpc/platforms/cell/celleb_scc.hrenamed+87−0View file
arch/powerpc/platforms/celleb/scc_epci.c → arch/powerpc/platforms/cell/celleb_scc_epci.crenamed+15−62View file
arch/powerpc/platforms/cell/celleb_scc_pciex.cadded+547−0View file
arch/powerpc/platforms/celleb/scc_sio.c → arch/powerpc/platforms/cell/celleb_scc_sio.crenamed+0−0View file
arch/powerpc/platforms/celleb/scc_uhc.c → arch/powerpc/platforms/cell/celleb_scc_uhc.crenamed+1−1View file
arch/powerpc/platforms/celleb/setup.c → arch/powerpc/platforms/cell/celleb_setup.crenamed+5−7View file
arch/powerpc/platforms/cell/io-workarounds.cmodified+100−258View file
arch/powerpc/platforms/cell/io-workarounds.hadded+49−0View file
arch/powerpc/platforms/cell/setup.cmodified+41−2View file
arch/powerpc/platforms/cell/spider-pci.cadded+184−0View file
arch/powerpc/platforms/celleb/Kconfigdeleted+0−12View before deletion
arch/powerpc/platforms/celleb/Makefiledeleted+0−9View before deletion
arch/powerpc/platforms/celleb/io-workarounds.cdeleted+0−280View before deletion
arch/powerpc/platforms/iseries/exception.Smodified+26−1View file
arch/powerpc/platforms/ps3/os-area.cmodified+1−0View file
arch/powerpc/platforms/pseries/Kconfigmodified+5−0View file
arch/powerpc/platforms/pseries/Makefilemodified+4−0View file
arch/powerpc/platforms/pseries/eeh.cmodified+0−1View file
arch/powerpc/platforms/pseries/eeh_cache.cmodified+0−1View file
arch/powerpc/platforms/pseries/firmware.cmodified+2−8View file
arch/powerpc/platforms/pseries/iommu.cmodified+19−20View file
arch/powerpc/platforms/pseries/lpar.cmodified+17−19View file
arch/powerpc/platforms/pseries/ras.cmodified+1−3View file
arch/powerpc/platforms/pseries/rtasd.cmodified+5−9View file
arch/powerpc/platforms/pseries/scanlog.cmodified+8−15View file
arch/powerpc/platforms/pseries/setup.cmodified+5−12View file
arch/powerpc/platforms/pseries/smp.cmodified+2−9View file
arch/powerpc/platforms/pseries/xics.cmodified+0−1View file
arch/powerpc/sysdev/mv64x60_dev.cmodified+30−22View file
arch/powerpc/sysdev/mv64x60_udbg.cmodified+1−1View file
arch/ppc/8260_io/fcc_enet.cmodified+1−18View file
arch/ppc/8xx_io/enet.cmodified+0−23View file
arch/ppc/Kconfigmodified+1−81View file
arch/ppc/configs/ads8272_defconfigdeleted+0−930View before deletion
arch/ppc/configs/mpc86x_ads_defconfigdeleted+0−633View before deletion
arch/ppc/configs/mpc885ads_defconfigdeleted+0−622View before deletion
arch/ppc/kernel/ppc_ksyms.cmodified+1−0View file
arch/ppc/lib/string.Smodified+14−0View file
arch/ppc/platforms/Makefilemodified+0−4View file
arch/ppc/platforms/fads.hmodified+0−25View file
arch/ppc/platforms/mpc8272ads_setup.cdeleted+0−367View before deletion
arch/ppc/platforms/mpc885ads.hdeleted+0−93View before deletion
arch/ppc/platforms/mpc885ads_setup.cdeleted+0−476View before deletion
arch/ppc/platforms/pq2ads.cdeleted+0−53View before deletion
arch/ppc/platforms/pq2ads.hdeleted+0−94View before deletion
arch/ppc/platforms/pq2ads_pd.hdeleted+0−32View before deletion
arch/ppc/syslib/m8260_setup.cmodified+0−6View file
arch/ppc/syslib/m82xx_pci.cmodified+0−38View file
arch/ppc/syslib/m8xx_setup.cmodified+0−10View file
drivers/char/xilinx_hwicap/xilinx_hwicap.cmodified+1−1View file
drivers/macintosh/windfarm_pm112.cmodified+2−1View file
drivers/macintosh/windfarm_pm81.cmodified+2−2View file
drivers/macintosh/windfarm_pm91.cmodified+2−1View file
drivers/net/Kconfigmodified+1−0View file
drivers/of/of_i2c.cmodified+3−0View file
drivers/serial/of_serial.cmodified+13−1View file
include/asm-powerpc/fixmap.hadded+106−0View file
include/asm-powerpc/highmem.hmodified+22−19View file
include/asm-powerpc/io-defs.hmodified+51−50View file
include/asm-powerpc/io.hmodified+4−4View file
include/asm-powerpc/kdump.hmodified+0−5View file
include/asm-powerpc/paca.hmodified+1−0View file
include/asm-powerpc/page.hmodified+37−8View file
include/asm-powerpc/page_32.hmodified+6−0View file
include/asm-powerpc/thread_info.hmodified+2−6View file
include/asm-ppc/mmu.hmodified+0−2View file
include/asm-ppc/mpc8260.hmodified+0−4View file
include/asm-ppc/mpc8xx.hmodified+0−4View file
include/linux/sched.hmodified+2−0View file
init/main.cmodified+6−1View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/powerpc/booting-without-of.txt

View file
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index 4cc7800..cf89e8c 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -2601,6 +2601,17 @@ platforms are moved over to use the flattened-device-tree model.
differ between different families. May be
'virtex2p', 'virtex4', or 'virtex5'.
+ vi) Xilinx Uart 16550
+
+ Xilinx UART 16550 devices are very similar to the NS16550 but with
+ different register spacing and an offset from the base address.
+
+ Requred properties:
+ - clock-frequency : Frequency of the clock input
+ - reg-offset : A value of 3 is required
+ - reg-shift : A value of 2 is required
+
+
p) Freescale Synchronous Serial Interface
The SSI is a serial device that communicates with audio codecs. It can

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 2edec00..a942f38 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1106,6 +1106,12 @@ M: [email protected]
S: Maintained
+CIRRUS LOGIC CS4270 SOUND DRIVER
+P: Timur Tabi
+S: Supported
+
CIRRUS LOGIC CS4280/CS461x SOUNDDRIVER
P: Cirrus Logic Corporation (kernel 2.2 driver)
M: Cirrus Logic Corporation, Thomas Woller <[email protected]>
@@ -1628,6 +1634,12 @@ L: [email protected]
S: Maintained
+FREESCALE QUICC ENGINE LIBRARY
+P: Timur Tabi
+S: Supported
+
FREESCALE HIGHSPEED USB DEVICE DRIVER
P: Li Yang
@@ -1642,6 +1654,19 @@ L: [email protected]
S: Maintained
+FREESCALE QUICC ENGINE UCC UART DRIVER
+P: Timur Tabi
+S: Supported
+
+FREESCALE SOC SOUND DRIVERS
+P: Timur Tabi
+S: Supported
+
FILE LOCKING (flock() and fcntl()/lockf())
P: Matthew Wilcox

arch/powerpc/Kconfig

View file
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 4bb2e93..20f45a8 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -626,20 +626,6 @@ config ADVANCED_OPTIONS
comment "Default settings for advanced configuration options are used"
depends on !ADVANCED_OPTIONS
-config HIGHMEM_START_BOOL
- bool "Set high memory pool address"
- depends on ADVANCED_OPTIONS && HIGHMEM
- help
- This option allows you to set the base address of the kernel virtual
- area used to map high memory pages. This can be useful in
- optimizing the layout of kernel virtual memory.
-
- Say N here unless you know what you are doing.
-
-config HIGHMEM_START
- hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
- default "0xfe000000"
-
config LOWMEM_SIZE_BOOL
bool "Set maximum low memory"
depends on ADVANCED_OPTIONS
@@ -656,21 +642,76 @@ config LOWMEM_SIZE
hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
default "0x30000000"
+config RELOCATABLE
+ bool "Build a relocatable kernel (EXPERIMENTAL)"
+ depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
+ help
+ This builds a kernel image that is capable of running at the
+ location the kernel is loaded at (some alignment restrictions may
+ exist).
+
+ One use is for the kexec on panic case where the recovery kernel
+ must live at a different physical address than the primary
+ kernel.
+
+ Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
+ it has been loaded at and the compile time physical addresses
+ CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START
+ setting can still be useful to bootwrappers that need to know the
+ load location of the kernel (eg. u-boot/mkimage).
+
+config PAGE_OFFSET_BOOL
+ bool "Set custom page offset address"
+ depends on ADVANCED_OPTIONS
+ help
+ This option allows you to set the kernel virtual address at which
+ the kernel will map low memory. This can be useful in optimizing
+ the virtual memory layout of the system.
+
+ Say N here unless you know what you are doing.
+
+config PAGE_OFFSET
+ hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
+ default "0xc0000000"
+
config KERNEL_START_BOOL
bool "Set custom kernel base address"
depends on ADVANCED_OPTIONS
help
This option allows you to set the kernel virtual address at which
- the kernel will map low memory (the kernel image will be linked at
- this address). This can be useful in optimizing the virtual memory
- layout of the system.
+ the kernel will be loaded. Normally this should match PAGE_OFFSET
+ however there are times (like kdump) that one might not want them
+ to be the same.
Say N here unless you know what you are doing.
config KERNEL_START
hex "Virtual address of kernel base" if KERNEL_START_BOOL
+ default PAGE_OFFSET if PAGE_OFFSET_BOOL
+ default "0xc2000000" if CRASH_DUMP
default "0xc0000000"
+config PHYSICAL_START_BOOL
+ bool "Set physical address where the kernel is loaded"
+ depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
+ help
+ This gives the physical address where the kernel is loaded.
+
+ Say N here unless you know what you are doing.
+
+config PHYSICAL_START
+ hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
+ default "0x02000000" if PPC_STD_MMU && CRASH_DUMP
+ default "0x00000000"
+
+config PHYSICAL_ALIGN
+ hex
+ default "0x10000000" if FSL_BOOKE
+ help
+ This value puts the alignment restrictions on physical address
+ where kernel is loaded and run from. Kernel is compiled for an
+ address which meets above alignment restriction.
+
config TASK_SIZE_BOOL
bool "Set custom user task size"
depends on ADVANCED_OPTIONS
@@ -717,9 +758,17 @@ config PIN_TLB
endmenu
if PPC64
+config PAGE_OFFSET
+ hex
+ default "0xc000000000000000"
config KERNEL_START
hex
+ default "0xc000000002000000" if CRASH_DUMP
default "0xc000000000000000"
+config PHYSICAL_START
+ hex
+ default "0x02000000" if CRASH_DUMP
+ default "0x00000000"
endif
source "net/Kconfig"

arch/powerpc/boot/.gitignore

View file
diff --git a/arch/powerpc/boot/.gitignore b/arch/powerpc/boot/.gitignore
index 5ef2bdf..2347294 100644
--- a/arch/powerpc/boot/.gitignore
+++ b/arch/powerpc/boot/.gitignore
@@ -27,6 +27,7 @@ zImage.chrp
zImage.coff
zImage.coff.lds
zImage.ep*
+zImage.iseries
zImage.*lds
zImage.miboot
zImage.pmac

arch/powerpc/boot/Makefile

View file
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 5ba50c6..7822d25 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -40,7 +40,7 @@ $(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
-$(obj)/virtex405-head.o: BOOTCFLAGS += -mcpu=405
+$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405
zlib := inffast.c inflate.c inftrees.c

arch/powerpc/boot/dts/canyonlands.dts

View file
diff --git a/arch/powerpc/boot/dts/canyonlands.dts b/arch/powerpc/boot/dts/canyonlands.dts
index 6f3d38a..3963412 100644
--- a/arch/powerpc/boot/dts/canyonlands.dts
+++ b/arch/powerpc/boot/dts/canyonlands.dts
@@ -142,8 +142,45 @@
#address-cells = <2>;
#size-cells = <1>;
clock-frequency = <0>; /* Filled in by U-Boot */
+ /* ranges property is supplied by U-Boot */
interrupts = <6 4>;
interrupt-parent = <&UIC1>;
+
+ nor_flash@0,0 {
+ compatible = "amd,s29gl512n", "cfi-flash";
+ bank-width = <2>;
+ reg = <0 000000 4000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ partition@0 {
+ label = "kernel";
+ reg = <0 1e0000>;
+ };
+ partition@1e0000 {
+ label = "dtb";
+ reg = <1e0000 20000>;
+ };
+ partition@200000 {
+ label = "ramdisk";
+ reg = <200000 1400000>;
+ };
+ partition@1600000 {
+ label = "jffs2";
+ reg = <1600000 400000>;
+ };
+ partition@1a00000 {
+ label = "user";
+ reg = <1a00000 2560000>;
+ };
+ partition@3f60000 {
+ label = "env";
+ reg = <3f60000 40000>;
+ };
+ partition@3fa0000 {
+ label = "u-boot";
+ reg = <3fa0000 60000>;
+ };
+ };
};
UART0: serial@ef600300 {

arch/powerpc/boot/dts/glacier.dts

View file
diff --git a/arch/powerpc/boot/dts/glacier.dts b/arch/powerpc/boot/dts/glacier.dts
index 958a5ca..0f2fc07 100644
--- a/arch/powerpc/boot/dts/glacier.dts
+++ b/arch/powerpc/boot/dts/glacier.dts
@@ -145,8 +145,45 @@
#address-cells = <2>;
#size-cells = <1>;
clock-frequency = <0>; /* Filled in by U-Boot */
+ /* ranges property is supplied by U-Boot */
interrupts = <6 4>;
interrupt-parent = <&UIC1>;
+
+ nor_flash@0,0 {
+ compatible = "amd,s29gl512n", "cfi-flash";
+ bank-width = <2>;
+ reg = <0 000000 4000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ partition@0 {
+ label = "kernel";
+ reg = <0 1e0000>;
+ };
+ partition@1e0000 {
+ label = "dtb";
+ reg = <1e0000 20000>;
+ };
+ partition@200000 {
+ label = "ramdisk";
+ reg = <200000 1400000>;
+ };
+ partition@1600000 {
+ label = "jffs2";
+ reg = <1600000 400000>;
+ };
+ partition@1a00000 {
+ label = "user";
+ reg = <1a00000 2560000>;
+ };
+ partition@3f60000 {
+ label = "env";
+ reg = <3f60000 40000>;
+ };
+ partition@3fa0000 {
+ label = "u-boot";
+ reg = <3fa0000 60000>;
+ };
+ };
};
UART0: serial@ef600300 {

arch/powerpc/boot/ns16550.c

View file
diff --git a/arch/powerpc/boot/ns16550.c b/arch/powerpc/boot/ns16550.c
index aef3bdc..8c9ead9 100644
--- a/arch/powerpc/boot/ns16550.c
+++ b/arch/powerpc/boot/ns16550.c
@@ -55,10 +55,15 @@ static u8 ns16550_tstc(void)
int ns16550_console_init(void *devp, struct serial_console_data *scdp)
{
int n;
+ u32 reg_offset;
if (dt_get_virtual_reg(devp, (void **)&reg_base, 1) < 1)
return -1;
+ n = getprop(devp, "reg-offset", &reg_offset, sizeof(reg_offset));
+ if (n == sizeof(reg_offset))
+ reg_base += reg_offset;
+
n = getprop(devp, "reg-shift", &reg_shift, sizeof(reg_shift));
if (n != sizeof(reg_shift))
reg_shift = 0;

arch/powerpc/kernel/Makefile

View file
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index ce1e8d2..9177b21 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -106,4 +106,13 @@ PHONY += systbl_chk
systbl_chk: $(src)/systbl_chk.sh $(obj)/systbl_chk.i
$(call cmd,systbl_chk)
+$(obj)/built-in.o: prom_init_check
+
+quiet_cmd_prom_init_check = CALL $<
+ cmd_prom_init_check = $(CONFIG_SHELL) $< "$(NM)" "$(obj)/prom_init.o"
+
+PHONY += prom_init_check
+prom_init_check: $(src)/prom_init_check.sh $(obj)/prom_init.o
+ $(call cmd,prom_init_check)
+
clean-files := vmlinux.lds

arch/powerpc/kernel/asm-offsets.c

View file
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 292c6d8..adf1d09 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -93,10 +93,7 @@ int main(void)
DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags));
DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
DEFINE(TI_TASK, offsetof(struct thread_info, task));
-#ifdef CONFIG_PPC32
- DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-#endif /* CONFIG_PPC32 */
#ifdef CONFIG_PPC64
DEFINE(DCACHEL1LINESIZE, offsetof(struct ppc64_caches, dline_size));
@@ -165,13 +162,9 @@ int main(void)
/* Interrupt register frame */
DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD);
-#ifndef CONFIG_PPC64
- DEFINE(INT_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
-#else /* CONFIG_PPC64 */
+ DEFINE(INT_FRAME_SIZE, STACK_INT_FRAME_SIZE);
+#ifdef CONFIG_PPC64
DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
- /* 288 = # of volatile regs, int & fp, for leaf routines */
- /* which do not stack a frame. See the PPC64 ABI. */
- DEFINE(INT_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 288);
/* Create extra stack space for SRR0 and SRR1 when calling prom/rtas. */
DEFINE(PROM_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16);
DEFINE(RTAS_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16);

arch/powerpc/kernel/cpu_setup_44x.S

View file
diff --git a/arch/powerpc/kernel/cpu_setup_44x.S b/arch/powerpc/kernel/cpu_setup_44x.S
index 5465e8d..e3623e3 100644
--- a/arch/powerpc/kernel/cpu_setup_44x.S
+++ b/arch/powerpc/kernel/cpu_setup_44x.S
@@ -33,7 +33,6 @@ _GLOBAL(__setup_cpu_440grx)
mtlr r4
blr
_GLOBAL(__setup_cpu_460ex)
-_GLOBAL(__setup_cpu_460gt)
b __init_fpu_44x
_GLOBAL(__setup_cpu_440gx)
_GLOBAL(__setup_cpu_440spe)

arch/powerpc/kernel/cpu_setup_6xx.S

View file
diff --git a/arch/powerpc/kernel/cpu_setup_6xx.S b/arch/powerpc/kernel/cpu_setup_6xx.S
index f1ee0b3..72d1d73 100644
--- a/arch/powerpc/kernel/cpu_setup_6xx.S
+++ b/arch/powerpc/kernel/cpu_setup_6xx.S
@@ -17,7 +17,13 @@
#include <asm/cache.h>
_GLOBAL(__setup_cpu_603)
- b setup_common_caches
+ mflr r4
+BEGIN_FTR_SECTION
+ bl __init_fpu_registers
+END_FTR_SECTION_IFCLR(CPU_FTR_FPU_UNAVAILABLE)
+ bl setup_common_caches
+ mtlr r4
+ blr
_GLOBAL(__setup_cpu_604)
mflr r4
bl setup_common_caches

arch/powerpc/kernel/cputable.c

View file
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 26ffb44..36080d4 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -37,7 +37,6 @@ extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec);
-extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec);
@@ -1416,10 +1415,9 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pvr_value = 0x13020000,
.cpu_name = "460GT",
.cpu_features = CPU_FTRS_44X,
- .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
+ .cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
- .cpu_setup = __setup_cpu_460gt,
.machine_check = machine_check_440A,
.platform = "ppc440",
},

arch/powerpc/kernel/head_fsl_booke.S

View file
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 4ff7441..e581524 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -371,6 +371,17 @@ skpinv: addi r6,r6,1 /* Increment */
bl early_init
+#ifdef CONFIG_RELOCATABLE
+ lis r3,kernstart_addr@ha
+ la r3,kernstart_addr@l(r3)
+#ifdef CONFIG_PHYS_64BIT
+ stw r23,0(r3)
+ stw r25,4(r3)
+#else
+ stw r25,0(r3)
+#endif
+#endif
+
mfspr r3,SPRN_TLB1CFG
andi. r3,r3,0xfff
lis r4,num_tlbcam_entries@ha

arch/powerpc/kernel/misc_32.S

View file
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 9d2c566..92ccc6f 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -152,7 +152,7 @@ _GLOBAL(low_choose_750fx_pll)
mtspr SPRN_HID1,r4
/* Store new HID1 image */
- rlwinm r6,r1,0,0,18
+ rlwinm r6,r1,0,0,(31-THREAD_SHIFT)
lwz r6,TI_CPU(r6)
slwi r6,r6,2
addis r6,r6,nap_save_hid1@ha
@@ -281,7 +281,7 @@ _GLOBAL(_tlbia)
#endif /* CONFIG_SMP */
#else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */
#if defined(CONFIG_SMP)
- rlwinm r8,r1,0,0,18
+ rlwinm r8,r1,0,0,(31-THREAD_SHIFT)
lwz r8,TI_CPU(r8)
oris r8,r8,10
mfmsr r10
@@ -377,7 +377,7 @@ _GLOBAL(_tlbie)
#endif /* CONFIG_SMP */
#else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */
#if defined(CONFIG_SMP)
- rlwinm r8,r1,0,0,18
+ rlwinm r8,r1,0,0,(31-THREAD_SHIFT)
lwz r8,TI_CPU(r8)
oris r8,r8,11
mfmsr r10

arch/powerpc/kernel/misc_64.S

View file
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index a3c491e..942951e 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -27,23 +27,11 @@
.text
-_GLOBAL(get_msr)
- mfmsr r3
- blr
-
-_GLOBAL(get_srr0)
- mfsrr0 r3
- blr
-
-_GLOBAL(get_srr1)
- mfsrr1 r3
- blr
-
#ifdef CONFIG_IRQSTACKS
_GLOBAL(call_do_softirq)
mflr r0
std r0,16(r1)
- stdu r1,THREAD_SIZE-112(r3)
+ stdu r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r3)
mr r1,r3
bl .__do_softirq
ld r1,0(r1)
@@ -56,7 +44,7 @@ _GLOBAL(call_handle_irq)
mflr r0
std r0,16(r1)
mtctr r8
- stdu r1,THREAD_SIZE-112(r5)
+ stdu r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r5)
mr r1,r5
bctrl
ld r1,0(r1)
@@ -599,7 +587,7 @@ _GLOBAL(kexec_sequence)
std r0,16(r1)
/* switch stacks to newstack -- &kexec_stack.stack */
- stdu r1,THREAD_SIZE-112(r3)
+ stdu r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r3)
mr r1,r3
li r0,0
@@ -616,7 +604,7 @@ _GLOBAL(kexec_sequence)
std r26,-48(r1)
std r25,-56(r1)
- stdu r1,-112-64(r1)
+ stdu r1,-STACK_FRAME_OVERHEAD-64(r1)
/* save args into preserved regs */
mr r31,r3 /* newstack (both) */

arch/powerpc/kernel/of_platform.c

View file
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index fb698d4..e79ad8a 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -275,6 +275,8 @@ static int __devinit of_pci_phb_probe(struct of_device *dev,
/* Scan the bus */
scan_phb(phb);
+ if (phb->bus == NULL)
+ return -ENXIO;
/* Claim resources. This might need some rework as well depending
* wether we are doing probe-only or not, like assigning unassigned

arch/powerpc/kernel/paca.c

View file
diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
index ac163bd..c9bf17e 100644
--- a/arch/powerpc/kernel/paca.c
+++ b/arch/powerpc/kernel/paca.c
@@ -7,17 +7,11 @@
* 2 of the License, or (at your option) any later version.
*/
-#include <linux/types.h>
#include <linux/threads.h>
#include <linux/module.h>
-#include <asm/processor.h>
-#include <asm/ptrace.h>
-#include <asm/page.h>
#include <asm/lppaca.h>
#include <asm/paca.h>
-#include <asm/mmu.h>
-
/* This symbol is provided by the linker - let it fill in the paca
* field correctly */
@@ -65,60 +59,29 @@ struct slb_shadow slb_shadow[] __cacheline_aligned = {
* processors. The processor VPD array needs one entry per physical
* processor (not thread).
*/
-#define PACA_INIT(number) \
-{ \
- .lppaca_ptr = &lppaca[number], \
- .lock_token = 0x8000, \
- .paca_index = (number), /* Paca Index */ \
- .kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \
- .hw_cpu_id = 0xffff, \
- .slb_shadow_ptr = &slb_shadow[number], \

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/ppc32.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/process.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/prom.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/prom_init_check.sh

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/ptrace32.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/setup_64.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/stacktrace.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/udbg.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/fsl_booke_mmu.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/hash_low_32.S

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/init_32.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/init_64.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/mem.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/numa.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/pgtable_32.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/Kconfig.cputype

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/axon_msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_htab.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_hvCall.S

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_interrupt.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_interrupt.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_iommu.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_smp.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_spu_priv1.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_syscall.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_udbg.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/beat_wrapper.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_pci.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_pci.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_scc.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_scc_epci.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_scc_pciex.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_scc_sio.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_scc_uhc.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/celleb_setup.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/io-workarounds.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/io-workarounds.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/setup.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/spider-pci.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/celleb/Kconfig

View before deletion

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/celleb/Makefile

View before deletion

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/celleb/io-workarounds.c

View before deletion

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/iseries/exception.S

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/ps3/os-area.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/eeh.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/eeh_cache.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/firmware.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/iommu.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/lpar.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/ras.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/rtasd.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/scanlog.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/setup.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/smp.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/xics.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/mv64x60_dev.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/mv64x60_udbg.c

View file

This diff is incomplete. Download the complete patch.

arch/ppc/8260_io/fcc_enet.c

View file

This diff is incomplete. Download the complete patch.

arch/ppc/8xx_io/enet.c

View file

This diff is incomplete. Download the complete patch.

arch/ppc/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/ppc/configs/ads8272_defconfig

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/configs/mpc86x_ads_defconfig

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/configs/mpc885ads_defconfig

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/kernel/ppc_ksyms.c

View file

This diff is incomplete. Download the complete patch.

arch/ppc/lib/string.S

View file

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/fads.h

View file

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/mpc8272ads_setup.c

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/mpc885ads.h

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/mpc885ads_setup.c

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/pq2ads.c

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/pq2ads.h

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/platforms/pq2ads_pd.h

View before deletion

This diff is incomplete. Download the complete patch.

arch/ppc/syslib/m8260_setup.c

View file

This diff is incomplete. Download the complete patch.

arch/ppc/syslib/m82xx_pci.c

View file

This diff is incomplete. Download the complete patch.

arch/ppc/syslib/m8xx_setup.c

View file

This diff is incomplete. Download the complete patch.

drivers/char/xilinx_hwicap/xilinx_hwicap.c

View file

This diff is incomplete. Download the complete patch.

drivers/macintosh/windfarm_pm112.c

View file

This diff is incomplete. Download the complete patch.

drivers/macintosh/windfarm_pm81.c

View file

This diff is incomplete. Download the complete patch.

drivers/macintosh/windfarm_pm91.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/of/of_i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/serial/of_serial.c

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/fixmap.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/highmem.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/io-defs.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/io.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/kdump.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/paca.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/page.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/page_32.h

View file

This diff is incomplete. Download the complete patch.

include/asm-powerpc/thread_info.h

View file

This diff is incomplete. Download the complete patch.

include/asm-ppc/mmu.h

View file

This diff is incomplete. Download the complete patch.

include/asm-ppc/mpc8260.h

View file

This diff is incomplete. Download the complete patch.

include/asm-ppc/mpc8xx.h

View file

This diff is incomplete. Download the complete patch.

include/linux/sched.h

View file

This diff is incomplete. Download the complete patch.

init/main.c

View file

This diff is incomplete. Download the complete patch.