-
Notifications
You must be signed in to change notification settings - Fork 548
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proof-of-concept Nix environments for Ibex development #2156
base: master
Are you sure you want to change the base?
Proof-of-concept Nix environments for Ibex development #2156
Commits on Mar 26, 2024
-
[VENDOR] Hack riscv-dv files to fixup shebangs/abspaths
- Changes in /vendor should be applied using a vendoring patch, or fixed upstream Signed-off-by: Harry Callahan <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a622da8 - Browse repository at this point
Copy the full SHA a622da8View commit details -
Change all shebangs to '#!/usr/bin/env'
This improves portability across different operating systems Signed-off-by: Harry Callahan <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3cea534 - Browse repository at this point
Copy the full SHA 3cea534View commit details -
Configuration menu - View commit details
-
Copy full SHA for e17dd02 - Browse repository at this point
Copy the full SHA e17dd02View commit details -
[dv,yaml] Remove '-kdb' flag from vcs sim command (nix problems)
There was problems running vcs simulations with this command, as something to do with launching verdi is not working correctly. It seems we are missing deps for some executable, but the error messages are really unhelpful on tracking down exactly what. This seems to work, for now. Signed-off-by: Harry Callahan <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8e49fab - Browse repository at this point
Copy the full SHA 8e49fabView commit details -
[dv,py] Flush logfiles before spawning subprocess
This ensures any logging we do before the call to 'run_one()' will appear in the correct order in the file. Signed-off-by: Harry Callahan <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 086f997 - Browse repository at this point
Copy the full SHA 086f997View commit details -
Configuration menu - View commit details
-
Copy full SHA for 155b35f - Browse repository at this point
Copy the full SHA 155b35fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b441bf2 - Browse repository at this point
Copy the full SHA b441bf2View commit details -
[dv,yaml] Move SIM_DIR environment variable under the 'env_var' key0
This is in-line with how we handle other environment variables in the build, and we set the variable inside the appropriate dictionary when invoking the command (run_rtl.py in this case).
Configuration menu - View commit details
-
Copy full SHA for 36185cc - Browse repository at this point
Copy the full SHA 36185ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for c512d50 - Browse repository at this point
Copy the full SHA c512d50View commit details -
Configuration menu - View commit details
-
Copy full SHA for cd50da1 - Browse repository at this point
Copy the full SHA cd50da1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5238c6d - Browse repository at this point
Copy the full SHA 5238c6dView commit details -
Configuration menu - View commit details
-
Copy full SHA for aecb838 - Browse repository at this point
Copy the full SHA aecb838View commit details
Commits on Mar 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fa8dedf - Browse repository at this point
Copy the full SHA fa8dedfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 93b6095 - Browse repository at this point
Copy the full SHA 93b6095View commit details -
[nix] Add poetry version of ibex python dependencies
This matches the dependencies given in the python-requirements.txt file in the repo root, but uses the pyproject.toml format and the poetry tool to allow nix to import this information to construct a python environment. The poetry.lock file allows each python dep to be pinned, and would need to be updated using the poetry tool to bump any dependency. e.g. ``` nix shell nixpkgs#poetry poetry update ```
Configuration menu - View commit details
-
Copy full SHA for 75bbb77 - Browse repository at this point
Copy the full SHA 75bbb77View commit details
Commits on Mar 28, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ed222da - Browse repository at this point
Copy the full SHA ed222daView commit details -
- The default devShell has enough dependencies to run verilator simulations of Ibex - Some other dependencies are setup but yet unusued.
Configuration menu - View commit details
-
Copy full SHA for c9c6d47 - Browse repository at this point
Copy the full SHA c9c6d47View commit details
Commits on Mar 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 813f510 - Browse repository at this point
Copy the full SHA 813f510View commit details -
[lowrisc] Add a Nix shell for lowrisc internal use
This adds a devShell that employees can use to bootstrap access to non-public EDA tooling. Evaluation will fail without appropriate credentials to fetch the repository 'lowrisc-nix-private'. Disclaimer: EXPERIMENTAL These shells will only be functional in the appropriate restricted environments. This is an experiment at tracking dependencies on proprietary tooling that is less out-of-band compared to simply assuming the underlying environment is pre-populated. For obvious reasons, this will always have much weaker reproducibility guarantees than freely-available software and open-source deps. However we can still lean on Nix to make bootstrapping non-public environments fast, ergonomic and hopefully reproducible within the constricted space. Using a nix flake input that is a private repository, we can effectively pin a version of the private dependencies (hash+timestamp etc) without exposing what they are. As nix is lazily evaluated, these inputs will not attempt to be fetched unless we evaluate an output which depends on them, and hence they should happily co-exist with other flake attributes for most consumers. To avoid the flake.lock in this repository from exposing the transitive deps of the private input, that flake does not track it's inputs in the standard way. Hence, impure evaluation mode is required when using these outputs. e.g. ``` nix develop .#eda_shell_lowrisc nix develop .#eda_shell_lowrisc --command bash -c \ "make -C dv/uvm/core_ibex SIMULATOR=xlm ITERATIONS=4 TEST=riscv_rand_instr_test" ``` Signed-off-by: Harry Callahan <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 00bec32 - Browse repository at this point
Copy the full SHA 00bec32View commit details