blob: c31ac83501c9f1a2f3a4725bc3e5337ec826f025 [file] [log] [blame]
#include "parisc/hppa_hardware.h"
#if BITS == 64
OUTPUT_FORMAT("elf64-hppa-linux")
OUTPUT_ARCH(hppa:hppa2.0w)
#else
OUTPUT_FORMAT("elf32-hppa-linux")
OUTPUT_ARCH(hppa)
#endif
ENTRY(startup)
SECTIONS
{
#if BITS == 64
/* limit firmware high bits to physical addresses to allow debug info */
. = ((FIRMWARE_HIGH & 0x3ffffff0) << 32) + FIRMWARE_START;
#else
. = FIRMWARE_START;
#endif
/* align on next page boundary */
. = ALIGN(4096);
.text : {
_text = .; /* Text */
*(.head.text)
*(.text)
*(.text.*)
_etext = . ;
}
. = ALIGN(4096);
.sti : {
_sti_rom_start = .;
*(.sti.hdr)
*(.sti.text.init_graph)
*(.sti.text.state_mgmt)
*(.sti.text.font_unpmv)
*(.sti.text.block_move)
*(.sti.text.self_test)
*(.sti.text.excep_hdlr)
*(.sti.text.inq_conf)
*(.sti.text.set_cm_entry)
*(.sti.text.dma_ctrl)
*(.sti.text)
*(.sti.data)
*(.sti.font)
*(.sti.text.end)
. = ALIGN(4096);
_sti_rom_end = .;
}
#if BITS == 64
. = ALIGN(16);
.opd : {
__start_opd = .;
*(.opd)
__end_opd = .;
} PROVIDE (__gp = .);
.plt : {
*(.plt)
}
.dlt : {
*(.dlt)
}
#endif
. = ALIGN(8);
.rodata : {
_rodata = . ;
*(.rodata) /* read-only data */
*(.rodata.*)
_erodata = . ;
}
. = ALIGN(8);
.data : {
_data = . ;
*(.data)
*(.data.*)
_edata = . ;
}
. = ALIGN(8);
.bss : {
_bss = . ;
*(.bss)
*(.bss.*)
*(COMMON)
_ebss = .;
}
/* STABS_DEBUG */
.note 0 : { *(.note) }
/* Sections to be discarded */
/DISCARD/ : {
}
}