diff --git a/default.nix b/default.nix index 616bf2bc..7a51c893 100644 --- a/default.nix +++ b/default.nix @@ -7,7 +7,6 @@ let rustPlatform = (import ./rustPlatform.nix { inherit pkgs; }); artiqpkgs = import { inherit pkgs; }; vivado = import { inherit pkgs; }; - zc706-fsbl = import ./fsbl.nix { inherit pkgs; }; mkbootimage = (import ./mkbootimage.nix { inherit pkgs; }); build-zc706 = { variant }: let firmware = rustPlatform.buildRustPackage rec { @@ -55,7 +54,6 @@ let echo file binary-dist $out/top.bit >> $out/nix-support/hydra-build-products ''; - # SZL startup jtag = pkgs.runCommand "zc706-${variant}-jtag" {} '' mkdir $out @@ -84,42 +82,15 @@ let mkbootimage boot.bif $out/boot.bin echo file binary-dist $out/boot.bin >> $out/nix-support/hydra-build-products ''; - - # FSBL startup - fsbl-sd = pkgs.runCommand "zc706-${variant}-fsbl-sd" - { - buildInputs = [ mkbootimage ]; - } - '' - # TODO: use self-built fsbl - bifdir=`mktemp -d` - cd $bifdir - ln -s ${zc706-fsbl}/fsbl.elf fsbl.elf - ln -s ${gateware}/top.bit top.bit - ln -s ${firmware}/runtime.elf runtime.elf - cat > boot.bif << EOF - the_ROM_image: - { - [bootloader]fsbl.elf - top.bit - runtime.elf - } - EOF - mkdir $out $out/nix-support - mkbootimage boot.bif $out/boot.bin - echo file binary-dist $out/boot.bin >> $out/nix-support/hydra-build-products - ''; in { "zc706-${variant}-firmware" = firmware; "zc706-${variant}-gateware" = gateware; "zc706-${variant}-jtag" = jtag; "zc706-${variant}-sd" = sd; - "zc706-${variant}-fsbl-sd" = fsbl-sd; }; in ( (build-zc706 { variant = "simple"; }) // (build-zc706 { variant = "nist_clock"; }) // - (build-zc706 { variant = "nist_qc2"; }) // - { inherit zc706-fsbl; } + (build-zc706 { variant = "nist_qc2"; }) ) diff --git a/fsbl.nix b/fsbl.nix deleted file mode 100644 index 2acd272d..00000000 --- a/fsbl.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ pkgs, board ? "zc706" }: -let - gnutoolchain = import ./gnutoolchain.nix { inherit pkgs; }; -in -pkgs.stdenv.mkDerivation { - name = "${board}-fsbl"; - src = pkgs.fetchFromGitHub { - owner = "Xilinx"; - repo = "embeddedsw"; - rev = "65c849ed46c88c67457e1fc742744f96db968ff1"; - sha256 = "1rvl06ha40dzd6s9aa4sylmksh4xb9dqaxq462lffv1fdk342pda"; - }; - patches = [ ./fsbl.patch ]; - nativeBuildInputs = [ - pkgs.gnumake - gnutoolchain.binutils - gnutoolchain.gcc - ]; - patchPhase = - '' - patch -p1 -i ${./fsbl.patch} - patchShebangs lib/sw_apps/zynq_fsbl/misc/copy_bsp.sh - echo 'SEARCH_DIR("${gnutoolchain.newlib}/arm-none-eabi/lib");' >> lib/sw_apps/zynq_fsbl/src/lscript.ld - ''; - buildPhase = - '' - cd lib/sw_apps/zynq_fsbl/src - make BOARD=${board} "CFLAGS=-DFSBL_DEBUG_INFO -g" - ''; - installPhase = - '' - mkdir $out - cp fsbl.elf $out - ''; - doCheck = false; - dontFixup = true; -} diff --git a/fsbl.patch b/fsbl.patch deleted file mode 100644 index 2537177c..00000000 --- a/fsbl.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/lib/sw_apps/zynq_fsbl/src/Makefile b/lib/sw_apps/zynq_fsbl/src/Makefile -index 0e3ccdf1c5..a5b02f386e 100644 ---- a/lib/sw_apps/zynq_fsbl/src/Makefile -+++ b/lib/sw_apps/zynq_fsbl/src/Makefile -@@ -71,11 +71,14 @@ endif - all: $(EXEC) - - $(EXEC): $(LIBS) $(OBJS) $(INCLUDES) -- cp $(BSP_DIR)/$(BOARD)/ps7_init.* . - $(LINKER) $(LD1FLAGS) -o $@ $(OBJS) $(LDFLAGS) - rm -rf $(OBJS) -- -- -+ -+.PHONY: ps7_init -+ -+ps7_init: -+ cp $(BSP_DIR)/$(BOARD)/ps7_init.* . -+ - $(LIBS): - echo "Copying BSP files" - $(BSP_DIR)/copy_bsp.sh $(BOARD) $(CC) -@@ -86,7 +89,7 @@ $(LIBS): - make -C $(BSP_DIR) -k all "CC=armcc" "AR=armar" "C_FLAGS= -O2 -c" "EC_FLAGS=--debug --wchar32"; \ - fi; - --%.o:%.c -+%.o:%.c ps7_init - $(CC) $(CC_FLAGS) $(CFLAGS) $(ECFLAGS) -c $< -o $@ $(INCLUDEPATH) - - %.o:%.S diff --git a/gnutoolchain.nix b/gnutoolchain.nix deleted file mode 100644 index 0a00a567..00000000 --- a/gnutoolchain.nix +++ /dev/null @@ -1,134 +0,0 @@ -{ pkgs ? import }: -let - -platform = "arm-none-eabi"; - -binutils-pkg = { stdenv, buildPackages -, fetchurl, zlib -, extraConfigureFlags ? [] -}: - -stdenv.mkDerivation rec { - basename = "binutils"; - version = "2.30"; - name = "${basename}-${platform}-${version}"; - src = fetchurl { - url = "https://ftp.gnu.org/gnu/binutils/binutils-${version}.tar.bz2"; - sha256 = "028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg"; - }; - configureFlags = [ - "--enable-deterministic-archives" - "--target=${platform}" - "--with-cpu=cortex-a9" - "--with-fpu=vfpv3" - "--with-float=hard" - "--with-mode=thumb" - ] ++ extraConfigureFlags; - outputs = [ "out" "info" "man" ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - buildInputs = [ zlib ]; - enableParallelBuilding = true; - meta = { - description = "Tools for manipulating binaries (linker, assembler, etc.)"; - longDescription = '' - The GNU Binutils are a collection of binary tools. The main - ones are `ld' (the GNU linker) and `as' (the GNU assembler). - They also include the BFD (Binary File Descriptor) library, - `gprof', `nm', `strip', etc. - ''; - homepage = http://www.gnu.org/software/binutils/; - license = stdenv.lib.licenses.gpl3Plus; - /* Give binutils a lower priority than gcc-wrapper to prevent a - collision due to the ld/as wrappers/symlinks in the latter. */ - priority = "10"; - }; -}; - - -gcc-pkg = { stdenv, buildPackages -, fetchurl, gmp, mpfr, libmpc, platform-binutils -, extraConfigureFlags ? [] -}: - -stdenv.mkDerivation rec { - basename = "gcc"; - version = "9.1.0"; - name = "${basename}-${platform}-${version}"; - src = fetchurl { - url = "https://ftp.gnu.org/gnu/gcc/gcc-${version}/gcc-${version}.tar.xz"; - sha256 = "1817nc2bqdc251k0lpc51cimna7v68xjrnvqzvc50q3ax4s6i9kr"; - }; - preConfigure = - '' - mkdir build - cd build - ''; - configureScript = "../configure"; - configureFlags = - [ "--target=${platform}" - "--with-arch=armv7-a" - "--with-tune=cortex-a9" - "--with-fpu=vfpv3" - "--with-float=hard" - "--disable-libssp" - "--enable-languages=c" - "--with-as=${platform-binutils}/bin/${platform}-as" - "--with-ld=${platform-binutils}/bin/${platform}-ld" ] ++ extraConfigureFlags; - outputs = [ "out" "info" "man" ]; - hardeningDisable = [ "format" "pie" ]; - propagatedBuildInputs = [ gmp mpfr libmpc platform-binutils ]; - enableParallelBuilding = true; - dontFixup = true; -}; - - -newlib-pkg = { stdenv, fetchurl, buildPackages, platform-binutils, platform-gcc }: - -stdenv.mkDerivation rec { - pname = "newlib"; - version = "3.1.0"; - src = fetchurl { - url = "ftp://sourceware.org/pub/newlib/newlib-${version}.tar.gz"; - sha256 = "0ahh3n079zjp7d9wynggwrnrs27440aac04340chf1p9476a2kzv"; - }; - - nativeBuildInputs = [ platform-binutils platform-gcc ]; - - configureFlags = [ - "--target=${platform}" - - "--with-cpu=cortex-a9" - "--with-fpu=vfpv3" - "--with-float=hard" - "--with-mode=thumb" - "--enable-interwork" - "--disable-multilib" - - "--disable-newlib-supplied-syscalls" - "--with-gnu-ld" - "--with-gnu-as" - "--disable-newlib-io-float" - "--disable-werror" - ]; - dontFixup = true; -}; - - -in rec { - binutils-bootstrap = pkgs.callPackage binutils-pkg { }; - gcc-bootstrap = pkgs.callPackage gcc-pkg { - platform-binutils = binutils-bootstrap; - extraConfigureFlags = [ "--disable-libgcc" ]; - }; - newlib = pkgs.callPackage newlib-pkg { - platform-binutils = binutils-bootstrap; - platform-gcc = gcc-bootstrap; - }; - binutils = pkgs.callPackage binutils-pkg { - extraConfigureFlags = [ "--with-lib-path=${newlib}/arm-none-eabi/lib" ]; - }; - gcc = pkgs.callPackage gcc-pkg { - platform-binutils = binutils; - extraConfigureFlags = [ "--enable-newlib" "--with-headers=${newlib}/arm-none-eabi/include" ]; - }; -}