Subversion Repositories HelenOS-historic

Rev

Rev 1162 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

/** PPC64 linker script
 *
 * umapped section:
 *  kernel text
 *  kernel data
 * mapped section:
 *  kernel text
 *  kernel data 
 *
 */

#define __ASM__
#include <arch/boot/boot.h>
#include <arch/mm/page.h>

ENTRY(kernel_image_start)
OUTPUT_FORMAT("elf64-powerpc")
OUTPUT_ARCH(powerpc:common64)

SECTIONS {
    .unmapped 0: AT (0) {
        unmapped_ktext_start = .;
        *(K_UNMAPPED_TEXT_START);
        unmapped_ktext_end = .;
        
        unmapped_kdata_start = .;
        *(K_UNMAPPED_DATA_START);
        unmapped_kdata_start = .;
    }
    
    .mapped PA2KA(BOOT_OFFSET): AT (BOOT_OFFSET) { 
        ktext_start = .;
        *(K_TEXT_START);
        *(.text);
        ktext_end = .;
        
        kdata_start = .;
        *(K_DATA_START);
        *(.rodata);
        *(.rodata.*);
        *(.data);       /* initialized data */
        *(.sdata);
        *(.sdata2);
        *(.sbss);
        hardcoded_ktext_size = .;
        LONG(ktext_end - ktext_start);  
        hardcoded_kdata_size = .;
        LONG(kdata_end - kdata_start);
        hardcoded_load_address = .;
        LONG(PA2KA(BOOT_OFFSET));
        *(.bss);        /* uninitialized static variables */    
        *(COMMON);      /* global variables */

        symbol_table = .;
        *(symtab.*);            /* Symbol table, must be LAST symbol!*/

        kdata_end = .;
    }
}