Changeset 5f70118 in mainline for kernel/arch/ia64


Ignore:
Timestamp:
2010-01-10T12:16:59Z (16 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c77a64f
Parents:
309ede1 (diff), 1ac3a52 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

Location:
kernel/arch/ia64
Files:
1 added
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/Makefile.inc

    r309ede1 r5f70118  
    5353        arch/$(KARCH)/src/context.S \
    5454        arch/$(KARCH)/src/cpu/cpu.c \
     55        arch/$(KARCH)/src/debug/stacktrace.c \
     56        arch/$(KARCH)/src/debug/stacktrace_asm.S \
    5557        arch/$(KARCH)/src/ivt.S \
    5658        arch/$(KARCH)/src/interrupt.c \
  • kernel/arch/ia64/_link.ld.in

    r309ede1 r5f70118  
    77 */
    88
     9#define LOAD_ADDRESS_V  0xe000000004404000
     10#define LOAD_ADDRESS_P  0x0000000004404000
     11
    912ENTRY(kernel_image_start)
    1013
    1114SECTIONS {
    12         .image 0xe000000004404000: AT (0x0000000004404000) {
     15        .image LOAD_ADDRESS_V: AT (LOAD_ADDRESS_P) {
    1316                ktext_start = .;
    1417                *(K_TEXT_START);
     
    2124                *(.opd)
    2225                *(.data .data.*)
     26                hardcoded_load_address = .;
     27                QUAD(LOAD_ADDRESS_V);
     28                hardcoded_ktext_size = .;
     29                QUAD(ktext_end - ktext_start);
     30                hardcoded_kdata_size = .;
     31                QUAD(kdata_end - kdata_start);
    2332                *(.got .got.*)
    2433                *(.sdata)
     
    2837                *(COMMON);
    2938
     39                . = ALIGN(8);
    3040                symbol_table = .;
    3141                *(symtab.*);            /* Symbol table, must be LAST symbol!*/
     
    3848        }
    3949
    40         _hardcoded_ktext_size = ktext_end - ktext_start;
    41         _hardcoded_kdata_size = kdata_end - kdata_start;
    42         _hardcoded_load_address = 0xe000000004404000;
    43 
    4450}
  • kernel/arch/ia64/include/asm.h

    r309ede1 r5f70118  
    422422        asm volatile (
    423423                "rsm %[mask]\n"
     424                ";;\n"
     425                "srlz.d\n"
    424426                :: [mask] "i" (PSR_PK_MASK)
    425427        );
  • kernel/arch/ia64/include/interrupt.h

    r309ede1 r5f70118  
    7272#define EOI  0  /**< The actual value doesn't matter. */
    7373
    74 typedef struct {
     74typedef struct istate {
    7575        uint128_t f2;
    7676        uint128_t f3;
     
    143143}
    144144
     145static inline unative_t istate_get_fp(istate_t *istate)
     146{
     147        return 0;       /* FIXME */
     148}
     149
    145150static inline int istate_from_uspace(istate_t *istate)
    146151{
  • kernel/arch/ia64/src/cpu/cpu.c

    r309ede1 r5f70118  
    3737#include <arch/register.h>
    3838#include <print.h>
     39#include <memstr.h>
    3940
    4041void cpu_arch_init(void)
  • kernel/arch/ia64/src/debug/stacktrace.c

    r309ede1 r5f70118  
    11/*
    2  * Copyright (c) 2005 Jakub Jermar
     2 * Copyright (c) 2010 Jakub Jermar
    33 * All rights reserved.
    44 *
     
    2727 */
    2828
    29 /** @addtogroup generic
     29/** @addtogroup ia64
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 /*
    36  * Variable argument list manipulation macros
    37  * for architectures using stack to pass arguments.
    38  */
    39  
    40 #ifndef KERN_STACKARG_H_
    41 #define KERN_STACKARG_H_
     35#include <stacktrace.h>
     36#include <syscall/copy.h>
     37#include <arch/types.h>
     38#include <typedefs.h>
    4239
    43 #include <arch/types.h>
     40bool kernel_frame_pointer_validate(uintptr_t fp)
     41{
     42        return false;
     43}
    4444
    45 typedef struct va_list {
    46         int pos;
    47         uint8_t *last;
    48 } va_list;
     45bool kernel_frame_pointer_prev(uintptr_t fp, uintptr_t *prev)
     46{
     47        return false;
     48}
    4949
    50 #define va_start(ap, lst)               \
    51         (ap).pos = sizeof(lst);                         \
    52         (ap).last = (uint8_t *) &(lst)
     50bool kernel_return_address_get(uintptr_t fp, uintptr_t *ra)
     51{
     52        return false;
     53}
    5354
    54 #define va_arg(ap, type)                \
    55         (*((type *)((ap).last + ((ap).pos += sizeof(type)) - sizeof(type))))
     55bool uspace_frame_pointer_validate(uintptr_t fp)
     56{
     57        return false;
     58}
    5659
    57 #define va_copy(dst, src) dst = src
    58 #define va_end(ap)
     60bool uspace_frame_pointer_prev(uintptr_t fp, uintptr_t *prev)
     61{
     62        return false;
     63}
    5964
    60 
    61 #endif
     65bool uspace_return_address_get(uintptr_t fp, uintptr_t *ra)
     66{
     67        return false;
     68}
    6269
    6370/** @}
  • kernel/arch/ia64/src/ivt.S

    r309ede1 r5f70118  
    391391
    392392    /* 10. call handler */
    393         movl r1 = _hardcoded_load_address
     393        movl r1 = kernel_image_start
    394394   
    395395        mov b1 = loc2
  • kernel/arch/ia64/src/mm/as.c

    r309ede1 r5f70118  
    7373                rr.map.ps = PAGE_WIDTH;
    7474                rr_write(i, rr.word);
     75                srlz_d();
     76                srlz_i();
    7577        }
    76         srlz_d();
    77         srlz_i();
    7878}
    7979
  • kernel/arch/ia64/src/start.S

    r309ede1 r5f70118  
    186186        movl r20 = (VRN_KERNEL << VRN_SHIFT) ;;
    187187        or r20 = r20, r1 ;;
    188         movl r1 = _hardcoded_load_address
     188        movl r1 = kernel_image_start
    189189       
    190190        /*
    191          * Initialize hardcoded_* variables. Do only BSP
     191         * Initialize bootinfo on BSP.
    192192         */
    193 (p3)    movl r14 = _hardcoded_ktext_size
    194 (p3)    movl r15 = _hardcoded_kdata_size
    195 (p3)    movl r16 = _hardcoded_load_address ;;
    196 (p3)    addl r17 = @gprel(hardcoded_ktext_size), gp
    197 (p3)    addl r18 = @gprel(hardcoded_kdata_size), gp
    198 (p3)    addl r19 = @gprel(hardcoded_load_address), gp
    199 (p3)    addl r21 = @gprel(bootinfo), gp
    200                 ;;
    201 (p3)    st8 [r17] = r14
    202 (p3)    st8 [r18] = r15
    203 (p3)    st8 [r19] = r16
     193(p3)    addl r21 = @gprel(bootinfo), gp ;;
    204194(p3)    st8 [r21] = r20
    205195       
Note: See TracChangeset for help on using the changeset viewer.