11.7Smlelstv/*	$NetBSD: ldscript.elf,v 1.7 2023/02/11 22:42:20 mlelstv Exp $	*/
21.1Schris
31.1SchrisENTRY(KERNEL_BASE_phys)
41.1SchrisSECTIONS
51.1Schris{
61.7Smlelstv  KERNEL_BASE_phys = 0xF0000000;
71.7Smlelstv  KERNEL_BASE_virt = 0xF0000000;
81.7Smlelstv
91.1Schris  /* Kernel start: */
101.7Smlelstv  .start (KERNEL_BASE_phys) :
111.1Schris  {
121.1Schris    *(.start)
131.5Suebayasi  }
141.1Schris
151.1Schris  /* Read-only sections, merged into text segment: */
161.7Smlelstv  .text (KERNEL_BASE_virt + SIZEOF(.start)) :
171.7Smlelstv  AT (LOADADDR(.start) + SIZEOF(.start))
181.1Schris  {
191.1Schris    *(.text)
201.1Schris    *(.text.*)
211.1Schris    *(.stub)
221.1Schris    *(.glue_7t) *(.glue_7)
231.1Schris    *(.rodata) *(.rodata.*)
241.5Suebayasi  }
251.1Schris  PROVIDE (__etext = .);
261.1Schris  PROVIDE (_etext = .);
271.1Schris  PROVIDE (etext = .);
281.1Schris  /* Adjust the address for the data segment to start on the next page
291.1Schris     boundary.  */
301.1Schris  . = ALIGN(0x8000);
311.1Schris  .data    :
321.1Schris  {
331.1Schris    __data_start = . ;
341.1Schris    *(.data)
351.1Schris    *(.data.*)
361.1Schris  }
371.3Suebayasi  .sdata     :
381.1Schris  {
391.3Suebayasi    *(.sdata)
401.1Schris    *(.sdata.*)
411.1Schris  }
421.1Schris  _edata = .;
431.1Schris  PROVIDE (edata = .);
441.1Schris  __bss_start = .;
451.1Schris  __bss_start__ = .;
461.1Schris  .sbss      :
471.1Schris  {
481.1Schris    PROVIDE (__sbss_start = .);
491.1Schris    PROVIDE (___sbss_start = .);
501.1Schris    *(.dynsbss)
511.1Schris    *(.sbss)
521.1Schris    *(.sbss.*)
531.1Schris    *(.scommon)
541.1Schris    PROVIDE (__sbss_end = .);
551.1Schris    PROVIDE (___sbss_end = .);
561.1Schris  }
571.1Schris  .bss       :
581.1Schris  {
591.4Suebayasi    *(.dynbss)
601.4Suebayasi    *(.bss)
611.4Suebayasi    *(.bss.*)
621.4Suebayasi    *(COMMON)
631.4Suebayasi    /* Align here to ensure that the .bss section occupies space up to
641.4Suebayasi       _end.  Align after .bss to ensure correct alignment even if the
651.4Suebayasi       .bss section disappears because there are no input sections.  */
661.4Suebayasi    . = ALIGN(32 / 8);
671.1Schris  }
681.1Schris  . = ALIGN(32 / 8);
691.1Schris  _end = .;
701.1Schris  _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
711.1Schris  PROVIDE (end = .);
721.1Schris}
73