asflags-y := -ansi
 ccflags-y := -Werror
 
-obj-y                   := fault_$(BITS).o
+obj-$(CONFIG_SPARC64)   += ultra.o tlb.o tsb.o
+obj-y                   += fault_$(BITS).o
 obj-y                   += init_$(BITS).o
 obj-$(CONFIG_SPARC32)   += loadmmu.o
 obj-y                   += generic_$(BITS).o
 obj-$(CONFIG_SPARC32)   += extable.o btfixup.o srmmu.o iommu.o io-unit.o
 obj-$(CONFIG_SPARC32)   += hypersparc.o viking.o tsunami.o swift.o
 
+# Only used by sparc64
+obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
+
 # Only used by sparc32
 obj-$(CONFIG_HIGHMEM)   += highmem.o
 
 
 #include <asm/cpudata.h>
 #include <asm/irq.h>
 
-#include "init.h"
+#include "init_64.h"
 
 unsigned long kern_linear_pte_xor[2] __read_mostly;
 
        return nid;
 }
 
-static void __init add_node_ranges(void)
+static void add_node_ranges(void)
 {
        int i;
 
 
 
 head-y := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o
 
-core-y                         += arch/sparc64/kernel/ arch/sparc64/mm/
+core-y                         += arch/sparc64/kernel/ arch/sparc/mm/
 core-y                         += arch/sparc/math-emu/
 libs-y                         += arch/sparc64/prom/ arch/sparc64/lib/
 drivers-$(CONFIG_OPROFILE)     += arch/sparc/oprofile/
 
+++ /dev/null
-# Makefile for the linux Sparc64-specific parts of the memory manager.
-#
-
-EXTRA_AFLAGS := -ansi
-EXTRA_CFLAGS := -Werror
-
-obj-y    := ultra.o tlb.o tsb.o fault.o init.o generic.o
-
-obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o