From b473923f42427bc314519a84e64bb3c3477e8de1 Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Sat, 7 Aug 2021 09:51:16 +0200 Subject: [PATCH] Remove redundant linker files We use the linker files provided by nuclei-sdk instead --- .../gcc_gd32vf103x8_flashxip.ld | 284 ------------------ .../gcc_gd32vf103xb_flashxip.ld | 284 ------------------ 2 files changed, 568 deletions(-) delete mode 100644 hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103x8_flashxip.ld delete mode 100644 hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103xb_flashxip.ld diff --git a/hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103x8_flashxip.ld b/hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103x8_flashxip.ld deleted file mode 100644 index 10f3747e0..000000000 --- a/hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103x8_flashxip.ld +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (c) 2019 - 2020 Nuclei Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed 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 - * - * 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. - */ -/****************************************************************************** - * @file gcc_gd32vf103x8_flashxip.ld - * @brief GNU Linker Script for gd32vf103x8 based device - * @version V1.0.0 - * @date 1. Dec 2020 - ******************************************************************************/ - -/*********** Use Configuration Wizard in Context Menu *************************/ - -OUTPUT_ARCH( "riscv" ) -/********************* Flash Configuration ************************************ - * Flash Configuration - * Flash Base Address <0x0-0xFFFFFFFF:8> - * Flash Size (in Bytes) <0x0-0xFFFFFFFF:8> - * - */ -__ROM_BASE = 0x08000000; -__ROM_SIZE = 0x00010000; - -/*--------------------- ILM RAM Configuration --------------------------- - * ILM RAM Configuration - * ILM RAM Base Address <0x0-0xFFFFFFFF:8> - * ILM RAM Size (in Bytes) <0x0-0xFFFFFFFF:8> - * - */ -__ILM_RAM_BASE = 0x80000000; -__ILM_RAM_SIZE = 0x00010000; - -/*--------------------- Embedded RAM Configuration --------------------------- - * RAM Configuration - * RAM Base Address <0x0-0xFFFFFFFF:8> - * RAM Size (in Bytes) <0x0-0xFFFFFFFF:8> - * -*/ -__RAM_BASE = 0x20000000; -__RAM_SIZE = 0x00005000; - -/********************* Stack / Heap Configuration **************************** - * Stack / Heap Configuration - * Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> - * Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> - * - */ -__STACK_SIZE = 0x00000800; -__HEAP_SIZE = 0x00000800; - -/**************************** end of configuration section ********************/ - -/* Define base address and length of flash and ram */ -MEMORY -{ - flash (rxai!w) : ORIGIN = __ROM_BASE, LENGTH = __ROM_SIZE - ram (wxa!ri) : ORIGIN = __RAM_BASE, LENGTH = __RAM_SIZE -} -/* Linker script to place sections and symbol values. Should be used together - * with other linker script that defines memory regions FLASH,ILM and RAM. - * It references following symbols, which must be defined in code: - * _Start : Entry of reset handler - * - * It defines following symbols, which code can use without definition: - * _ilm_lma - * _ilm - * __etext - * _etext - * etext - * _eilm - * __preinit_array_start - * __preinit_array_end - * __init_array_start - * __init_array_end - * __fini_array_start - * __fini_array_end - * _data_lma - * _edata - * edata - * __data_end__ - * __bss_start - * __fbss - * _end - * end - * __heap_end - * __StackLimit - * __StackTop - * __STACK_SIZE - */ -/* Define entry label of program */ -ENTRY(_start) -SECTIONS -{ - __STACK_SIZE = DEFINED(__STACK_SIZE) ? __STACK_SIZE : 2K; - - .init : - { - /* vector table locate at flash */ - *(.vtable) - KEEP (*(SORT_NONE(.init))) - } >flash AT>flash - - .ilalign : - { - . = ALIGN(4); - /* Create a section label as _ilm_lma which located at flash */ - PROVIDE( _ilm_lma = . ); - } >flash AT>flash - - .ialign : - { - /* Create a section label as _ilm which located at flash */ - PROVIDE( _ilm = . ); - } >flash AT>flash - - /* Code section located at flash */ - .text : - { - *(.text.unlikely .text.unlikely.*) - *(.text.startup .text.startup.*) - *(.text .text.*) - *(.gnu.linkonce.t.*) - } >flash AT>flash - - .rodata : ALIGN(4) - { - . = ALIGN(4); - *(.rdata) - *(.rodata .rodata.*) - /* section information for initial. */ - . = ALIGN(4); - __rt_init_start = .; - KEEP(*(SORT(.rti_fn*))) - __rt_init_end = .; - /* section information for finsh shell */ - . = ALIGN(4); - __fsymtab_start = .; - KEEP(*(FSymTab)) - __fsymtab_end = .; - . = ALIGN(4); - __vsymtab_start = .; - KEEP(*(VSymTab)) - __vsymtab_end = .; - *(.gnu.linkonce.r.*) - . = ALIGN(8); - *(.srodata.cst16) - *(.srodata.cst8) - *(.srodata.cst4) - *(.srodata.cst2) - *(.srodata .srodata.*) - } >flash AT>flash - - .fini : - { - KEEP (*(SORT_NONE(.fini))) - } >flash AT>flash - - . = ALIGN(4); - - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - PROVIDE( _eilm = . ); - - - .preinit_array : - { - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - } >flash AT>flash - - .init_array : - { - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) - KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) - PROVIDE_HIDDEN (__init_array_end = .); - } >flash AT>flash - - .fini_array : - { - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) - KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) - PROVIDE_HIDDEN (__fini_array_end = .); - } >flash AT>flash - - .ctors : - { - /* gcc uses crtbegin.o to find the start of - * the constructors, so we make sure it is - * first. Because this is a wildcard, it - * doesn't matter if the user does not - * actually link against crtbegin.o; the - * linker won't look for a file to match a - * wildcard. The wildcard also means that it - * doesn't matter which directory crtbegin.o - * is in. - */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - * the crtend.o file until after the sorted ctors. - * The .ctor section from the crtend file contains the - * end of ctors marker and it must be last - */ - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >flash AT>flash - - .dtors : - { - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >flash AT>flash - - .lalign : - { - . = ALIGN(4); - PROVIDE( _data_lma = . ); - } >flash AT>flash - - .dalign : - { - . = ALIGN(4); - PROVIDE( _data = . ); - } >ram AT>flash - - /* Define data section virtual address is ram and physical address is flash */ - .data : - { - *(.data .data.*) - *(.gnu.linkonce.d.*) - . = ALIGN(8); - PROVIDE( __global_pointer$ = . + 0x800 ); - *(.sdata .sdata.* .sdata*) - *(.gnu.linkonce.s.*) - } >ram AT>flash - - . = ALIGN(4); - PROVIDE( _edata = . ); - PROVIDE( edata = . ); - - PROVIDE( _fbss = . ); - PROVIDE( __bss_start = . ); - .bss : - { - *(.sbss*) - *(.gnu.linkonce.sb.*) - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >ram AT>ram - - . = ALIGN(8); - PROVIDE( _end = . ); - PROVIDE( end = . ); - /* Define stack and head location at ram */ - .stack ORIGIN(ram) + LENGTH(ram) - __STACK_SIZE : - { - PROVIDE( _heap_end = . ); - . = __STACK_SIZE; - PROVIDE( _sp = . ); - } >ram AT>ram -} diff --git a/hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103xb_flashxip.ld b/hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103xb_flashxip.ld deleted file mode 100644 index 14d317f14..000000000 --- a/hw/bsp/gd32vf103_longan_nano/gcc_gd32vf103xb_flashxip.ld +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (c) 2019 - 2020 Nuclei Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed 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 - * - * 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. - */ -/****************************************************************************** - * @file gcc_gd32vf103xb_flashxip.ld - * @brief GNU Linker Script for gd32vf103xb based device - * @version V1.0.0 - * @date 1. Dec 2020 - ******************************************************************************/ - -/*********** Use Configuration Wizard in Context Menu *************************/ - -OUTPUT_ARCH( "riscv" ) -/********************* Flash Configuration ************************************ - * Flash Configuration - * Flash Base Address <0x0-0xFFFFFFFF:8> - * Flash Size (in Bytes) <0x0-0xFFFFFFFF:8> - * - */ -__ROM_BASE = 0x08000000; -__ROM_SIZE = 0x00020000; - -/*--------------------- ILM RAM Configuration --------------------------- - * ILM RAM Configuration - * ILM RAM Base Address <0x0-0xFFFFFFFF:8> - * ILM RAM Size (in Bytes) <0x0-0xFFFFFFFF:8> - * - */ -__ILM_RAM_BASE = 0x80000000; -__ILM_RAM_SIZE = 0x00010000; - -/*--------------------- Embedded RAM Configuration --------------------------- - * RAM Configuration - * RAM Base Address <0x0-0xFFFFFFFF:8> - * RAM Size (in Bytes) <0x0-0xFFFFFFFF:8> - * -*/ -__RAM_BASE = 0x20000000; -__RAM_SIZE = 0x00008000; - -/********************* Stack / Heap Configuration **************************** - * Stack / Heap Configuration - * Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> - * Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> - * - */ -__STACK_SIZE = 0x00000800; -__HEAP_SIZE = 0x00000800; - -/**************************** end of configuration section ********************/ - -/* Define base address and length of flash and ram */ -MEMORY -{ - flash (rxai!w) : ORIGIN = __ROM_BASE, LENGTH = __ROM_SIZE - ram (wxa!ri) : ORIGIN = __RAM_BASE, LENGTH = __RAM_SIZE -} -/* Linker script to place sections and symbol values. Should be used together - * with other linker script that defines memory regions FLASH,ILM and RAM. - * It references following symbols, which must be defined in code: - * _Start : Entry of reset handler - * - * It defines following symbols, which code can use without definition: - * _ilm_lma - * _ilm - * __etext - * _etext - * etext - * _eilm - * __preinit_array_start - * __preinit_array_end - * __init_array_start - * __init_array_end - * __fini_array_start - * __fini_array_end - * _data_lma - * _edata - * edata - * __data_end__ - * __bss_start - * __fbss - * _end - * end - * __heap_end - * __StackLimit - * __StackTop - * __STACK_SIZE - */ -/* Define entry label of program */ -ENTRY(_start) -SECTIONS -{ - __STACK_SIZE = DEFINED(__STACK_SIZE) ? __STACK_SIZE : 2K; - - .init : - { - /* vector table locate at flash */ - *(.vtable) - KEEP (*(SORT_NONE(.init))) - } >flash AT>flash - - .ilalign : - { - . = ALIGN(4); - /* Create a section label as _ilm_lma which located at flash */ - PROVIDE( _ilm_lma = . ); - } >flash AT>flash - - .ialign : - { - /* Create a section label as _ilm which located at flash */ - PROVIDE( _ilm = . ); - } >flash AT>flash - - /* Code section located at flash */ - .text : - { - *(.text.unlikely .text.unlikely.*) - *(.text.startup .text.startup.*) - *(.text .text.*) - *(.gnu.linkonce.t.*) - } >flash AT>flash - - .rodata : ALIGN(4) - { - . = ALIGN(4); - *(.rdata) - *(.rodata .rodata.*) - /* section information for initial. */ - . = ALIGN(4); - __rt_init_start = .; - KEEP(*(SORT(.rti_fn*))) - __rt_init_end = .; - /* section information for finsh shell */ - . = ALIGN(4); - __fsymtab_start = .; - KEEP(*(FSymTab)) - __fsymtab_end = .; - . = ALIGN(4); - __vsymtab_start = .; - KEEP(*(VSymTab)) - __vsymtab_end = .; - *(.gnu.linkonce.r.*) - . = ALIGN(8); - *(.srodata.cst16) - *(.srodata.cst8) - *(.srodata.cst4) - *(.srodata.cst2) - *(.srodata .srodata.*) - } >flash AT>flash - - .fini : - { - KEEP (*(SORT_NONE(.fini))) - } >flash AT>flash - - . = ALIGN(4); - - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - PROVIDE( _eilm = . ); - - - .preinit_array : - { - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); - } >flash AT>flash - - .init_array : - { - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) - KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) - PROVIDE_HIDDEN (__init_array_end = .); - } >flash AT>flash - - .fini_array : - { - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) - KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) - PROVIDE_HIDDEN (__fini_array_end = .); - } >flash AT>flash - - .ctors : - { - /* gcc uses crtbegin.o to find the start of - * the constructors, so we make sure it is - * first. Because this is a wildcard, it - * doesn't matter if the user does not - * actually link against crtbegin.o; the - * linker won't look for a file to match a - * wildcard. The wildcard also means that it - * doesn't matter which directory crtbegin.o - * is in. - */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - * the crtend.o file until after the sorted ctors. - * The .ctor section from the crtend file contains the - * end of ctors marker and it must be last - */ - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >flash AT>flash - - .dtors : - { - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >flash AT>flash - - .lalign : - { - . = ALIGN(4); - PROVIDE( _data_lma = . ); - } >flash AT>flash - - .dalign : - { - . = ALIGN(4); - PROVIDE( _data = . ); - } >ram AT>flash - - /* Define data section virtual address is ram and physical address is flash */ - .data : - { - *(.data .data.*) - *(.gnu.linkonce.d.*) - . = ALIGN(8); - PROVIDE( __global_pointer$ = . + 0x800 ); - *(.sdata .sdata.* .sdata*) - *(.gnu.linkonce.s.*) - } >ram AT>flash - - . = ALIGN(4); - PROVIDE( _edata = . ); - PROVIDE( edata = . ); - - PROVIDE( _fbss = . ); - PROVIDE( __bss_start = . ); - .bss : - { - *(.sbss*) - *(.gnu.linkonce.sb.*) - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >ram AT>ram - - . = ALIGN(8); - PROVIDE( _end = . ); - PROVIDE( end = . ); - /* Define stack and head location at ram */ - .stack ORIGIN(ram) + LENGTH(ram) - __STACK_SIZE : - { - PROVIDE( _heap_end = . ); - . = __STACK_SIZE; - PROVIDE( _sp = . ); - } >ram AT>ram -}