Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 36 → Rev 37

/SPARTAN/trunk/src/Makefile.config
1,7 → 1,7
ARCH=ia32
#ARCH=mips
#ARCH=ia64
#ARCH=powerpc
#ARCH=ia64
#ARCH=amd64
 
# Support for symetric multiprocessors
/SPARTAN/trunk/src/main/main.c
63,7 → 63,7
* These 'hardcoded' variables will be intialised by
* the linker with appropriate sizes and addresses.
*/
__u32 hardcoded_load_address = 0;
__address hardcoded_load_address = 0;
__u32 hardcoded_ktext_size = 0;
__u32 hardcoded_kdata_size = 0;
 
/SPARTAN/trunk/arch/ia64/src/putchar.c
28,7 → 28,18
 
#include <putchar.h>
#include <arch/types.h>
#include <arch/ski/ski.h>
 
void putchar(char ch)
{
__asm__ (
"mov r15=%0\n"
"mov r32=%1\n" /* r32 is in0 */
"break 0x80000\n" /* modifies r8 */
:
: "i" (SKI_CONSOLE_PUTC), "r" (ch)
: "r15", "in0", "r8"
);
if (ch == '\n') putchar('\r');
}
/SPARTAN/trunk/arch/ia64/src/start.S
32,17 → 32,17
 
.global kernel_image_start
 
stack0:
kernel_image_start:
# initialize gp (Global Pointer) register
mov r1=0x1000
mov r1=kernel_image_start;
 
# initialize Ski console using SSC (Simulator System Sall)
# set stack pointer to some sane value
mov r12=stack0
# initialize Ski console using SSC (Simulator System Call)
mov r15=SKI_CONSOLE_INIT
break 0x80000
 
0:
mov r15=SKI_CONSOLE_PUTC
mov r32='.'
break 0x80000
 
br 0b
br 0b
/SPARTAN/trunk/arch/ia64/_link.ld
1,9 → 1,21
/*
* IA-64 linker script
*
* It is ELF format, but its only section looks like this:
* kernel text
* kernel data
*
*/
 
OUTPUT_FORMAT(elf64-ia64-little)
ENTRY(kernel_image_start)
 
SECTIONS {
.image 0x0000000000001000: AT (0x0000000000001000) {
*(.text .stub .text.* .gnu.linkonce.t.*)
ktext_start = .;
*(.text .text.* )
ktext_end = .;
kdata_start = .;
*(.interp)
*(.hash)
*(.dynsym)
68,5 → 80,22
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
kdata_end = .;
}
 
. = ABSOLUTE(hardcoded_ktext_size);
.patch_1 : {
LONG(ktext_end - ktext_start);
}
 
. = ABSOLUTE(hardcoded_kdata_size);
.patch_2 : {
LONG(kdata_end - kdata_start);
}
 
. = ABSOLUTE(hardcoded_load_address);
.patch_3 : {
QUAD(0x0000000000001000);
}
 
}