From e81d11f1f8c3a462ca412a4d7cda3e632ef93455 Mon Sep 17 00:00:00 2001 From: Leon Hiemstra <hiemstra@astron.nl> Date: Thu, 21 Apr 2016 13:55:27 +0000 Subject: [PATCH] added functionality to generate RBF files with bootloader (add --unb2_factory argument). This bootloader is necessary for Uniboard2 factory image. See also: $RADIOHDL/libraries/io/epcs/doc/README.txt --- tools/quartus/run_rbf | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tools/quartus/run_rbf b/tools/quartus/run_rbf index f9c17ef65d..a98d2e9bbf 100755 --- a/tools/quartus/run_rbf +++ b/tools/quartus/run_rbf @@ -47,10 +47,14 @@ myself="${UNB}/Firmware/software/build/$(basename $0)" project= rev= +arg_unb2_factory= # parse cmdline for arg ; do case ${arg} in + --unb2_factory) + arg_unb2_factory=1 + ;; --rev=*) rev=`echo ${arg} | sed 's/^--rev=//'` ;; @@ -110,7 +114,25 @@ echo "Bitstream_compression=on" > ${HOME}/.run_rbf_temp_options_file unb_info $0 "Converting ${quartusdir}/${project_rev}.sof to compressed Raw Binary File" -unb_exec $0 quartus_cpf -c --option=${HOME}/.run_rbf_temp_options_file ${quartusdir}/${project_rev}.sof ${quartusdir}/${project_rev}.rbf +if [ -z "${arg_unb2_factory}" ]; then + unb_exec $0 quartus_cpf -c --option=${HOME}/.run_rbf_temp_options_file ${quartusdir}/${project_rev}.sof ${quartusdir}/${project_rev}.rbf +else + unb_info $0 "-> This is a factory image for Uniboard2: Convert .SOF -> .POF -> .HEXOUT -> .RBF" + # for more info see: $RADIOHDL/libraries/io/epcs/doc/README.txt + unb_exec $0 quartus_cpf -d EPCQL1024 -m ASx4 --option=${HOME}/.run_rbf_temp_options_file -c ${quartusdir}/${project_rev}.sof ${quartusdir}/${project_rev}.pof + unb_exec $0 quartus_cpf -c ${quartusdir}/${project_rev}.pof ${quartusdir}/${project_rev}.hexout + unb_exec $0 nios2-elf-objcopy -I ihex -O binary ${quartusdir}/${project_rev}.hexout ${quartusdir}/${project_rev}.rbf + + unb_info $0 "Truncating RBF:" + echo "Size of .SOF is: " + du -h ${quartusdir}/${project_rev}.sof + echo "Truncating to 40M (FIXME find out if 40M is correct on different SOF files)" + unb_exec $0 truncate -s 40M ${quartusdir}/${project_rev}.rbf + echo "Deleting temp files" + unb_exec $0 rm -f ${quartusdir}/${project_rev}.pof + unb_exec $0 rm -f ${quartusdir}/${project_rev}.hexout +fi + if [ -n "${RADIOHDL_SVN_REVISION}" ]; then svn_revision=`echo ${RADIOHDL_SVN_REVISION} |cut -d' ' -f2` # ${RADIOHDL_SVN_REVISION} looks like: "Revision: 14634" -- GitLab