You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2021/12/16 09:56:52 UTC
[incubator-nuttx] 03/05: boards/arm/samv7: Introduce common folder
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit b5868aed6ff1ae285fadb6cb3dc5f61f3d1ef0c9
Author: Gerson Fernando Budke <na...@gmail.com>
AuthorDate: Sat Dec 11 20:51:31 2021 -0300
boards/arm/samv7: Introduce common folder
This introduce common folder structre and rework scripts & tools
files. The linker scripts were reorganized to use best the current
infrastructure which uses a template to create a final samv7.ld
file based in the current SoC memories and bootloader definitions.
Signed-off-by: Gerson Fernando Budke <na...@gmail.com>
---
boards/Kconfig | 3 +
.../samv7/{same70-xplained => common}/.gitignore | 0
boards/arm/samv7/common/Kconfig | 84 +++++++++++++
boards/arm/samv7/common/Makefile | 33 ++++++
.../{samv71-xult => common}/scripts/Make.defs | 21 ++--
.../scripts/flat-template.ld} | 12 +-
boards/arm/samv7/common/scripts/flat.memory | 31 +++++
.../{samv71-xult => common}/scripts/gnu-elf.ld | 2 +-
.../scripts/kernel-space.ld | 2 +-
.../{samv71-xult => common}/scripts/memory.ld | 6 +-
boards/arm/samv7/common/scripts/protected.memory | 36 ++++++
.../{samv71-xult => common}/scripts/user-space.ld | 2 +-
boards/arm/samv7/common/src/Make.defs | 23 ++++
.../tools/atmel-same70-qmtech.cfg} | 1 -
.../tools/atmel-same70-xplained.cfg} | 0
.../tools/atmel-samv71-xult.cfg} | 6 +-
.../samv7/{same70-qmtech => common}/tools/oocd.sh | 5 +-
boards/arm/samv7/same70-qmtech/.gitignore | 1 -
boards/arm/samv7/same70-qmtech/Kconfig | 61 ----------
boards/arm/samv7/same70-qmtech/README.txt | 3 +-
.../configs/mcuboot-confirm/defconfig | 3 +-
.../same70-qmtech/configs/mcuboot-loader/defconfig | 4 +-
boards/arm/samv7/same70-qmtech/kernel/Makefile | 8 +-
boards/arm/samv7/same70-qmtech/scripts/Make.defs | 53 +--------
boards/arm/samv7/same70-qmtech/scripts/gnu-elf.ld | 115 ------------------
.../samv7/same70-qmtech/scripts/kernel-space.ld | 106 -----------------
boards/arm/samv7/same70-qmtech/scripts/memory.ld | 66 -----------
.../arm/samv7/same70-qmtech/scripts/user-space.ld | 111 ------------------
.../same70-qmtech/src/{Makefile => Make.defs} | 8 +-
boards/arm/samv7/same70-qmtech/src/sam_progmem.c | 28 ++---
boards/arm/samv7/same70-xplained/Kconfig | 61 ----------
boards/arm/samv7/same70-xplained/README.txt | 11 +-
.../configs/mcuboot-confirm/defconfig | 4 +-
.../configs/mcuboot-loader/defconfig | 5 +-
boards/arm/samv7/same70-xplained/kernel/Makefile | 8 +-
boards/arm/samv7/same70-xplained/scripts/Make.defs | 53 +--------
.../same70-xplained/scripts/flash.template.ld | 130 ---------------------
.../arm/samv7/same70-xplained/scripts/gnu-elf.ld | 115 ------------------
.../samv7/same70-xplained/scripts/kernel-space.ld | 106 -----------------
boards/arm/samv7/same70-xplained/scripts/memory.ld | 66 -----------
.../samv7/same70-xplained/scripts/user-space.ld | 111 ------------------
.../same70-xplained/src/{Makefile => Make.defs} | 8 +-
boards/arm/samv7/same70-xplained/src/sam_progmem.c | 28 ++---
.../tools/atmel_same70_xplained.cfg | 13 ---
boards/arm/samv7/same70-xplained/tools/oocd.sh | 57 ---------
.../arm/samv7/samv71-xult/configs/knsh/Make.defs | 55 +--------
boards/arm/samv7/samv71-xult/kernel/Makefile | 8 +-
boards/arm/samv7/samv71-xult/scripts/Make.defs | 53 +--------
.../samv7/samv71-xult/scripts/flash.template.ld | 119 -------------------
.../samv7/samv71-xult/src/{Makefile => Make.defs} | 8 +-
50 files changed, 306 insertions(+), 1547 deletions(-)
diff --git a/boards/Kconfig b/boards/Kconfig
index ec86157..a4b10ff 100644
--- a/boards/Kconfig
+++ b/boards/Kconfig
@@ -3326,6 +3326,9 @@ endif
comment "Board-Common Options"
+if ARCH_CHIP_SAMV7
+source "boards/arm/samv7/common/Kconfig"
+endif
if ARCH_CHIP_STM32
source "boards/arm/stm32/common/Kconfig"
endif
diff --git a/boards/arm/samv7/same70-xplained/.gitignore b/boards/arm/samv7/common/.gitignore
similarity index 100%
rename from boards/arm/samv7/same70-xplained/.gitignore
rename to boards/arm/samv7/common/.gitignore
diff --git a/boards/arm/samv7/common/Kconfig b/boards/arm/samv7/common/Kconfig
new file mode 100644
index 0000000..fd23631
--- /dev/null
+++ b/boards/arm/samv7/common/Kconfig
@@ -0,0 +1,84 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfiglanguage.txt in the NuttX tools repository.
+#
+
+config BOARD_SAMV7_COMMON
+ bool "Board common logic"
+ default y
+ ---help---
+ Board common logic located in each board/common folder.
+
+if BOARD_SAMV7_COMMON
+
+config SAMV7_PROGMEM_OTA_PARTITION
+ bool
+ default n
+ select ARCH_RAMFUNCS
+ select BCH
+ select MTD
+ select MTD_BYTE_WRITE
+ select MTD_PARTITION
+ select MTD_PROGMEM
+ select MTD_PROGMEM_ERASESTATE
+ select SAMV7_PROGMEM
+ select SAMV7_PROGMEM_ERASESTATE
+
+config SAMV7_MCUBOOT_HEADER_SIZE
+ hex
+ default 0x200
+ depends on SAMV7_FORMAT_MCUBOOT
+
+menuconfig SAMV7_FORMAT_MCUBOOT
+ bool "MCUboot bootable format"
+ default n
+ select SAMV7_PROGMEM_OTA_PARTITION
+ ---help---
+ The MCUboot support of loading the firmware images.
+
+if SAMV7_FORMAT_MCUBOOT
+
+comment "MCUboot Application Image OTA Update support"
+
+config SAMV7_OTA_PRIMARY_SLOT_OFFSET
+ hex "MCUboot application image primary slot offset"
+ default 0x20000
+
+config SAMV7_OTA_PRIMARY_SLOT_DEVPATH
+ string "Application image primary slot device path"
+ default "/dev/ota0"
+
+config SAMV7_OTA_SECONDARY_SLOT_OFFSET
+ hex "MCUboot application image secondary slot offset"
+ default 0x48000 if SAMV7_MEM_FLASH_512
+ default 0x80000 if SAMV7_MEM_FLASH_1024
+ default 0x100000 if SAMV7_MEM_FLASH_2048
+
+config SAMV7_OTA_SECONDARY_SLOT_DEVPATH
+ string "Application image secondary slot device path"
+ default "/dev/ota1"
+
+config SAMV7_OTA_SLOT_SIZE
+ hex "MCUboot application image slot size (in bytes)"
+ default 0x28000 if SAMV7_MEM_FLASH_512
+ default 0x60000 if SAMV7_MEM_FLASH_1024
+ default 0xe0000 if SAMV7_MEM_FLASH_2048
+
+config SAMV7_OTA_SCRATCH_OFFSET
+ hex "MCUboot scratch partition offset"
+ default 0x70000 if SAMV7_MEM_FLASH_512
+ default 0xe0000 if SAMV7_MEM_FLASH_1024
+ default 0x1e0000 if SAMV7_MEM_FLASH_2048
+
+config SAMV7_OTA_SCRATCH_DEVPATH
+ string "Scratch partition device path"
+ default "/dev/otascratch"
+
+config SAMV7_OTA_SCRATCH_SIZE
+ hex "MCUboot scratch partition size (in bytes)"
+ default 0x10000 if SAMV7_MEM_FLASH_512
+ default 0x20000
+
+endif # SAMV7_FORMAT_MCUBOOT
+
+endif # BOARD_SAMV7_COMMON
diff --git a/boards/arm/samv7/common/Makefile b/boards/arm/samv7/common/Makefile
new file mode 100644
index 0000000..00ea9fc
--- /dev/null
+++ b/boards/arm/samv7/common/Makefile
@@ -0,0 +1,33 @@
+#############################################################################
+# boards/arm/samv7/common/Makefile
+#
+# 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.
+#
+#############################################################################
+
+include $(TOPDIR)/Make.defs
+
+include board/Make.defs
+include src/Make.defs
+
+DEPPATH += --dep-path board
+DEPPATH += --dep-path src
+
+include $(TOPDIR)/boards/Board.mk
+
+ARCHSRCDIR = $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src
+BOARDDIR = $(ARCHSRCDIR)$(DELIM)board
+CFLAGS += $(shell $(INCDIR) "$(CC)" $(BOARDDIR)$(DELIM)include)
diff --git a/boards/arm/samv7/samv71-xult/scripts/Make.defs b/boards/arm/samv7/common/scripts/Make.defs
similarity index 85%
copy from boards/arm/samv7/samv71-xult/scripts/Make.defs
copy to boards/arm/samv7/common/scripts/Make.defs
index 2a008ad..f40b615 100644
--- a/boards/arm/samv7/samv71-xult/scripts/Make.defs
+++ b/boards/arm/samv7/common/scripts/Make.defs
@@ -1,5 +1,5 @@
############################################################################
-# boards/arm/samv7/samv71-xult/scripts/Make.defs
+# boards/arm/samv7/common/scripts/Make.defs
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
@@ -18,17 +18,10 @@
#
############################################################################
-include $(TOPDIR)/.config
-include $(TOPDIR)/tools/Config.mk
-include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
-
-LDSCRIPT_TEMPLATE = $(BOARD_DIR)$(DELIM)scripts$(DELIM)flash.template.ld
-LDSCRIPT = samv7.ld
-
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)}"
+ifneq ($(wildcard $(BOARD_DIR)$(DELIM)scripts$(DELIM)flat-template.ld),)
+ LDSCRIPT_TEMPLATE = $(BOARD_DIR)$(DELIM)scripts$(DELIM)flat-template.ld
else
- ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
+ LDSCRIPT_TEMPLATE = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)flat-template.ld
endif
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
@@ -67,6 +60,12 @@ else
LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
endif
+ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
+ LDFLAGS += -Map="${shell cygpath -w $(TOPDIR)/nuttx.map}" --cref
+else
+ LDFLAGS += -Map=$(TOPDIR)/nuttx.map --cref
+endif
+
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
LDFLAGS += -g
endif
diff --git a/boards/arm/samv7/same70-qmtech/scripts/flash.template.ld b/boards/arm/samv7/common/scripts/flat-template.ld
similarity index 89%
rename from boards/arm/samv7/same70-qmtech/scripts/flash.template.ld
rename to boards/arm/samv7/common/scripts/flat-template.ld
index f280071..40ae9b0 100644
--- a/boards/arm/samv7/same70-qmtech/scripts/flash.template.ld
+++ b/boards/arm/samv7/common/scripts/flat-template.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/samv7/same70-qmtech/scripts/flash.template.ld
+ * boards/arm/samv7/common/scripts/flat-template.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -28,14 +28,14 @@
# define SRAM_START_ADDR 0x20400000
#endif
-#ifdef CONFIG_SAME70QMTECH_FORMAT_MCUBOOT
-# define MCUBOOT_HEADER_SIZE 0x200
+#ifdef CONFIG_SAMV7_FORMAT_MCUBOOT
+# define MCUBOOT_HEADER_SIZE CONFIG_SAMV7_MCUBOOT_HEADER_SIZE
# ifdef CONFIG_BOARDCTL_BOOT_IMAGE
# define FLASH_OFFSET 0
-# define FLASH_IMG_SIZE CONFIG_SAME70QMTECH_OTA_PRIMARY_SLOT_OFFSET
+# define FLASH_IMG_SIZE CONFIG_SAMV7_OTA_PRIMARY_SLOT_OFFSET
# else
-# define FLASH_OFFSET (CONFIG_SAME70QMTECH_OTA_PRIMARY_SLOT_OFFSET + MCUBOOT_HEADER_SIZE)
-# define FLASH_IMG_SIZE (CONFIG_SAME70QMTECH_OTA_SLOT_SIZE - MCUBOOT_HEADER_SIZE)
+# define FLASH_OFFSET (CONFIG_SAMV7_OTA_PRIMARY_SLOT_OFFSET + MCUBOOT_HEADER_SIZE)
+# define FLASH_IMG_SIZE (CONFIG_SAMV7_OTA_SLOT_SIZE - MCUBOOT_HEADER_SIZE)
# endif
#else
# define FLASH_OFFSET 0
diff --git a/boards/arm/samv7/common/scripts/flat.memory b/boards/arm/samv7/common/scripts/flat.memory
new file mode 100644
index 0000000..d3e428f
--- /dev/null
+++ b/boards/arm/samv7/common/scripts/flat.memory
@@ -0,0 +1,31 @@
+############################################################################
+# boards/arm/samv7/common/scripts/flat.memory
+#
+# 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.
+#
+############################################################################
+
+include $(TOPDIR)/.config
+include $(TOPDIR)/tools/Config.mk
+include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
+
+ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
+ ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld}"
+else
+ ARCHSCRIPT = -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld
+endif
+
+include $(BOARD_COMMON_DIR)/scripts/Make.defs
diff --git a/boards/arm/samv7/samv71-xult/scripts/gnu-elf.ld b/boards/arm/samv7/common/scripts/gnu-elf.ld
similarity index 98%
rename from boards/arm/samv7/samv71-xult/scripts/gnu-elf.ld
rename to boards/arm/samv7/common/scripts/gnu-elf.ld
index d5ba8f5..bda1b92 100644
--- a/boards/arm/samv7/samv71-xult/scripts/gnu-elf.ld
+++ b/boards/arm/samv7/common/scripts/gnu-elf.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/samv7/samv71-xult/scripts/gnu-elf.ld
+ * boards/arm/samv7/common/scripts/gnu-elf.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
diff --git a/boards/arm/samv7/samv71-xult/scripts/kernel-space.ld b/boards/arm/samv7/common/scripts/kernel-space.ld
similarity index 98%
rename from boards/arm/samv7/samv71-xult/scripts/kernel-space.ld
rename to boards/arm/samv7/common/scripts/kernel-space.ld
index e5ffc00..03cea6d 100644
--- a/boards/arm/samv7/samv71-xult/scripts/kernel-space.ld
+++ b/boards/arm/samv7/common/scripts/kernel-space.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/samv7/samv71-xult/scripts/kernel-space.ld
+ * boards/arm/samv7/common/scripts/kernel-space.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
diff --git a/boards/arm/samv7/samv71-xult/scripts/memory.ld b/boards/arm/samv7/common/scripts/memory.ld
similarity index 94%
rename from boards/arm/samv7/samv71-xult/scripts/memory.ld
rename to boards/arm/samv7/common/scripts/memory.ld
index ae23b02..92da7ec 100644
--- a/boards/arm/samv7/samv71-xult/scripts/memory.ld
+++ b/boards/arm/samv7/common/scripts/memory.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/samv7/samv71-xult/scripts/memory.ld
+ * boards/arm/samv7/common/scripts/memory.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -18,8 +18,8 @@
*
****************************************************************************/
-/* The SAMV71Q21 has 2048Kb of FLASH beginning at address 0x0040:0000 and
- * 384Kb of SRAM beginining at 0x2040:0000
+/* The SAMV7 can have up to 2048Kb of FLASH beginning at address 0x0040:0000
+ * and 384Kb of SRAM beginining at 0x2040:0000
*
* When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
* where the code expects to begin execution by jumping to the entry point in
diff --git a/boards/arm/samv7/common/scripts/protected.memory b/boards/arm/samv7/common/scripts/protected.memory
new file mode 100644
index 0000000..4bc5df5
--- /dev/null
+++ b/boards/arm/samv7/common/scripts/protected.memory
@@ -0,0 +1,36 @@
+############################################################################
+# boards/arm/samv7/common/scripts/protected.memory
+#
+# 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.
+#
+############################################################################
+
+include $(TOPDIR)/.config
+include $(TOPDIR)/tools/Config.mk
+include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
+
+LDSCRIPT1 = memory.ld
+LDSCRIPT2 = kernel-space.ld
+
+ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
+ ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT1)}"
+ ARCHSCRIPT += -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT2)}"
+else
+ ARCHSCRIPT = -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT1)
+ ARCHSCRIPT += -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT2)
+endif
+
+include $(BOARD_COMMON_DIR)/scripts/Make.defs
diff --git a/boards/arm/samv7/samv71-xult/scripts/user-space.ld b/boards/arm/samv7/common/scripts/user-space.ld
similarity index 98%
rename from boards/arm/samv7/samv71-xult/scripts/user-space.ld
rename to boards/arm/samv7/common/scripts/user-space.ld
index edd0150..55c737f 100644
--- a/boards/arm/samv7/samv71-xult/scripts/user-space.ld
+++ b/boards/arm/samv7/common/scripts/user-space.ld
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/samv7/samv71-xult/scripts/user-space.ld
+ * boards/arm/samv7/common/scripts/user-space.ld
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
diff --git a/boards/arm/samv7/common/src/Make.defs b/boards/arm/samv7/common/src/Make.defs
new file mode 100644
index 0000000..ea09c16
--- /dev/null
+++ b/boards/arm/samv7/common/src/Make.defs
@@ -0,0 +1,23 @@
+#############################################################################
+# boards/arm/samv7/common/src/Make.defs
+#
+# 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.
+#
+#############################################################################
+
+DEPPATH += --dep-path src
+VPATH += :src
+CFLAGS += $(shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src)
diff --git a/boards/arm/samv7/same70-qmtech/tools/atmel_same70_qmtech.cfg b/boards/arm/samv7/common/tools/atmel-same70-qmtech.cfg
similarity index 99%
rename from boards/arm/samv7/same70-qmtech/tools/atmel_same70_qmtech.cfg
rename to boards/arm/samv7/common/tools/atmel-same70-qmtech.cfg
index db63edd..4c2cbfb 100644
--- a/boards/arm/samv7/same70-qmtech/tools/atmel_same70_qmtech.cfg
+++ b/boards/arm/samv7/common/tools/atmel-same70-qmtech.cfg
@@ -3,7 +3,6 @@
# https://github.com/ChinaQMTECH/ATSAMS70_E70
#
# Connect using the EDBG chip on the dev kit over USB
-
source [find interface/cmsis-dap.cfg]
set CHIPNAME atsame70n19
diff --git a/boards/arm/samv7/same70-xplained/scripts/atmel_same70_xplained.cfg b/boards/arm/samv7/common/tools/atmel-same70-xplained.cfg
similarity index 100%
rename from boards/arm/samv7/same70-xplained/scripts/atmel_same70_xplained.cfg
rename to boards/arm/samv7/common/tools/atmel-same70-xplained.cfg
diff --git a/boards/arm/samv7/same70-qmtech/scripts/atmel_same70_qmtech.cfg b/boards/arm/samv7/common/tools/atmel-samv71-xult.cfg
similarity index 56%
rename from boards/arm/samv7/same70-qmtech/scripts/atmel_same70_qmtech.cfg
rename to boards/arm/samv7/common/tools/atmel-samv71-xult.cfg
index e986e6b..ca34007 100644
--- a/boards/arm/samv7/same70-qmtech/scripts/atmel_same70_qmtech.cfg
+++ b/boards/arm/samv7/common/tools/atmel-samv71-xult.cfg
@@ -1,11 +1,11 @@
#
-# Atmel SAME70 QMTECH board.
-# https://github.com/ChinaQMTECH/ATSAMS70_E70
+# Atmel SAMV71 Xplained Ultra evaluation kit.
+# http://www.atmel.com/tools/ATSAMV71-XULT.aspx
#
# Connect using the EDBG chip on the dev kit over USB
source [find interface/cmsis-dap.cfg]
-set CHIPNAME atsame70n19
+set CHIPNAME atsamv71q21
source [find target/atsamv.cfg]
diff --git a/boards/arm/samv7/same70-qmtech/tools/oocd.sh b/boards/arm/samv7/common/tools/oocd.sh
similarity index 88%
rename from boards/arm/samv7/same70-qmtech/tools/oocd.sh
rename to boards/arm/samv7/common/tools/oocd.sh
index 6147ec9..1199cd5 100755
--- a/boards/arm/samv7/same70-qmtech/tools/oocd.sh
+++ b/boards/arm/samv7/common/tools/oocd.sh
@@ -1,7 +1,6 @@
#!/usr/bin/env bash
#
-# See boards/atmel_same70_qmtech.cfg/README.txt for information about
-# this file.
+# See boards README.txt for information about this file.
TOPDIR=$1
USAGE="$0 <TOPDIR> [-d]"
@@ -28,7 +27,7 @@ TARGET_PATH="/usr/local/share/openocd/scripts"
#OPENOCD_EXE=openocd.exe
OPENOCD_EXE=openocd
-OPENOCD_CFG="${TOPDIR}/boards/arm/samv7/same70-qmtech/tools/atmel_same70_qmtech.cfg"
+OPENOCD_CFG="${TOPDIR}/boards/arm/samv7/common/tools/atmel-${TARGET_BOARD}.cfg"
OPENOCD_ARGS="-f ${OPENOCD_CFG} -s ${TARGET_PATH}"
if [ "X$2" = "X-d" ]; then
diff --git a/boards/arm/samv7/same70-qmtech/.gitignore b/boards/arm/samv7/same70-qmtech/.gitignore
deleted file mode 100644
index a5638cb..0000000
--- a/boards/arm/samv7/same70-qmtech/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/scripts/samv7.ld
diff --git a/boards/arm/samv7/same70-qmtech/Kconfig b/boards/arm/samv7/same70-qmtech/Kconfig
index 0c665f6..039ea47 100644
--- a/boards/arm/samv7/same70-qmtech/Kconfig
+++ b/boards/arm/samv7/same70-qmtech/Kconfig
@@ -34,65 +34,4 @@ config SAME70QMTECH_HSMCI0_AUTOMOUNT_UDELAY
endif # SAME70QMTECH_HSMCI0_AUTOMOUNT
-config SAME70QMTECH_PROGMEM_OTA_PARTITION
- bool
- default n
- select MTD
- select MTD_BYTE_WRITE
- select MTD_PARTITION
- select MTD_PROGMEM
- select MTD_PROGMEM_ERASESTATE
-
-menuconfig SAME70QMTECH_FORMAT_MCUBOOT
- bool "MCUboot-bootable format"
- default n
- select SAME70QMTECH_PROGMEM_OTA_PARTITION
- ---help---
- The MCUboot support of loading the firmware images.
-
-if SAME70QMTECH_FORMAT_MCUBOOT
-
-config SAME70QMTECH_MCUBOOT_BOOTLOADER
- bool "MCUboot bootloader application"
- default n
- ---help---
- This switch between linker scripts to allow an application be
- built to another entry point address.
-
-comment "MCUboot Application Image OTA Update support"
-
-config SAME70QMTECH_OTA_PRIMARY_SLOT_OFFSET
- hex "MCUboot application image primary slot offset"
- default "0x20000"
-
-config SAME70QMTECH_OTA_PRIMARY_SLOT_DEVPATH
- string "Application image primary slot device path"
- default "/dev/ota0"
-
-config SAME70QMTECH_OTA_SECONDARY_SLOT_OFFSET
- hex "MCUboot application image secondary slot offset"
- default "0x48000"
-
-config SAME70QMTECH_OTA_SECONDARY_SLOT_DEVPATH
- string "Application image secondary slot device path"
- default "/dev/ota1"
-
-config SAME70QMTECH_OTA_SLOT_SIZE
- hex "MCUboot application image slot size (in bytes)"
- default "0x28000"
-
-config SAME70QMTECH_OTA_SCRATCH_OFFSET
- hex "MCUboot scratch partition offset"
- default "0x70000"
-
-config SAME70QMTECH_OTA_SCRATCH_DEVPATH
- string "Scratch partition device path"
- default "/dev/otascratch"
-
-config SAME70QMTECH_OTA_SCRATCH_SIZE
- hex "MCUboot scratch partition size (in bytes)"
- default "0x10000"
-
-endif # SAME70QMTECH_FORMAT_MCUBOOT
-
endif # ARCH_BOARD_SAME70_QMTECH
diff --git a/boards/arm/samv7/same70-qmtech/README.txt b/boards/arm/samv7/same70-qmtech/README.txt
index 294f7ca..427078d 100644
--- a/boards/arm/samv7/same70-qmtech/README.txt
+++ b/boards/arm/samv7/same70-qmtech/README.txt
@@ -794,8 +794,7 @@ Configuration sub-directories
CONFIG_MCUBOOT_BOOTLOADER=y
CONFIG_MCUBOOT_ENABLE_LOGGING=y
- CONFIG_SAME70QMTECH_FORMAT_MCUBOOT=y
- CONFIG_SAME70QMTECH_MCUBOOT_BOOTLOADER=y
+ CONFIG_SAMV7_FORMAT_MCUBOOT=y
CONFIG_USER_ENTRYPOINT="mcuboot_loader_main"
mcuboot-confirm:
diff --git a/boards/arm/samv7/same70-qmtech/configs/mcuboot-confirm/defconfig b/boards/arm/samv7/same70-qmtech/configs/mcuboot-confirm/defconfig
index d27f7b5..0b848a6 100644
--- a/boards/arm/samv7/same70-qmtech/configs/mcuboot-confirm/defconfig
+++ b/boards/arm/samv7/same70-qmtech/configs/mcuboot-confirm/defconfig
@@ -45,12 +45,11 @@ CONFIG_RAM_SIZE=262144
CONFIG_RAM_START=0x20400000
CONFIG_RAW_BINARY=y
CONFIG_RR_INTERVAL=200
-CONFIG_SAME70QMTECH_FORMAT_MCUBOOT=y
+CONFIG_SAMV7_FORMAT_MCUBOOT=y
CONFIG_SAMV7_GPIOA_IRQ=y
CONFIG_SAMV7_GPIOD_IRQ=y
CONFIG_SAMV7_GPIO_IRQ=y
CONFIG_SAMV7_HSMCI0=y
-CONFIG_SAMV7_PROGMEM=y
CONFIG_SAMV7_USART1=y
CONFIG_SAMV7_XDMAC=y
CONFIG_SCHED_HPWORK=y
diff --git a/boards/arm/samv7/same70-qmtech/configs/mcuboot-loader/defconfig b/boards/arm/samv7/same70-qmtech/configs/mcuboot-loader/defconfig
index 9e15549..ec31b08 100644
--- a/boards/arm/samv7/same70-qmtech/configs/mcuboot-loader/defconfig
+++ b/boards/arm/samv7/same70-qmtech/configs/mcuboot-loader/defconfig
@@ -46,13 +46,11 @@ CONFIG_RAM_SIZE=262144
CONFIG_RAM_START=0x20400000
CONFIG_RAW_BINARY=y
CONFIG_RR_INTERVAL=200
-CONFIG_SAME70QMTECH_FORMAT_MCUBOOT=y
-CONFIG_SAME70QMTECH_MCUBOOT_BOOTLOADER=y
+CONFIG_SAMV7_FORMAT_MCUBOOT=y
CONFIG_SAMV7_GPIOA_IRQ=y
CONFIG_SAMV7_GPIOD_IRQ=y
CONFIG_SAMV7_GPIO_IRQ=y
CONFIG_SAMV7_HSMCI0=y
-CONFIG_SAMV7_PROGMEM=y
CONFIG_SAMV7_USART1=y
CONFIG_SAMV7_XDMAC=y
CONFIG_SCHED_HPWORK=y
diff --git a/boards/arm/samv7/same70-qmtech/kernel/Makefile b/boards/arm/samv7/same70-qmtech/kernel/Makefile
index 95f8c76..1cf8976 100644
--- a/boards/arm/samv7/same70-qmtech/kernel/Makefile
+++ b/boards/arm/samv7/same70-qmtech/kernel/Makefile
@@ -31,16 +31,16 @@ ENTRYPT = $(patsubst "%",%,$(CONFIG_USER_ENTRYPOINT))
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
# Windows-native toolchains
USER_LIBPATHS = ${shell for path in $(USERLIBS); do dir=`dirname $(TOPDIR)$(DELIM)$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
- USER_LDSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)memory.ld}"
- USER_LDSCRIPT += -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)user-space.ld}"
+ USER_LDSCRIPT = -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)memory.ld}"
+ USER_LDSCRIPT += -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)user-space.ld}"
USER_HEXFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.hex}"
USER_SRECFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.srec}"
USER_BINFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.bin}"
else
# Linux/Cygwin-native toolchain
USER_LIBPATHS = $(addprefix -L$(TOPDIR)$(DELIM),$(dir $(USERLIBS)))
- USER_LDSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)memory.ld
- USER_LDSCRIPT += -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)user-space.ld
+ USER_LDSCRIPT = -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)memory.ld
+ USER_LDSCRIPT += -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)user-space.ld
USER_HEXFILE += "$(TOPDIR)$(DELIM)nuttx_user.hex"
USER_SRECFILE += "$(TOPDIR)$(DELIM)nuttx_user.srec"
USER_BINFILE += "$(TOPDIR)$(DELIM)nuttx_user.bin"
diff --git a/boards/arm/samv7/same70-qmtech/scripts/Make.defs b/boards/arm/samv7/same70-qmtech/scripts/Make.defs
index 8a764e6..888c23f 100644
--- a/boards/arm/samv7/same70-qmtech/scripts/Make.defs
+++ b/boards/arm/samv7/same70-qmtech/scripts/Make.defs
@@ -18,55 +18,4 @@
#
############################################################################
-include $(TOPDIR)/.config
-include $(TOPDIR)/tools/Config.mk
-include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
-
-LDSCRIPT_TEMPLATE = $(BOARD_DIR)$(DELIM)scripts$(DELIM)flash.template.ld
-LDSCRIPT = samv7.ld
-
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)}"
-else
- ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
-AFLAGS := $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-# Loadable module definitions
-
-CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
-
-LDMODULEFLAGS = -r -e module_initialize
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/libs/libc/modlib/gnu-elf.ld}"
-else
- LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
+include $(TOPDIR)/boards/arm/samv7/common/scripts/flat.memory
diff --git a/boards/arm/samv7/same70-qmtech/scripts/gnu-elf.ld b/boards/arm/samv7/same70-qmtech/scripts/gnu-elf.ld
deleted file mode 100644
index a904824..0000000
--- a/boards/arm/samv7/same70-qmtech/scripts/gnu-elf.ld
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-qmtech/scripts/gnu-elf.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-SECTIONS
-{
- .text 0x00000000 :
- {
- _stext = . ;
- *(.text)
- *(.text.*)
- *(.gnu.warning)
- *(.stub)
- *(.glue_7)
- *(.glue_7t)
- *(.jcr)
-
- /* C++ support: The .init and .fini sections contain specific logic
- * to manage static constructors and destructors.
- */
-
- *(.gnu.linkonce.t.*)
- *(.init) /* Old ABI */
- *(.fini) /* Old ABI */
- _etext = . ;
- }
-
- .rodata :
- {
- _srodata = . ;
- *(.rodata)
- *(.rodata1)
- *(.rodata.*)
- *(.gnu.linkonce.r*)
- _erodata = . ;
- }
-
- .data :
- {
- _sdata = . ;
- *(.data)
- *(.data1)
- *(.data.*)
- *(.gnu.linkonce.d*)
- . = ALIGN(4);
- _edata = . ;
- }
-
- /* C++ support. For each global and static local C++ object,
- * GCC creates a small subroutine to construct the object. Pointers
- * to these routines (not the routines themselves) are stored as
- * simple, linear arrays in the .ctors section of the object file.
- * Similarly, pointers to global/static destructor routines are
- * stored in .dtors.
- */
-
- .ctors :
- {
- _sctors = . ;
- *(.ctors) /* Old ABI: Unallocated */
- *(.init_array) /* New ABI: Allocated */
- _edtors = . ;
- }
-
- .dtors :
- {
- _sdtors = . ;
- *(.dtors) /* Old ABI: Unallocated */
- *(.fini_array) /* New ABI: Allocated */
- _edtors = . ;
- }
-
- .bss :
- {
- _sbss = . ;
- *(.bss)
- *(.bss.*)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.b*)
- *(COMMON)
- _ebss = . ;
- }
-
- /* Stabs debugging sections. */
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-qmtech/scripts/kernel-space.ld b/boards/arm/samv7/same70-qmtech/scripts/kernel-space.ld
deleted file mode 100644
index 6362cd8..0000000
--- a/boards/arm/samv7/same70-qmtech/scripts/kernel-space.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-qmtech/scripts/kernel-space.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-/* NOTE: This depends on the memory.ld script having been included prior to
- * this script.
- */
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
- .text : {
- _stext = ABSOLUTE(.);
- *(.vectors)
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > kflash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > kflash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > kflash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > kflash
-
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
- } > ksram AT > kflash
-
- .ramfunc ALIGN(4): {
- _sramfuncs = ABSOLUTE(.);
- *(.ramfunc .ramfunc.*)
- _eramfuncs = ABSOLUTE(.);
- } > ksram AT > kflash
-
- _framfuncs = LOADADDR(.ramfunc);
-
- .bss : {
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = ABSOLUTE(.);
- } > ksram
-
- /* Stabs debugging sections */
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-qmtech/scripts/memory.ld b/boards/arm/samv7/same70-qmtech/scripts/memory.ld
deleted file mode 100644
index 9e33168..0000000
--- a/boards/arm/samv7/same70-qmtech/scripts/memory.ld
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-qmtech/scripts/memory.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-/* The SAME70N19 has 512Kb of FLASH beginning at address 0x0040:0000 and
- * 256Kb of SRAM beginining at 0x2040:0000
- *
- * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
- * where the code expects to begin execution by jumping to the entry point in
- * the 0x0400:0000 address range.
- *
- * The user space partition will be spanned with a single region of size
- * 2**n bytes. The alignment of the user-space region must be the same.
- * As a consequence, as the user-space increases in size, the alignment
- * requirement also increases. The sizes below give the largest possible
- * user address spaces (but leave far too much for the OS).
- *
- * The solution to this wasted memory is to (1) use more than one region to
- * span the user spaces, or (2) poke holes in a larger region to trim it
- * to fit better.
- *
- * A detailed memory map for the 256KB SRAM region is as follows:
- *
- * 0x2040 0000: Kernel .data region. Typical size: 0.1KB
- * ------ ---- Kernel .bss region. Typical size: 1.8KB
- * 0x2040 0800: Kernel IDLE thread stack (approximate). Size is
- * determined by CONFIG_IDLETHREAD_STACKSIZE and
- * adjustments for alignment. Typical is 1KB.
- * ------ ---- Padded to 4KB
- * 0x2041 0000: User .data region. Size is variable.
- * ------- ---- User .bss region Size is variable.
- * 0x2042 0000: Beginning of kernel heap. Size determined by
- * CONFIG_MM_KERNEL_HEAPSIZE.
- * ------ ---- Beginning of user heap. Can vary with other settings.
- * 0x2044 0000: End+1 of mappable internal SRAM
- */
-
-MEMORY
-{
- /* 512Kb of internal FLASH */
-
- kflash (rx) : ORIGIN = 0x00400000, LENGTH = 256K
- uflash (rx) : ORIGIN = 0x00440000, LENGTH = 256K
-
- /* 256Kb of internal SRAM */
-
- ksram (rwx) : ORIGIN = 0x20400000, LENGTH = 64K
- usram (rwx) : ORIGIN = 0x20410000, LENGTH = 64K
- xsram (rwx) : ORIGIN = 0x20420000, LENGTH = 128K
-}
diff --git a/boards/arm/samv7/same70-qmtech/scripts/user-space.ld b/boards/arm/samv7/same70-qmtech/scripts/user-space.ld
deleted file mode 100644
index 8c08dfc..0000000
--- a/boards/arm/samv7/same70-qmtech/scripts/user-space.ld
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-qmtech/scripts/user-space.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-/* NOTE: This depends on the memory.ld script having been included prior to
- * this script.
- */
-
-/* Make sure that the critical memory management functions are in user-space.
- * the user heap memory manager will reside in user-space but be usable both
- * by kernel- and user-space code
- */
-
-EXTERN(umm_initialize)
-EXTERN(umm_addregion)
-
-EXTERN(malloc)
-EXTERN(realloc)
-EXTERN(zalloc)
-EXTERN(free)
-
-OUTPUT_ARCH(arm)
-SECTIONS
-{
- .userspace : {
- *(.userspace)
- } > uflash
-
- .text : {
- _stext = ABSOLUTE(.);
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > uflash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > uflash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > uflash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > uflash
-
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
- } > usram AT > uflash
-
- .bss : {
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = ABSOLUTE(.);
- } > usram
-
- /* Stabs debugging sections */
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-qmtech/src/Makefile b/boards/arm/samv7/same70-qmtech/src/Make.defs
similarity index 85%
rename from boards/arm/samv7/same70-qmtech/src/Makefile
rename to boards/arm/samv7/same70-qmtech/src/Make.defs
index 8783c64..567a1c4 100644
--- a/boards/arm/samv7/same70-qmtech/src/Makefile
+++ b/boards/arm/samv7/same70-qmtech/src/Make.defs
@@ -68,16 +68,18 @@ ifneq (,$(findstring y,$(CONFIG_SAMV7_DAC0) $(CONFIG_SAMV7_DAC1)))
CSRCS += sam_dac.c
endif
-SCRIPTOUT = $(BOARD_DIR)$(DELIM)scripts$(DELIM)samv7.ld
+SCRIPTOUT = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld
.PHONY = context distclean
$(SCRIPTOUT): $(LDSCRIPT_TEMPLATE) $(CONFIGFILE)
- $(Q) $(CC) -isystem $(TOPDIR)/include -I $(BOARD_DIR)$(DELIM)scripts -C -P -x c -E $(LDSCRIPT_TEMPLATE) -o $@
+ $(Q) $(CC) -isystem $(TOPDIR)/include -I $(BOARD_COMMON_DIR)$(DELIM)scripts -C -P -x c -E $(LDSCRIPT_TEMPLATE) -o $@
context:: $(SCRIPTOUT)
distclean::
$(call DELFILE, $(SCRIPTOUT))
-include $(TOPDIR)/boards/Board.mk
+DEPPATH += --dep-path board
+VPATH += :board
+CFLAGS += $(shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board)
diff --git a/boards/arm/samv7/same70-qmtech/src/sam_progmem.c b/boards/arm/samv7/same70-qmtech/src/sam_progmem.c
index e6d6a60..6ff222e 100644
--- a/boards/arm/samv7/same70-qmtech/src/sam_progmem.c
+++ b/boards/arm/samv7/same70-qmtech/src/sam_progmem.c
@@ -54,7 +54,7 @@
* Private Types
****************************************************************************/
-#if defined(CONFIG_SAME70QMTECH_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
struct ota_partition_s
{
@@ -69,7 +69,7 @@ struct ota_partition_s
* Private Function Prototypes
****************************************************************************/
-#if defined(CONFIG_SAME70QMTECH_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
static struct mtd_dev_s *sam_progmem_alloc_mtdpart(uint32_t mtd_offset,
uint32_t mtd_size);
static int init_ota_partitions(void);
@@ -81,23 +81,23 @@ static int init_ota_partitions(void);
static FAR struct mtd_dev_s *g_samv7_progmem_mtd;
-#if defined(CONFIG_SAME70QMTECH_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
static const struct ota_partition_s g_ota_partition_table[] =
{
{
- .offset = CONFIG_SAME70QMTECH_OTA_PRIMARY_SLOT_OFFSET,
- .size = CONFIG_SAME70QMTECH_OTA_SLOT_SIZE,
- .devpath = CONFIG_SAME70QMTECH_OTA_PRIMARY_SLOT_DEVPATH
+ .offset = CONFIG_SAMV7_OTA_PRIMARY_SLOT_OFFSET,
+ .size = CONFIG_SAMV7_OTA_SLOT_SIZE,
+ .devpath = CONFIG_SAMV7_OTA_PRIMARY_SLOT_DEVPATH
},
{
- .offset = CONFIG_SAME70QMTECH_OTA_SECONDARY_SLOT_OFFSET,
- .size = CONFIG_SAME70QMTECH_OTA_SLOT_SIZE,
- .devpath = CONFIG_SAME70QMTECH_OTA_SECONDARY_SLOT_DEVPATH
+ .offset = CONFIG_SAMV7_OTA_SECONDARY_SLOT_OFFSET,
+ .size = CONFIG_SAMV7_OTA_SLOT_SIZE,
+ .devpath = CONFIG_SAMV7_OTA_SECONDARY_SLOT_DEVPATH
},
{
- .offset = CONFIG_SAME70QMTECH_OTA_SCRATCH_OFFSET,
- .size = CONFIG_SAME70QMTECH_OTA_SCRATCH_SIZE,
- .devpath = CONFIG_SAME70QMTECH_OTA_SCRATCH_DEVPATH
+ .offset = CONFIG_SAMV7_OTA_SCRATCH_OFFSET,
+ .size = CONFIG_SAMV7_OTA_SCRATCH_SIZE,
+ .devpath = CONFIG_SAMV7_OTA_SCRATCH_DEVPATH
}
};
#endif
@@ -106,7 +106,7 @@ static const struct ota_partition_s g_ota_partition_table[] =
* Private Functions
****************************************************************************/
-#if defined(CONFIG_SAME70QMTECH_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
/****************************************************************************
* Name: sam_progmem_alloc_mtdpart
@@ -225,7 +225,7 @@ int sam_progmem_init(void)
return -EFAULT;
}
-#if defined(CONFIG_SAME70QMTECH_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
ret = init_ota_partitions();
if (ret < 0)
{
diff --git a/boards/arm/samv7/same70-xplained/Kconfig b/boards/arm/samv7/same70-xplained/Kconfig
index 78a74bb..dd3d2f0b 100644
--- a/boards/arm/samv7/same70-xplained/Kconfig
+++ b/boards/arm/samv7/same70-xplained/Kconfig
@@ -90,65 +90,4 @@ config SAME70XPLAINED_HSMCI0_AUTOMOUNT_UDELAY
endif # SAME70XPLAINED_HSMCI0_AUTOMOUNT
-config SAME70XPLAINED_PROGMEM_OTA_PARTITION
- bool
- default n
- select MTD
- select MTD_BYTE_WRITE
- select MTD_PARTITION
- select MTD_PROGMEM
- select MTD_PROGMEM_ERASESTATE
-
-menuconfig SAME70XPLAINED_FORMAT_MCUBOOT
- bool "MCUboot-bootable format"
- default n
- select SAME70XPLAINED_PROGMEM_OTA_PARTITION
- ---help---
- The MCUboot support of loading the firmware images.
-
-if SAME70XPLAINED_FORMAT_MCUBOOT
-
-config SAME70XPLAINED_MCUBOOT_BOOTLOADER
- bool "MCUboot bootloader application"
- default n
- ---help---
- This switch between linker scripts to allow an application be
- built to another entry point address.
-
-comment "MCUboot Application Image OTA Update support"
-
-config SAME70XPLAINED_OTA_PRIMARY_SLOT_OFFSET
- hex "MCUboot application image primary slot offset"
- default "0x20000"
-
-config SAME70XPLAINED_OTA_PRIMARY_SLOT_DEVPATH
- string "Application image primary slot device path"
- default "/dev/ota0"
-
-config SAME70XPLAINED_OTA_SECONDARY_SLOT_OFFSET
- hex "MCUboot application image secondary slot offset"
- default "0x100000"
-
-config SAME70XPLAINED_OTA_SECONDARY_SLOT_DEVPATH
- string "Application image secondary slot device path"
- default "/dev/ota1"
-
-config SAME70XPLAINED_OTA_SLOT_SIZE
- hex "MCUboot application image slot size (in bytes)"
- default "0xe0000"
-
-config SAME70XPLAINED_OTA_SCRATCH_OFFSET
- hex "MCUboot scratch partition offset"
- default "0x1e0000"
-
-config SAME70XPLAINED_OTA_SCRATCH_DEVPATH
- string "Scratch partition device path"
- default "/dev/otascratch"
-
-config SAME70XPLAINED_OTA_SCRATCH_SIZE
- hex "MCUboot scratch partition size (in bytes)"
- default "0x20000"
-
-endif # SAME70XPLAINED_FORMAT_MCUBOOT
-
endif # ARCH_BOARD_SAME70_XPLAINED
diff --git a/boards/arm/samv7/same70-xplained/README.txt b/boards/arm/samv7/same70-xplained/README.txt
index 3c7ab65..b7c6d77 100644
--- a/boards/arm/samv7/same70-xplained/README.txt
+++ b/boards/arm/samv7/same70-xplained/README.txt
@@ -1159,7 +1159,7 @@ Using OpenOCD and GDB to flash via the EDBG chip
OpenOCD requires a configuration file. I keep the one I used last here:
- boards/arm/samv7/same70-xplained/tools/atmel_same70_xplained.cfg
+ boards/arm/samv7/common/tools/atmel_same70_xplained.cfg
However, the "correct" configuration script to use with OpenOCD may
change as the features of OpenOCD evolve. So you should at least
@@ -1175,15 +1175,15 @@ Using OpenOCD and GDB to flash via the EDBG chip
the OpenOCD daemon on my system called oocd.sh. That script will
probably require some modifications to work in another environment:
- - Possibly the value of OPENOCD_PATH and TARGET_PATH
+ - Possibly the value of OPENOCD_PATH, TARGET_PATH and TARGET_BOARD
- It assumes that the correct script to use is the one at
- boards/arm/samv7/same70-xplained/tools/atmel_same70_xplained.cfg
+ boards/arm/samv7/common/tools/atmel_${TARGET_BOARD}.cfg
Starting OpenOCD
Then you should be able to start the OpenOCD daemon like:
- boards/arm/samv7/same70-xplained/tools/oocd.sh $PWD
+ boards/arm/samv7/common/tools/oocd.sh $PWD
Connecting GDB
@@ -1716,8 +1716,7 @@ Configuration sub-directories
CONFIG_MCUBOOT_BOOTLOADER=y
CONFIG_MCUBOOT_ENABLE_LOGGING=y
- CONFIG_SAME70XPLAINED_FORMAT_MCUBOOT=y
- CONFIG_SAME70XPLAINED_MCUBOOT_BOOTLOADER=y
+ CONFIG_SAMV7_FORMAT_MCUBOOT=y
CONFIG_USER_ENTRYPOINT="mcuboot_loader_main"
mcuboot-confirm:
diff --git a/boards/arm/samv7/same70-xplained/configs/mcuboot-confirm/defconfig b/boards/arm/samv7/same70-xplained/configs/mcuboot-confirm/defconfig
index 931a4d5..4fbf4c2 100644
--- a/boards/arm/samv7/same70-xplained/configs/mcuboot-confirm/defconfig
+++ b/boards/arm/samv7/same70-xplained/configs/mcuboot-confirm/defconfig
@@ -46,7 +46,6 @@ CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
CONFIG_MMCSD_SDIO=y
CONFIG_MTD_AT24XX=y
CONFIG_MTD_AT25=y
-CONFIG_MTD_CONFIG=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
@@ -57,12 +56,11 @@ CONFIG_RAM_SIZE=393216
CONFIG_RAM_START=0x20400000
CONFIG_RAW_BINARY=y
CONFIG_RR_INTERVAL=200
-CONFIG_SAME70XPLAINED_FORMAT_MCUBOOT=y
+CONFIG_SAMV7_FORMAT_MCUBOOT=y
CONFIG_SAMV7_GPIOA_IRQ=y
CONFIG_SAMV7_GPIOC_IRQ=y
CONFIG_SAMV7_GPIO_IRQ=y
CONFIG_SAMV7_HSMCI0=y
-CONFIG_SAMV7_PROGMEM=y
CONFIG_SAMV7_SDRAMC=y
CONFIG_SAMV7_SDRAMSIZE=2097152
CONFIG_SAMV7_TWIHS0=y
diff --git a/boards/arm/samv7/same70-xplained/configs/mcuboot-loader/defconfig b/boards/arm/samv7/same70-xplained/configs/mcuboot-loader/defconfig
index 86123ea..4ddd819 100644
--- a/boards/arm/samv7/same70-xplained/configs/mcuboot-loader/defconfig
+++ b/boards/arm/samv7/same70-xplained/configs/mcuboot-loader/defconfig
@@ -47,7 +47,6 @@ CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
CONFIG_MMCSD_SDIO=y
CONFIG_MTD_AT24XX=y
CONFIG_MTD_AT25=y
-CONFIG_MTD_CONFIG=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
@@ -58,13 +57,11 @@ CONFIG_RAM_SIZE=393216
CONFIG_RAM_START=0x20400000
CONFIG_RAW_BINARY=y
CONFIG_RR_INTERVAL=200
-CONFIG_SAME70XPLAINED_FORMAT_MCUBOOT=y
-CONFIG_SAME70XPLAINED_MCUBOOT_BOOTLOADER=y
+CONFIG_SAMV7_FORMAT_MCUBOOT=y
CONFIG_SAMV7_GPIOA_IRQ=y
CONFIG_SAMV7_GPIOC_IRQ=y
CONFIG_SAMV7_GPIO_IRQ=y
CONFIG_SAMV7_HSMCI0=y
-CONFIG_SAMV7_PROGMEM=y
CONFIG_SAMV7_SDRAMC=y
CONFIG_SAMV7_SDRAMSIZE=2097152
CONFIG_SAMV7_TWIHS0=y
diff --git a/boards/arm/samv7/same70-xplained/kernel/Makefile b/boards/arm/samv7/same70-xplained/kernel/Makefile
index d7fe60f..e0b6632 100644
--- a/boards/arm/samv7/same70-xplained/kernel/Makefile
+++ b/boards/arm/samv7/same70-xplained/kernel/Makefile
@@ -31,16 +31,16 @@ ENTRYPT = $(patsubst "%",%,$(CONFIG_USER_ENTRYPOINT))
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
# Windows-native toolchains
USER_LIBPATHS = ${shell for path in $(USERLIBS); do dir=`dirname $(TOPDIR)$(DELIM)$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
- USER_LDSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)memory.ld}"
- USER_LDSCRIPT += -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)user-space.ld}"
+ USER_LDSCRIPT = -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)memory.ld}"
+ USER_LDSCRIPT += -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)user-space.ld}"
USER_HEXFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.hex}"
USER_SRECFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.srec}"
USER_BINFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.bin}"
else
# Linux/Cygwin-native toolchain
USER_LIBPATHS = $(addprefix -L$(TOPDIR)$(DELIM),$(dir $(USERLIBS)))
- USER_LDSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)memory.ld
- USER_LDSCRIPT += -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)user-space.ld
+ USER_LDSCRIPT = -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)memory.ld
+ USER_LDSCRIPT += -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)user-space.ld
USER_HEXFILE += "$(TOPDIR)$(DELIM)nuttx_user.hex"
USER_SRECFILE += "$(TOPDIR)$(DELIM)nuttx_user.srec"
USER_BINFILE += "$(TOPDIR)$(DELIM)nuttx_user.bin"
diff --git a/boards/arm/samv7/same70-xplained/scripts/Make.defs b/boards/arm/samv7/same70-xplained/scripts/Make.defs
index 1c6279f..288f75d 100644
--- a/boards/arm/samv7/same70-xplained/scripts/Make.defs
+++ b/boards/arm/samv7/same70-xplained/scripts/Make.defs
@@ -18,55 +18,4 @@
#
############################################################################
-include $(TOPDIR)/.config
-include $(TOPDIR)/tools/Config.mk
-include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
-
-LDSCRIPT_TEMPLATE = $(BOARD_DIR)$(DELIM)scripts$(DELIM)flash.template.ld
-LDSCRIPT = samv7.ld
-
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)}"
-else
- ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
-AFLAGS := $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-# Loadable module definitions
-
-CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
-
-LDMODULEFLAGS = -r -e module_initialize
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/libs/libc/modlib/gnu-elf.ld}"
-else
- LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
+include $(TOPDIR)/boards/arm/samv7/common/scripts/flat.memory
diff --git a/boards/arm/samv7/same70-xplained/scripts/flash.template.ld b/boards/arm/samv7/same70-xplained/scripts/flash.template.ld
deleted file mode 100644
index 4b984a8..0000000
--- a/boards/arm/samv7/same70-xplained/scripts/flash.template.ld
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-xplained/scripts/flash.template.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#define FLASH_START_ADDR 0x00400000
-
-#ifdef CONFIG_ARMV7M_DTCM
-# define SRAM_START_ADDR 0x20000000
-#else
-# define SRAM_START_ADDR 0x20400000
-#endif
-
-#ifdef CONFIG_SAME70XPLAINED_FORMAT_MCUBOOT
-# define MCUBOOT_HEADER_SIZE 0x200
-# ifdef CONFIG_BOARDCTL_BOOT_IMAGE
-# define FLASH_OFFSET 0
-# define FLASH_IMG_SIZE CONFIG_SAME70XPLAINED_OTA_PRIMARY_SLOT_OFFSET
-# else
-# define FLASH_OFFSET (CONFIG_SAME70XPLAINED_OTA_PRIMARY_SLOT_OFFSET + MCUBOOT_HEADER_SIZE)
-# define FLASH_IMG_SIZE (CONFIG_SAME70XPLAINED_OTA_SLOT_SIZE - MCUBOOT_HEADER_SIZE)
-# endif
-#else
-# define FLASH_OFFSET 0
-# define FLASH_IMG_SIZE CONFIG_ARCH_CHIP_SAMV7_MEM_FLASH
-#endif
-
-MEMORY
-{
- flash (rx) : ORIGIN = FLASH_START_ADDR + FLASH_OFFSET, LENGTH = FLASH_IMG_SIZE
- sram (rwx) : ORIGIN = SRAM_START_ADDR, LENGTH = CONFIG_ARCH_CHIP_SAMV7_MEM_RAM
-}
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
- .text : {
- _stext = ABSOLUTE(.);
- *(.vectors)
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > flash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > flash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > flash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > flash
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
- } > sram AT > flash
-
- .ramfunc ALIGN(4): {
- _sramfuncs = ABSOLUTE(.);
- *(.ramfunc .ramfunc.*)
- _eramfuncs = ABSOLUTE(.);
- } > sram AT > flash
-
- _framfuncs = LOADADDR(.ramfunc);
-
- .bss : {
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = ABSOLUTE(.);
- } > sram
-
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-xplained/scripts/gnu-elf.ld b/boards/arm/samv7/same70-xplained/scripts/gnu-elf.ld
deleted file mode 100644
index a141d7b..0000000
--- a/boards/arm/samv7/same70-xplained/scripts/gnu-elf.ld
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-xplained/scripts/gnu-elf.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-SECTIONS
-{
- .text 0x00000000 :
- {
- _stext = . ;
- *(.text)
- *(.text.*)
- *(.gnu.warning)
- *(.stub)
- *(.glue_7)
- *(.glue_7t)
- *(.jcr)
-
- /* C++ support: The .init and .fini sections contain specific logic
- * to manage static constructors and destructors.
- */
-
- *(.gnu.linkonce.t.*)
- *(.init) /* Old ABI */
- *(.fini) /* Old ABI */
- _etext = . ;
- }
-
- .rodata :
- {
- _srodata = . ;
- *(.rodata)
- *(.rodata1)
- *(.rodata.*)
- *(.gnu.linkonce.r*)
- _erodata = . ;
- }
-
- .data :
- {
- _sdata = . ;
- *(.data)
- *(.data1)
- *(.data.*)
- *(.gnu.linkonce.d*)
- . = ALIGN(4);
- _edata = . ;
- }
-
- /* C++ support. For each global and static local C++ object,
- * GCC creates a small subroutine to construct the object. Pointers
- * to these routines (not the routines themselves) are stored as
- * simple, linear arrays in the .ctors section of the object file.
- * Similarly, pointers to global/static destructor routines are
- * stored in .dtors.
- */
-
- .ctors :
- {
- _sctors = . ;
- *(.ctors) /* Old ABI: Unallocated */
- *(.init_array) /* New ABI: Allocated */
- _edtors = . ;
- }
-
- .dtors :
- {
- _sdtors = . ;
- *(.dtors) /* Old ABI: Unallocated */
- *(.fini_array) /* New ABI: Allocated */
- _edtors = . ;
- }
-
- .bss :
- {
- _sbss = . ;
- *(.bss)
- *(.bss.*)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.b*)
- *(COMMON)
- _ebss = . ;
- }
-
- /* Stabs debugging sections. */
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-xplained/scripts/kernel-space.ld b/boards/arm/samv7/same70-xplained/scripts/kernel-space.ld
deleted file mode 100644
index 7fce3ef..0000000
--- a/boards/arm/samv7/same70-xplained/scripts/kernel-space.ld
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-xplained/scripts/kernel-space.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-/* NOTE: This depends on the memory.ld script having been included prior to
- * this script.
- */
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
- .text : {
- _stext = ABSOLUTE(.);
- *(.vectors)
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > kflash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > kflash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > kflash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > kflash
-
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
- } > ksram AT > kflash
-
- .ramfunc ALIGN(4): {
- _sramfuncs = ABSOLUTE(.);
- *(.ramfunc .ramfunc.*)
- _eramfuncs = ABSOLUTE(.);
- } > ksram AT > kflash
-
- _framfuncs = LOADADDR(.ramfunc);
-
- .bss : {
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = ABSOLUTE(.);
- } > ksram
-
- /* Stabs debugging sections */
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-xplained/scripts/memory.ld b/boards/arm/samv7/same70-xplained/scripts/memory.ld
deleted file mode 100644
index 8ba960c..0000000
--- a/boards/arm/samv7/same70-xplained/scripts/memory.ld
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-xplained/scripts/memory.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-/* The SAMe70Q21 has 2048Kb of FLASH beginning at address 0x0040:0000 and
- * 384Kb of SRAM beginining at 0x2040:0000
- *
- * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
- * where the code expects to begin execution by jumping to the entry point in
- * the 0x0400:0000 address range.
- *
- * The user space partition will be spanned with a single region of size
- * 2**n bytes. The alignment of the user-space region must be the same.
- * As a consequence, as the user-space increases in size, the alignment
- * requirement also increases. The sizes below give the largest possible
- * user address spaces (but leave far too much for the OS).
- *
- * The solution to this wasted memory is to (1) use more than one region to
- * span the user spaces, or (2) poke holes in a larger region to trim it
- * to fit better.
- *
- * A detailed memory map for the 384KB SRAM region is as follows:
- *
- * 0x2040 0000: Kernel .data region. Typical size: 0.1KB
- * ------ ---- Kernel .bss region. Typical size: 1.8KB
- * 0x2040 0800: Kernel IDLE thread stack (approximate). Size is
- * determined by CONFIG_IDLETHREAD_STACKSIZE and
- * adjustments for alignment. Typical is 1KB.
- * ------ ---- Padded to 4KB
- * 0x2042 0000: User .data region. Size is variable.
- * ------- ---- User .bss region Size is variable.
- * 0x2044 0000: Beginning of kernel heap. Size determined by
- * CONFIG_MM_KERNEL_HEAPSIZE.
- * ------ ---- Beginning of user heap. Can vary with other settings.
- * 0x2046 0000: End+1 of mappable internal SRAM
- */
-
-MEMORY
-{
- /* 2048KiB of internal FLASH */
-
- kflash (rx) : ORIGIN = 0x00400000, LENGTH = 1M
- uflash (rx) : ORIGIN = 0x00500000, LENGTH = 1M
-
- /* 384Kb of internal SRAM */
-
- ksram (rwx) : ORIGIN = 0x20400000, LENGTH = 128K
- usram (rwx) : ORIGIN = 0x20420000, LENGTH = 128K
- xsram (rwx) : ORIGIN = 0x20440000, LENGTH = 128K
-}
diff --git a/boards/arm/samv7/same70-xplained/scripts/user-space.ld b/boards/arm/samv7/same70-xplained/scripts/user-space.ld
deleted file mode 100644
index bf32b45..0000000
--- a/boards/arm/samv7/same70-xplained/scripts/user-space.ld
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/same70-xplained/scripts/user-space.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-/* NOTE: This depends on the memory.ld script having been included prior to
- * this script.
- */
-
-/* Make sure that the critical memory management functions are in user-space.
- * the user heap memory manager will reside in user-space but be usable both
- * by kernel- and user-space code
- */
-
-EXTERN(umm_initialize)
-EXTERN(umm_addregion)
-
-EXTERN(malloc)
-EXTERN(realloc)
-EXTERN(zalloc)
-EXTERN(free)
-
-OUTPUT_ARCH(arm)
-SECTIONS
-{
- .userspace : {
- *(.userspace)
- } > uflash
-
- .text : {
- _stext = ABSOLUTE(.);
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > uflash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > uflash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > uflash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > uflash
-
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
- } > usram AT > uflash
-
- .bss : {
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = ABSOLUTE(.);
- } > usram
-
- /* Stabs debugging sections */
-
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/same70-xplained/src/Makefile b/boards/arm/samv7/same70-xplained/src/Make.defs
similarity index 88%
rename from boards/arm/samv7/same70-xplained/src/Makefile
rename to boards/arm/samv7/same70-xplained/src/Make.defs
index 8bbea95..4c88925 100644
--- a/boards/arm/samv7/same70-xplained/src/Makefile
+++ b/boards/arm/samv7/same70-xplained/src/Make.defs
@@ -100,16 +100,18 @@ ifeq ($(CONFIG_IEEE802154_XBEE),y)
CSRCS += sam_xbee.c
endif
-SCRIPTOUT = $(BOARD_DIR)$(DELIM)scripts$(DELIM)samv7.ld
+SCRIPTOUT = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld
.PHONY = context distclean
$(SCRIPTOUT): $(LDSCRIPT_TEMPLATE) $(CONFIGFILE)
- $(Q) $(CC) -isystem $(TOPDIR)/include -I $(BOARD_DIR)$(DELIM)scripts -C -P -x c -E $(LDSCRIPT_TEMPLATE) -o $@
+ $(Q) $(CC) -isystem $(TOPDIR)/include -I $(BOARD_COMMON_DIR)$(DELIM)scripts -C -P -x c -E $(LDSCRIPT_TEMPLATE) -o $@
context:: $(SCRIPTOUT)
distclean::
$(call DELFILE, $(SCRIPTOUT))
-include $(TOPDIR)/boards/Board.mk
+DEPPATH += --dep-path board
+VPATH += :board
+CFLAGS += $(shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board)
diff --git a/boards/arm/samv7/same70-xplained/src/sam_progmem.c b/boards/arm/samv7/same70-xplained/src/sam_progmem.c
index 5dfe73e..390868f 100644
--- a/boards/arm/samv7/same70-xplained/src/sam_progmem.c
+++ b/boards/arm/samv7/same70-xplained/src/sam_progmem.c
@@ -54,7 +54,7 @@
* Private Types
****************************************************************************/
-#if defined(CONFIG_SAME70XPLAINED_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
struct ota_partition_s
{
@@ -69,7 +69,7 @@ struct ota_partition_s
* Private Function Prototypes
****************************************************************************/
-#if defined(CONFIG_SAME70XPLAINED_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
static struct mtd_dev_s *sam_progmem_alloc_mtdpart(uint32_t mtd_offset,
uint32_t mtd_size);
static int init_ota_partitions(void);
@@ -81,23 +81,23 @@ static int init_ota_partitions(void);
static FAR struct mtd_dev_s *g_samv7_progmem_mtd;
-#if defined(CONFIG_SAME70XPLAINED_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
static const struct ota_partition_s g_ota_partition_table[] =
{
{
- .offset = CONFIG_SAME70XPLAINED_OTA_PRIMARY_SLOT_OFFSET,
- .size = CONFIG_SAME70XPLAINED_OTA_SLOT_SIZE,
- .devpath = CONFIG_SAME70XPLAINED_OTA_PRIMARY_SLOT_DEVPATH
+ .offset = CONFIG_SAMV7_OTA_PRIMARY_SLOT_OFFSET,
+ .size = CONFIG_SAMV7_OTA_SLOT_SIZE,
+ .devpath = CONFIG_SAMV7_OTA_PRIMARY_SLOT_DEVPATH
},
{
- .offset = CONFIG_SAME70XPLAINED_OTA_SECONDARY_SLOT_OFFSET,
- .size = CONFIG_SAME70XPLAINED_OTA_SLOT_SIZE,
- .devpath = CONFIG_SAME70XPLAINED_OTA_SECONDARY_SLOT_DEVPATH
+ .offset = CONFIG_SAMV7_OTA_SECONDARY_SLOT_OFFSET,
+ .size = CONFIG_SAMV7_OTA_SLOT_SIZE,
+ .devpath = CONFIG_SAMV7_OTA_SECONDARY_SLOT_DEVPATH
},
{
- .offset = CONFIG_SAME70XPLAINED_OTA_SCRATCH_OFFSET,
- .size = CONFIG_SAME70XPLAINED_OTA_SCRATCH_SIZE,
- .devpath = CONFIG_SAME70XPLAINED_OTA_SCRATCH_DEVPATH
+ .offset = CONFIG_SAMV7_OTA_SCRATCH_OFFSET,
+ .size = CONFIG_SAMV7_OTA_SCRATCH_SIZE,
+ .devpath = CONFIG_SAMV7_OTA_SCRATCH_DEVPATH
}
};
#endif
@@ -106,7 +106,7 @@ static const struct ota_partition_s g_ota_partition_table[] =
* Private Functions
****************************************************************************/
-#if defined(CONFIG_SAME70XPLAINED_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
/****************************************************************************
* Name: sam_progmem_alloc_mtdpart
@@ -225,7 +225,7 @@ int sam_progmem_init(void)
return -EFAULT;
}
-#if defined(CONFIG_SAME70XPLAINED_PROGMEM_OTA_PARTITION)
+#if defined(CONFIG_SAMV7_PROGMEM_OTA_PARTITION)
ret = init_ota_partitions();
if (ret < 0)
{
diff --git a/boards/arm/samv7/same70-xplained/tools/atmel_same70_xplained.cfg b/boards/arm/samv7/same70-xplained/tools/atmel_same70_xplained.cfg
deleted file mode 100644
index 068d6c2..0000000
--- a/boards/arm/samv7/same70-xplained/tools/atmel_same70_xplained.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Atmel SAME70 Xplained evaluation kit.
-# http://www.atmel.com/tools/ATSAME70-XPLD.aspx
-#
-# Connect using the EDBG chip on the dev kit over USB
-
-source [find interface/cmsis-dap.cfg]
-
-set CHIPNAME atsame70q21
-
-source [find target/atsamv.cfg]
-
-reset_config srst_only
diff --git a/boards/arm/samv7/same70-xplained/tools/oocd.sh b/boards/arm/samv7/same70-xplained/tools/oocd.sh
deleted file mode 100755
index 8ed4a9d..0000000
--- a/boards/arm/samv7/same70-xplained/tools/oocd.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env bash
-#
-# See boards/atmel_same70_xplained.cfg/README.txt for information about
-# this file.
-
-TOPDIR=$1
-USAGE="$0 <TOPDIR> [-d]"
-if [ -z "${TOPDIR}" ]; then
- echo "Missing argument"
- echo $USAGE
- exit 1
-fi
-
-# Assume that OpenOCD was installed and at /usr/local/bin. Uncomment
-# the following to run directly from the build directory
-
-# OPENOCD_PATH="/home/OpenOCD/openocd/src"
-# OPENOCD_PATH="/usr/bin"
-OPENOCD_PATH="/usr/local/bin"
-
-# TARGET_PATH="/home/OpenOCD/openocd/tcl"
-# TARGET_PATH="/usr/share/openocd/scripts"
-TARGET_PATH="/usr/local/share/openocd/scripts"
-
-# Assume a Unix development environment. Uncomment to use a Windows
-# like environment
-
-#OPENOCD_EXE=openocd.exe
-OPENOCD_EXE=openocd
-
-OPENOCD_CFG="${TOPDIR}/boards/arm/samv7/same70-xplained/tools/atmel_same70_xplained.cfg"
-OPENOCD_ARGS="-f ${OPENOCD_CFG} -s ${TARGET_PATH}"
-
-if [ "X$2" = "X-d" ]; then
- OPENOCD_ARGS=$OPENOCD_ARGS" -d3"
- set -x
-fi
-
-if [ ! -d ${OPENOCD_PATH} ]; then
- echo "OpenOCD path does not exist: ${OPENOCD_PATH}"
- exit 1
-fi
-if [ ! -x ${OPENOCD_PATH}/${OPENOCD_EXE} ]; then
- echo "OpenOCD does not exist: ${OPENOCD_PATH}/${OPENOCD_EXE}"
- exit 1
-fi
-if [ ! -f ${OPENOCD_CFG} ]; then
- echo "OpenOCD config file does not exist: ${OPENOCD_CFG}"
- exit 1
-fi
-
-echo "Starting OpenOCD"
-cd ${OPENOCD_PATH} || { echo "Failed to CD to ${OPENOCD_PATH}"; exit 1; }
-${OPENOCD_EXE} ${OPENOCD_ARGS} &
-echo "OpenOCD daemon started"
-ps -ef | grep openocd
-echo "In GDB: target remote localhost:3333"
diff --git a/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs b/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs
index 5edaf3c..615897d 100644
--- a/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs
+++ b/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs
@@ -18,57 +18,4 @@
#
############################################################################
-include $(TOPDIR)/.config
-include $(TOPDIR)/tools/Config.mk
-include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
-
-LDSCRIPT1 = memory.ld
-LDSCRIPT2 = kernel-space.ld
-
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT1)}"
- ARCHSCRIPT += -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT2)}"
-else
- ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT1)
- ARCHSCRIPT += -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT2)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
-AFLAGS := $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-# Loadable module definitions
-
-CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
-
-LDMODULEFLAGS = -r -e module_initialize
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/libs/libc/modlib/gnu-elf.ld}"
-else
- LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
+include $(TOPDIR)/boards/arm/samv7/common/scripts/protected.memory
diff --git a/boards/arm/samv7/samv71-xult/kernel/Makefile b/boards/arm/samv7/samv71-xult/kernel/Makefile
index bda98a6..721e861 100644
--- a/boards/arm/samv7/samv71-xult/kernel/Makefile
+++ b/boards/arm/samv7/samv71-xult/kernel/Makefile
@@ -31,16 +31,16 @@ ENTRYPT = $(patsubst "%",%,$(CONFIG_USER_ENTRYPOINT))
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
# Windows-native toolchains
USER_LIBPATHS = ${shell for path in $(USERLIBS); do dir=`dirname $(TOPDIR)$(DELIM)$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
- USER_LDSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)memory.ld}"
- USER_LDSCRIPT += -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)user-space.ld}"
+ USER_LDSCRIPT = -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)memory.ld}"
+ USER_LDSCRIPT += -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)user-space.ld}"
USER_HEXFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.hex}"
USER_SRECFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.srec}"
USER_BINFILE += "${shell cygpath -w $(TOPDIR)$(DELIM)nuttx_user.bin}"
else
# Linux/Cygwin-native toolchain
USER_LIBPATHS = $(addprefix -L$(TOPDIR)$(DELIM),$(dir $(USERLIBS)))
- USER_LDSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)memory.ld
- USER_LDSCRIPT += -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)user-space.ld
+ USER_LDSCRIPT = -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)memory.ld
+ USER_LDSCRIPT += -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)user-space.ld
USER_HEXFILE += "$(TOPDIR)$(DELIM)nuttx_user.hex"
USER_SRECFILE += "$(TOPDIR)$(DELIM)nuttx_user.srec"
USER_BINFILE += "$(TOPDIR)$(DELIM)nuttx_user.bin"
diff --git a/boards/arm/samv7/samv71-xult/scripts/Make.defs b/boards/arm/samv7/samv71-xult/scripts/Make.defs
index 2a008ad..81ea817 100644
--- a/boards/arm/samv7/samv71-xult/scripts/Make.defs
+++ b/boards/arm/samv7/samv71-xult/scripts/Make.defs
@@ -18,55 +18,4 @@
#
############################################################################
-include $(TOPDIR)/.config
-include $(TOPDIR)/tools/Config.mk
-include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs
-
-LDSCRIPT_TEMPLATE = $(BOARD_DIR)$(DELIM)scripts$(DELIM)flash.template.ld
-LDSCRIPT = samv7.ld
-
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)}"
-else
- ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS := $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
-AFLAGS := $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-# Loadable module definitions
-
-CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
-
-LDMODULEFLAGS = -r -e module_initialize
-ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
- LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/libs/libc/modlib/gnu-elf.ld}"
-else
- LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
+include $(TOPDIR)/boards/arm/samv7/common/scripts/flat.memory
diff --git a/boards/arm/samv7/samv71-xult/scripts/flash.template.ld b/boards/arm/samv7/samv71-xult/scripts/flash.template.ld
deleted file mode 100644
index 478fb82..0000000
--- a/boards/arm/samv7/samv71-xult/scripts/flash.template.ld
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * boards/arm/samv7/samv71-xult/scripts/flash.template.ld
- *
- * 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.
- *
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#define FLASH_START_ADDR 0x00400000
-
-#ifdef CONFIG_ARMV7M_DTCM
-# define SRAM_START_ADDR 0x20000000
-#else
-# define SRAM_START_ADDR 0x20400000
-#endif
-
-#define FLASH_OFFSET 0
-#define FLASH_IMG_SIZE CONFIG_ARCH_CHIP_SAMV7_MEM_FLASH
-
-MEMORY
-{
- flash (rx) : ORIGIN = FLASH_START_ADDR + FLASH_OFFSET, LENGTH = FLASH_IMG_SIZE
- sram (rwx) : ORIGIN = SRAM_START_ADDR, LENGTH = CONFIG_ARCH_CHIP_SAMV7_MEM_RAM
-}
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
- .text : {
- _stext = ABSOLUTE(.);
- *(.vectors)
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > flash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > flash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > flash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > flash
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- . = ALIGN(4);
- _edata = ABSOLUTE(.);
- } > sram AT > flash
-
- .ramfunc ALIGN(4): {
- _sramfuncs = ABSOLUTE(.);
- *(.ramfunc .ramfunc.*)
- _eramfuncs = ABSOLUTE(.);
- } > sram AT > flash
-
- _framfuncs = LOADADDR(.ramfunc);
-
- .bss : {
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = ABSOLUTE(.);
- } > sram
-
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/boards/arm/samv7/samv71-xult/src/Makefile b/boards/arm/samv7/samv71-xult/src/Make.defs
similarity index 88%
rename from boards/arm/samv7/samv71-xult/src/Makefile
rename to boards/arm/samv7/samv71-xult/src/Make.defs
index 7e23f3b..d273b77 100644
--- a/boards/arm/samv7/samv71-xult/src/Makefile
+++ b/boards/arm/samv7/samv71-xult/src/Make.defs
@@ -114,16 +114,18 @@ ifeq ($(CONFIG_LCD_ST7789),y)
CSRCS += sam_st7789.c
endif
-SCRIPTOUT = $(BOARD_DIR)$(DELIM)scripts$(DELIM)samv7.ld
+SCRIPTOUT = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld
.PHONY = context distclean
$(SCRIPTOUT): $(LDSCRIPT_TEMPLATE) $(CONFIGFILE)
- $(Q) $(CC) -isystem $(TOPDIR)/include -I $(BOARD_DIR)$(DELIM)scripts -C -P -x c -E $(LDSCRIPT_TEMPLATE) -o $@
+ $(Q) $(CC) -isystem $(TOPDIR)/include -I $(BOARD_COMMON_DIR)$(DELIM)scripts -C -P -x c -E $(LDSCRIPT_TEMPLATE) -o $@
context:: $(SCRIPTOUT)
distclean::
$(call DELFILE, $(SCRIPTOUT))
-include $(TOPDIR)/boards/Board.mk
+DEPPATH += --dep-path board
+VPATH += :board
+CFLAGS += $(shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board)