From 715532b53f9bc44fc7c71d0ffd597d1d6f066583 Mon Sep 17 00:00:00 2001 From: edolomb Date: Mon, 26 Oct 2020 17:43:21 +0000 Subject: [PATCH] Support for STM32H750B-DK: - Added STM32H750xB.ld - Added ST_STM32H750XB_DISCOVERY board - Updated hal_mii.h - Added RT-STM32H750XB-DISCOVERY demo git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13890 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- .../ARMCMx/compilers/GCC/ld/STM32H750xB.ld | 139 ++++++++++++++++++ os/hal/include/hal_mii.h | 1 + 2 files changed, 140 insertions(+) create mode 100644 os/common/startup/ARMCMx/compilers/GCC/ld/STM32H750xB.ld diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/STM32H750xB.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/STM32H750xB.ld new file mode 100644 index 000000000..866bcf529 --- /dev/null +++ b/os/common/startup/ARMCMx/compilers/GCC/ld/STM32H750xB.ld @@ -0,0 +1,139 @@ +/* + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + + 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 + + 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. +*/ + +/* + * ST32F750xB generic setup. + * + * AXI SRAM - BSS, Data, Heap. + * SRAM1+SRAM2 - None. + * SRAM3 - NOCACHE, ETH. + * SRAM4 - None. + * DTCM-RAM - Main Stack, Process Stack. + * ITCM-RAM - None. + * BCKP SRAM - None. + */ +MEMORY +{ + flash0 : org = 0x08000000, len = 128k /* Flash bank 1 */ + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x24000000, len = 512k /* AXI SRAM */ + ram1 : org = 0x30000000, len = 256k /* AHB SRAM1+SRAM2 */ + ram2 : org = 0x30000000, len = 288k /* AHB SRAM1+SRAM2+SRAM3 */ + ram3 : org = 0x30040000, len = 32k /* AHB SRAM3 */ + ram4 : org = 0x38000000, len = 64k /* AHB SRAM4 */ + ram5 : org = 0x20000000, len = 128k /* DTCM-RAM */ + ram6 : org = 0x00000000, len = 64k /* ITCM-RAM */ + ram7 : org = 0x38800000, len = 4k /* BCKP SRAM */ +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram5); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram5); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Stack rules inclusion.*/ +INCLUDE rules_stacks.ld + +/*===========================================================================*/ +/* Custom sections for STM32H7xx. */ +/* SRAM3 is assumed to be marked non-cacheable using MPU. */ +/*===========================================================================*/ + +/* RAM region to be used for nocache segment.*/ +REGION_ALIAS("NOCACHE_RAM", ram3); + +/* RAM region to be used for eth segment.*/ +REGION_ALIAS("ETH_RAM", ram3); + +SECTIONS +{ + /* Special section for non cache-able areas.*/ + .nocache (NOLOAD) : ALIGN(4) + { + __nocache_base__ = .; + *(.nocache) + *(.nocache.*) + *(.bss.__nocache_*) + . = ALIGN(4); + __nocache_end__ = .; + } > NOCACHE_RAM + + /* Special section for Ethernet DMA non cache-able areas.*/ + .eth (NOLOAD) : ALIGN(4) + { + __eth_base__ = .; + *(.eth) + *(.eth.*) + *(.bss.__eth_*) + . = ALIGN(4); + __eth_end__ = .; + } > ETH_RAM +} + +/* Code rules inclusion.*/ +INCLUDE rules_code.ld + +/* Data rules inclusion.*/ +INCLUDE rules_data.ld + +/* Memory rules inclusion.*/ +INCLUDE rules_memory.ld + diff --git a/os/hal/include/hal_mii.h b/os/hal/include/hal_mii.h index 80cbfd2af..8e35ee254 100644 --- a/os/hal/include/hal_mii.h +++ b/os/hal/include/hal_mii.h @@ -169,6 +169,7 @@ #define MII_LAN8710A_ID 0x0007C0F1 #define MII_LAN8720_ID 0x0007C0F0 #define MII_LAN8742A_ID 0x0007C130 +#define MII_LAN8740A_ID 0x0007C110 /** @} */ #endif /* MII_H */