summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormwachs5 <megan@sifive.com>2017-05-17 10:57:03 -0700
committermwachs5 <megan@sifive.com>2017-05-17 10:57:03 -0700
commitf62f4aae84a0fcf2ff4093be41553fca553fd99e (patch)
treef024efbd7ee076d721b1251990c0a5263e386ee1
parente7bc9996403c9cd375aa20e5fd1b5b933b92c081 (diff)
Update Makefile and README with how to use precompiled binaries.
-rw-r--r--Makefile20
-rw-r--r--README.md34
2 files changed, 41 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 0e785dd..f561668 100644
--- a/Makefile
+++ b/Makefile
@@ -103,13 +103,15 @@ tools: riscv-gnu-toolchain openocd
toolchain_builddir := $(builddir)/riscv-gnu-toolchain/riscv64-unknown-elf
toolchain_prefix := $(toolchain_builddir)/prefix
-RISCV_GCC := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-gcc)
-RISCV_GXX := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-g++)
-RISCV_OBJDUMP := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-objdump)
-RISCV_GDB := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-gdb)
-RISCV_AR := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-ar)
+RISCV_PREFIX ?= $(toolchain_prefix)
-PATH := $(abspath $(toolchain_prefix)/bin):$(PATH)
+RISCV_GCC := $(abspath $(RISCV_PREFIX)/bin/riscv64-unknown-elf-gcc)
+RISCV_GXX := $(abspath $(RISCV_PREFIX)/bin/riscv64-unknown-elf-g++)
+RISCV_OBJDUMP := $(abspath $(RISCV_PREFIX)/bin/riscv64-unknown-elf-objdump)
+RISCV_GDB := $(abspath $(RISCV_PREFIX)/bin/riscv64-unknown-elf-gdb)
+RISCV_AR := $(abspath $(RISCV_PREFIX)/bin/riscv64-unknown-elf-ar)
+
+PATH := $(abspath $(RISCV_PREFIX)/bin):$(PATH)
$(RISCV_GCC) $(RISCV_GXX) $(RISCV_OBJDUMP) $(RISCV_GDB) $(RISCV_AR): $(toolchain_builddir)/install.stamp
touch -c $@
@@ -148,7 +150,9 @@ toolchain-clean:
# initializing the target.
openocd_builddir := $(builddir)/openocd
openocd_prefix := $(openocd_builddir)/prefix
-RISCV_OPENOCD := $(openocd_prefix)/bin/openocd
+
+RISCV_OPENOCD_PREFIX ?= $(openocd_prefix)
+RISCV_OPENOCD ?= $(RISCV_OPENOCD_PREFIX)/bin/openocd
.PHONY: openocd
openocd: $(RISCV_OPENOCD)
@@ -215,7 +219,7 @@ GDB_UPLOAD_CMDS += -ex "quit"
upload:
$(RISCV_OPENOCD) $(OPENOCDARGS) & \
- $(RISCV_GDB) $(PROGRAM_DIR)/$(PROGRAM) $(GDB_UPLOAD_ARGS) $(GDB_UPLOAD_CMDS);\
+ $(RISCV_GDB) $(PROGRAM_DIR)/$(PROGRAM) $(GDB_UPLOAD_ARGS) $(GDB_UPLOAD_CMDS) && \
echo "Successfully uploaded '$(PROGRAM)' to $(BOARD)."
#############################################################
diff --git a/README.md b/README.md
index 523e754..fe6574f 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,15 @@ First, clone this repository:
git clone --recursive https://github.com/sifive/freedom-e-sdk.git
```
+To see Makefile options:
+
+```
+cd freedom-e-sdk
+make help
+```
+
+#### Building Tools from Source ####
+
Ubuntu packages needed:
$ sudo apt-get install autoconf automake libmpc-dev libmpfr-dev libgmp-dev gawk bison flex texinfo libtool libusb-1.0-0-dev make g++ pkg-config libexpat1-dev zlib1g-dev
@@ -25,7 +34,7 @@ Next, build the tools:
```
cd freedom-e-sdk
-make tools
+make tools [BOARD=freedom-e300-hifive1]
```
If your machine has enough resources, you can speed up the build process by adding `-j n` to `make`, where `n` is the number of processors of your build system.
@@ -34,15 +43,30 @@ To compile a bare-metal RISC-V program:
```
cd freedom-e-sdk
-make software [PROGRAM=demo_gpio]
+make software [PROGRAM=demo_gpio] [BOARD=freedom-e300-hifive1]
```
+#### Using Pre-Built Binary Tools ####
+
+If you would like to avoid compiling the tools from source, they are
+available as pre-built binaries from
+
+https://sifive.com/products/tools
-To see additional options:
+For OpenOCD and/or RISC-V GNU Toolchain,
+download the .tar.gz for your platform, and unpack it to
+your desired location. Then, use the `RISC_PREFIX` and `RISCV_OPENOCD_PREFIX`
+variables when attempting to use the tools:
```
-cd freedom-e-sdk
-make help
+cp openocd-<date>-<platform>.tar.gz /my/desired/location/
+cp riscv-gnu-toolchain-<date>-<platform>.tar.gz /my/desired/location
+cd /my/desired/location
+tar -xvf openocd-<date>-<platform>.tar.gz
+tar -xvf riscv-gnu-toolchain-<date>-<platform>.tar.gz
+export RISCV_OPENOCD_PREFIX /my/desired/location/openocd
+export RISCV_PREFIX /my/desired/location/riscv-gnu-toolchain
```
+
### Updating your SDK ###
If you'd like to update your SDK to the latest version: