This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit 2acc1bce5f935931e5ed54d9c5984b03c39a5b9b
Author: Wiktor Kwiatkowski <[email protected]>
AuthorDate: Mon Aug 31 11:46:06 2026 +0200

    bsp/apollo3: Use common startup code and linker script
    
    This removes local startup code and linker scripts
---
 hw/bsp/apollo3_evb/apollo3.ld                      |  31 --
 hw/bsp/apollo3_evb/boot-apollo3.ld                 |  35 ---
 hw/bsp/apollo3_evb/bsp.yml                         |   9 +-
 hw/bsp/apollo3_evb/pkg.yml                         |   1 +
 .../src/arch/cortex_m4/gcc_startup_apollo3.s       | 313 ---------------------
 5 files changed, 2 insertions(+), 387 deletions(-)

diff --git a/hw/bsp/apollo3_evb/apollo3.ld b/hw/bsp/apollo3_evb/apollo3.ld
deleted file mode 100644
index 9c0f70d3e..000000000
--- a/hw/bsp/apollo3_evb/apollo3.ld
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Linker script for Nordic Semiconductor nRF5 devices
- *
- * Version: Sourcery G++ 4.5-1
- * Support: https://support.codesourcery.com/GNUToolchain/
- *
- * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
- *
- * The authors hereby grant permission to use, copy, modify, distribute,
- * and license this software and its documentation for any purpose, provided
- * that existing copyright notices are retained in all copies and that this
- * notice is included verbatim in any distributions.  No written agreement,
- * license, or royalty fee is required for any of the authorized uses.
- * Modifications to this software may be copyrighted by their authors
- * and need not follow the licensing terms described here, provided that
- * the new terms are clearly indicated on the first page of each file where
- * they apply.
- */
-MEMORY
-{
-  FLASH (rx) : ORIGIN = 0x00014000, LENGTH = 0x38000
-
-  /* NOTE: The last 8 bytes of SRAM are intentionally excluded.  The Apollo3's
-   * in-ROM boot loader crashes when the initial stack pointer is at the end of
-   * RAM.  Reducing the size of RAM slightly forces the initial MSP down by 8
-   * bytes.
-   */
-  RAM (rwx) : ORIGIN = 0x10000000, LENGTH = 0x5fff8
-}
-
-/* This linker script is used for images and thus contains an image header */
-_imghdr_size = 0x20;
diff --git a/hw/bsp/apollo3_evb/boot-apollo3.ld 
b/hw/bsp/apollo3_evb/boot-apollo3.ld
deleted file mode 100644
index 300deb80a..000000000
--- a/hw/bsp/apollo3_evb/boot-apollo3.ld
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Linker script for Nordic Semiconductor nRF5 devices
- *
- * Version: Sourcery G++ 4.5-1
- * Support: https://support.codesourcery.com/GNUToolchain/
- *
- * Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
- *
- * The authors hereby grant permission to use, copy, modify, distribute,
- * and license this software and its documentation for any purpose, provided
- * that existing copyright notices are retained in all copies and that this
- * notice is included verbatim in any distributions.  No written agreement,
- * license, or royalty fee is required for any of the authorized uses.
- * Modifications to this software may be copyrighted by their authors
- * and need not follow the licensing terms described here, provided that
- * the new terms are clearly indicated on the first page of each file where
- * they apply.
- */
-MEMORY
-{
-  /*
-   * Ambiq SBL cannot be removed by customers and will start programs at 0xc000
-   * Ambiq customer bootloaders can be placed hereß
-   */
-  FLASH (rx) : ORIGIN = 0x0000c000, LENGTH = 0x8000
-
-  /* NOTE: The last 8 bytes of SRAM are intentionally excluded.  The Apollo3's
-   * in-ROM boot loader crashes when the initial stack pointer is at the end of
-   * RAM.  Reducing the size of RAM slightly forces the initial MSP down by 8
-   * bytes.
-   */
-  RAM (rwx) : ORIGIN = 0x10000000, LENGTH = 0x5fff8
-}
-
-/* The bootloader does not contain an image header */
-_imghdr_size = 0x0;
diff --git a/hw/bsp/apollo3_evb/bsp.yml b/hw/bsp/apollo3_evb/bsp.yml
index 6ed28b5ee..dadd4eaf0 100644
--- a/hw/bsp/apollo3_evb/bsp.yml
+++ b/hw/bsp/apollo3_evb/bsp.yml
@@ -17,19 +17,12 @@
 # under the License.
 #
 
-# Flash sector size: 8 kB.
-
 bsp.name: "Apollo3 EVB"
 bsp.url: https://ambiq.com/apollo3/
 bsp.maker: "Ambiq Micro"
 bsp.arch: cortex_m4
 bsp.compiler: "@apache-mynewt-core/compiler/arm-none-eabi-m4"
-bsp.linkerscript:
-    - "@apache-mynewt-core/hw/bsp/apollo3_evb/apollo3.ld"
-    - "@apache-mynewt-core/hw/mcu/ambiq/apollo3/apollo3.ld"
-bsp.linkerscript.BOOT_LOADER.OVERWRITE:
-    - "@apache-mynewt-core/hw/bsp/apollo3_evb/boot-apollo3.ld"
-    - "@apache-mynewt-core/hw/mcu/ambiq/apollo3/apollo3.ld"
+bsp.linkerscript: autogenerated
 bsp.downloadscript: 
"@apache-mynewt-core/hw/bsp/apollo3_evb/apollo3_evb_download.sh"
 bsp.debugscript: "@apache-mynewt-core/hw/bsp/apollo3_evb/apollo3_evb_debug.sh"
 
diff --git a/hw/bsp/apollo3_evb/pkg.yml b/hw/bsp/apollo3_evb/pkg.yml
index f7ab3c0af..2305815ec 100644
--- a/hw/bsp/apollo3_evb/pkg.yml
+++ b/hw/bsp/apollo3_evb/pkg.yml
@@ -34,3 +34,4 @@ pkg.deps:
     - "@apache-mynewt-core/hw/mcu/ambiq/apollo3"
     - "@apache-mynewt-core/libc"
     - '@apache-mynewt-core/sys/flash_map'
+    - '@apache-mynewt-core/boot/startup'
diff --git a/hw/bsp/apollo3_evb/src/arch/cortex_m4/gcc_startup_apollo3.s 
b/hw/bsp/apollo3_evb/src/arch/cortex_m4/gcc_startup_apollo3.s
deleted file mode 100644
index 34df6932d..000000000
--- a/hw/bsp/apollo3_evb/src/arch/cortex_m4/gcc_startup_apollo3.s
+++ /dev/null
@@ -1,313 +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.
- */
-
-    .syntax unified
-    .arch armv7e-m
-
-    .section .stack
-    .align 3
-    .equ    Stack_Size, 432
-    .globl    __StackTop
-    .globl    __StackLimit
-__StackLimit:
-    .space    Stack_Size
-    .size __StackLimit, . - __StackLimit
-__StackTop:
-    .size __StackTop, . - __StackTop
-
-    .section .heap
-    .align 3
-#ifdef __HEAP_SIZE
-    .equ    Heap_Size, __HEAP_SIZE
-#else
-    .equ    Heap_Size, 0
-#endif
-    .globl    __HeapBase
-    .globl    __HeapLimit
-__HeapBase:
-    .if    Heap_Size
-    .space    Heap_Size
-    .endif
-    .size __HeapBase, . - __HeapBase
-__HeapLimit:
-    .size __HeapLimit, . - __HeapLimit
-
-    .section .isr_vector
-    .align 2
-    .globl __isr_vector
-__isr_vector:
-    .long    __StackTop                 /* Top of Stack */
-    .long   Reset_Handler               /* Reset Handler */
-    .long   NMI_Handler                 /* NMI Handler */
-    .long   HardFault_Handler           /* Hard Fault Handler */
-    .long   MemoryManagement_Handler    /* Memory Fault */
-    .long   BusFault_Handler            /* Bus Fault */
-    .long   UsageFault_Handler          /* Usage Fault */
-    .long   SecureFault_Handler         /* Secure Fault */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   SVC_Handler                 /* SVCall Handler */
-    .long   DebugMon_Handler            /* Debug Monitor */
-    .long   0                           /* Reserved */
-    .long   PendSV_Handler              /* PendSV Handler */
-    .long   SysTick_Handler             /* SysTick Handler */
-
-  /* External Interrupts */
-    .long   BROWNOUT_IRQHandler
-    .long   WATCHDOG_IRQHandler
-    .long   RTC_IRQHandler
-    .long   VCOMP_IRQHandler
-    .long   IOSLAVE_IOS_IRQHandler
-    .long   IOSLAVE_ACC_IRQHandler
-    .long   IOMASTER0_IRQHandler
-    .long   IOMASTER1_IRQHandler
-    .long   IOMASTER2_IRQHandler
-    .long   IOMASTER3_IRQHandler
-    .long   IOMASTER4_IRQHandler
-    .long   IOMASTER5_IRQHandler
-    .long   BLE_IRQHandler
-    .long   GPIO_IRQHandler
-    .long   CTIMER_IRQHandler
-    .long   UART0_IRQHandler
-    .long   UART1_IRQHandler
-    .long   SCARD_IRQHandler
-    .long   ADC_IRQHandler
-    .long   PDM_IRQHandler
-    .long   MSPI_IRQHandler
-    .long   SOFTWARE0_IRQHandler
-    .long   STIMER_IRQHandler
-    .long   STIMER_CMPR0_IRQHandler
-    .long   STIMER_CMPR1_IRQHandler
-    .long   STIMER_CMPR2_IRQHandler
-    .long   STIMER_CMPR3_IRQHandler
-    .long   STIMER_CMPR4_IRQHandler
-    .long   STIMER_CMPR5_IRQHandler
-    .long   STIMER_CMPR6_IRQHandler
-    .long   STIMER_CMPR7_IRQHandler
-    .long   CLKGEN_IRQHandler
-__ble_patch:
-/* The patch table should pad the vector table size to a total of 64 entries
- * (16 core + 48 periph) such that code begins at offset 0x100.
- */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-    .long   0                           /* Reserved */
-
-    .size    __isr_vector, . - __isr_vector
-
-/* Reset Handler */
-
-    .text
-    .thumb
-    .thumb_func
-    .align 1
-    .globl    Reset_Handler
-    .type    Reset_Handler, %function
-Reset_Handler:
-    .fnstart
-
-    /* Clear BSS */
-    mov     r0, #0
-    ldr     r2, =__bss_start__
-    ldr     r3, =__bss_end__
-.bss_zero_loop:
-    cmp     r2, r3
-    itt     lt
-    strlt   r0, [r2], #4
-    blt    .bss_zero_loop
-
-/*     Loop to copy data from read only memory to RAM. The ranges
- *      of copy from/to are specified by following symbols evaluated in
- *      linker script.
- *      __etext: End of code section, i.e., begin of data sections to copy 
from.
- *      __data_start__/__data_end__: RAM address range that data should be
- *      copied to. Both must be aligned to 4 bytes boundary.  */
-
-    ldr    r1, =__etext
-    ldr    r2, =__data_start__
-    ldr    r3, =__data_end__
-
-    subs    r3, r2
-    ble     .LC0
-
-.LC1:
-    subs    r3, 4
-    ldr    r0, [r1,r3]
-    str    r0, [r2,r3]
-    bgt    .LC1
-
-.LC0:
-
-       ldr             r0, =__StackTop
-       msr             psp, r0
-       msr             msp, r0
-
-    LDR     R0, =__HeapBase
-    LDR     R1, =__HeapLimit
-    BL      _sbrkInit
-
-    LDR     R0, =SystemInit
-    BLX     R0
-
-    BL      hal_system_init
-
-    LDR     R0, =_start
-    BX      R0
-
-    .pool
-    .cantunwind
-    .fnend
-    .size   Reset_Handler,.-Reset_Handler
-
-    .section ".text"
-
-
-/* Dummy Exception Handlers (infinite loops which can be modified) */
-
-    .weak   NMI_Handler
-    .type   NMI_Handler, %function
-NMI_Handler:
-    B       .
-    .size   NMI_Handler, . - NMI_Handler
-
-
-    .weak   HardFault_Handler
-    .type   HardFault_Handler, %function
-HardFault_Handler:
-    B       .
-    .size   HardFault_Handler, . - HardFault_Handler
-
-
-    .weak   MemoryManagement_Handler
-    .type   MemoryManagement_Handler, %function
-MemoryManagement_Handler:
-    B       .
-    .size   MemoryManagement_Handler, . - MemoryManagement_Handler
-
-
-    .weak   BusFault_Handler
-    .type   BusFault_Handler, %function
-BusFault_Handler:
-    B       .
-    .size   BusFault_Handler, . - BusFault_Handler
-
-
-    .weak   UsageFault_Handler
-    .type   UsageFault_Handler, %function
-UsageFault_Handler:
-    B       .
-    .size   UsageFault_Handler, . - UsageFault_Handler
-
-
-    .weak   SecureFault_Handler
-    .type   SecureFault_Handler, %function
-SecureFault_Handler:
-    B       .
-    .size   SecureFault_Handler, . - SecureFault_Handler
-
-
-    .weak   SVC_Handler
-    .type   SVC_Handler, %function
-SVC_Handler:
-    B       .
-    .size   SVC_Handler, . - SVC_Handler
-
-
-    .weak   DebugMon_Handler
-    .type   DebugMon_Handler, %function
-DebugMon_Handler:
-    B       .
-    .size   DebugMon_Handler, . - DebugMon_Handler
-
-
-    .weak   PendSV_Handler
-    .type   PendSV_Handler, %function
-PendSV_Handler:
-    B       .
-    .size   PendSV_Handler, . - PendSV_Handler
-
-
-    .weak   SysTick_Handler
-    .type   SysTick_Handler, %function
-SysTick_Handler:
-    B       .
-    .size   SysTick_Handler, . - SysTick_Handler
-
-
-/* IRQ Handlers */
-
-    .globl  Default_Handler
-    .type   Default_Handler, %function
-Default_Handler:
-    B       .
-    .size   Default_Handler, . - Default_Handler
-
-    .macro  IRQ handler
-    .weak   \handler
-    .set    \handler, Default_Handler
-    .endm
-
-    IRQ BROWNOUT_IRQHandler
-    IRQ WATCHDOG_IRQHandler
-    IRQ RTC_IRQHandler
-    IRQ VCOMP_IRQHandler
-    IRQ IOSLAVE_IOS_IRQHandler
-    IRQ IOSLAVE_ACC_IRQHandler
-    IRQ IOMASTER0_IRQHandler
-    IRQ IOMASTER1_IRQHandler
-    IRQ IOMASTER2_IRQHandler
-    IRQ IOMASTER3_IRQHandler
-    IRQ IOMASTER4_IRQHandler
-    IRQ IOMASTER5_IRQHandler
-    IRQ BLE_IRQHandler
-    IRQ GPIO_IRQHandler
-    IRQ CTIMER_IRQHandler
-    IRQ UART0_IRQHandler
-    IRQ UART1_IRQHandler
-    IRQ SCARD_IRQHandler
-    IRQ ADC_IRQHandler
-    IRQ PDM_IRQHandler
-    IRQ MSPI_IRQHandler
-    IRQ SOFTWARE0_IRQHandler
-    IRQ STIMER_IRQHandler
-    IRQ STIMER_CMPR0_IRQHandler
-    IRQ STIMER_CMPR1_IRQHandler
-    IRQ STIMER_CMPR2_IRQHandler
-    IRQ STIMER_CMPR3_IRQHandler
-    IRQ STIMER_CMPR4_IRQHandler
-    IRQ STIMER_CMPR5_IRQHandler
-    IRQ STIMER_CMPR6_IRQHandler
-    IRQ STIMER_CMPR7_IRQHandler
-    IRQ CLKGEN_IRQHandler
-
-  .end

Reply via email to