/kernel/trunk/arch/mips32/boot/boot.S |
---|
0,0 → 1,43 |
# |
# Copyright (C) 2003-2004 Jakub Jermar |
# 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. |
# |
.text |
.set noat |
.set noreorder |
.set nomacro |
#define KERNEL_LOAD_ADDRESS 0x80100000 |
.global start |
start: |
lui $ra, KERNEL_LOAD_ADDRESS >> 16 |
ori $ra, KERNEL_LOAD_ADDRESS & 0xffff |
j $ra |
nop |
/kernel/trunk/arch/mips32/boot/Makefile |
---|
0,0 → 1,15 |
.PHONY: build clean |
CFLAGS = -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mips3 -I../include |
build: boot.bin |
cp boot.bin ../../../load.bin |
boot.bin: boot.o |
$(LD) -e start -T _link.ld boot.o -o $@ |
boot.o: boot.S |
$(CC) $(CFLAGS) -c boot.S -o $@ |
clean: |
-rm -f boot.o boot.bin ../../../load.bin |
/kernel/trunk/arch/mips32/boot/_link.ld |
---|
0,0 → 1,8 |
/* OUTPUT_FORMAT(ecoff-littlemips) */ |
OUTPUT_FORMAT(binary) |
SECTIONS { |
.image 0x0: AT (0) { |
*(.text); |
*(.reginfo); |
} |
} |
/kernel/trunk/Makefile |
---|
149,7 → 149,7 |
ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES))) |
GENARCH_OBJECTS := $(addsuffix .o,$(basename $(GENARCH_SOURCES))) |
.PHONY: all build config distclean clean archlinks depend disasm |
.PHONY: all build config distclean clean archlinks depend boot disasm |
all: |
tools/config.py default $(NARCH) |
160,7 → 160,7 |
endif |
$(MAKE) -C . build |
build: kernel.bin disasm |
build: kernel.bin boot disasm |
config: |
-rm Makefile.depend |
176,6 → 176,7 |
find generic/src/ arch/*/src/ genarch/src/ test/ -name '*.o' -follow -exec rm \{\} \; |
for arch in arch/*; do \ |
[ -e $$arch/_link.ld ] && rm $$arch/_link.ld 2>/dev/null;\ |
$(MAKE) -C $$arch/boot clean; \ |
done;exit 0 |
archlinks: |
209,6 → 210,9 |
kernel.bin: kernel.raw |
$(OBJCOPY) -O $(BFD) kernel.raw kernel.bin |
boot: kernel.bin |
if [ -d arch/$(ARCH)/boot ] ; then $(MAKE) -C arch/$(ARCH)/boot build KERNEL_SIZE="`cat kernel.bin | wc -c`" CC=$(CC) AS=$(AS) LD=$(LD) ; fi |
disasm: kernel.raw |
$(OBJDUMP) -d kernel.raw > kernel.disasm |
/kernel/trunk/contrib/conf/msim.conf |
---|
4,9 → 4,10 |
add dcpu mips1 |
add rwm mainmem 0x0 8M load "/dev/zero" |
add rom startmem 0x1fc00000 1024k load "image.boot" |
add rwm init 0x01000000 1M load "init" |
add rwm firstmem 0x0 1M load "/dev/zero" |
add rwm mainmem 0x00100000 7M load "kernel/kernel.bin" |
add rom startmem 0x1fc00000 1k load "kernel/load.bin" |
add rwm init 0x01000000 1M load "uspace/init/init" |
add dprinter printer 0x10000000 |
add dkeyboard keyboard 0x10000000 2 |