sh: Merge the sh64 zImage bits.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
55183e9bb2
commit
7137306806
12 changed files with 80 additions and 180 deletions
|
@ -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)
|
||||
|
|
43
arch/sh/boot/compressed/Makefile_32
Normal file
43
arch/sh/boot/compressed/Makefile_32
Normal file
|
@ -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)
|
|
@ -12,21 +12,21 @@
|
|||
#
|
||||
|
||||
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)
|
||||
|
12
arch/sh/boot/compressed/cache.c
Normal file
12
arch/sh/boot/compressed/cache.c
Normal file
|
@ -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;
|
||||
}
|
|
@ -13,11 +13,10 @@
|
|||
* 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
|
|
@ -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 $@
|
||||
|
|
@ -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;
|
||||
}
|
|
@ -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
|
Loading…
Reference in a new issue