Commit 71373068 authored by Paul Mundt's avatar Paul Mundt

sh: Merge the sh64 zImage bits.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 55183e9b
# ifeq ($(CONFIG_SUPERH32),y)
# linux/arch/sh/boot/compressed/Makefile include ${srctree}/arch/sh/boot/compressed/Makefile_32
# else
# create a compressed vmlinux image from the original vmlinux include ${srctree}/arch/sh/boot/compressed/Makefile_64
#
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
endif 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)
#
# 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)
...@@ -12,21 +12,21 @@ ...@@ -12,21 +12,21 @@
# #
targets := vmlinux vmlinux.bin vmlinux.bin.gz \ 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 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 # ZIMAGE_OFFSET is the load offset of the compression loader
# (4M for the kernel plus 64K for this 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 \ LDFLAGS_vmlinux := -Ttext $(ZIMAGE_OFFSET) -e startup \
-T $(obj)/../../kernel/vmlinux.lds \ -T $(obj)/../../kernel/vmlinux.lds
--no-warn-mismatch
$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
$(call if_changed,ld) $(call if_changed,ld)
...@@ -41,6 +41,5 @@ $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE ...@@ -41,6 +41,5 @@ $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh64-linux -T LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh64-linux -T
OBJCOPYFLAGS += -R .empty_zero_page 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) $(call if_changed,ld)
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;
}
...@@ -13,11 +13,10 @@ ...@@ -13,11 +13,10 @@
* Modification for compressed loader: * Modification for compressed loader:
* Copyright (C) 2002 Stuart Menefy (stuart.menefy@st.com) * Copyright (C) 2002 Stuart Menefy (stuart.menefy@st.com)
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/registers.h>
#include <asm/cache.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 * Fixed TLB entries to identity map the beginning of RAM
...@@ -51,14 +50,14 @@ startup: ...@@ -51,14 +50,14 @@ startup:
* uninitialized target registers. * uninitialized target registers.
* This must be executed before the first branch. * This must be executed before the first branch.
*/ */
ptabs/u ZERO, tr0 ptabs/u r63, tr0
ptabs/u ZERO, tr1 ptabs/u r63, tr1
ptabs/u ZERO, tr2 ptabs/u r63, tr2
ptabs/u ZERO, tr3 ptabs/u r63, tr3
ptabs/u ZERO, tr4 ptabs/u r63, tr4
ptabs/u ZERO, tr5 ptabs/u r63, tr5
ptabs/u ZERO, tr6 ptabs/u r63, tr6
ptabs/u ZERO, tr7 ptabs/u r63, tr7
synci synci
/* /*
...@@ -69,7 +68,7 @@ startup: ...@@ -69,7 +68,7 @@ startup:
pta 1f, tr1 pta 1f, tr1
movi ITLB_FIXED, r21 movi ITLB_FIXED, r21
movi ITLB_LAST_VAR_UNRESTRICTED+TLB_STEP, r22 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 addi r21, TLB_STEP, r21
bne r21, r22, tr1 bne r21, r22, tr1
...@@ -77,7 +76,7 @@ startup: ...@@ -77,7 +76,7 @@ startup:
pta 1f, tr1 pta 1f, tr1
movi DTLB_FIXED, r21 movi DTLB_FIXED, r21
movi DTLB_LAST_VAR_UNRESTRICTED+TLB_STEP, r22 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 addi r21, TLB_STEP, r21
bne r21, r22, tr1 bne r21, r22, tr1
...@@ -133,7 +132,7 @@ startup: ...@@ -133,7 +132,7 @@ startup:
pt 1f, tr1 pt 1f, tr1
movi datalabel __bss_start, r22 movi datalabel __bss_start, r22
movi datalabel _end, r23 movi datalabel _end, r23
1: st.l r22, 0, ZERO 1: st.l r22, 0, r63
addi r22, 4, r22 addi r22, 4, r22
bne r22, r23, tr1 bne r22, r23, tr1
...@@ -161,4 +160,4 @@ startup: ...@@ -161,4 +160,4 @@ startup:
/* Shouldn't return here, but just in case, loop forever */ /* Shouldn't return here, but just in case, loop forever */
pt 1f, tr0 pt 1f, tr0
1: blink tr0, ZERO 1: blink tr0, r63
#
# 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 $@
/*
* 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;
}
#!/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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment