Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 6688cc1 in mainline


Ignore:
Timestamp:
2009-09-14T14:26:01Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
master
Children:
ec8bab59
Parents:
c35aabe (diff), 19b5929 (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 fix for ticket #113.

Location:
kernel
Files:
5 edited

Legend:

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

    rc35aabe r6688cc1  
    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)
     
    3847        }
    3948
    40         _hardcoded_ktext_size = ktext_end - ktext_start;
    41         _hardcoded_kdata_size = kdata_end - kdata_start;
    42         _hardcoded_load_address = 0xe000000004404000;
    43 
    4449}
  • kernel/arch/ia64/src/ivt.S

    rc35aabe r6688cc1  
    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/start.S

    rc35aabe r6688cc1  
    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       
  • kernel/generic/include/main/main.h

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

    rc35aabe r6688cc1  
    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. */
    110 uintptr_t hardcoded_load_address = 0;
    111 /** Size of the kernel code in bytes. */
    112 size_t hardcoded_ktext_size = 0;
    113 /** Size of the kernel data in bytes. */
    114 size_t hardcoded_kdata_size = 0;
    115103/** Lowest safe stack virtual address. */
    116104uintptr_t stack_safe = 0;               
Note: See TracChangeset for help on using the changeset viewer.