From f45383993efe41542c0de2ca030a1ff05f765b6e Mon Sep 17 00:00:00 2001 From: Nathaniel Graff Date: Mon, 29 Apr 2019 14:49:56 -0700 Subject: Update Metal and build scripts for platform header Signed-off-by: Nathaniel Graff --- bsp/update-targets.sh | 3 +++ doc/sphinx/contents.rst | 14 +++++++++++--- freedom-metal | 2 +- scripts/libmetal.mk | 2 ++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/bsp/update-targets.sh b/bsp/update-targets.sh index c659f7d..b05731a 100755 --- a/bsp/update-targets.sh +++ b/bsp/update-targets.sh @@ -69,6 +69,7 @@ DTC=dtc MEE_HEADER_GENERATOR=freedom-metal_header-generator LDSCRIPT_GENERATOR=freedom-ldscript-generator MAKEATTRIB_GENERATOR=freedom-makeattributes-generator +BARE_HEADER_GENERATOR=freedom-bare_header-generator DTS_FILENAME=design.dts DTB_FILENAME=temp.dtb @@ -77,6 +78,7 @@ LDS_DEFAULT_FILENAME=metal.default.lds LDS_RAMRODATA_FILENAME=metal.ramrodata.lds LDS_SCRATCHPAD_FILENAME=metal.scratchpad.lds SETTINGS_FILENAME=settings.mk +BARE_HEADER_FILENAME=metal-platform.h update_target() { TARGET=$1 @@ -99,6 +101,7 @@ update_target() { $LDSCRIPT_GENERATOR -d $TARGET/$DTB_FILENAME -l $TARGET/$LDS_RAMRODATA_FILENAME --ramrodata || die "Failed to produce $TARGET/$LDS_RAMRODATA_FILENAME" $LDSCRIPT_GENERATOR -d $TARGET/$DTB_FILENAME -l $TARGET/$LDS_SCRATCHPAD_FILENAME --scratchpad || die "Failed to produce $TARGET/$LDS_SCRATCHPAD_FILENAME" $MAKEATTRIB_GENERATOR -d $TARGET/$DTB_FILENAME -b $TARGET_TYPE -o $TARGET/$SETTINGS_FILENAME || die "Failed to produce $TARGET/$SETTINGS_FILENAME" + $BARE_HEADER_GENERATOR -d $TARGET/$DTB_FILENAME -o $TARGET/$BARE_HEADER_FILENAME || die "Failed to produce $TARGET/$BARE_HEADER_FILENAME" # Remove temporary .dtb rm $TARGET/$DTB_FILENAME diff --git a/doc/sphinx/contents.rst b/doc/sphinx/contents.rst index d0d7cc5..cad7f78 100644 --- a/doc/sphinx/contents.rst +++ b/doc/sphinx/contents.rst @@ -64,9 +64,16 @@ and consist of the following: - The Freedom Metal machine header which is used internally to Freedom Metal to instantiate structures to support the target device. -* ``metal.lds`` +* ``metal-platform.h`` - - The linker script for the target device. + - The Freedom Metal platform header which is used internally to Freedom Metal + as the source for each device's memory-mapped base address, memory-mapped + size, properties, and memory-mapped register offsets. + +* ``metal.%.lds`` + + - Linker scripts for the target device. Scripts other than ``metal.default.lds`` + are used for alternative memory layouts. * ``openocd.cfg`` (for development board and FPGA targets) @@ -74,7 +81,8 @@ and consist of the following: * ``settings.mk`` - - Used to set ``-march`` and ``-mabi`` arguments to the RISC-V GNU Toolchain. + - Used to set ``-march`` and ``-mabi`` arguments to the RISC-V GNU Toolchain + as well as configure target-specific build steps. Freedom Metal ------------- diff --git a/freedom-metal b/freedom-metal index 6d69e6d..eb22ebc 160000 --- a/freedom-metal +++ b/freedom-metal @@ -1 +1 @@ -Subproject commit 6d69e6d48babe4472a6f4671b832cb7df941f274 +Subproject commit eb22ebcbaefd0b3547064c7cc162df743c2be524 diff --git a/scripts/libmetal.mk b/scripts/libmetal.mk index c45972a..bd89173 100644 --- a/scripts/libmetal.mk +++ b/scripts/libmetal.mk @@ -5,6 +5,7 @@ METAL_SOURCE_PATH ?= freedom-metal METAL_LDSCRIPT = $(BSP_DIR)/metal.$(LINK_TARGET).lds METAL_HEADER = $(BSP_DIR)/metal.h +PLATFORM_HEADER = $(BSP_DIR)/metal-platform.h METAL_PREFIX = $(abspath $(BSP_DIR)/install) METAL_BUILD_DIR = $(abspath $(BSP_DIR)/build/$(CONFIGURATION)) @@ -26,6 +27,7 @@ $(METAL_BUILD_DIR)/Makefile: --with-preconfigured \ --with-machine-name=$(TARGET) \ --with-machine-header=$(abspath $(METAL_HEADER)) \ + --with-platform-header=$(abspath $(PLATFORM_HEADER)) \ --with-machine-ldscript=$(abspath $(METAL_LDSCRIPT)) \ --with-builtin-libgloss touch -c $@ -- cgit v1.2.1-18-gbd029