ldscript revision 1.1
11.133Spooka/* $NetBSD: ldscript,v 1.1 2004/12/24 10:32:40 joff Exp $ */ 21.1Spooka 31.1SpookaOUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", 41.64Spooka "elf32-littlearm") 51.1SpookaOUTPUT_ARCH(arm) 61.1SpookaENTRY(FLASH) 71.1SpookaMEMORY 81.1Spooka{ 91.1Spooka /* We will locate the .text section in flash, and will run directly 101.1Spooka from there just long enough to relocate our .text and .data into 111.1Spooka a small chunk of SDRAM starting at (SDRAM + 1M). */ 121.1Spooka flash : o = 0x60660000, l = 1408K 131.1Spooka sdram : o = 0x00100000, l = 1M /* kernel loads at 0x00200000 */ 141.1Spooka} 151.1SpookaSECTIONS 161.1Spooka{ 171.1Spooka FLASH = 0x60660000; 181.1Spooka 191.1Spooka /* Read-only sections, merged into text segment: */ 201.1Spooka __text_store = FLASH; 211.1Spooka .text : 221.1Spooka AT (FLASH) 231.1Spooka { 241.1Spooka *(.text) 251.1Spooka *(.text.*) 261.1Spooka *(.stub) 271.1Spooka *(.glue_7t) *(.glue_7) 281.1Spooka *(.rodata) *(.rodata.*) 291.1Spooka } > sdram =0 301.1Spooka PROVIDE (__etext = .); 311.1Spooka PROVIDE (_etext = .); 321.1Spooka PROVIDE (etext = .); 331.133Spooka __data_store = FLASH + SIZEOF(.text); 341.1Spooka .data : 351.1Spooka AT (LOADADDR(.text) + SIZEOF(.text)) 361.130Spooka { 371.41Spooka __data_start = . ; 381.41Spooka *(.data) 391.1Spooka *(.data.*) 401.1Spooka } > sdram 411.41Spooka .sdata : 421.87Sad AT (LOADADDR(.data) + SIZEOF(.data)) 431.87Sad { 441.45Spooka *(.sdata) 451.1Spooka *(.sdata.*) 461.1Spooka . = ALIGN(32 / 8); 471.1Spooka } > sdram 481.1Spooka _edata = .; 491.6Spooka PROVIDE (edata = .); 501.1Spooka __bss_start = .; 511.5Spooka __bss_start__ = .; 521.5Spooka .sbss : 531.123Spooka { 541.123Spooka PROVIDE (__sbss_start = .); 551.123Spooka PROVIDE (___sbss_start = .); 561.123Spooka *(.dynsbss) 571.123Spooka *(.sbss) 581.123Spooka *(.sbss.*) 591.123Spooka *(.scommon) 601.123Spooka PROVIDE (__sbss_end = .); 611.123Spooka PROVIDE (___sbss_end = .); 621.123Spooka } > sdram 631.123Spooka .bss : 641.123Spooka { 651.123Spooka *(.dynbss) 661.123Spooka *(.bss) 671.123Spooka *(.bss.*) 681.123Spooka *(COMMON) 691.123Spooka /* Align here to ensure that the .bss section occupies space up to 701.123Spooka _end. Align after .bss to ensure correct alignment even if the 711.123Spooka .bss section disappears because there are no input sections. */ 721.123Spooka . = ALIGN(32 / 8); 731.123Spooka } > sdram 741.123Spooka . = ALIGN(32 / 8); 751.123Spooka _end = .; 761.123Spooka _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; 771.123Spooka PROVIDE (end = .); 781.123Spooka .image (FLASH + SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.sdata)) : 791.123Spooka AT (LOADADDR(.sdata) + SIZEOF(.sdata)) 801.123Spooka { 811.123Spooka *(.image) 821.123Spooka } 831.123Spooka} 841.123Spooka