sh: Merge the sh64 zImage bits.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 21 Nov 2007 07:53:37 +0000 (16:53 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jan 2008 04:18:52 +0000 (13:18 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
12 files changed:
arch/sh/boot/compressed/Makefile
arch/sh/boot/compressed/Makefile_32 [new file with mode: 0644]
arch/sh/boot/compressed/Makefile_64 [moved from arch/sh64/boot/compressed/Makefile with 73% similarity]
arch/sh/boot/compressed/cache.c [new file with mode: 0644]
arch/sh/boot/compressed/head_32.S [moved from arch/sh/boot/compressed/head.S with 100% similarity]
arch/sh/boot/compressed/head_64.S [moved from arch/sh64/boot/compressed/head.S with 91% similarity]
arch/sh/boot/compressed/misc_32.c [moved from arch/sh/boot/compressed/misc.c with 100% similarity]
arch/sh/boot/compressed/misc_64.c [moved from arch/sh64/boot/compressed/misc.c with 100% similarity]
arch/sh/boot/compressed/vmlinux_64.lds [moved from arch/sh64/boot/compressed/vmlinux.lds.S with 100% similarity]
arch/sh64/boot/Makefile [deleted file]
arch/sh64/boot/compressed/cache.c [deleted file]
arch/sh64/boot/compressed/install.sh [deleted file]

index 906a13f..efb01dc 100644 (file)
@@ -1,43 +1,5 @@
-#
-# linux/arch/sh/boot/compressed/Makefile
-#
-# create a compressed vmlinux image from the original vmlinux
-#
-
-targets                := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
-EXTRA_AFLAGS   := -traditional
-
-OBJECTS = $(obj)/head.o $(obj)/misc.o
-
-ifdef CONFIG_SH_STANDARD_BIOS
-OBJECTS += $(obj)/../../kernel/sh_bios.o
+ifeq ($(CONFIG_SUPERH32),y)
+include ${srctree}/arch/sh/boot/compressed/Makefile_32
+else
+include ${srctree}/arch/sh/boot/compressed/Makefile_64
 endif
-
-#
-# IMAGE_OFFSET is the load offset of the compression loader
-#
-IMAGE_OFFSET   := $(shell /bin/bash -c 'printf "0x%08x" \
-                    $$[$(CONFIG_PAGE_OFFSET)  + \
-                       $(CONFIG_MEMORY_START) + \
-                       $(CONFIG_BOOT_LINK_OFFSET)]')
-
-LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
-
-LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds
-
-
-$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(LIBGCC) FORCE
-       $(call if_changed,ld)
-       @:
-
-$(obj)/vmlinux.bin: vmlinux FORCE
-       $(call if_changed,objcopy)
-
-$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
-       $(call if_changed,gzip)
-
-LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh-linux -T
-OBJCOPYFLAGS += -R .empty_zero_page
-
-$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
-       $(call if_changed,ld)
diff --git a/arch/sh/boot/compressed/Makefile_32 b/arch/sh/boot/compressed/Makefile_32
new file mode 100644 (file)
index 0000000..6ac8d4a
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# linux/arch/sh/boot/compressed/Makefile
+#
+# create a compressed vmlinux image from the original vmlinux
+#
+
+targets                := vmlinux vmlinux.bin vmlinux.bin.gz \
+                  head_32.o misc_32.o piggy.o
+EXTRA_AFLAGS   := -traditional
+
+OBJECTS = $(obj)/head_32.o $(obj)/misc_32.o
+
+ifdef CONFIG_SH_STANDARD_BIOS
+OBJECTS += $(obj)/../../kernel/sh_bios.o
+endif
+
+#
+# IMAGE_OFFSET is the load offset of the compression loader
+#
+IMAGE_OFFSET   := $(shell /bin/bash -c 'printf "0x%08x" \
+                    $$[$(CONFIG_PAGE_OFFSET)  + \
+                       $(CONFIG_MEMORY_START) + \
+                       $(CONFIG_BOOT_LINK_OFFSET)]')
+
+LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
+
+LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds
+
+$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(LIBGCC) FORCE
+       $(call if_changed,ld)
+       @:
+
+$(obj)/vmlinux.bin: vmlinux FORCE
+       $(call if_changed,objcopy)
+
+$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
+       $(call if_changed,gzip)
+
+LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh-linux -T
+OBJCOPYFLAGS += -R .empty_zero_page
+
+$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
+       $(call if_changed,ld)
similarity index 73%
rename from arch/sh64/boot/compressed/Makefile
rename to arch/sh/boot/compressed/Makefile_64
index 9cd2167..0b48ae9 100644 (file)
 #
 
 targets                := vmlinux vmlinux.bin vmlinux.bin.gz \
-                  head.o misc.o cache.o piggy.o vmlinux.lds
-
+                  head_64.o misc_64.o cache.o piggy.o
 EXTRA_AFLAGS   := -traditional
 
-OBJECTS                := $(obj)/head.o $(obj)/misc.o $(obj)/cache.o
+OBJECTS                := $(obj)/vmlinux_64.lds $(obj)/head_64.o $(obj)/misc_64.o \
+                  $(obj)/cache.o
 
 #
 # ZIMAGE_OFFSET is the load offset of the compression loader
 # (4M for the kernel plus 64K for this loader)
 #
-ZIMAGE_OFFSET = $(shell printf "0x%8x" $$[$(CONFIG_MEMORY_START)+0x400000+0x10000])
+ZIMAGE_OFFSET  := $(shell /bin/bash -c 'printf "0x%08x" \
+                    $$[$(CONFIG_PAGE_OFFSET)+0x400000+0x10000]')
 
 LDFLAGS_vmlinux := -Ttext $(ZIMAGE_OFFSET) -e startup \
-                   -T $(obj)/../../kernel/vmlinux.lds \
-                   --no-warn-mismatch
+                   -T $(obj)/../../kernel/vmlinux.lds
 
 $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
        $(call if_changed,ld)
@@ -41,6 +41,5 @@ $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
 LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh64-linux -T
 OBJCOPYFLAGS += -R .empty_zero_page
 
-$(obj)/piggy.o: $(obj)/vmlinux.lds $(obj)/vmlinux.bin.gz FORCE
+$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
        $(call if_changed,ld)
-
diff --git a/arch/sh/boot/compressed/cache.c b/arch/sh/boot/compressed/cache.c
new file mode 100644 (file)
index 0000000..e27fc74
--- /dev/null
@@ -0,0 +1,12 @@
+int cache_control(unsigned int command)
+{
+       volatile unsigned int *p = (volatile unsigned int *) 0x80000000;
+       int i;
+
+       for (i = 0; i < (32 * 1024); i += 32) {
+               (void)*p;
+               p += (32 / sizeof (int));
+       }
+
+       return 0;
+}
similarity index 91%
rename from arch/sh64/boot/compressed/head.S
rename to arch/sh/boot/compressed/head_64.S
index 82040b1..1d4ecbf 100644 (file)
  * Modification for compressed loader:
  *   Copyright (C) 2002 Stuart Menefy (stuart.menefy@st.com)
  */
-
 #include <linux/linkage.h>
-#include <asm/registers.h>
 #include <asm/cache.h>
-#include <asm/mmu_context.h>
+#include <asm/cpu/mmu_context.h>
+#include <asm/cpu/registers.h>
 
 /*
  * Fixed TLB entries to identity map the beginning of RAM
@@ -51,14 +50,14 @@ startup:
         * uninitialized target registers.
         * This must be executed before the first branch.
         */
-       ptabs/u ZERO, tr0
-       ptabs/u ZERO, tr1
-       ptabs/u ZERO, tr2
-       ptabs/u ZERO, tr3
-       ptabs/u ZERO, tr4
-       ptabs/u ZERO, tr5
-       ptabs/u ZERO, tr6
-       ptabs/u ZERO, tr7
+       ptabs/u r63, tr0
+       ptabs/u r63, tr1
+       ptabs/u r63, tr2
+       ptabs/u r63, tr3
+       ptabs/u r63, tr4
+       ptabs/u r63, tr5
+       ptabs/u r63, tr6
+       ptabs/u r63, tr7
        synci
 
        /*
@@ -69,7 +68,7 @@ startup:
        pta     1f, tr1
        movi    ITLB_FIXED, r21
        movi    ITLB_LAST_VAR_UNRESTRICTED+TLB_STEP, r22
-1:     putcfg  r21, 0, ZERO            /* Clear MMUIR[n].PTEH.V */
+1:     putcfg  r21, 0, r63             /* Clear MMUIR[n].PTEH.V */
        addi    r21, TLB_STEP, r21
         bne    r21, r22, tr1
 
@@ -77,7 +76,7 @@ startup:
        pta     1f, tr1
        movi    DTLB_FIXED, r21
        movi    DTLB_LAST_VAR_UNRESTRICTED+TLB_STEP, r22
-1:     putcfg  r21, 0, ZERO            /* Clear MMUDR[n].PTEH.V */
+1:     putcfg  r21, 0, r63             /* Clear MMUDR[n].PTEH.V */
        addi    r21, TLB_STEP, r21
         bne    r21, r22, tr1
 
@@ -133,7 +132,7 @@ startup:
        pt      1f, tr1
        movi    datalabel __bss_start, r22
        movi    datalabel _end, r23
-1:     st.l    r22, 0, ZERO
+1:     st.l    r22, 0, r63
        addi    r22, 4, r22
        bne     r22, r23, tr1
 
@@ -161,4 +160,4 @@ startup:
 
        /* Shouldn't return here, but just in case, loop forever */
        pt      1f, tr0
-1:     blink   tr0, ZERO
+1:     blink   tr0, r63
diff --git a/arch/sh64/boot/Makefile b/arch/sh64/boot/Makefile
deleted file mode 100644 (file)
index fb71087..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# arch/sh64/boot/Makefile
-#
-# 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) 2002 Stuart Menefy
-#
-
-targets := zImage
-subdir- := compressed
-
-$(obj)/zImage: $(obj)/compressed/vmlinux FORCE
-       $(call if_changed,objcopy)
-       @echo 'Kernel: $@ is ready'
-
-$(obj)/compressed/vmlinux: FORCE
-       $(Q)$(MAKE) $(build)=$(obj)/compressed $@
-
diff --git a/arch/sh64/boot/compressed/cache.c b/arch/sh64/boot/compressed/cache.c
deleted file mode 100644 (file)
index 7087073..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * arch/shmedia/boot/compressed/cache.c -- simple cache management functions
- *
- * Code extracted from sh-ipl+g, sh-stub.c, which has the copyright:
- *
- *   This is originally based on an m68k software stub written by Glenn
- *   Engel at HP, but has changed quite a bit.
- *
- *   Modifications for the SH by Ben Lee and Steve Chamberlain
- *
-****************************************************************************
-
-               THIS SOFTWARE IS NOT COPYRIGHTED
-
-   HP offers the following for use in the public domain.  HP makes no
-   warranty with regard to the software or it's performance and the
-   user accepts the software "AS IS" with all faults.
-
-   HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD
-   TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-****************************************************************************/
-
-#define CACHE_ENABLE      0
-#define CACHE_DISABLE     1
-
-int cache_control(unsigned int command)
-{
-       volatile unsigned int *p = (volatile unsigned int *) 0x80000000;
-       int i;
-
-       for (i = 0; i < (32 * 1024); i += 32) {
-               (void *) *p;
-               p += (32 / sizeof (int));
-       }
-
-       return 0;
-}
diff --git a/arch/sh64/boot/compressed/install.sh b/arch/sh64/boot/compressed/install.sh
deleted file mode 100644 (file)
index 90589f0..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-#
-# arch/sh/boot/install.sh
-#
-# 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) 1995 by Linus Torvalds
-#
-# Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin
-# Adapted from code in arch/i386/boot/install.sh by Russell King
-# Adapted from code in arch/arm/boot/install.sh by Stuart Menefy
-#
-# "make install" script for sh architecture
-#
-# Arguments:
-#   $1 - kernel version
-#   $2 - kernel image file
-#   $3 - kernel map file
-#   $4 - default install path (blank if root directory)
-#
-
-# User may have a custom install script
-
-if [ -x /sbin/installkernel ]; then
-  exec /sbin/installkernel "$@"
-fi
-
-if [ "$2" = "zImage" ]; then
-# Compressed install
-  echo "Installing compressed kernel"
-  if [ -f $4/vmlinuz-$1 ]; then
-    mv $4/vmlinuz-$1 $4/vmlinuz.old
-  fi
-
-  if [ -f $4/System.map-$1 ]; then
-    mv $4/System.map-$1 $4/System.old
-  fi
-
-  cat $2 > $4/vmlinuz-$1
-  cp $3 $4/System.map-$1
-else
-# Normal install
-  echo "Installing normal kernel"
-  if [ -f $4/vmlinux-$1 ]; then
-    mv $4/vmlinux-$1 $4/vmlinux.old
-  fi
-
-  if [ -f $4/System.map ]; then
-    mv $4/System.map $4/System.old
-  fi
-
-  cat $2 > $4/vmlinux-$1
-  cp $3 $4/System.map
-fi