Index: arch/sparc64/Makefile.inc
===================================================================
--- arch/sparc64/Makefile.inc	(revision 169c408f8774661800aa0a9685c9914cbb5a974c)
+++ arch/sparc64/Makefile.inc	(revision 6bc4dbd6d4af05219158da97d48e6440649362af)
@@ -1,30 +1,50 @@
-TARGET=sparc64-linux-gnu
+#
+# Copyright (C) 2005 Martin Decky
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in the
+#   documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+#   derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
 
-CC_DIR=/usr/local/sparc64/bin
-BINUTILS_DIR=/usr/local/sparc64/bin
+## Toolchain configuration
+#
 
-CC=$(CC_DIR)/$(TARGET)-gcc
-AS=$(BINUTILS_DIR)/$(TARGET)-as
-LD=$(BINUTILS_DIR)/$(TARGET)-ld
-OBJDUMP=$(BINUTILS_DIR)/$(TARGET)-objdump
-OBJCOPY=$(BINUTILS_DIR)/$(TARGET)-objcopy
-BFD_NAME=elf64-sparc
-BFD_ARCH=sparc
+BFD_NAME = elf64-sparc
+BFD_ARCH = sparc
+TARGET = sparc64-linux-gnu
+TOOLCHAIN_DIR = /usr/local/sparc64/bin
 
-ASFLAGS=
+## Make some default assumptions
+#
 
-DEFS=-DARCH=$(ARCH)
-CFLAGS=$(DEFS) -nostdlib -fno-builtin -mcpu=ultrasparc -m64 -O2
-LFLAGS=-M -no-check-sections -N
+CFLAGS += -mcpu=ultrasparc -m64
+LFLAGS += -no-check-sections -N
 
-arch_sources= \
-	generic/src/arch/asm.S \
-	generic/src/arch/console.c \
-	generic/src/arch/context.S \
-	generic/src/arch/dummy.s \
-	generic/src/arch/sparc64.c \
-	generic/src/arch/start.S \
-	generic/src/arch/mm/frame.c \
-	generic/src/arch/mm/page.c
-	
+## Own configuration directives
+#
 
+CONFIG_OFW = y
+
+ARCH_SOURCES = \
+	arch/$(ARCH)/src/dummy.s \
+	arch/$(ARCH)/src/start.S
Index: arch/sparc64/_link.ld
===================================================================
--- arch/sparc64/_link.ld	(revision 169c408f8774661800aa0a9685c9914cbb5a974c)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/*
- *  SPARC64 linker script
- *
- *  It is ELF format, but its only section looks like this:
- *  kernel text
- *  kernel data
- *
- */
-
-OUTPUT_FORMAT(elf64-sparc)
-ENTRY(kernel_image_start)
-
-SECTIONS {
-	.image 0x4000: AT (0x4000) { 
-		ktext_start = .;
-		*(K_TEXT_START)
-		*(.text);
-		ktext_end = .;
-		
-		kdata_start = .;
-		*(K_DATA_START)
-		*(.rodata);
-		*(.rodata.*);
-		*(.data);		/* initialized data */
-		*(.sdata);
-		*(.sdata2);
-		*(.sbss);
-		hardcoded_ktext_size = .;
-		LONG(ktext_end - ktext_start);	
-		hardcoded_kdata_size = .;
-		LONG(kdata_end - kdata_start);
-		hardcoded_load_address = .;
-		QUAD(0x4000);
-		*(.bss);		/* uninitialized static variables */	
-		*(COMMON); 		/* global variables */
-
-		symbol_table = .;
-                *(symtab.*);            /* Symbol table, must be LAST symbol!*/
-
-		kdata_end = .;
-	}
-	
-	/DISCARD/ : {
-		*(.comment);
-		*(.note*);
-	}
-
-}
Index: arch/sparc64/_link.ld.in
===================================================================
--- arch/sparc64/_link.ld.in	(revision 6bc4dbd6d4af05219158da97d48e6440649362af)
+++ arch/sparc64/_link.ld.in	(revision 6bc4dbd6d4af05219158da97d48e6440649362af)
@@ -0,0 +1,49 @@
+/** SPARC64 linker script
+ *
+ *  It is ELF format, but its only section looks like this:
+ *  kernel text
+ *  kernel data
+ *
+ */
+
+#define __ASM__
+
+OUTPUT_FORMAT("elf64-sparc")
+ENTRY(kernel_image_start)
+
+SECTIONS {
+	.image 0x4000: AT (0x4000) { 
+		ktext_start = .;
+		*(K_TEXT_START)
+		*(.text);
+		ktext_end = .;
+		
+		kdata_start = .;
+		*(K_DATA_START)
+		*(.rodata);
+		*(.rodata.*);
+		*(.data);		/* initialized data */
+		*(.sdata);
+		*(.sdata2);
+		*(.sbss);
+		hardcoded_ktext_size = .;
+		LONG(ktext_end - ktext_start);	
+		hardcoded_kdata_size = .;
+		LONG(kdata_end - kdata_start);
+		hardcoded_load_address = .;
+		QUAD(0x4000);
+		*(.bss);		/* uninitialized static variables */	
+		*(COMMON); 		/* global variables */
+
+		symbol_table = .;
+                *(symtab.*);            /* Symbol table, must be LAST symbol!*/
+
+		kdata_end = .;
+	}
+	
+	/DISCARD/ : {
+		*(.comment);
+		*(.note*);
+	}
+
+}
Index: arch/sparc64/boot/Makefile
===================================================================
--- arch/sparc64/boot/Makefile	(revision 169c408f8774661800aa0a9685c9914cbb5a974c)
+++ arch/sparc64/boot/Makefile	(revision 6bc4dbd6d4af05219158da97d48e6440649362af)
@@ -1,26 +1,15 @@
-BINUTILS_DIR=/usr/local/sparc64/bin
-TARGET=sparc64-linux-gnu
+.PHONY: build clean
 
-.PHONY: nothing build
-
-nothing:
+CFLAGS = -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -I../include
 
 build: boot.bin
 	cp boot.bin ../../../load.bin
 
-CC=$(BINUTILS_DIR)/$(TARGET)-gcc
-AS=$(BINUTILS_DIR)/$(TARGET)-as
-LD=$(BINUTILS_DIR)/$(TARGET)-ld
+boot.bin: boot.a.out
+	dd if=/dev/zero of=$@ bs=512 count=16
+	dd if=boot.a.out of=$@ bs=512 seek=1 conv=notrunc
 
-CPPFLAGS=$(DEFS) -nostdinc -I../include
-CFLAGS=$(CPPFLAGS) -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O2
-LFLAGS=-no-check-sections -N -T _link.ld -s
-
-boot.bin: boot.aout
-	dd if=/dev/zero of=$@ bs=512 count=16
-	dd if=boot.aout of=$@ bs=512 seek=1 conv=notrunc
-
-boot.aout: boot.o
-	$(LD) $(LFLAGS) boot.o -o $@
+boot.a.out: boot.o
+	$(LD) -no-check-sections -N -T _link.ld -s boot.o -o $@
 
 boot.o: boot.S
@@ -28,3 +17,3 @@
 
 clean:
-	-rm *.o *.bin *.aout
+	-rm -f boot.o boot.a.out boot.bin ../../../load.bin
