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