Merge remote-tracking branch 'origin/main' into klayout-docs
This commit is contained in:
4
.github/actions/create-conda-env/action.yml
vendored
4
.github/actions/create-conda-env/action.yml
vendored
@@ -10,8 +10,8 @@ runs:
|
|||||||
else
|
else
|
||||||
echo "Creating a conda environment for each toolchain with the toolchain installed"
|
echo "Creating a conda environment for each toolchain with the toolchain installed"
|
||||||
conda activate base
|
conda activate base
|
||||||
conda-lock install -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools ./conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml
|
conda-lock install --conda $(which conda) -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools ./conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml
|
||||||
conda-lock install -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools ./conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml
|
conda-lock install --conda $(which conda) -n ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools ./conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml
|
||||||
conda deactivate
|
conda deactivate
|
||||||
|
|
||||||
echo "Add extra toolchain collateral to RISC-V install area"
|
echo "Add extra toolchain collateral to RISC-V install area"
|
||||||
|
|||||||
7
.github/scripts/install-conda.sh
vendored
7
.github/scripts/install-conda.sh
vendored
@@ -145,15 +145,16 @@ else
|
|||||||
$SUDO bash ./install_conda.sh -b -p "$CONDA_INSTALL_PREFIX" $conda_install_extra
|
$SUDO bash ./install_conda.sh -b -p "$CONDA_INSTALL_PREFIX" $conda_install_extra
|
||||||
rm ./install_conda.sh
|
rm ./install_conda.sh
|
||||||
|
|
||||||
|
# get most up-to-date conda version
|
||||||
|
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" update $DRY_RUN_OPTION -y -n base -c conda-forge conda
|
||||||
|
|
||||||
# see https://conda-forge.org/docs/user/tipsandtricks.html#multiple-channels
|
# see https://conda-forge.org/docs/user/tipsandtricks.html#multiple-channels
|
||||||
# for more information on flexible channel_priority
|
# for more information on flexible channel_priority
|
||||||
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set channel_priority flexible
|
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set channel_priority flexible
|
||||||
# By default, don't mess with people's PS1, I personally find it annoying
|
# By default, don't mess with people's PS1, I personally find it annoying
|
||||||
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set changeps1 false
|
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set changeps1 false
|
||||||
# don't automatically activate the 'base' environment when intializing shells
|
# don't automatically activate the 'base' environment when initializing shells
|
||||||
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set auto_activate_base false
|
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set auto_activate_base false
|
||||||
# don't automatically update conda to avoid https://github.com/conda-forge/conda-libmamba-solver-feedstock/issues/2
|
|
||||||
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --set auto_update_conda false
|
|
||||||
# automatically use the ucb-bar channel for specific packages https://anaconda.org/ucb-bar/repo
|
# automatically use the ucb-bar channel for specific packages https://anaconda.org/ucb-bar/repo
|
||||||
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --add channels ucb-bar
|
"${DRY_RUN_ECHO[@]}" $SUDO "$CONDA_EXE" config --system --add channels ucb-bar
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,9 @@ cd $REMOTE_CHIPYARD_DIR
|
|||||||
./scripts/init-submodules-no-riscv-tools.sh --force
|
./scripts/init-submodules-no-riscv-tools.sh --force
|
||||||
|
|
||||||
# Run Firesim Scala Tests
|
# Run Firesim Scala Tests
|
||||||
export FIRESIM_ENV_SOURCED=1;
|
export FIRESIM_ENV_SOURCED=1
|
||||||
export COURSIER_CACHE=$REMOTE_COURSIER_CACHE
|
export COURSIER_CACHE=$REMOTE_COURSIER_CACHE
|
||||||
export JVM_MEMORY=10G
|
export JVM_MEMORY=10G
|
||||||
export JAVA_TMP_DIR=$REMOTE_JAVA_TMP_DIR
|
export JAVA_TMP_DIR=$REMOTE_JAVA_TMP_DIR
|
||||||
|
export TEST_DISABLE_VIVADO=1
|
||||||
make -C $REMOTE_FIRESIM_DIR TARGET_SBT_PROJECT="{file:$REMOTE_CHIPYARD_DIR}firechip" testOnly ${mapping[$1]}
|
make -C $REMOTE_FIRESIM_DIR TARGET_SBT_PROJECT="{file:$REMOTE_CHIPYARD_DIR}firechip" testOnly ${mapping[$1]}
|
||||||
|
|||||||
9
.github/workflows/chipyard-full-flow.yml
vendored
9
.github/workflows/chipyard-full-flow.yml
vendored
@@ -65,7 +65,7 @@ jobs:
|
|||||||
name: setup-repo
|
name: setup-repo
|
||||||
needs: [change-filters, cancel-prior-workflows]
|
needs: [change-filters, cancel-prior-workflows]
|
||||||
if: needs.change-filters.outputs.needs-rtl == 'true'
|
if: needs.change-filters.outputs.needs-rtl == 'true'
|
||||||
runs-on: ferry
|
runs-on: jktqos
|
||||||
steps:
|
steps:
|
||||||
- name: Delete old checkout
|
- name: Delete old checkout
|
||||||
run: |
|
run: |
|
||||||
@@ -88,7 +88,7 @@ jobs:
|
|||||||
run-cfg-finder:
|
run-cfg-finder:
|
||||||
name: run-cfg-finder
|
name: run-cfg-finder
|
||||||
needs: [setup-repo]
|
needs: [setup-repo]
|
||||||
runs-on: ferry
|
runs-on: jktqos
|
||||||
steps:
|
steps:
|
||||||
- name: Run config finder
|
- name: Run config finder
|
||||||
run: |
|
run: |
|
||||||
@@ -101,7 +101,7 @@ jobs:
|
|||||||
run-tutorial:
|
run-tutorial:
|
||||||
name: run-tutorial
|
name: run-tutorial
|
||||||
needs: [setup-repo]
|
needs: [setup-repo]
|
||||||
runs-on: ferry
|
runs-on: jktqos
|
||||||
steps:
|
steps:
|
||||||
- name: Run smoke test
|
- name: Run smoke test
|
||||||
run: |
|
run: |
|
||||||
@@ -169,9 +169,10 @@ jobs:
|
|||||||
cleanup:
|
cleanup:
|
||||||
name: cleanup
|
name: cleanup
|
||||||
needs: [run-tutorial]
|
needs: [run-tutorial]
|
||||||
runs-on: ferry
|
runs-on: jktqos
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
steps:
|
steps:
|
||||||
- name: Delete repo copy and conda env
|
- name: Delete repo copy and conda env
|
||||||
run: |
|
run: |
|
||||||
rm -rf ${{ env.REMOTE_WORK_DIR }}
|
rm -rf ${{ env.REMOTE_WORK_DIR }}
|
||||||
|
rm -rf ${{ env.JAVA_TMP_DIR }}
|
||||||
|
|||||||
18
.github/workflows/chipyard-run-tests.yml
vendored
18
.github/workflows/chipyard-run-tests.yml
vendored
@@ -166,7 +166,7 @@ jobs:
|
|||||||
- name: Generate keys
|
- name: Generate keys
|
||||||
id: genkey
|
id: genkey
|
||||||
run: |
|
run: |
|
||||||
echo "::set-output name=extra-tests-cache-key::extra-tests-${{ github.sha }}"
|
echo "extra-tests-cache-key=extra-tests-${{ github.sha }}" >> $GITHUB_OUTPUT
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
id: build-extra-tools-cache
|
id: build-extra-tools-cache
|
||||||
with:
|
with:
|
||||||
@@ -178,11 +178,11 @@ jobs:
|
|||||||
conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools
|
conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools
|
||||||
.github/scripts/build-extra-tests.sh
|
.github/scripts/build-extra-tests.sh
|
||||||
|
|
||||||
create-conda-env-knight:
|
create-conda-env-jktgz:
|
||||||
name: create-conda-env-knight
|
name: create-conda-env-jktgz
|
||||||
needs: [change-filters, cancel-prior-workflows]
|
needs: [change-filters, cancel-prior-workflows]
|
||||||
if: needs.change-filters.outputs.needs-rtl == 'true'
|
if: needs.change-filters.outputs.needs-rtl == 'true'
|
||||||
runs-on: knight
|
runs-on: jktgz
|
||||||
steps:
|
steps:
|
||||||
- name: Delete old checkout
|
- name: Delete old checkout
|
||||||
run: |
|
run: |
|
||||||
@@ -199,11 +199,11 @@ jobs:
|
|||||||
- name: Create conda env
|
- name: Create conda env
|
||||||
uses: ./.github/actions/create-conda-env
|
uses: ./.github/actions/create-conda-env
|
||||||
|
|
||||||
create-conda-env-ferry:
|
create-conda-env-jktqos:
|
||||||
name: create-conda-env-ferry
|
name: create-conda-env-jktqos
|
||||||
needs: [change-filters, cancel-prior-workflows]
|
needs: [change-filters, cancel-prior-workflows]
|
||||||
if: needs.change-filters.outputs.needs-rtl == 'true'
|
if: needs.change-filters.outputs.needs-rtl == 'true'
|
||||||
runs-on: ferry
|
runs-on: jktqos
|
||||||
steps:
|
steps:
|
||||||
- name: Delete old checkout
|
- name: Delete old checkout
|
||||||
run: |
|
run: |
|
||||||
@@ -225,7 +225,7 @@ jobs:
|
|||||||
# When adding new prep jobs, please add them to `needs` below
|
# When adding new prep jobs, please add them to `needs` below
|
||||||
setup-complete:
|
setup-complete:
|
||||||
name: setup-complete
|
name: setup-complete
|
||||||
needs: [create-conda-env-knight, create-conda-env-ferry, build-extra-tests]
|
needs: [create-conda-env-jktgz, create-conda-env-jktqos, build-extra-tests]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Set up complete
|
- name: Set up complete
|
||||||
@@ -393,7 +393,7 @@ jobs:
|
|||||||
chipyard-spike-gemmini-run-tests:
|
chipyard-spike-gemmini-run-tests:
|
||||||
name: chipyard-spike-gemmini-run-tests
|
name: chipyard-spike-gemmini-run-tests
|
||||||
needs: prepare-chipyard-accels # technically doesn't depend on RTL but should be after the build.sh for Gemmini
|
needs: prepare-chipyard-accels # technically doesn't depend on RTL but should be after the build.sh for Gemmini
|
||||||
runs-on: ferry
|
runs-on: jktqos
|
||||||
steps:
|
steps:
|
||||||
- name: Delete old checkout
|
- name: Delete old checkout
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -27,3 +27,4 @@ project/project/
|
|||||||
.ivy2
|
.ivy2
|
||||||
.sbt
|
.sbt
|
||||||
.classpath_cache/
|
.classpath_cache/
|
||||||
|
.vscode/
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ dependencies:
|
|||||||
# bundle FireSim driver with deps into installer shell-script
|
# bundle FireSim driver with deps into installer shell-script
|
||||||
- constructor
|
- constructor
|
||||||
|
|
||||||
- gcc
|
- gcc<13
|
||||||
- gxx
|
- gxx<13
|
||||||
- sysroot_linux-64=2.17 # needed to match pre-built CI XRT glibc version
|
- sysroot_linux-64=2.17 # needed to match pre-built CI XRT glibc version
|
||||||
- conda-gcc-specs
|
- conda-gcc-specs
|
||||||
- binutils
|
- binutils
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -34,6 +34,13 @@ After Conda is installed and is on your ``PATH``, we need to install a version o
|
|||||||
For this you can use the system package manager like ``yum`` or ``apt`` to install ``git``.
|
For this you can use the system package manager like ``yum`` or ``apt`` to install ``git``.
|
||||||
This ``git`` is only used to first checkout the repository, we will later install a newer version of ``git`` with Conda.
|
This ``git`` is only used to first checkout the repository, we will later install a newer version of ``git`` with Conda.
|
||||||
|
|
||||||
|
Next, we install `libmamba <https://www.anaconda.com/blog/a-faster-conda-for-a-growing-community>`__ for much faster dependency solving when initially setting up the repository.
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
conda install -n base conda-libmamba-solver
|
||||||
|
conda config --set solver libmamba
|
||||||
|
|
||||||
Finally we need to install ``conda-lock`` into the ``base`` conda environment.
|
Finally we need to install ``conda-lock`` into the ``base`` conda environment.
|
||||||
This is done by the following:
|
This is done by the following:
|
||||||
|
|
||||||
@@ -42,7 +49,6 @@ This is done by the following:
|
|||||||
conda install -n base conda-lock=1.4
|
conda install -n base conda-lock=1.4
|
||||||
conda activate base
|
conda activate base
|
||||||
|
|
||||||
.. Note:: We also recommended switching to `libmamba <https://www.anaconda.com/blog/a-faster-conda-for-a-growing-community>`__ for much faster dependency solving.
|
|
||||||
|
|
||||||
Setting up the Chipyard Repo
|
Setting up the Chipyard Repo
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ import chisel3.util.{log2Up}
|
|||||||
|
|
||||||
import org.chipsalliance.cde.config.{Config}
|
import org.chipsalliance.cde.config.{Config}
|
||||||
import freechips.rocketchip.devices.tilelink.{BootROMLocated, PLICKey, CLINTKey}
|
import freechips.rocketchip.devices.tilelink.{BootROMLocated, PLICKey, CLINTKey}
|
||||||
import freechips.rocketchip.devices.debug.{Debug, ExportDebug, DebugModuleKey, DMI}
|
import freechips.rocketchip.devices.debug.{Debug, ExportDebug, DebugModuleKey, DMI, JtagDTMKey, JtagDTMConfig}
|
||||||
|
import freechips.rocketchip.diplomacy.{AsynchronousCrossing}
|
||||||
import freechips.rocketchip.stage.phases.TargetDirKey
|
import freechips.rocketchip.stage.phases.TargetDirKey
|
||||||
import freechips.rocketchip.subsystem._
|
import freechips.rocketchip.subsystem._
|
||||||
import freechips.rocketchip.tile.{XLen}
|
import freechips.rocketchip.tile.{XLen}
|
||||||
@@ -14,49 +15,125 @@ import freechips.rocketchip.tile.{XLen}
|
|||||||
import sifive.blocks.devices.gpio._
|
import sifive.blocks.devices.gpio._
|
||||||
import sifive.blocks.devices.uart._
|
import sifive.blocks.devices.uart._
|
||||||
import sifive.blocks.devices.spi._
|
import sifive.blocks.devices.spi._
|
||||||
|
import sifive.blocks.devices.i2c._
|
||||||
|
|
||||||
import testchipip._
|
import testchipip._
|
||||||
|
|
||||||
import chipyard.{ExtTLMem}
|
import chipyard.{ExtTLMem}
|
||||||
|
|
||||||
// Set the bootrom to the Chipyard bootrom
|
/**
|
||||||
class WithBootROM extends Config((site, here, up) => {
|
* Config fragment for adding a BootROM to the SoC
|
||||||
|
*
|
||||||
|
* @param address the address of the BootROM device
|
||||||
|
* @param size the size of the BootROM
|
||||||
|
* @param hang the power-on reset vector, i.e. the program counter will be set to this value on reset
|
||||||
|
* @param contentFileName the path to the BootROM image
|
||||||
|
*/
|
||||||
|
class WithBootROM(address: BigInt = 0x10000, size: Int = 0x10000, hang: BigInt = 0x10040) extends Config((site, here, up) => {
|
||||||
case BootROMLocated(x) => up(BootROMLocated(x), site)
|
case BootROMLocated(x) => up(BootROMLocated(x), site)
|
||||||
.map(_.copy(contentFileName = s"${site(TargetDirKey)}/bootrom.rv${site(XLen)}.img"))
|
.map(_.copy(
|
||||||
|
address = address,
|
||||||
|
size = size,
|
||||||
|
hang = hang,
|
||||||
|
contentFileName = s"${site(TargetDirKey)}/bootrom.rv${site(XLen)}.img"
|
||||||
|
))
|
||||||
})
|
})
|
||||||
|
|
||||||
// DOC include start: gpio config fragment
|
// DOC include start: gpio config fragment
|
||||||
class WithGPIO extends Config((site, here, up) => {
|
/**
|
||||||
case PeripheryGPIOKey => Seq(
|
* Config fragment for adding a GPIO peripheral device to the SoC
|
||||||
GPIOParams(address = 0x10012000, width = 4, includeIOF = false))
|
*
|
||||||
|
* @param address the address of the GPIO device
|
||||||
|
* @param width the number of pins of the GPIO device
|
||||||
|
*/
|
||||||
|
class WithGPIO(address: BigInt = 0x10010000, width: Int = 4) extends Config ((site, here, up) => {
|
||||||
|
case PeripheryGPIOKey => up(PeripheryGPIOKey) ++ Seq(
|
||||||
|
GPIOParams(address = address, width = width, includeIOF = false))
|
||||||
})
|
})
|
||||||
// DOC include end: gpio config fragment
|
// DOC include end: gpio config fragment
|
||||||
|
|
||||||
class WithUART(baudrate: BigInt = 115200) extends Config((site, here, up) => {
|
/**
|
||||||
case PeripheryUARTKey => Seq(
|
* Config fragment for removing all UART peripheral devices from the SoC
|
||||||
UARTParams(address = 0x54000000L, nTxEntries = 256, nRxEntries = 256, initBaudRate = baudrate))
|
*/
|
||||||
})
|
|
||||||
|
|
||||||
class WithNoUART extends Config((site, here, up) => {
|
class WithNoUART extends Config((site, here, up) => {
|
||||||
case PeripheryUARTKey => Nil
|
case PeripheryUARTKey => Nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Config fragment for adding a UART peripheral device to the SoC
|
||||||
|
*
|
||||||
|
* @param address the address of the UART device
|
||||||
|
* @param baudrate the baudrate of the UART device
|
||||||
|
*/
|
||||||
|
class WithUART(baudrate: BigInt = 115200, address: BigInt = 0x10020000) extends Config ((site, here, up) => {
|
||||||
|
case PeripheryUARTKey => up(PeripheryUARTKey) ++ Seq(
|
||||||
|
UARTParams(address = address, nTxEntries = 256, nRxEntries = 256, initBaudRate = baudrate))
|
||||||
|
})
|
||||||
|
|
||||||
class WithUARTFIFOEntries(txEntries: Int, rxEntries: Int) extends Config((site, here, up) => {
|
class WithUARTFIFOEntries(txEntries: Int, rxEntries: Int) extends Config((site, here, up) => {
|
||||||
case PeripheryUARTKey => up(PeripheryUARTKey).map(_.copy(nTxEntries = txEntries, nRxEntries = rxEntries))
|
case PeripheryUARTKey => up(PeripheryUARTKey).map(_.copy(nTxEntries = txEntries, nRxEntries = rxEntries))
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithSPIFlash(size: BigInt = 0x10000000) extends Config((site, here, up) => {
|
class WithUARTInitBaudRate(baudrate: BigInt = 115200) extends Config ((site, here, up) => {
|
||||||
|
case PeripheryUARTKey => up(PeripheryUARTKey).map(_.copy(initBaudRate=baudrate))
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Config fragment for adding a SPI peripheral device with Execute-in-Place capability to the SoC
|
||||||
|
*
|
||||||
|
* @param address the address of the SPI controller
|
||||||
|
* @param fAddress the address of the Execute-in-Place (XIP) region of the SPI flash memory
|
||||||
|
* @param size the size of the Execute-in-Place (XIP) region of the SPI flash memory
|
||||||
|
*/
|
||||||
|
class WithSPIFlash(size: BigInt = 0x10000000, address: BigInt = 0x10030000, fAddress: BigInt = 0x20000000) extends Config((site, here, up) => {
|
||||||
// Note: the default size matches freedom with the addresses below
|
// Note: the default size matches freedom with the addresses below
|
||||||
case PeripherySPIFlashKey => Seq(
|
case PeripherySPIFlashKey => up(PeripherySPIFlashKey) ++ Seq(
|
||||||
SPIFlashParams(rAddress = 0x10040000, fAddress = 0x20000000, fSize = size))
|
SPIFlashParams(rAddress = address, fAddress = fAddress, fSize = size))
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Config fragment for adding a SPI peripheral device to the SoC
|
||||||
|
*
|
||||||
|
* @param address the address of the SPI controller
|
||||||
|
*/
|
||||||
|
class WithSPI(address: BigInt = 0x10031000) extends Config((site, here, up) => {
|
||||||
|
case PeripherySPIKey => up(PeripherySPIKey) ++ Seq(
|
||||||
|
SPIParams(rAddress = address))
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Config fragment for adding a I2C peripheral device to the SoC
|
||||||
|
*
|
||||||
|
* @param address the address of the I2C controller
|
||||||
|
*/
|
||||||
|
class WithI2C(address: BigInt = 0x10040000) extends Config((site, here, up) => {
|
||||||
|
case PeripheryI2CKey => up(PeripheryI2CKey) ++ Seq(
|
||||||
|
I2CParams(address = address, controlXType = AsynchronousCrossing(), intXType = AsynchronousCrossing())
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
class WithNoDebug extends Config((site, here, up) => {
|
||||||
|
case DebugModuleKey => None
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithDMIDTM extends Config((site, here, up) => {
|
class WithDMIDTM extends Config((site, here, up) => {
|
||||||
case ExportDebug => up(ExportDebug, site).copy(protocols = Set(DMI))
|
case ExportDebug => up(ExportDebug, site).copy(protocols = Set(DMI))
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithNoDebug extends Config((site, here, up) => {
|
/**
|
||||||
case DebugModuleKey => None
|
* Config fragment for adding a JTAG Debug Module to the SoC
|
||||||
|
*
|
||||||
|
* @param idcodeVersion the version of the JTAG protocol the Debug Module supports
|
||||||
|
* @param partNum the part number of the Debug Module
|
||||||
|
* @param manufId the 11-bit JEDEC Designer ID of the chip manufacturer
|
||||||
|
* @param debugIdleCycles the number of cycles the Debug Module waits before responding to a request
|
||||||
|
*/
|
||||||
|
class WithJTAGDTMKey(idcodeVersion: Int = 2, partNum: Int = 0x000, manufId: Int = 0x489, debugIdleCycles: Int = 5) extends Config((site, here, up) => {
|
||||||
|
case JtagDTMKey => new JtagDTMConfig (
|
||||||
|
idcodeVersion = idcodeVersion,
|
||||||
|
idcodePartNum = partNum,
|
||||||
|
idcodeManufId = manufId,
|
||||||
|
debugIdleCycles = debugIdleCycles)
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithTLBackingMemory extends Config((site, here, up) => {
|
class WithTLBackingMemory extends Config((site, here, up) => {
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ class WithFireSimDesignTweaks extends Config(
|
|||||||
// Optional: reduce the width of the Serial TL interface
|
// Optional: reduce the width of the Serial TL interface
|
||||||
new testchipip.WithSerialTLWidth(4) ++
|
new testchipip.WithSerialTLWidth(4) ++
|
||||||
// Required*: Scale default baud rate with periphery bus frequency
|
// Required*: Scale default baud rate with periphery bus frequency
|
||||||
new chipyard.config.WithUART(BigInt(3686400L)) ++
|
new chipyard.config.WithUARTInitBaudRate(BigInt(3686400L)) ++
|
||||||
// Optional: Adds IO to attach tracerV bridges
|
// Optional: Adds IO to attach tracerV bridges
|
||||||
new chipyard.config.WithTraceIO ++
|
new chipyard.config.WithTraceIO ++
|
||||||
// Optional: Request 16 GiB of target-DRAM by default (can safely request up to 32 GiB on F1)
|
// Optional: Request 16 GiB of target-DRAM by default (can safely request up to 32 GiB on F1)
|
||||||
@@ -241,7 +241,7 @@ class FireSimSmallSystemConfig extends Config(
|
|||||||
new freechips.rocketchip.subsystem.WithExtMemSize(1 << 28) ++
|
new freechips.rocketchip.subsystem.WithExtMemSize(1 << 28) ++
|
||||||
new testchipip.WithDefaultSerialTL ++
|
new testchipip.WithDefaultSerialTL ++
|
||||||
new testchipip.WithBlockDevice ++
|
new testchipip.WithBlockDevice ++
|
||||||
new chipyard.config.WithUART ++
|
new chipyard.config.WithUARTInitBaudRate(BigInt(3686400L)) ++
|
||||||
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays = 2, capacityKB = 64) ++
|
new freechips.rocketchip.subsystem.WithInclusiveCache(nWays = 2, capacityKB = 64) ++
|
||||||
new chipyard.RocketConfig)
|
new chipyard.RocketConfig)
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ if run_step "1"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# use conda-lock to create env
|
# use conda-lock to create env
|
||||||
conda-lock install -p $CYDIR/.conda-env $LOCKFILE
|
conda-lock install --conda $(which conda) -p $CYDIR/.conda-env $LOCKFILE
|
||||||
|
|
||||||
source $CYDIR/.conda-env/etc/profile.d/conda.sh
|
source $CYDIR/.conda-env/etc/profile.d/conda.sh
|
||||||
conda activate $CYDIR/.conda-env
|
conda activate $CYDIR/.conda-env
|
||||||
|
|||||||
@@ -14,5 +14,5 @@ for TOOLCHAIN_TYPE in riscv-tools esp-tools; do
|
|||||||
# note: lock file must end in .conda-lock.yml - see https://github.com/conda-incubator/conda-lock/issues/154
|
# note: lock file must end in .conda-lock.yml - see https://github.com/conda-incubator/conda-lock/issues/154
|
||||||
LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml
|
LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml
|
||||||
|
|
||||||
conda-lock -f "$REQS_DIR/chipyard.yaml" -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" -p linux-64 --lockfile $LOCKFILE
|
conda-lock --conda $(which conda) -f "$REQS_DIR/chipyard.yaml" -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" -p linux-64 --lockfile $LOCKFILE
|
||||||
done
|
done
|
||||||
|
|||||||
Submodule software/firemarshal updated: f553a22b28...8b8eea35f6
@@ -5,7 +5,7 @@
|
|||||||
#define SPIFLASH_BASE_MEM 0x20000000
|
#define SPIFLASH_BASE_MEM 0x20000000
|
||||||
#define SPIFLASH_BASE_MEM_SIZE 0x10000000
|
#define SPIFLASH_BASE_MEM_SIZE 0x10000000
|
||||||
|
|
||||||
#define SPIFLASH_BASE_CTRL 0x10040000
|
#define SPIFLASH_BASE_CTRL 0x10030000
|
||||||
// Only defining the registers we use; there are more
|
// Only defining the registers we use; there are more
|
||||||
// Software control
|
// Software control
|
||||||
#define SPIFLASH_OFFS_CSMODE 0x18
|
#define SPIFLASH_OFFS_CSMODE 0x18
|
||||||
|
|||||||
Reference in New Issue
Block a user