From 69554ce36341311a61554eee3364314b303c1c90 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Sat, 23 May 2026 01:58:44 +0100 Subject: [PATCH 1/9] [cheshire] Cheshire and Ara's dependencies --- cheshire/requirements.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cheshire/requirements.txt diff --git a/cheshire/requirements.txt b/cheshire/requirements.txt new file mode 100644 index 000000000..68a982494 --- /dev/null +++ b/cheshire/requirements.txt @@ -0,0 +1,28 @@ +# University Institute of Applied Microelectronics +# https://www.iuma.ulpgc.es/ +# Author: Jorge López Viera +# This file includes the Python's dependencies for +# both the Cheshire and Ara + +requests +hjson +mako +pyyaml +tabulate +yapf +mkdocs +mkdocs-material +markdown-grid-tables +tclint==0.4.2 +flatdict>=4.1.0 +setuptools<81 +peakrdl>=1.5.0 +peakrdl-rawheader>=0.2.3 +dataclasses +gitpython +jsonref +jsonschema +yamlfmt +numpy +matplotlib +scikit-learn From a07bab0a6553c6473c58d49e7e6c9edaece960f4 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Sat, 23 May 2026 02:02:15 +0100 Subject: [PATCH 2/9] [cheshire] Add dependencies specifications for Ara and Cheshire --- cheshire/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/cheshire/README.md b/cheshire/README.md index 653310f28..1318f33ec 100644 --- a/cheshire/README.md +++ b/cheshire/README.md @@ -4,6 +4,27 @@ Ara can be synthesized on a VCU128 FPGA and boot Linux through the Cheshire SoC. Our entry point is to generate a custom `add_sources.vcu128.tcl` file with specific Ara targets, copy this file into the Cheshire directory, and then use the default Cheshire compile flow, which will use our provided TCL file +## Requirements +From Cheshire's [web documentation](https://pulp-platform.github.io/cheshire/gs/#dependencies), ensure you have the next dependencies: + +- GNU make >= 3.82 +- CMake >= 3.24.0 +- Python >= 3.11 +- Bender >= 0.27.1 +- RISCV GCC >= 11.2.0 + +> [!TIP] +> Check [Bender](https://github.com/pulp-platform/bender) repository to install it + +For Python dependencies, it is highly recommended to create a virtual environment and install all packages listed in `requirements.txt` + +```bash +python3 -m venv .venv +source .venv/bin/activate + +pip install -r requirements.txt +``` + ## How to Use Ara should be instantiated as a submodule of Cheshire. This means that the Ara repo should be downloaded through `bender checkout` from the Cheshire directory. Then, Ara's path can be retrived using `bender path ara`. From ffc8f7c5112b8abb8ec857c5c1cf1d1a5a0bd861 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Sat, 23 May 2026 02:06:57 +0100 Subject: [PATCH 3/9] [cheshire] Specify which branch to clone to get the Ara --- cheshire/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cheshire/README.md b/cheshire/README.md index 1318f33ec..7a76c5b75 100644 --- a/cheshire/README.md +++ b/cheshire/README.md @@ -27,10 +27,10 @@ pip install -r requirements.txt ## How to Use -Ara should be instantiated as a submodule of Cheshire. This means that the Ara repo should be downloaded through `bender checkout` from the Cheshire directory. Then, Ara's path can be retrived using `bender path ara`. +Ara should be instantiated as a submodule of Cheshire. This means that the Ara repo should be downloaded through `bender checkout` from the Cheshire directory, more specifically, the `mp/ara-pulp-v2` branch, which includes the CVA6 connected to the Ara. Then, Ara's path can be retrived using `bender path ara`. ```bash -git clone git@github.com:pulp-platform/cheshire.git +git clone --branch=mp/ara-pulp-v2 https://github.com/pulp-platform/cheshire.git cd cheshire git checkout ${COMMIT} bender checkout From 876f8818643f16fcba1941ba61c1943458f3ca47 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Sat, 23 May 2026 02:09:19 +0100 Subject: [PATCH 4/9] [CHANGELOG] Update Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 542eb153d..24cabe393 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -132,6 +132,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Switch to a better buildroot mirror - CI frees up space in the runner before building a toolchain - Update documentation + - Enhance Cheshire's documentation for better workflow integration with Ara ## 3.0.0 - 2023-09-08 From 6e534e369ad98574933492c9b38657f3290558c0 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Tue, 26 May 2026 08:30:26 +0100 Subject: [PATCH 5/9] [cheshire] Add instructions to avoid compiling errors --- cheshire/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cheshire/README.md b/cheshire/README.md index 7a76c5b75..64ba36358 100644 --- a/cheshire/README.md +++ b/cheshire/README.md @@ -40,6 +40,10 @@ cd ${ARA_ROOT} ## FPGA and OS flow +> [!WARNING] +> Ensure that your `$PATH` variable includes ONLY those binaries listed above as well as default system's binaries. Your `$PATH` should look something like follows: +> `/path/to/RISCV>=11.2.0:/path/to/bender:/path/to/cmake>= 3.24.0/:/path/to/python>= 3.11:/bin:/usr/bin:etc` + ### LINUX-RVV Kernels Compile kernels to be run on the FPGA under Linux (this will also install the buildroot toolchain) @@ -220,4 +224,4 @@ This method ensures that we can extend and customize the compile flow for our sp - HOST_TOOLCHAIN_SUFFIX: the host GCC and G++ should be sufficiently up to date to build the buildroot cross compiler. For environments that track the program version with suffixes, this variable helps choose the correct host compiler version. Use this variable only if needed when installing the buildroot toolchain. - BOARD: name of the board, e.g., `vcu128`. - CHS_XILINX_HWS_URL: URL of the FPGA, if connected to the net. - - CHS_XILINX_HWS_PATH: physical PATH of the FPGA. \ No newline at end of file + - CHS_XILINX_HWS_PATH: physical PATH of the FPGA. From 193eb46bfd1ebf866f77bbc2d180653a5f57e383 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Tue, 26 May 2026 11:31:14 +0100 Subject: [PATCH 6/9] [cheshire] Change 'setuptools' version --- cheshire/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cheshire/requirements.txt b/cheshire/requirements.txt index 68a982494..530c99c70 100644 --- a/cheshire/requirements.txt +++ b/cheshire/requirements.txt @@ -15,7 +15,7 @@ mkdocs-material markdown-grid-tables tclint==0.4.2 flatdict>=4.1.0 -setuptools<81 +setuptools==80 peakrdl>=1.5.0 peakrdl-rawheader>=0.2.3 dataclasses From 524c10f2fba7ac1913e7ee55010e90d834ebd453 Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Tue, 26 May 2026 11:32:03 +0100 Subject: [PATCH 7/9] [cheshire] Modify file information --- cheshire/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cheshire/requirements.txt b/cheshire/requirements.txt index 530c99c70..1917b67f1 100644 --- a/cheshire/requirements.txt +++ b/cheshire/requirements.txt @@ -1,6 +1,6 @@ -# University Institute of Applied Microelectronics -# https://www.iuma.ulpgc.es/ +# University Institute of Applied Microelectronics (https://www.iuma.ulpgc.es/) # Author: Jorge López Viera +# Created: 20/05/2026 # This file includes the Python's dependencies for # both the Cheshire and Ara From b789b3d3d26c5d75d50302e5ad9d2178bc1f4d6b Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Tue, 26 May 2026 14:54:05 +0100 Subject: [PATCH 8/9] [cheshire] Specify where the output will be places --- cheshire/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cheshire/README.md b/cheshire/README.md index 64ba36358..f77e7e49c 100644 --- a/cheshire/README.md +++ b/cheshire/README.md @@ -89,7 +89,7 @@ cd ${ARA_ROOT}/cheshire make ara-chs-xilinx-program ``` -For more information, see Cheshire's documentation (https://pulp-platform.github.io/cheshire/tg/xilinx). +Every output will be in `cheshire/target/xilinx` directory. For more information, see Cheshire's documentation (https://pulp-platform.github.io/cheshire/tg/xilinx). ### Example From a941cf054ad1c8f85a6dad53ac2a8a92a9e4bacf Mon Sep 17 00:00:00 2001 From: jorgeloopzz Date: Thu, 28 May 2026 20:03:59 +0100 Subject: [PATCH 9/9] [cheshire] Indicate to export 'Vivado' variable --- cheshire/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cheshire/README.md b/cheshire/README.md index f77e7e49c..74c771ca4 100644 --- a/cheshire/README.md +++ b/cheshire/README.md @@ -64,6 +64,8 @@ cd ${ARA_ROOT}/cheshire/sw make linux-img # Generate Cheshire's Linux img +export VIVADO="/path/to/Vivado/20XX.X/bin/vivado" + cd ${ARA_ROOT}/cheshire make ara-chs-image ```