Skip to content

Commit

Permalink
Replace Qorc-SDK with QuickWorks
Browse files Browse the repository at this point in the history
  • Loading branch information
arturkow2000 committed Sep 15, 2023
1 parent 64ca65e commit c678930
Showing 1 changed file with 35 additions and 39 deletions.
74 changes: 35 additions & 39 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,39 +1,35 @@
FROM ubuntu:20.04

ENV QORC_SDK_PATH=/home/qorc-sdk/qorc-sdk

RUN useradd -p locked -m qorc-sdk -G dialout

RUN apt-get update && apt-get install -y \
git \
sudo \
wget \
curl \
lbzip2 \
libtbb2

RUN mkdir -p /home/qorc-sdk && chown qorc-sdk:qorc-sdk -R /home/qorc-sdk

USER qorc-sdk

# FIXME: use fixed commit instead of master
RUN git clone https://github.com/QuickLogic-Corp/qorc-sdk.git $QORC_SDK_PATH

# Toolchains are downloaded and configured on first inclusion of this script.
# Do it now to save time later.
#
# Even though 'sudo' is installed, it will print errors because below command
# isn't run in terminal. Nevertheless, steps that require root permissions
# have to be performed on host system, not in Docker.
#
# Note that 'sudo' still must be installed, without it Python throws an
# exception instead of "completing successfully with errors".
RUN /bin/bash -ic ". $QORC_SDK_PATH/envsetup.sh"

# Library provided by toolchain doesn't work, use system library instead
RUN mv $QORC_SDK_PATH/fpga_toolchain_install/v1.3.1/conda/lib/libffi.so.7 \
$QORC_SDK_PATH/fpga_toolchain_install/v1.3.1/conda/lib/libffi.so.7.backup

WORKDIR /home/qorc-sdk

RUN echo ". $QORC_SDK_PATH/envsetup.sh" > .bashrc
FROM ubuntu:23.04
RUN useradd -p locked -m builder -G dialout
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get -y install wget vim && mkdir -pm755 /etc/apt/keyrings && \
wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key && \
wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/lunar/winehq-lunar.sources && \
dpkg --add-architecture i386 && \
apt-get update && \
apt-get -y install --install-recommends winehq-staging p7zip-full xvfb && \
apt-get -y install unzip make && apt-get clean
USER builder
# Initialize wine, install QuickWorks and yosys.
RUN wine wineboot && mkdir /tmp/install && cd /tmp/install && \
wget https://github.com/QuickLogic-Corp/yosys-quickworks/raw/master/Releases/v1.0/ql-yosys-QuickWorks-v1.0.zip && \
unzip ql-yosys-QuickWorks-v1.0.zip && \
mv ql-yosys-v1.0 /home/builder && \
cd QW2016.1.1_ReleaseBuild_0817 && \
mkdir temp && cd temp && \
7z x ../QW2016.1.1_ReleaseBuild_0817.exe && \
xvfb-run wine QuickWorks.exe /qn && \
cd / && rm -rf /tmp/install && ( \
if [ ! -e ~/.wine/drive_c/QuickLogic/QuickWorks_2016.1.1_Release/spde/spde.exe ]; then \
echo "SPDE not found" && exit 1; \
fi \
) && wineserver -k && wine reg add "HKEY_LOCAL_MACHINE\\Software\\QuickLogic\\QuickWorks 2016.1.1 Release" \
/t REG_SZ /v InstallPath /d "C:\\QuickLogic\\QuickWorks_2016.1.1_Release\\spde" /f
# Rename Clk_C16 and Clk_C21 to Sys_Clk0/1 for compatibility with SpDE which still
# uses older names for those signals.
RUN cd /home/builder/ql-yosys-v1.0/share/yosys/quicklogic/pp3 && \
sed -i 's|Clk_C16|Sys_Clk0|g;s|Clk_C21|Sys_Clk1|g' 'qlal4s3b_sim.v'
# Variables used by TwPM build system
ENV TWPM_SPDE_DIR /home/builder/.wine/drive_c/QuickLogic/QuickWorks_2016.1.1_Release/spde
ENV TWPM_YOSYS_DIR /home/builder/ql-yosys-v1.0
RUN mkdir /home/builder/workspace
WORKDIR /home/builder/workspace

0 comments on commit c678930

Please sign in to comment.