Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 36 → Rev 37

/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);
}
 
}