diff --git a/.github/workflows/chipyard-full-flow.yml b/.github/workflows/chipyard-full-flow.yml index 50e219e3..21a97e11 100644 --- a/.github/workflows/chipyard-full-flow.yml +++ b/.github/workflows/chipyard-full-flow.yml @@ -6,6 +6,9 @@ on: branches: - main - '1.[0-9]*.x' + schedule: + # run at 00:00 on sunday + - cron: "0 0 * * 0" defaults: run: diff --git a/.mergify.yml b/.mergify.yml index 0615acdc..5025ab18 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -22,3 +22,21 @@ pull_request_rules: actions: label: add: [Backport] + + - name: check PR has changelog label + conditions: + - base=main + actions: + post_check: + success_conditions: + - "label~=^changelog:" + title: | + {% if check_succeed %} + Labeled for changelog + {% else %} + Needs label for changelog + {% endif %} + summary: | + {% if not check_succeed %} + Your pull request must have a changelog label (e.g. `changelog: ...`). + {% endif %} diff --git a/docs/Chipyard-Basics/Initial-Repo-Setup.rst b/docs/Chipyard-Basics/Initial-Repo-Setup.rst index e288e295..bc034a89 100644 --- a/docs/Chipyard-Basics/Initial-Repo-Setup.rst +++ b/docs/Chipyard-Basics/Initial-Repo-Setup.rst @@ -71,7 +71,27 @@ Run the following script based off which compiler you would like to use. .. Note:: Prior versions of Chipyard recommended ``esp-tools`` for Gemmini development. Gemmini should now be used with the standard ``riscv-tools``. .. Warning:: The following script will complete a "full" installation of Chipyard which may take a long time depending on the system. - Ensure that this script completes fully (no interruptions) before continuing on. + Ensure that this script completes fully (no interruptions) before continuing on. User can use the ``--skip`` or ``-s`` flag to skip steps: + + ``-s 1`` skips initializing Conda environment + + ``-s 2`` skips initializing Chipyard submodules + + ``-s 3`` skips initializing toolchain collateral (Spike, PK, tests, libgloss) + + ``-s 4`` skips initializing ctags + + ``-s 5`` skips pre-compiling Chipyard Scala sources + + ``-s 6`` skips initializing FireSim + + ``-s 7`` skips pre-compiling FireSim sources + + ``-s 8`` skips initializing FireMarshal + + ``-s 9`` skips pre-compiling FireMarshal default buildroot Linux sources + + ``-s 10`` skips running repository clean-up .. code-block:: shell diff --git a/docs/Customization/Custom-Chisel.rst b/docs/Customization/Custom-Chisel.rst index 4ffbafbf..d40cfa9a 100644 --- a/docs/Customization/Custom-Chisel.rst +++ b/docs/Customization/Custom-Chisel.rst @@ -52,8 +52,22 @@ Then add ``yourproject`` to the Chipyard top-level build.sbt file. You can then import the classes defined in the submodule in a new project if you add it as a dependency. For instance, if you want to use this code in -the ``chipyard`` project, change the final line in build.sbt to the following. +the ``chipyard`` project, add your project to the list of sub-projects in the +`.dependsOn()` for `lazy val chipyard`. The original code may change over time, but it +should look something like this: .. code-block:: scala - lazy val chipyard = (project in file(".")).settings(commonSettings).dependsOn(testchipip, yourproject) + lazy val chipyard = (project in file("generators/chipyard")) + .dependsOn(testchipip, rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell, + sha3, dsptools, `rocket-dsp-utils`, + gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex, fft_generator, + yourproject, // <- added to the middle of the list for simplicity + constellation, mempress) + .settings(libraryDependencies ++= rocketLibDeps.value) + .settings( + libraryDependencies ++= Seq( + "org.reflections" % "reflections" % "0.10.2" + ) + ) + .settings(commonSettings)