You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2017/02/23 22:33:14 UTC

[20/50] incubator-mynewt-core git commit: MYNEWT-545; switch from using load address to using load region.

MYNEWT-545; switch from using load address to using load region.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/4f4f6870
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/4f4f6870
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/4f4f6870

Branch: refs/heads/sensors_branch
Commit: 4f4f6870154765bea18eb6cf73d97b896bb0f59a
Parents: d3397d7
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Mon Feb 13 17:53:28 2017 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Mon Feb 13 17:53:28 2017 -0800

----------------------------------------------------------------------
 hw/bsp/arduino_primo_nrf52/split-primo.ld       |   4 +-
 hw/bsp/bmd200/split-nrf51dk.ld                  |   4 +-
 hw/bsp/bmd300eval/split-bmd300eval.ld           |   4 +-
 hw/bsp/nrf51dk/split-nrf51dk.ld                 |   4 +-
 hw/bsp/nrf52dk/split-nrf52dk.ld                 |   4 +-
 .../run_from_flash.ld                           | 204 ------------------
 .../run_from_loader.ld                          | 210 -------------------
 .../olimex_stm32-e407_devboard/run_from_sram.ld | 202 ------------------
 hw/bsp/rb-nano2/split-rb-nano2.ld               |   4 +-
 hw/bsp/stm32f4discovery/run_from_flash.ld       | 204 ------------------
 hw/bsp/stm32f4discovery/run_from_loader.ld      | 210 -------------------
 hw/bsp/stm32f4discovery/run_from_sram.ld        | 202 ------------------
 hw/bsp/usbmkw41z/boot-mkw41z512.ld              |   4 +-
 hw/bsp/usbmkw41z/mkw41z512.ld                   |   4 +-
 hw/mcu/nordic/nrf51xxx/nrf51.ld                 |   4 +-
 hw/mcu/nordic/nrf52xxx/nrf52.ld                 |   4 +-
 hw/mcu/stm/stm32f4xx/stm32f401.ld               |   8 +-
 hw/mcu/stm/stm32f4xx/stm32f407.ld               |   8 +-
 18 files changed, 28 insertions(+), 1260 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/arduino_primo_nrf52/split-primo.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/arduino_primo_nrf52/split-primo.ld b/hw/bsp/arduino_primo_nrf52/split-primo.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/arduino_primo_nrf52/split-primo.ld
+++ b/hw/bsp/arduino_primo_nrf52/split-primo.ld
@@ -122,7 +122,7 @@ SECTIONS
         _loader_ram_end = .;
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(.data*)
@@ -151,7 +151,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     /* Non-zeroed BSS.  This section is similar to BSS, with the following two
      * caveats:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/bmd200/split-nrf51dk.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/bmd200/split-nrf51dk.ld b/hw/bsp/bmd200/split-nrf51dk.ld
index bd8c2be..55d154e 100644
--- a/hw/bsp/bmd200/split-nrf51dk.ld
+++ b/hw/bsp/bmd200/split-nrf51dk.ld
@@ -116,7 +116,7 @@ SECTIONS
          _loader_ram_end = .;
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(.data*)
@@ -146,7 +146,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     .bss :
     {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/bmd300eval/split-bmd300eval.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/bmd300eval/split-bmd300eval.ld b/hw/bsp/bmd300eval/split-bmd300eval.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/bmd300eval/split-bmd300eval.ld
+++ b/hw/bsp/bmd300eval/split-bmd300eval.ld
@@ -122,7 +122,7 @@ SECTIONS
         _loader_ram_end = .;
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(.data*)
@@ -151,7 +151,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     /* Non-zeroed BSS.  This section is similar to BSS, with the following two
      * caveats:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/nrf51dk/split-nrf51dk.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk/split-nrf51dk.ld b/hw/bsp/nrf51dk/split-nrf51dk.ld
index bd8c2be..55d154e 100755
--- a/hw/bsp/nrf51dk/split-nrf51dk.ld
+++ b/hw/bsp/nrf51dk/split-nrf51dk.ld
@@ -116,7 +116,7 @@ SECTIONS
          _loader_ram_end = .;
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(.data*)
@@ -146,7 +146,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     .bss :
     {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/nrf52dk/split-nrf52dk.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf52dk/split-nrf52dk.ld b/hw/bsp/nrf52dk/split-nrf52dk.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/nrf52dk/split-nrf52dk.ld
+++ b/hw/bsp/nrf52dk/split-nrf52dk.ld
@@ -122,7 +122,7 @@ SECTIONS
         _loader_ram_end = .;
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(.data*)
@@ -151,7 +151,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     /* Non-zeroed BSS.  This section is similar to BSS, with the following two
      * caveats:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld b/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld
deleted file mode 100644
index caff52b..0000000
--- a/hw/bsp/olimex_stm32-e407_devboard/run_from_flash.ld
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- 
-/* Linker script for STM32F407 when running from flash and not using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{ 
-  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
-  CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
-  RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- * 
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebs
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-    .text :
-    {
-        __isr_vector_start = .;
-        KEEP(*(.isr_vector))
-        __isr_vector_end = .;
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-    } > FLASH
-
-    .ARM.extab : 
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > FLASH
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > FLASH
-
-    __exidx_end = .;
-
-    __etext = .;
-
-    .vector_relocation :
-    {
-        . = ALIGN(4);
-        __vector_tbl_reloc__ = .;
-        . = . + (__isr_vector_end - __isr_vector_start);
-        . = ALIGN(4);
-    } > RAM
-
-    .coredata : AT (__etext)
-    {
-        __coredata_start__ = .;
-        *(.data.core)
-        . = ALIGN(4);
-        __coredata_end__ = .;
-    } > CCM
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-        
-    .data : AT (__ecoredata)
-    {
-        __data_start__ = .;
-        *(vtable)
-        *(.data*)
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(4);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-
-        . = ALIGN(4);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        KEEP(*(.jcr*))
-        . = ALIGN(4);
-        /* All data end */
-        __data_end__ = .;
-
-    } > RAM
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > CCM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        __bss_start__ = .;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        __bss_end__ = .;
-    } > RAM
-
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > CCM
-
-    /* Set stack top to end of CCM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(CCM) + LENGTH(CCM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-    
-    /* Check for CCM overflow */
-    ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld b/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld
deleted file mode 100755
index e3061dc..0000000
--- a/hw/bsp/olimex_stm32-e407_devboard/run_from_loader.ld
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* Linker script for STM32F407 when running from flash and using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{ 
-  FLASH (rx) :  ORIGIN = 0x08020000, LENGTH = 384K /* First image slot. */
-  CCM (rwx) :   ORIGIN = 0x10000000, LENGTH = 64K
-  RAM (rwx) :   ORIGIN = 0x20000000, LENGTH = 128K
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- * 
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-    /* Reserve space at the start of the image for the header. */
-    .imghdr (NOLOAD):
-    {
-        . = . + 0x20;
-    } > FLASH
-
-    .text :
-    {
-        __isr_vector_start = .;
-        KEEP(*(.isr_vector))
-        __isr_vector_end = .;
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-    } > FLASH
-
-    .ARM.extab : 
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > FLASH
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > FLASH
-
-    __exidx_end = .;
-
-    __etext = .;
-
-    .vector_relocation :
-    {
-        . = ALIGN(4);
-        __vector_tbl_reloc__ = .;
-        . = . + (__isr_vector_end - __isr_vector_start);
-        . = ALIGN(4);
-    } > RAM
-
-    .coredata : AT (__etext)
-    {
-        __coredata_start__ = .;
-        *(.data.core)
-        . = ALIGN(4);
-        __coredata_end__ = .;
-    } > CCM
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-        
-    .data : AT (__ecoredata)
-    {
-        __data_start__ = .;
-        *(vtable)
-        *(.data*)
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(4);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-
-        . = ALIGN(4);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        KEEP(*(.jcr*))
-        . = ALIGN(4);
-        /* All data end */
-        __data_end__ = .;
-
-    } > RAM
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > CCM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        __bss_start__ = .;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        __bss_end__ = .;
-    } > RAM
-
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > CCM
-
-    /* Set stack top to end of CCM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(CCM) + LENGTH(CCM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-    
-    /* Check for CCM overflow */
-    ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld b/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld
deleted file mode 100755
index 31e4386..0000000
--- a/hw/bsp/olimex_stm32-e407_devboard/run_from_sram.ld
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* Linker script for STM32F407 when running code from SRAM */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{ 
-  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
-  CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
-  RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- * 
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-    .text :
-    {
-        __vector_tbl_reloc__ = .;
-        KEEP(*(.isr_vector))
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-    } > RAM
-
-    .ARM.extab : 
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > RAM
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > RAM
-
-    __exidx_end = .;
-
-    . = ALIGN(8);
-    __etext = .;
-
-    .coredata : AT (__etext)
-    {
-        __coredata_start__ = .;
-        *(.data.core)
-        . = ALIGN(8);
-        __coredata_end__ = .;
-    } > CCM
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-
-    /* This section is here so that the start of .data has the same VMA and LMA */
-    .ram_coredata (NOLOAD):
-    {
-        . = . + SIZEOF(.coredata);
-    } > RAM
-
-    .data : AT (__ecoredata)
-    {
-        __data_start__ = .;
-        *(vtable)
-        *(.data*)
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(4);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-
-        . = ALIGN(4);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        KEEP(*(.jcr*))
-        . = ALIGN(4);
-        /* All data end */
-        __data_end__ = .;
-
-    } > RAM
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > CCM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        __bss_start__ = .;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        __bss_end__ = .;
-    } > RAM
-
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > CCM
-
-    /* Set stack top to end of CCM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(CCM) + LENGTH(CCM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-    
-    /* Check for CCM overflow */
-    ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/rb-nano2/split-rb-nano2.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/rb-nano2/split-rb-nano2.ld b/hw/bsp/rb-nano2/split-rb-nano2.ld
index ebfac21..f4ffe5a 100755
--- a/hw/bsp/rb-nano2/split-rb-nano2.ld
+++ b/hw/bsp/rb-nano2/split-rb-nano2.ld
@@ -122,7 +122,7 @@ SECTIONS
         _loader_ram_end = .;
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(.data*)
@@ -151,7 +151,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     /* Non-zeroed BSS.  This section is similar to BSS, with the following two
      * caveats:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/stm32f4discovery/run_from_flash.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/run_from_flash.ld b/hw/bsp/stm32f4discovery/run_from_flash.ld
deleted file mode 100644
index caff52b..0000000
--- a/hw/bsp/stm32f4discovery/run_from_flash.ld
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- 
-/* Linker script for STM32F407 when running from flash and not using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{ 
-  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
-  CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
-  RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000 
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- * 
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebs
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-    .text :
-    {
-        __isr_vector_start = .;
-        KEEP(*(.isr_vector))
-        __isr_vector_end = .;
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-    } > FLASH
-
-    .ARM.extab : 
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > FLASH
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > FLASH
-
-    __exidx_end = .;
-
-    __etext = .;
-
-    .vector_relocation :
-    {
-        . = ALIGN(4);
-        __vector_tbl_reloc__ = .;
-        . = . + (__isr_vector_end - __isr_vector_start);
-        . = ALIGN(4);
-    } > RAM
-
-    .coredata : AT (__etext)
-    {
-        __coredata_start__ = .;
-        *(.data.core)
-        . = ALIGN(4);
-        __coredata_end__ = .;
-    } > CCM
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-        
-    .data : AT (__ecoredata)
-    {
-        __data_start__ = .;
-        *(vtable)
-        *(.data*)
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(4);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-
-        . = ALIGN(4);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        KEEP(*(.jcr*))
-        . = ALIGN(4);
-        /* All data end */
-        __data_end__ = .;
-
-    } > RAM
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > CCM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        __bss_start__ = .;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        __bss_end__ = .;
-    } > RAM
-
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > CCM
-
-    /* Set stack top to end of CCM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(CCM) + LENGTH(CCM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-    
-    /* Check for CCM overflow */
-    ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/stm32f4discovery/run_from_loader.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/run_from_loader.ld b/hw/bsp/stm32f4discovery/run_from_loader.ld
deleted file mode 100644
index e3061dc..0000000
--- a/hw/bsp/stm32f4discovery/run_from_loader.ld
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* Linker script for STM32F407 when running from flash and using the bootloader */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{ 
-  FLASH (rx) :  ORIGIN = 0x08020000, LENGTH = 384K /* First image slot. */
-  CCM (rwx) :   ORIGIN = 0x10000000, LENGTH = 64K
-  RAM (rwx) :   ORIGIN = 0x20000000, LENGTH = 128K
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- * 
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-    /* Reserve space at the start of the image for the header. */
-    .imghdr (NOLOAD):
-    {
-        . = . + 0x20;
-    } > FLASH
-
-    .text :
-    {
-        __isr_vector_start = .;
-        KEEP(*(.isr_vector))
-        __isr_vector_end = .;
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-    } > FLASH
-
-    .ARM.extab : 
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > FLASH
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > FLASH
-
-    __exidx_end = .;
-
-    __etext = .;
-
-    .vector_relocation :
-    {
-        . = ALIGN(4);
-        __vector_tbl_reloc__ = .;
-        . = . + (__isr_vector_end - __isr_vector_start);
-        . = ALIGN(4);
-    } > RAM
-
-    .coredata : AT (__etext)
-    {
-        __coredata_start__ = .;
-        *(.data.core)
-        . = ALIGN(4);
-        __coredata_end__ = .;
-    } > CCM
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-        
-    .data : AT (__ecoredata)
-    {
-        __data_start__ = .;
-        *(vtable)
-        *(.data*)
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(4);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-
-        . = ALIGN(4);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        KEEP(*(.jcr*))
-        . = ALIGN(4);
-        /* All data end */
-        __data_end__ = .;
-
-    } > RAM
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > CCM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        __bss_start__ = .;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        __bss_end__ = .;
-    } > RAM
-
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > CCM
-
-    /* Set stack top to end of CCM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(CCM) + LENGTH(CCM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-    
-    /* Check for CCM overflow */
-    ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/stm32f4discovery/run_from_sram.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/run_from_sram.ld b/hw/bsp/stm32f4discovery/run_from_sram.ld
deleted file mode 100644
index 31e4386..0000000
--- a/hw/bsp/stm32f4discovery/run_from_sram.ld
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* Linker script for STM32F407 when running code from SRAM */
-
-/* Linker script to configure memory regions. */
-MEMORY
-{ 
-  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
-  CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
-  RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x20000
-}
-
-/* Linker script to place sections and symbol values. Should be used together
- * with other linker script that defines memory regions FLASH and RAM.
- * It references following symbols, which must be defined in code:
- *   Reset_Handler : Entry of reset handler
- * 
- * It defines following symbols, which code can use without definition:
- *   __exidx_start
- *   __exidx_end
- *   __etext
- *   __data_start__
- *   __preinit_array_start
- *   __preinit_array_end
- *   __init_array_start
- *   __init_array_end
- *   __fini_array_start
- *   __fini_array_end
- *   __data_end__
- *   __bss_start__
- *   __bss_end__
- *   __end__
- *   end
- *   __HeapBase
- *   __HeapLimit
- *   __StackLimit
- *   __StackTop
- *   __stack
- *   __coredata_start__
- *   __coredata_end__
- *   __corebss_start__
- *   __corebss_end__
- *   __ecoredata
- *   __ecorebss
- */
-ENTRY(Reset_Handler)
-
-SECTIONS
-{
-    .text :
-    {
-        __vector_tbl_reloc__ = .;
-        KEEP(*(.isr_vector))
-        *(.text*)
-
-        KEEP(*(.init))
-        KEEP(*(.fini))
-
-        /* .ctors */
-        *crtbegin.o(.ctors)
-        *crtbegin?.o(.ctors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-        *(SORT(.ctors.*))
-        *(.ctors)
-
-        /* .dtors */
-        *crtbegin.o(.dtors)
-        *crtbegin?.o(.dtors)
-        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-        *(SORT(.dtors.*))
-        *(.dtors)
-
-        *(.rodata*)
-
-        KEEP(*(.eh_frame*))
-    } > RAM
-
-    .ARM.extab : 
-    {
-        *(.ARM.extab* .gnu.linkonce.armextab.*)
-    } > RAM
-
-    __exidx_start = .;
-    .ARM.exidx :
-    {
-        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-    } > RAM
-
-    __exidx_end = .;
-
-    . = ALIGN(8);
-    __etext = .;
-
-    .coredata : AT (__etext)
-    {
-        __coredata_start__ = .;
-        *(.data.core)
-        . = ALIGN(8);
-        __coredata_end__ = .;
-    } > CCM
-
-    __ecoredata = __etext + SIZEOF(.coredata);
-
-    /* This section is here so that the start of .data has the same VMA and LMA */
-    .ram_coredata (NOLOAD):
-    {
-        . = . + SIZEOF(.coredata);
-    } > RAM
-
-    .data : AT (__ecoredata)
-    {
-        __data_start__ = .;
-        *(vtable)
-        *(.data*)
-
-        /* preinit data */
-        PROVIDE_HIDDEN (__preinit_array_start = .);
-        KEEP(*(.preinit_array))
-        PROVIDE_HIDDEN (__preinit_array_end = .);
-
-        . = ALIGN(4);
-        /* init data */
-        PROVIDE_HIDDEN (__init_array_start = .);
-        KEEP(*(SORT(.init_array.*)))
-        KEEP(*(.init_array))
-        PROVIDE_HIDDEN (__init_array_end = .);
-
-
-        . = ALIGN(4);
-        /* finit data */
-        PROVIDE_HIDDEN (__fini_array_start = .);
-        KEEP(*(SORT(.fini_array.*)))
-        KEEP(*(.fini_array))
-        PROVIDE_HIDDEN (__fini_array_end = .);
-
-        KEEP(*(.jcr*))
-        . = ALIGN(4);
-        /* All data end */
-        __data_end__ = .;
-
-    } > RAM
-
-    .corebss (NOLOAD):
-    {
-        . = ALIGN(4);
-        __corebss_start__ = .;
-        *(.bss.core)
-        . = ALIGN(4);
-        __corebss_end__ = .;
-        *(.corebss*)
-        *(.bss.core.nz)
-        . = ALIGN(4);
-        __ecorebss = .;
-    } > CCM
-
-    .bss :
-    {
-        . = ALIGN(4);
-        __bss_start__ = .;
-        *(.bss*)
-        *(COMMON)
-        . = ALIGN(4);
-        __bss_end__ = .;
-    } > RAM
-
-    __HeapBase = .;
-    __HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
-
-    /* .stack_dummy section doesn't contains any symbols. It is only
-     * used for linker to calculate size of stack sections, and assign
-     * values to stack symbols later */
-    .stack_dummy (COPY):
-    {
-        *(.stack*)
-    } > CCM
-
-    /* Set stack top to end of CCM; stack limit is bottom of stack */
-    __StackTop = ORIGIN(CCM) + LENGTH(CCM);
-    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
-    PROVIDE(__stack = __StackTop);
-    
-    /* Check for CCM overflow */
-    ASSERT(__StackLimit >= __ecorebss, "CCM overflow!")
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/usbmkw41z/boot-mkw41z512.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/usbmkw41z/boot-mkw41z512.ld b/hw/bsp/usbmkw41z/boot-mkw41z512.ld
index 1f74b3d..94d25e7 100644
--- a/hw/bsp/usbmkw41z/boot-mkw41z512.ld
+++ b/hw/bsp/usbmkw41z/boot-mkw41z512.ld
@@ -126,7 +126,7 @@ SECTIONS
         . = ALIGN(4);
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(vtable)
@@ -157,7 +157,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     .bss :
     {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/bsp/usbmkw41z/mkw41z512.ld
----------------------------------------------------------------------
diff --git a/hw/bsp/usbmkw41z/mkw41z512.ld b/hw/bsp/usbmkw41z/mkw41z512.ld
index b6f30b8..f0e63b4 100644
--- a/hw/bsp/usbmkw41z/mkw41z512.ld
+++ b/hw/bsp/usbmkw41z/mkw41z512.ld
@@ -116,7 +116,7 @@ SECTIONS
         . = ALIGN(4);
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(vtable)
@@ -147,7 +147,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     .bss :
     {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/nordic/nrf51xxx/nrf51.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf51xxx/nrf51.ld b/hw/mcu/nordic/nrf51xxx/nrf51.ld
index 820510f..415ca92 100755
--- a/hw/mcu/nordic/nrf51xxx/nrf51.ld
+++ b/hw/mcu/nordic/nrf51xxx/nrf51.ld
@@ -109,7 +109,7 @@ SECTIONS
         . = ALIGN(4);
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(vtable)
@@ -140,7 +140,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     .bss :
     {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/nordic/nrf52xxx/nrf52.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/nrf52xxx/nrf52.ld b/hw/mcu/nordic/nrf52xxx/nrf52.ld
index fda1a8e..d60421f 100755
--- a/hw/mcu/nordic/nrf52xxx/nrf52.ld
+++ b/hw/mcu/nordic/nrf52xxx/nrf52.ld
@@ -108,7 +108,7 @@ SECTIONS
         . = ALIGN(4);
     } > RAM
 
-    .data : AT (__etext)
+    .data :
     {
         __data_start__ = .;
         *(vtable)
@@ -139,7 +139,7 @@ SECTIONS
         . = ALIGN(4);
         /* All data end */
         __data_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     /* Non-zeroed BSS.  This section is similar to BSS, with the following two
      * caveats:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/stm/stm32f4xx/stm32f401.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/stm/stm32f4xx/stm32f401.ld b/hw/mcu/stm/stm32f4xx/stm32f401.ld
index 3533cfb..f01557e 100644
--- a/hw/mcu/stm/stm32f4xx/stm32f401.ld
+++ b/hw/mcu/stm/stm32f4xx/stm32f401.ld
@@ -112,17 +112,17 @@ SECTIONS
         . = ALIGN(4);
     } > RAM
 
-    .coredata : AT (__etext)
+    .coredata :
     {
         __coredata_start__ = .;
         *(.data.core)
         . = ALIGN(4);
         __coredata_end__ = .;
-    } > RAM
+    } > RAM AT > FLASH
 
     __ecoredata = __etext + SIZEOF(.coredata);
 
-    .data : AT (__ecoredata)
+    .data :
     {
         __data_start__ = .;
         *(vtable)
@@ -153,7 +153,7 @@ SECTIONS
         /* All data end */
         __data_end__ = .;
 
-    } > RAM
+    } > RAM AT > FLASH
 
     .corebss (NOLOAD):
     {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/4f4f6870/hw/mcu/stm/stm32f4xx/stm32f407.ld
----------------------------------------------------------------------
diff --git a/hw/mcu/stm/stm32f4xx/stm32f407.ld b/hw/mcu/stm/stm32f4xx/stm32f407.ld
index 1d06f76..7d2887a 100644
--- a/hw/mcu/stm/stm32f4xx/stm32f407.ld
+++ b/hw/mcu/stm/stm32f4xx/stm32f407.ld
@@ -112,17 +112,17 @@ SECTIONS
         . = ALIGN(4);
     } > RAM
 
-    .coredata : AT (__etext)
+    .coredata :
     {
         __coredata_start__ = .;
         *(.data.core)
         . = ALIGN(4);
         __coredata_end__ = .;
-    } > CCM
+    } > CCM AT > FLASH
 
     __ecoredata = __etext + SIZEOF(.coredata);
 
-    .data : AT (__ecoredata)
+    .data :
     {
         __data_start__ = .;
         *(vtable)
@@ -153,7 +153,7 @@ SECTIONS
         /* All data end */
         __data_end__ = .;
 
-    } > RAM
+    } > RAM AT > FLASH
 
     .corebss (NOLOAD):
     {