Updated docs to match new Docker image authored by Farzad Fatollahi-Fard's avatar Farzad Fatollahi-Fard
--- ---
title: BXE FireSim Documentation - Docker Image title: BXE FireSim Documentation - Docker Image
version: v1.0.1 version: v2.0.0
firesim: firesim:
version: v1.16.0 version: v1.18.0
url: https://github.com/firesim/firesim/tree/1.16.0 url: https://github.com/firesim/firesim/tree/1.16.0
docs-url: https://docs.fires.im/en/stable/Building-a-FireSim-Xclbin.html docs-url: https://docs.fires.im/en/stable/Building-a-FireSim-Xclbin.html
chipyard: chipyard:
version: v1.19.0 version: 766ea73
url: https://github.com/ucb-bar/chipyard/tree/1.9.0 url: https://github.com/ucb-bar/chipyard/tree/766ea735accefb531309b5be95313e02ce182127
firemarshal: firemarshal:
version: 12784a4 version: b014183
url: https://github.com/firesim/FireMarshal/tree/12784a42cb1b2188536ef5bfc123f800374d3177 url: https://github.com/firesim/FireMarshal/tree/b014183ac6afed7fe1aca89fa010be8d13ad4079
aro-cn: D2021-2106030006 aro-cn: D2021-2106030006
--- ---
...@@ -36,7 +36,8 @@ The material in this document requires the use of [Docker](https://www.docker.co ...@@ -36,7 +36,8 @@ The material in this document requires the use of [Docker](https://www.docker.co
- Use [Docker Desktop](https://docs.docker.com/get-docker/) on your local machine - Use [Docker Desktop](https://docs.docker.com/get-docker/) on your local machine
> **NOTE:** If you have an Apple M1/M2 (`arm`-based CPU), builds and simulations are prohibitively slow. > [!warning] Apple Silicon
> If you use Apple Silicon (`aarch64`-based CPU), builds and simulations are prohibitively slow.
> >
> `x86-64` processors are HIGHLY recommended. > `x86-64` processors are HIGHLY recommended.
...@@ -50,20 +51,20 @@ docker pull socks.lbl.gov:4567/cag/bxe ...@@ -50,20 +51,20 @@ docker pull socks.lbl.gov:4567/cag/bxe
## Running a Docker container ## Running a Docker container
Once you've pulled a Docker image, you can run within a container. You can think of containers as the virtual machine that's running the image you pulled. When a container is initialized and run, it's given a unique hash and a unique string name. When you want to access the container, you refer to its unique hash/string. You can also give your container a unique name, as domonstraited below: Once you've pulled a Docker image, you can run within a container. You can think of containers as the virtual machine that's running the image you pulled. When a container is initialized and run, it's given a unique hash and a unique string name. When you want to access the container, you refer to its unique hash/string. You can also give your container a unique name, as demonstrated below:
> **NOTE:** `--privileged` is only required when using FireMarshal. > **NOTE:** `--privileged` is only required when using FireMarshal.
- Running a Docker container interactively - Running a Docker container interactively
- This runs the Docker container and attaches the console of your container - This runs the Docker container and attaches the console of your container
``` ```
docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] -it socks.lbl.gov:4567/cag/bxe docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] -it socks.lbl.gov:4567/cag/bxe/firesim
``` ```
- Running a Docker container and attaching later - Running a Docker container and attaching later
- You can run a Docker container in the background and attach to it - You can run a Docker container in the background and attach to it
``` ```
docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] socks.lbl.gov:4567/cag/bxe docker run [--privileged] [--name CUSTOM_CONTAINER_NAME] socks.lbl.gov:4567/cag/bxe/firesim
docker attach [HASHID/STRINGID/CUSTOM_CONTAINER_NAME] docker attach [HASHID/STRINGID/CUSTOM_CONTAINER_NAME]
``` ```
...@@ -76,7 +77,7 @@ docker run \ ...@@ -76,7 +77,7 @@ docker run \
[--privileged] [--name CUSTOM_CONTAINER_NAME] \ [--privileged] [--name CUSTOM_CONTAINER_NAME] \
-it \ -it \
-v /tmp/mpoint:/app \ -v /tmp/mpoint:/app \
socks.lbl.gov:4567/cag/bxe socks.lbl.gov:4567/cag/bxe/firesim
``` ```
Any changes made in `/app` in the Docker container are reflected in `/tmp/mpoint` on the host. You can mount multiple directories with multiple `-v [HOSTDIR]:[CONTAINERDIR]` flags with the different mounts.`` Any changes made in `/app` in the Docker container are reflected in `/tmp/mpoint` on the host. You can mount multiple directories with multiple `-v [HOSTDIR]:[CONTAINERDIR]` flags with the different mounts.``
...@@ -89,21 +90,19 @@ Once you've run and attached to your Docker container, you should see the follow ...@@ -89,21 +90,19 @@ Once you've run and attached to your Docker container, you should see the follow
(base) root@[HASHID]:~/firesim# (base) root@[HASHID]:~/firesim#
``` ```
Run the following command to set up the Chipyard and FireMarshal environment: Run the following commands to set up the Chipyard and FireMarshal environment:
```bash ```bash
source source-env.sh conda activate firesim
source sourceme-manager.sh --skip-ssh-setup
``` ```
You should see the following output on your console: You should see the following output on your console:
``` ```
(base) root@[HASHID]:~/firesim# source source-env.sh (base) bxeuser@[HASHID]:~/firesim$ conda activate firesim
Activating FireSim Conda Environment... (firesim) bxeuser@[HASHID]:~/firesim$ source sourceme-manager.sh --skip-ssh-setup
Sourcing FireSim Environment... (/home/bxeuser/firesim/.conda-env) bxeuser@[HASHID]:~/firesim$
Navigating to Chipyard Directory...
Sourcing Chipyard Environment...
(/root/firesim/target-design/chipyard/.conda-env) root@[HASHID]:~/firesim/target-design/chipyard#
``` ```
You are now ready to build RTL with Chipyard and build software with FireMarshal. You are now ready to build RTL with Chipyard and build software with FireMarshal.
... ...
......