Changeset 2217ac3 in mainline


Ignore:
Timestamp:
2005-05-03T11:30:21Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0f4e706
Parents:
2a0047fc
Message:

More IA-64 work.
IA-64 putchar() for Ski simulator.
Linker script changes.

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/_link.ld

    r2a0047fc r2217ac3  
     1/*
     2 *  IA-64 linker script
     3 *
     4 *  It is ELF format, but its only section looks like this:
     5 *  kernel text
     6 *  kernel data
     7 *
     8 */
     9
    110OUTPUT_FORMAT(elf64-ia64-little)
    211ENTRY(kernel_image_start)
     
    413SECTIONS {
    514    .image 0x0000000000001000: AT (0x0000000000001000) {
    6             *(.text .stub .text.* .gnu.linkonce.t.*)
     15            ktext_start = .;
     16            *(.text .text.* )
     17            ktext_end = .;
     18            kdata_start = .;
    719            *(.interp)
    820            *(.hash)
     
    6981            *(.bss .bss.* .gnu.linkonce.b.*)
    7082            *(COMMON)
     83            kdata_end = .;
    7184    }
     85
     86    . = ABSOLUTE(hardcoded_ktext_size);
     87    .patch_1 : {
     88        LONG(ktext_end - ktext_start);
     89    }
     90
     91    . = ABSOLUTE(hardcoded_kdata_size);
     92    .patch_2 : {
     93        LONG(kdata_end - kdata_start);
     94    }
     95
     96    . = ABSOLUTE(hardcoded_load_address);
     97    .patch_3 : {
     98        QUAD(0x0000000000001000);
     99    }
     100
    72101}
  • arch/ia64/src/putchar.c

    r2a0047fc r2217ac3  
    2929#include <putchar.h>
    3030#include <arch/types.h>
     31#include <arch/ski/ski.h>
    3132
    3233void putchar(char ch)
    3334{
     35        __asm__ (
     36                "mov r15=%0\n"
     37                "mov r32=%1\n"          /* r32 is in0 */
     38                "break 0x80000\n"       /* modifies r8 */
     39                :
     40                : "i" (SKI_CONSOLE_PUTC), "r" (ch)
     41                : "r15", "in0", "r8"
     42        );
     43       
     44        if (ch == '\n') putchar('\r');
    3445}
  • arch/ia64/src/start.S

    r2a0047fc r2217ac3  
    3333.global kernel_image_start
    3434
     35stack0:
    3536kernel_image_start:
    3637        # initialize gp (Global Pointer) register
    37         mov r1=0x1000
     38        mov r1=kernel_image_start;
    3839
    39         # initialize Ski console using SSC (Simulator System Sall)
     40        # set stack pointer to some sane value
     41        mov r12=stack0
     42       
     43        # initialize Ski console using SSC (Simulator System Call)
    4044        mov r15=SKI_CONSOLE_INIT
    4145        break 0x80000
    4246
    43470:
    44         mov r15=SKI_CONSOLE_PUTC
    45         mov r32='.'
    46         break 0x80000
    47 
    4848        br 0b
  • src/Makefile.config

    r2a0047fc r2217ac3  
    11ARCH=ia32
    22#ARCH=mips
     3#ARCH=ia64
    34#ARCH=powerpc
    4 #ARCH=ia64
    55#ARCH=amd64
    66
  • src/main/main.c

    r2a0047fc r2217ac3  
    6464 * the linker with appropriate sizes and addresses.
    6565 */
    66 __u32 hardcoded_load_address = 0;
     66__address hardcoded_load_address = 0;
    6767__u32 hardcoded_ktext_size = 0;
    6868__u32 hardcoded_kdata_size = 0;
Note: See TracChangeset for help on using the changeset viewer.