diff --git a/tools/quartus/run_rbf b/tools/quartus/run_rbf
index f9c17ef65d7987fee8e6b8e4c53f9b2f3c6032e6..a98d2e9bbf3151736b6e256232fa80a29dd8d6cb 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"