diff --git a/.gitmodules b/.gitmodules index 34442de..c245a1c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,18 @@ [submodule "linux"] path = linux - url = https://github.com/sifive/riscv-linux.git + url = https://github.com/riscv/riscv-linux.git [submodule "buildroot"] path = buildroot url = https://github.com/sifive/buildroot.git [submodule "riscv-pk"] path = riscv-pk - url = https://github.com/sifive/riscv-pk.git + url = https://github.com/riscv/riscv-pk.git [submodule "riscv-gnu-toolchain"] path = riscv-gnu-toolchain url = https://github.com/riscv/riscv-gnu-toolchain.git +[submodule "riscv-isa-sim"] + path = riscv-isa-sim + url = https://github.com/riscv/riscv-isa-sim.git +[submodule "riscv-fesvr"] + path = riscv-fesvr + url = https://github.com/riscv/riscv-fesvr.git diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..272517b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,25 @@ +addons: + apt: + packages: + - autoconf + - automake + - autotools-dev + - bc + - bison + - build-essential + - curl + - flex + - gawk + - gperf + - libgmp-dev + - libmpc-dev + - libmpfr-dev + - libtool + - patchutils + - texinfo +before_install: + - export MAKEFLAGS="-j3" +install: true +script: + - true +# - (make > /dev/null) || (make -j1 && exit 1) diff --git a/Makefile b/Makefile index c5335f2..c1c4c00 100644 --- a/Makefile +++ b/Makefile @@ -20,8 +20,6 @@ sysroot := $(wrkdir)/sysroot linux_srcdir := $(srcdir)/linux linux_wrkdir := $(wrkdir)/linux linux_defconfig := $(confdir)/linux_defconfig -linux_release := linux-4.6.2.tar.xz -linux_url := ftp://ftp.kernel.org/pub/linux/kernel/v4.x vmlinux := $(linux_wrkdir)/vmlinux vmlinux_stripped := $(linux_wrkdir)/vmlinux-stripped @@ -32,6 +30,14 @@ bbl := $(pk_wrkdir)/bbl bin := $(wrkdir)/bbl.bin hex := $(wrkdir)/bbl.hex +fesvr_srcdir := $(srcdir)/riscv-fesvr +fesvr_wrkdir := $(wrkdir)/riscv-fesvr +libfesvr := $(fesvr_wrkdir)/prefix/lib/libfesvr.so + +spike_srcdir := $(srcdir)/riscv-isa-sim +spike_wrkdir := $(wrkdir)/riscv-isa-sim +spike := $(spike_wrkdir)/prefix/bin/spike + target := riscv64-unknown-linux-gnu .PHONY: all @@ -45,6 +51,7 @@ $(toolchain_dest)/bin/$(target)-gcc: $(toolchain_srcdir) mkdir -p $(toolchain_wrkdir) cd $(toolchain_wrkdir); $(toolchain_srcdir)/configure --prefix=$(toolchain_dest) $(MAKE) -C $(toolchain_wrkdir) linux + sed 's/^#define LINUX_VERSION_CODE.*/#define LINUX_VERSION_CODE 263682/' -i $(toolchain_dest)/sysroot/usr/include/linux/version.h $(buildroot_tar): $(buildroot_srcdir) $(RISCV)/bin/$(target)-gcc $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_wrkdir) riscv64_defconfig @@ -59,13 +66,9 @@ $(sysroot_stamp): $(buildroot_tar) tar -xpf $< -C $(sysroot) --exclude ./dev --exclude ./usr/share/locale touch $@ -$(linux_release): - curl -O $(linux_url)/$(linux_release) - -$(linux_wrkdir)/.config: $(linux_defconfig) $(linux_srcdir) $(linux_release) +$(linux_wrkdir)/.config: $(linux_defconfig) $(linux_srcdir) mkdir -p $(dir $@) cp -p $< $@ - cd $(linux_srcdir); tar --strip-components=1 -xJf ../$(linux_release); git checkout .gitignore arch/.gitignore $(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv olddefconfig $(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(sysroot_stamp) @@ -88,8 +91,10 @@ $(bbl): $(pk_srcdir) $(vmlinux_stripped) mkdir -p $(pk_wrkdir) cd $(pk_wrkdir) && $ $@ +$(libfesvr): $(fesvr_srcdir) + rm -rf $(fesvr_wrkdir) + mkdir -p $(fesvr_wrkdir) + mkdir -p $(dir $@) + cd $(fesvr_wrkdir) && $