Changes in / [6688cc1:c35aabe] in mainline


Ignore:
Location:
kernel
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/_link.ld.in

    r6688cc1 rc35aabe  
    77 */
    88
    9 #define LOAD_ADDRESS_V  0xe000000004404000
    10 #define LOAD_ADDRESS_P  0x0000000004404000
    11 
    129ENTRY(kernel_image_start)
    1310
    1411SECTIONS {
    15         .image LOAD_ADDRESS_V: AT (LOAD_ADDRESS_P) {
     12        .image 0xe000000004404000: AT (0x0000000004404000) {
    1613                ktext_start = .;
    1714                *(K_TEXT_START);
     
    2421                *(.opd)
    2522                *(.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);
    3223                *(.got .got.*)
    3324                *(.sdata)
     
    4738        }
    4839
     40        _hardcoded_ktext_size = ktext_end - ktext_start;
     41        _hardcoded_kdata_size = kdata_end - kdata_start;
     42        _hardcoded_load_address = 0xe000000004404000;
     43
    4944}
  • kernel/arch/ia64/src/ivt.S

    r6688cc1 rc35aabe  
    391391
    392392    /* 10. call handler */
    393         movl r1 = kernel_image_start
     393        movl r1 = _hardcoded_load_address
    394394   
    395395        mov b1 = loc2
  • kernel/arch/ia64/src/start.S

    r6688cc1 rc35aabe  
    186186        movl r20 = (VRN_KERNEL << VRN_SHIFT) ;;
    187187        or r20 = r20, r1 ;;
    188         movl r1 = kernel_image_start
     188        movl r1 = _hardcoded_load_address
    189189       
    190190        /*
    191          * Initialize bootinfo on BSP.
     191         * Initialize hardcoded_* variables. Do only BSP
    192192         */
    193 (p3)    addl r21 = @gprel(bootinfo), gp ;;
     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
    194204(p3)    st8 [r21] = r20
    195205       
  • kernel/generic/include/main/main.h

    r6688cc1 rc35aabe  
    3838#include <arch/types.h>
    3939
    40 extern size_t hardcoded_kdata_size;
    41 extern size_t hardcoded_ktext_size;
    42 extern uintptr_t hardcoded_load_address;
    4340extern uintptr_t stack_safe;
    4441
  • kernel/generic/src/main/main.c

    r6688cc1 rc35aabe  
    101101context_t ctx;
    102102
     103/*
     104 * These 'hardcoded' variables will be intialized by
     105 * the linker or the low level assembler code with
     106 * appropriate sizes and addresses.
     107 */
     108
     109/** Virtual address of where the kernel is loaded. */
     110uintptr_t hardcoded_load_address = 0;
     111/** Size of the kernel code in bytes. */
     112size_t hardcoded_ktext_size = 0;
     113/** Size of the kernel data in bytes. */
     114size_t hardcoded_kdata_size = 0;
    103115/** Lowest safe stack virtual address. */
    104116uintptr_t stack_safe = 0;               
Note: See TracChangeset for help on using the changeset viewer.