Merge remote-tracking branch 'origin/dev' into firesim-as-a-library

This commit is contained in:
David Biancolin 2019-06-28 04:57:46 +00:00
commit 40ca9c71ac
12 changed files with 109 additions and 25 deletions

View File

@ -2,6 +2,49 @@
This changelog follows the format defined here: https://keepachangelog.com/en/1.0.0/
## [1.6.0] - 2019-06-23
A more detailed account of everything included is included in the dev to master PR for this release: https://github.com/firesim/firesim/pull/262
The primary change in this release is a Rocket-Chip bump in FireChip and associated submodules (Chisel, FIRRTL, RISC-V tools)
The release also updates firesim-software, see the changelog at sw/firesim-software/CHANGELOG.md for details (PR #303).
### Added
* PR #250. Add support for flow control via Ethernet pause frames.
* PR #280. Add support for a FIRESIM_RUNFARM_PREFIX env var to differentiate between runfarms for multiple clones of firesim.
* Resolves #263
* PR #286 Add support for arbitrary host frequency selection (by synthesizing a new PLL).
* Resolves #252
* PR #287 Add support for runtime-configurable MSHR in FASED
* PR #290 Add endpoint::finish() to let endpoints run code before simulation teardown
* firesim-software PR firesim/firesim-software#31 allows firesim-software to work outside of a firesim environment without the need for sudo (just riscv-tools, qemu, and a few package requirements).
### Changed
* PR #261 Print out that post run hook is running, so it doesn't look like simulation termination is stuck.
* PR #290 Bumps RocketChip from 50bb13d (Sept 25th, '18) to b8baef6 (May 10th, '19)
* Bumps Buildroot in firesim-software; points at upstream
* Bumps RISC-V tools; RISC-V toolchain is built directly from build-setup.sh
* Resolves #217
* Enables TracerV support by default
* firesim-software PR firesim/firesim-software#25 updates buildroot to a more recent version in order to support a more recent version of riscv-tools to match the updated tools in this firesim release.
### Fixed
* PR #275. Fix small root volume size for build instances.
* Increased to 200GB
* Resolves #274
* Resolves #265
* PR #287 Fixes FASED LLC timing model bug.
* PR #301 Fixes a bug in synthesizable printf cycle prefixes
### Deprecated
* None
### Removed
* None
### Security
* None
## [1.5.0] - 2019-02-24
A more detailed account of everything included is included in the dev->master PR for this release: https://github.com/firesim/firesim/pull/168

View File

@ -105,7 +105,7 @@ fi
if [ "$FASTINSTALL" = "true" ]; then
git clone https://github.com/firesim/firesim-riscv-tools-prebuilt.git
cd firesim-riscv-tools-prebuilt
git checkout 85eb89490a730915a28eca3c25d4496193951565
git checkout 5fee18421a32058ab339572128201f4904354aaa
PREBUILTHASH="$(cat HASH)"
cd $target_toolchain_dir
git submodule update --init riscv-tools
@ -138,15 +138,31 @@ else
git submodule update --init --recursive riscv-tools #--jobs 8
cd riscv-tools
export MAKEFLAGS="-j16"
./build.sh
# Copied from riscv-tools build.sh
source build.common
echo "Starting RISC-V Toolchain build process"
build_project riscv-fesvr --prefix=$RISCV
build_project riscv-isa-sim --prefix=$RISCV --with-fesvr=$RISCV
build_project riscv-gnu-toolchain --prefix=$RISCV
CC= CXX= build_project riscv-pk --prefix=$RISCV --host=riscv64-unknown-elf
build_project riscv-tests --prefix=$RISCV/riscv64-unknown-elf
echo -e "\\nRISC-V Toolchain installation completed!"
# build static libfesvr library for linking into driver
cd riscv-fesvr/build
$RDIR/scripts/build-static-libfesvr.sh
# build linux toolchain
cd $RDIR
# build linux toolchain
cd $target_toolchain_dir/riscv-tools/riscv-gnu-toolchain/build
make -j16 linux
cd $RDIR
# build QEMU
cd sw/qemu
./configure --target-list=riscv64-softmmu --prefix=$RISCV
make -j16
make install
cd $RDIR
fi
echo "export FIRESIM_ENV_SOURCED=1" > env.sh
@ -165,9 +181,10 @@ if wget -T 1 -t 3 -O /dev/null http://169.254.169.254/; then
cd "$RDIR/platforms/f1/aws-fpga/sdk/linux_kernel_drivers/xdma"
make
# Install firesim-software python libraries
# Install firesim-software dependencies
cd $RDIR
sudo pip3 install -r sw/firesim-software/python-requirements.txt
cat sw/firesim-software/centos-requirements.txt | sudo xargs yum install -y
# run sourceme-f1-full.sh once on this machine to build aws libraries and
# pull down some IP, so we don't have to waste time doing it each time on

View File

@ -39,7 +39,7 @@ class BuildConfig:
{
'DeviceName': '/dev/sda1',
'Ebs': {
'VolumeSize': 100,
'VolumeSize': 200,
'VolumeType': 'gp2',
},
},

View File

@ -10,32 +10,32 @@
# own images.
[fireboom-singlecore-nic-ddr3-llc4mb]
agfi=agfi-04fbd4e1e16e9cc06
agfi=agfi-03e6e564659bd0aed
deploytripletoverride=None
customruntimeconfig=None
[fireboom-singlecore-no-nic-ddr3-llc4mb]
agfi=agfi-067142e76de97dcb4
agfi=agfi-0459cfa6dad378686
deploytripletoverride=None
customruntimeconfig=None
[firesim-quadcore-nic-ddr3-llc4mb]
agfi=agfi-0ee9ea5b27c928b58
agfi=agfi-0c745f8af725cf074
deploytripletoverride=None
customruntimeconfig=None
[firesim-quadcore-no-nic-ddr3-llc4mb]
agfi=agfi-0612f9e6c22bc6448
agfi=agfi-00cedc0b7d4ccc9a6
deploytripletoverride=None
customruntimeconfig=None
[firesim-singlecore-no-nic-lbp]
agfi=agfi-0beded186d46e6c90
agfi=agfi-0dd065a67365f8a56
deploytripletoverride=None
customruntimeconfig=None
[firesim-supernode-singlecore-nic-lbp]
agfi=agfi-0efd582a3bfcf11b4
agfi=agfi-0b168a3effc91fc4a
deploytripletoverride=None
customruntimeconfig=None

View File

@ -48,11 +48,15 @@ Using the ILA at Runtime
Prerequisite: Make sure that ports 3121 and 10201 are enabled in the firesim AWS security group.
In order to use the ILA, we must enable the GUI interface on our manager instance.
This can be done by running the command:
This can be done by running the following commands:
::
curl https://s3.amazonaws.com/aws-fpga-developer-ami/1.5.0/Scripts/setup_gui.sh -o /home/centos/src/scripts/setup_gui.sh
sudo sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-CR.repo
/home/centos/src/scripts/setup_gui.sh
# keep manager paramiko compatibility
sudo pip2 uninstall gssapi
When the command will finish running, a temporary password will be printed out. This
password will be used to access the GUI interface of the master instance. We will

View File

@ -19,7 +19,20 @@ In TargetConfigs.scala:
class FireSimRocketChipQuadCoreTracedConfig extends Config(
new WithTraceRocket ++ new FireSimRocketChipQuadCoreConfig)
In SimConfigs.scala:
.. code-block:: scala
class FireSimDDR3FRFCFSLLC4MBConfig extends Config(
new WithSerialWidget ++
new WithUARTWidget ++
new WithSimpleNICWidget ++
new WithBlockDevWidget ++
new FRFCFS16GBQuadRankLLC4MB ++
new WithTracerVWidget ++ // <--- add this
new BasePlatformConfig)
In config_build_recipes.ini:
.. code-block:: ini

View File

@ -27,9 +27,9 @@ distribution. You can do this like so:
This process will take about 10 to 15 minutes on a ``c4.4xlarge`` instance.
Once this is completed, you'll have the following files:
- ``firesim/sw/firesim-software/images/br-disk-bin`` - a bootloader + Linux
- ``firesim/sw/firesim-software/images/br-base-bin`` - a bootloader + Linux
kernel image for the nodes we will simulate.
- ``firesim/sw/firesim-software/images/br-disk.img`` - a disk image for
- ``firesim/sw/firesim-software/images/br-base.img`` - a disk image for
each the nodes we will simulate
These files will be used to form base images to either build more complicated
@ -123,7 +123,7 @@ As a final sanity check, your ``config_runtime.ini`` file should now look like t
runfarmtag=mainrunfarm
f1_16xlarges=0
f1_4xlarges=1
f1_4xlarges=0
m4_16xlarges=0
f1_2xlarges=1

View File

@ -52,8 +52,6 @@ sudo pip2 install graphviz==0.8.3
sudo pip2 install --upgrade --ignore-installed pyparsing
sudo pip2 install matplotlib==2.2.2
sudo pip2 install pandas==0.22.0
# this is explicitly installed to downgrade it to a version without deprec warnings
sudo pip2 install cryptography==2.2.2
# new awscli on 1.6.0 AMI is broken with our versions of boto3
sudo pip2 install awscli==1.15.76

@ -1 +1 @@
Subproject commit e3f0e7f538dc49d6eb86c3528b52cdbf53237417
Subproject commit daf665bbe14a0e3f775b9a2e000ae37409d00f3f

View File

@ -87,18 +87,27 @@ verilator_debug = $(GENERATED_DIR)/V$(DESIGN)-debug
vcs = $(GENERATED_DIR)/$(DESIGN)
vcs_debug = $(GENERATED_DIR)/$(DESIGN)-debug
xsim = $(GENERATED_DIR)/$(DESIGN)-$(PLATFORM)
sim_binary_basename := $(basename $(notdir $(SIM_BINARY)))
run-verilator: $(verilator)
$(verilator) +permissive $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY))
cd $(dir $<) && \
$(verilator) +permissive $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY)) \
$(disasm) $(sim_binary_basename).out
run-verilator-debug: $(verilator_debug)
$(verilator_debug) +permissive $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY))
cd $(dir $<) && \
$(verilator_debug) +permissive +waveform=$(sim_binary_basename).vpd $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY)) \
$(disasm) $(sim_binary_basename).out
run-vcs: $(vcs)
$(vcs) +permissive $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY))
cd $(dir $<) && \
$(vcs) +permissive $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY)) \
$(disasm) $(sim_binary_basename).out
run-vcs-debug: $(vcs_debug)
$(vcs_debug) +permissive $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY))
cd $(dir $<) && \
$(vcs_debug) +permissive +waveform=$(sim_binary_basename).vpd $(COMMON_SIM_ARGS) $(MIDAS_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) +permissive-off $(abspath $(SIM_BINARY)) \
$(disasm) $(sim_binary_basename).out
run-xsim: $(xsim)
cd $(dir $<) && ./$(notdir $<) +permissive $(COMMON_SIM_ARGS) $(FPGA_LEVEL_SIM_ARGS) $(EXTRA_SIM_ARGS) \

@ -1 +1 @@
Subproject commit e5e04f0668793340947ae740474d0768b0bda42c
Subproject commit 389c3df8f3d5e3548c46feb2d63be700c89a15ec

@ -1 +1 @@
Subproject commit f4fb0c42b1e547dfa815b225b482166b92743de5
Subproject commit 8700ff05e57ca6d88b1eeff50418dddd66fa0ccb