diff options
author | Nathaniel Graff <nathaniel.graff@sifive.com> | 2019-04-29 14:49:56 -0700 |
---|---|---|
committer | Nathaniel Graff <nathaniel.graff@sifive.com> | 2019-05-02 11:09:59 -0700 |
commit | f45383993efe41542c0de2ca030a1ff05f765b6e (patch) | |
tree | c8e74c959d67e413e458f596def222df7a5dbfaa | |
parent | b178ea51465fdaf68e848dc8f55be03bd140013a (diff) |
Update Metal and build scripts for platform header
Signed-off-by: Nathaniel Graff <nathaniel.graff@sifive.com>
-rwxr-xr-x | bsp/update-targets.sh | 3 | ||||
-rw-r--r-- | doc/sphinx/contents.rst | 14 | ||||
m--------- | freedom-metal | 0 | ||||
-rw-r--r-- | scripts/libmetal.mk | 2 |
4 files changed, 16 insertions, 3 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 -Subproject 6d69e6d48babe4472a6f4671b832cb7df941f27 +Subproject eb22ebcbaefd0b3547064c7cc162df743c2be52 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 $@ |