Module Name: src Committed By: uwe Date: Mon Dec 18 23:12:43 UTC 2023
Modified Files: src/sys/arch/netwinder/conf: kern.ldscript Log Message: netwinder: fix base, minimize kern.ldscript diff with evbarm New binutils align to 0x10000, not 0x8000 (which makes sense), so adjust the base to be 0x10000 so that we are loaded at a page boundary and (I guess) don't smash the firmware in the first page. While here, sync with ldscript.evbarm. Makes my netwinder boot again. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/arch/netwinder/conf/kern.ldscript Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/netwinder/conf/kern.ldscript diff -u src/sys/arch/netwinder/conf/kern.ldscript:1.10 src/sys/arch/netwinder/conf/kern.ldscript:1.11 --- src/sys/arch/netwinder/conf/kern.ldscript:1.10 Sun Aug 23 08:57:25 2015 +++ src/sys/arch/netwinder/conf/kern.ldscript Mon Dec 18 23:12:43 2023 @@ -1,29 +1,45 @@ -/* $NetBSD: kern.ldscript,v 1.10 2015/08/23 08:57:25 uebayasi Exp $ */ +/* $NetBSD: kern.ldscript,v 1.11 2023/12/18 23:12:43 uwe Exp $ */ -ENTRY(KERNEL_BASE_phys) SECTIONS { + KERNEL_BASE_phys = 0x00010000; + KERNEL_BASE_virt = 0xf0010000; + /* Kernel start: */ - .start : + .start (KERNEL_BASE_phys) : { *(.start) } /* Read-only sections, merged into text segment: */ - .text : + .text (KERNEL_BASE_virt + SIZEOF(.start)) : + AT (LOADADDR(.start) + SIZEOF(.start)) { *(.text) *(.text.*) *(.stub) *(.glue_7t) *(.glue_7) - *(.rodata) *(.rodata.*) } + + PROVIDE(__rodata_start = .); + .rodata : + { + *(.rodata) + *(.rodata.*) + . = ALIGN(64); + __CTOR_LIST__ = .; + *(.ctors) + *(.init_array) + __CTOR_END__ = .; + } + PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); - /* Adjust the address for the data segment to start on the next page + + /* Adjust the address for the data segment to start on the next large page boundary. */ - . = ALIGN(0x8000); + . = ALIGN(0x10000); .data : { __data_start = . ; @@ -35,6 +51,7 @@ SECTIONS *(.sdata) *(.sdata.*) } + . = ALIGN(8); _edata = .; PROVIDE (edata = .); __bss_start = .; @@ -66,25 +83,3 @@ SECTIONS _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; PROVIDE (end = .); } -SECTIONS -{ - KERNEL_BASE_phys = 0x0000c000; - KERNEL_BASE_virt = 0xf000c000; - - .start (KERNEL_BASE_phys) : - { - *(.start) - } =0 - - .text (KERNEL_BASE_virt + SIZEOF(.start)) : - AT (LOADADDR(.start) + SIZEOF(.start)) - { - *(.text) - } =0 - - .data : - AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text))) - { - *(.data) - } -}