18e9fbb64SMarc Hartmayer#include <asm/asm-offsets.h> 28e9fbb64SMarc Hartmayer 3*9801dbbeSNicholas PigginPHDRS 4*9801dbbeSNicholas Piggin{ 5*9801dbbeSNicholas Piggin text PT_LOAD FLAGS(5); 6*9801dbbeSNicholas Piggin data PT_LOAD FLAGS(6); 7*9801dbbeSNicholas Piggin} 8*9801dbbeSNicholas Piggin 9acc93cbfSJanosch FrankSECTIONS 10acc93cbfSJanosch Frank{ 11acc93cbfSJanosch Frank .lowcore : { 12acc93cbfSJanosch Frank /* 13acc93cbfSJanosch Frank * Initial short psw for disk boot, with 31 bit addressing for 14acc93cbfSJanosch Frank * non z/Arch environment compatibility and the instruction 15acc93cbfSJanosch Frank * address 0x4000 (cstart.S .init). 16acc93cbfSJanosch Frank */ 17acc93cbfSJanosch Frank . = 0; 18cd719531SJanis Schoetterl-Glausch lowcore = .; 19acc93cbfSJanosch Frank LONG(0x00080000) 20acc93cbfSJanosch Frank LONG(0x80004000) 21acc93cbfSJanosch Frank /* Restart new PSW for booting via PSW restart. */ 22acc93cbfSJanosch Frank . = 0x1a0; 23acc93cbfSJanosch Frank QUAD(0x0000000180000000) 24acc93cbfSJanosch Frank QUAD(0x0000000000004000) 25acc93cbfSJanosch Frank } 26acc93cbfSJanosch Frank . = 0x4000; 27b7909c92SJanosch Frank /* 28b7909c92SJanosch Frank * The stack grows down from 0x4000 to 0x2000, we pre-allocoate 298e9fbb64SMarc Hartmayer * a frame via the -STACK_FRAME_SIZE. 30b7909c92SJanosch Frank */ 318e9fbb64SMarc Hartmayer stackptr = . - STACK_FRAME_SIZE; 32a6c15401SJanosch Frank stacktop = .; 33b7909c92SJanosch Frank /* Start text 0x4000 */ 34acc93cbfSJanosch Frank .text : { 35acc93cbfSJanosch Frank *(.init) 36acc93cbfSJanosch Frank *(.text) 37acc93cbfSJanosch Frank *(.text.*) 38*9801dbbeSNicholas Piggin } :text 39b7909c92SJanosch Frank . = ALIGN(4K); 40acc93cbfSJanosch Frank etext = .; 41b7909c92SJanosch Frank /* End text */ 42b7909c92SJanosch Frank /* Start data */ 43acc93cbfSJanosch Frank .data : { 44acc93cbfSJanosch Frank *(.data) 45acc93cbfSJanosch Frank *(.data.rel*) 46*9801dbbeSNicholas Piggin } :data 47acc93cbfSJanosch Frank . = ALIGN(16); 48*9801dbbeSNicholas Piggin .rodata : { *(.rodata) *(.rodata.*) } :data 49acc93cbfSJanosch Frank . = ALIGN(16); 50acc93cbfSJanosch Frank .bss : { *(.bss) } 51b7909c92SJanosch Frank /* End data */ 52acc93cbfSJanosch Frank} 53