From aa057239f2bc14d4001681ae01e4ea759e1b4c2e Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 17 Oct 2023 14:38:28 -0700 Subject: [PATCH 001/105] Bump rocket-chip + submodules for new clustered-tile API --- fpga/fpga-shells | 2 +- generators/bar-fetchers | 2 +- generators/boom | 2 +- .../chipyard/src/main/scala/ChipTop.scala | 1 - .../chipyard/src/main/scala/DigitalTop.scala | 1 - .../chipyard/src/main/scala/SpikeTile.scala | 35 ++++++++++--------- .../chipyard/src/main/scala/Subsystem.scala | 28 ++++++++------- .../chipyard/src/main/scala/System.scala | 7 ---- .../chipyard/src/main/scala/TestSuites.scala | 2 +- .../main/scala/clocking/ClockBinders.scala | 25 ++----------- .../main/scala/clocking/HasChipyardPRCI.scala | 31 +++++----------- .../main/scala/config/AbstractConfig.scala | 2 +- .../src/main/scala/config/RocketConfigs.scala | 8 +++++ .../main/scala/config/TracegenConfigs.scala | 2 +- .../config/fragments/ClockingFragments.scala | 4 +-- .../config/fragments/RoCCFragments.scala | 8 ++--- .../config/fragments/SubsystemFragments.scala | 4 +-- .../config/fragments/TileFragments.scala | 14 ++++---- .../src/main/scala/example/FlatChipTop.scala | 12 +------ .../chipyard/src/main/scala/example/GCD.scala | 2 +- .../src/main/scala/example/TutorialTile.scala | 19 +++++----- .../src/main/scala/iobinders/IOBinders.scala | 10 +++--- generators/cva6 | 2 +- .../firechip/src/main/scala/FireSim.scala | 8 ++--- generators/ibex | 2 +- generators/riscv-sodor | 2 +- generators/rocket-chip | 2 +- generators/shuttle | 2 +- generators/sifive-blocks | 2 +- generators/sifive-cache | 2 +- generators/testchipip | 2 +- .../tracegen/src/main/scala/Configs.scala | 18 +++++----- .../tracegen/src/main/scala/System.scala | 5 +-- 33 files changed, 116 insertions(+), 152 deletions(-) diff --git a/fpga/fpga-shells b/fpga/fpga-shells index 2ce3e6f3..19e0e87c 160000 --- a/fpga/fpga-shells +++ b/fpga/fpga-shells @@ -1 +1 @@ -Subproject commit 2ce3e6f3df06d64c858bc1073ba1c75e7eb71a07 +Subproject commit 19e0e87cedd438f8231bb7af420cc58792735473 diff --git a/generators/bar-fetchers b/generators/bar-fetchers index a5bd985d..12d1506f 160000 --- a/generators/bar-fetchers +++ b/generators/bar-fetchers @@ -1 +1 @@ -Subproject commit a5bd985d29b07940e326d78964b370fa1cefec71 +Subproject commit 12d1506f610048906d2407b40a706923cbe6571e diff --git a/generators/boom b/generators/boom index 96da674b..65b0d39b 160000 --- a/generators/boom +++ b/generators/boom @@ -1 +1 @@ -Subproject commit 96da674bc97955e7fa068f0a9a1d0a7a479d1d0b +Subproject commit 65b0d39b35bb5dbb3deba826979c5145846648ae diff --git a/generators/chipyard/src/main/scala/ChipTop.scala b/generators/chipyard/src/main/scala/ChipTop.scala index 150221b6..ec636dfb 100644 --- a/generators/chipyard/src/main/scala/ChipTop.scala +++ b/generators/chipyard/src/main/scala/ChipTop.scala @@ -5,7 +5,6 @@ import chisel3._ import scala.collection.mutable.{ArrayBuffer} import freechips.rocketchip.prci.{ClockGroupIdentityNode, ClockSinkParameters, ClockSinkNode, ClockGroup} -import freechips.rocketchip.subsystem.{BaseSubsystem, SubsystemDriveAsyncClockGroupsKey} import org.chipsalliance.cde.config.{Parameters, Field} import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp, LazyRawModuleImp, LazyModuleImpLike, BindingScope} import freechips.rocketchip.util.{ResetCatchAndSync} diff --git a/generators/chipyard/src/main/scala/DigitalTop.scala b/generators/chipyard/src/main/scala/DigitalTop.scala index d7263008..1dafe42d 100644 --- a/generators/chipyard/src/main/scala/DigitalTop.scala +++ b/generators/chipyard/src/main/scala/DigitalTop.scala @@ -40,7 +40,6 @@ class DigitalTop(implicit p: Parameters) extends ChipyardSystem } class DigitalTopModule[+L <: DigitalTop](l: L) extends ChipyardSystemModule(l) - with testchipip.CanHaveTraceIOModuleImp with sifive.blocks.devices.i2c.HasPeripheryI2CModuleImp with sifive.blocks.devices.pwm.HasPeripheryPWMModuleImp with sifive.blocks.devices.uart.HasPeripheryUARTModuleImp diff --git a/generators/chipyard/src/main/scala/SpikeTile.scala b/generators/chipyard/src/main/scala/SpikeTile.scala index fc822c22..7778deb6 100644 --- a/generators/chipyard/src/main/scala/SpikeTile.scala +++ b/generators/chipyard/src/main/scala/SpikeTile.scala @@ -77,14 +77,15 @@ case class SpikeTileAttachParams( } case class SpikeTileParams( - hartId: Int = 0, + tileId: Int = 0, val core: SpikeCoreParams = SpikeCoreParams(), icacheParams: ICacheParams = ICacheParams(nWays = 32), dcacheParams: DCacheParams = DCacheParams(nWays = 32), tcmParams: Option[MasterPortParams] = None // tightly coupled memory ) extends InstantiableTileParams[SpikeTile] { - val name = Some("spike_tile") + val baseName = "spike_tile" + val uniqueName = s"${baseName}_$tileId" val beuAddr = None val blockerCtrlAddr = None val btb = None @@ -92,7 +93,7 @@ case class SpikeTileParams( val dcache = Some(dcacheParams) val icache = Some(icacheParams) val clockSinkParams = ClockSinkParameters() - def instantiate(crossing: TileCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters): SpikeTile = { + def instantiate(crossing: HierarchicalElementCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters): SpikeTile = { new SpikeTile(this, crossing, lookup) } } @@ -106,11 +107,11 @@ class SpikeTile( with SourcesExternalNotifications { // Private constructor ensures altered LazyModule.p is used implicitly - def this(params: SpikeTileParams, crossing: TileCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters) = + def this(params: SpikeTileParams, crossing: HierarchicalElementCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters) = this(params, crossing.crossingType, lookup, p) // Required TileLink nodes - val intOutwardNode = IntIdentityNode() + val intOutwardNode = Some(IntIdentityNode()) val masterNode = visibilityNode val slaveNode = TLIdentityNode() @@ -129,21 +130,21 @@ class SpikeTile( } ResourceBinding { - Resource(cpuDevice, "reg").bind(ResourceAddress(hartId)) + Resource(cpuDevice, "reg").bind(ResourceAddress(tileId)) } val icacheNode = TLClientNode(Seq(TLMasterPortParameters.v1(Seq(TLMasterParameters.v1( sourceId = IdRange(0, 1), - name = s"Core ${staticIdForMetadataUseOnly} ICache"))))) + name = s"Core ${tileId} ICache"))))) val dcacheNode = TLClientNode(Seq(TLMasterPortParameters.v1(Seq(TLMasterParameters.v1( - name = s"Core ${staticIdForMetadataUseOnly} DCache", + name = s"Core ${tileId} DCache", sourceId = IdRange(0, tileParams.dcache.get.nMSHRs), supportsProbe = TransferSizes(p(CacheBlockBytes), p(CacheBlockBytes))))))) val mmioNode = TLClientNode((Seq(TLMasterPortParameters.v1(Seq(TLMasterParameters.v1( - name = s"Core ${staticIdForMetadataUseOnly} MMIO", + name = s"Core ${tileId} MMIO", sourceId = IdRange(0, 1), requestFifo = true)))))) @@ -313,7 +314,7 @@ class SpikeBlackBox( } class SpikeTileModuleImp(outer: SpikeTile) extends BaseTileModuleImp(outer) { - + val tileParams = outer.tileParams // We create a bundle here and decode the interrupt. val int_bundle = Wire(new TileInterrupts()) outer.decodeCoreInterrupts(int_bundle) @@ -337,7 +338,7 @@ class SpikeTileModuleImp(outer: SpikeTile) extends BaseTileModuleImp(outer) { // then the DTM-based bringup with SimDTM will be used. This isn't required to be // true, but it usually is val useDTM = p(ExportDebug).protocols.contains(DMI) - val spike = Module(new SpikeBlackBox(hartId, isaDTS, tileParams.core.nPMPs, + val spike = Module(new SpikeBlackBox(outer.tileId, outer.isaDTS, tileParams.core.nPMPs, tileParams.icache.get.nSets, tileParams.icache.get.nWays, tileParams.dcache.get.nSets, tileParams.dcache.get.nWays, tileParams.dcache.get.nMSHRs, @@ -467,19 +468,21 @@ class SpikeTileModuleImp(outer: SpikeTile) extends BaseTileModuleImp(outer) { } } -class WithNSpikeCores(n: Int = 1, tileParams: SpikeTileParams = SpikeTileParams(), - overrideIdOffset: Option[Int] = None) extends Config((site, here, up) => { +class WithNSpikeCores(n: Int = 1, tileParams: SpikeTileParams = SpikeTileParams() +) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => { // Calculate the next available hart ID (since hart ID cannot be duplicated) val prev = up(TilesLocated(InSubsystem), site) - val idOffset = overrideIdOffset.getOrElse(prev.size) + val idOffset = up(NumTiles) // Create TileAttachParams for every core to be instantiated (0 until n).map { i => SpikeTileAttachParams( - tileParams = tileParams.copy(hartId = i + idOffset) + tileParams = tileParams.copy(tileId = i + idOffset) ) } ++ prev } + case NumTiles => up(NumTiles) + n + }) class WithSpikeTCM extends Config((site, here, up) => { @@ -492,5 +495,5 @@ class WithSpikeTCM extends Config((site, here, up) => { ))) } case ExtMem => None - case BankedL2Key => up(BankedL2Key).copy(nBanks = 0) + case SubsystemBankedCoherenceKey => up(SubsystemBankedCoherenceKey).copy(nBanks = 0) }) diff --git a/generators/chipyard/src/main/scala/Subsystem.scala b/generators/chipyard/src/main/scala/Subsystem.scala index d25d4fa3..1a41ce81 100644 --- a/generators/chipyard/src/main/scala/Subsystem.scala +++ b/generators/chipyard/src/main/scala/Subsystem.scala @@ -71,18 +71,24 @@ trait CanHaveChosenInDTS { this: BaseSubsystem => } class ChipyardSubsystem(implicit p: Parameters) extends BaseSubsystem - with HasTiles - with HasPeripheryDebug - with CanHaveHTIF - with CanHaveChosenInDTS + with InstantiatesHierarchicalElements + with HasTileNotificationSinks + with HasTileInputConstants + with CanHavePeripheryCLINT + with CanHavePeripheryPLIC + with HasPeripheryDebug + with HasHierarchicalElementsRootContext + with HasHierarchicalElements + with CanHaveHTIF + with CanHaveChosenInDTS { - def coreMonitorBundles = tiles.map { + def coreMonitorBundles = totalTiles.values.map { case r: RocketTile => r.module.core.rocketImpl.coreMonitorBundle case b: BoomTile => b.module.core.coreMonitorBundle }.toList // No-tile configs have to be handled specially. - if (tiles.size == 0) { + if (totalTiles.size == 0) { // no PLIC, so sink interrupts to nowhere require(!p(PLICKey).isDefined) val intNexus = IntNexusNode(sourceFn = x => x.head, sinkFn = x => x.head) @@ -96,10 +102,6 @@ class ChipyardSubsystem(implicit p: Parameters) extends BaseSubsystem tileHaltXbarNode := IntSourceNode(IntSourcePortSimple()) tileWFIXbarNode := IntSourceNode(IntSourcePortSimple()) tileCeaseXbarNode := IntSourceNode(IntSourcePortSimple()) - - // Sink reset vectors to nowhere - val resetVectorSink = BundleBridgeSink[UInt](Some(() => UInt(28.W))) - resetVectorSink := tileResetVectorNode } // Relying on [[TLBusWrapperConnection]].driveClockFromMaster for @@ -107,7 +109,7 @@ class ChipyardSubsystem(implicit p: Parameters) extends BaseSubsystem // ClockGroup. This makes it impossible to determine which clocks are driven // by which bus based on the member names, which is problematic when there is // a rational crossing between two buses. Instead, provide all bus clocks - // directly from the asyncClockGroupsNode in the subsystem to ensure bus + // directly from the allClockGroupsNode in the subsystem to ensure bus // names are always preserved in the top-level clock names. // // For example, using a RationalCrossing between the Sbus and Cbus, and @@ -116,12 +118,12 @@ class ChipyardSubsystem(implicit p: Parameters) extends BaseSubsystem // Conversly, if an async crossing is used, they instead receive names of the // form "subsystem_cbus_[0-9]*". The assignment below provides the latter names in all cases. Seq(PBUS, FBUS, MBUS, CBUS).foreach { loc => - tlBusWrapperLocationMap.lift(loc).foreach { _.clockGroupNode := asyncClockGroupsNode } + tlBusWrapperLocationMap.lift(loc).foreach { _.clockGroupNode := allClockGroupsNode } } override lazy val module = new ChipyardSubsystemModuleImp(this) } class ChipyardSubsystemModuleImp[+L <: ChipyardSubsystem](_outer: L) extends BaseSubsystemModuleImp(_outer) - with HasTilesModuleImp + with HasHierarchicalElementsRootContextModuleImp { } diff --git a/generators/chipyard/src/main/scala/System.scala b/generators/chipyard/src/main/scala/System.scala index 5643e380..b8a04eac 100644 --- a/generators/chipyard/src/main/scala/System.scala +++ b/generators/chipyard/src/main/scala/System.scala @@ -32,13 +32,6 @@ class ChipyardSystem(implicit p: Parameters) extends ChipyardSubsystem val bootROM = p(BootROMLocated(location)).map { BootROM.attach(_, this, CBUS) } val maskROMs = p(MaskROMLocated(location)).map { MaskROM.attach(_, this, CBUS) } - // If there is no bootrom, the tile reset vector bundle will be tied to zero - if (bootROM.isEmpty) { - val fakeResetVectorSourceNode = BundleBridgeSource[UInt]() - InModuleBody { fakeResetVectorSourceNode.bundle := 0.U } - tileResetVectorNexusNode := fakeResetVectorSourceNode - } - override lazy val module = new ChipyardSystemModule(this) } diff --git a/generators/chipyard/src/main/scala/TestSuites.scala b/generators/chipyard/src/main/scala/TestSuites.scala index 0e4e3310..2a88ebb2 100644 --- a/generators/chipyard/src/main/scala/TestSuites.scala +++ b/generators/chipyard/src/main/scala/TestSuites.scala @@ -65,7 +65,7 @@ class TestSuiteHelper */ def addGenericTestSuites(tiles: Seq[TileParams])(implicit p: Parameters) = { val xlen = p(XLen) - tiles.find(_.hartId == 0).map { tileParams => + tiles.find(_.tileId == 0).map { tileParams => val coreParams = tileParams.core val vm = coreParams.useVM val env = if (vm) List("p","v") else List("p") diff --git a/generators/chipyard/src/main/scala/clocking/ClockBinders.scala b/generators/chipyard/src/main/scala/clocking/ClockBinders.scala index 3ef8a61b..fa31163d 100644 --- a/generators/chipyard/src/main/scala/clocking/ClockBinders.scala +++ b/generators/chipyard/src/main/scala/clocking/ClockBinders.scala @@ -18,16 +18,6 @@ class WithPLLSelectorDividerClockGenerator extends OverrideLazyIOBinder({ (system: HasChipyardPRCI) => { // Connect the implicit clock implicit val p = GetSystemParameters(system) - val implicitClockSinkNode = ClockSinkNode(Seq(ClockSinkParameters(name = Some("implicit_clock")))) - system.connectImplicitClockSinkNode(implicitClockSinkNode) - InModuleBody { - val implicit_clock = implicitClockSinkNode.in.head._1.clock - val implicit_reset = implicitClockSinkNode.in.head._1.reset - system.asInstanceOf[BaseSubsystem].module match { case l: LazyModuleImp => { - l.clock := implicit_clock - l.reset := implicit_reset - }} - } val tlbus = system.asInstanceOf[BaseSubsystem].locateTLBusWrapper(system.prciParams.slaveWhere) val baseAddress = system.prciParams.baseAddress val clockDivider = system.prci_ctrl_domain { LazyModule(new TLClockDivider (baseAddress + 0x20000, tlbus.beatBytes)) } @@ -38,7 +28,7 @@ class WithPLLSelectorDividerClockGenerator extends OverrideLazyIOBinder({ clockSelector.tlNode := system.prci_ctrl_domain { TLFragmenter(tlbus.beatBytes, tlbus.blockBytes) := system.prci_ctrl_bus.get } pllCtrl.tlNode := system.prci_ctrl_domain { TLFragmenter(tlbus.beatBytes, tlbus.blockBytes) := system.prci_ctrl_bus.get } - system.allClockGroupsNode := clockDivider.clockNode := clockSelector.clockNode + system.chiptopClockGroupsNode := clockDivider.clockNode := clockSelector.clockNode // Connect all other requested clocks val slowClockSource = ClockSourceNode(Seq(ClockSourceParameters())) @@ -83,23 +73,12 @@ class WithPLLSelectorDividerClockGenerator extends OverrideLazyIOBinder({ // This passes all clocks through to the TestHarness class WithPassthroughClockGenerator extends OverrideLazyIOBinder({ (system: HasChipyardPRCI) => { - // Connect the implicit clock implicit val p = GetSystemParameters(system) - val implicitClockSinkNode = ClockSinkNode(Seq(ClockSinkParameters(name = Some("implicit_clock")))) - system.connectImplicitClockSinkNode(implicitClockSinkNode) - InModuleBody { - val implicit_clock = implicitClockSinkNode.in.head._1.clock - val implicit_reset = implicitClockSinkNode.in.head._1.reset - system.asInstanceOf[BaseSubsystem].module match { case l: LazyModuleImp => { - l.clock := implicit_clock - l.reset := implicit_reset - }} - } // This aggregate node should do nothing val clockGroupAggNode = ClockGroupAggregateNode("fake") val clockGroupsSourceNode = ClockGroupSourceNode(Seq(ClockGroupSourceParameters())) - system.allClockGroupsNode := clockGroupAggNode := clockGroupsSourceNode + system.chiptopClockGroupsNode := clockGroupAggNode := clockGroupsSourceNode InModuleBody { val reset_io = IO(Input(AsyncReset())) diff --git a/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala b/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala index 356a0432..a9832806 100644 --- a/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala +++ b/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala @@ -29,8 +29,8 @@ case class ChipyardPRCIControlParams( case object ChipyardPRCIControlKey extends Field[ChipyardPRCIControlParams](ChipyardPRCIControlParams()) -trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesTiles => - require(p(SubsystemDriveAsyncClockGroupsKey).isEmpty, "Subsystem asyncClockGroups must be undriven") +trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesHierarchicalElementss => + require(!p(SubsystemDriveDriveClockGroupsFromIO), "Subsystem allClockGroups cannot be driven from implicit clocks") val prciParams = p(ChipyardPRCIControlKey) @@ -48,29 +48,13 @@ trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesTiles => // Aggregate all the clock groups into a single node val aggregator = LazyModule(new ClockGroupAggregator("allClocks")).node - val allClockGroupsNode = ClockGroupEphemeralNode() - // There are two "sets" of clocks which must be dealt with - - // 1. The implicit clock from the subsystem. RC is moving away from depending on this - // clock, but some modules still use it. Since the implicit clock sink node - // is created in the ChipTop (the hierarchy wrapping the subsystem), this function - // is provided to allow connecting that clock to the clock aggregator. This function - // should be called in the ChipTop context - def connectImplicitClockSinkNode(sink: ClockSinkNode) = { - val implicitClockGrouper = this { ClockGroup() } - (sink - := implicitClockGrouper - := aggregator) - } - - // 2. The rest of the diplomatic clocks in the subsystem are routed to this asyncClockGroupsNode + // The diplomatic clocks in the subsystem are routed to this allClockGroupsNode val clockNamePrefixer = ClockGroupNamePrefixer() - (asyncClockGroupsNode + (allClockGroupsNode :*= clockNamePrefixer :*= aggregator) - // Once all the clocks are gathered in the aggregator node, several steps remain // 1. Assign frequencies to any clock groups which did not specify a frequency. // 2. Combine duplicated clock groups (clock groups which physically should be in the same clock domain) @@ -91,7 +75,7 @@ trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesTiles => } } val tileResetSetter = Option.when(prciParams.enableTileResetSetting) { prci_ctrl_domain { val reset_setter = LazyModule(new TileResetSetter(prciParams.baseAddress + 0x10000, tlbus.beatBytes, - tile_prci_domains.map(_.tile_reset_domain.clockNode.portParams(0).name.get), Nil)) + tile_prci_domains.map(_._2.tile_reset_domain.clockNode.portParams(0).name.get).toSeq, Nil)) reset_setter.tlNode := TLFragmenter(tlbus.beatBytes, tlbus.blockBytes) := prci_ctrl_bus.get reset_setter } } @@ -115,11 +99,14 @@ RTL SIMULATORS, NAMELY VERILATOR. """ + Console.RESET) } + // The chiptopClockGroupsNode shouuld be what ClockBinders attach to + val chiptopClockGroupsNode = ClockGroupEphemeralNode() + (aggregator := frequencySpecifier := clockGroupCombiner := resetSynchronizer := tileClockGater.map(_.clockNode).getOrElse(ClockGroupEphemeralNode()(ValName("temp"))) := tileResetSetter.map(_.clockNode).getOrElse(ClockGroupEphemeralNode()(ValName("temp"))) - := allClockGroupsNode) + := chiptopClockGroupsNode) } diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index a08abb6d..0891a21d 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -66,7 +66,7 @@ class AbstractConfig extends Config( new chipyard.config.WithBootROM ++ // use default bootrom new chipyard.config.WithUART ++ // add a UART new chipyard.config.WithL2TLBs(1024) ++ // use L2 TLBs - new chipyard.config.WithNoSubsystemDrivenClocks ++ // drive the subsystem diplomatic clocks from ChipTop instead of using implicit clocks + new chipyard.config.WithNoSubsystemClockIO ++ // drive the subsystem diplomatic clocks from ChipTop instead of using implicit clocks new chipyard.config.WithInheritBusFrequencyAssignments ++ // Unspecified clocks within a bus will receive the bus frequency if set new freechips.rocketchip.subsystem.WithNMemoryChannels(1) ++ // Default 1 memory channels new freechips.rocketchip.subsystem.WithClockGateModel ++ // add default EICG_wrapper clock gate model diff --git a/generators/chipyard/src/main/scala/config/RocketConfigs.scala b/generators/chipyard/src/main/scala/config/RocketConfigs.scala index c45fb6f2..a9f87b28 100644 --- a/generators/chipyard/src/main/scala/config/RocketConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RocketConfigs.scala @@ -2,6 +2,7 @@ package chipyard import org.chipsalliance.cde.config.{Config} import freechips.rocketchip.diplomacy.{AsynchronousCrossing} +import freechips.rocketchip.subsystem.{InCluster} // -------------- // Rocket Configs @@ -110,3 +111,10 @@ class PrefetchingRocketConfig extends Config( new freechips.rocketchip.subsystem.WithNonblockingL1(2) ++ // non-blocking L1D$, L1 prefetching only works with non-blocking L1D$ new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // single rocket-core new chipyard.config.AbstractConfig) + +class ClusteredRocketConfig extends Config( + new freechips.rocketchip.subsystem.WithNBigCores(4, location=InCluster(1)) ++ + new freechips.rocketchip.subsystem.WithNBigCores(4, location=InCluster(0)) ++ + new freechips.rocketchip.subsystem.WithCluster(1) ++ + new freechips.rocketchip.subsystem.WithCluster(0) ++ + new chipyard.config.AbstractConfig) diff --git a/generators/chipyard/src/main/scala/config/TracegenConfigs.scala b/generators/chipyard/src/main/scala/config/TracegenConfigs.scala index 55cce1b8..78c815fb 100644 --- a/generators/chipyard/src/main/scala/config/TracegenConfigs.scala +++ b/generators/chipyard/src/main/scala/config/TracegenConfigs.scala @@ -14,7 +14,7 @@ class AbstractTraceGenConfig extends Config( new chipyard.clocking.WithPassthroughClockGenerator ++ new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "implicit"), Nil)) ++ new chipyard.config.WithTracegenSystem ++ - new chipyard.config.WithNoSubsystemDrivenClocks ++ + new chipyard.config.WithNoSubsystemClockIO ++ new chipyard.config.WithMemoryBusFrequency(1000.0) ++ new chipyard.config.WithSystemBusFrequency(1000.0) ++ new chipyard.config.WithPeripheryBusFrequency(1000.0) ++ diff --git a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala index 2da9fbf2..8ccc8afa 100644 --- a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala @@ -18,8 +18,8 @@ import chipyard.clocking._ // with the implicit clocks of Subsystem. Don't do that, instead we extend // the diplomacy graph upwards into the ChipTop, where we connect it to // our clock drivers -class WithNoSubsystemDrivenClocks extends Config((site, here, up) => { - case SubsystemDriveAsyncClockGroupsKey => None +class WithNoSubsystemClockIO extends Config((site, here, up) => { + case SubsystemDriveClockGroupsFromIO => false }) /** diff --git a/generators/chipyard/src/main/scala/config/fragments/RoCCFragments.scala b/generators/chipyard/src/main/scala/config/fragments/RoCCFragments.scala index 4680eeeb..c9f7fcdb 100644 --- a/generators/chipyard/src/main/scala/config/fragments/RoCCFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/RoCCFragments.scala @@ -12,15 +12,15 @@ import gemmini._ import chipyard.{TestSuitesKey, TestSuiteHelper} /** - * Map from a hartId to a particular RoCC accelerator + * Map from a tileId to a particular RoCC accelerator */ case object MultiRoCCKey extends Field[Map[Int, Seq[Parameters => LazyRoCC]]](Map.empty[Int, Seq[Parameters => LazyRoCC]]) /** - * Config fragment to enable different RoCCs based on the hartId + * Config fragment to enable different RoCCs based on the tileId */ class WithMultiRoCC extends Config((site, here, up) => { - case BuildRoCC => site(MultiRoCCKey).getOrElse(site(TileKey).hartId, Nil) + case BuildRoCC => site(MultiRoCCKey).getOrElse(site(TileKey).tileId, Nil) }) /** @@ -39,7 +39,7 @@ class WithMultiRoCCFromBuildRoCC(harts: Int*) extends Config((site, here, up) => * * For ex: * Core 0, 1, 2, 3 have been defined earlier - * with hartIds of 0, 1, 2, 3 respectively + * with tileIds of 0, 1, 2, 3 respectively * And you call WithMultiRoCCHwacha(0,1) * Then Core 0 and 1 will get a Hwacha * diff --git a/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala b/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala index 40f18d5d..4416a572 100644 --- a/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala @@ -1,12 +1,12 @@ package chipyard.config import org.chipsalliance.cde.config.{Config} -import freechips.rocketchip.subsystem.{SystemBusKey, BankedL2Key, CoherenceManagerWrapper} +import freechips.rocketchip.subsystem.{SystemBusKey, SubsystemBankedCoherenceKey, CoherenceManagerWrapper} import freechips.rocketchip.diplomacy.{DTSTimebase} // Replaces the L2 with a broadcast manager for maintaining coherence class WithBroadcastManager extends Config((site, here, up) => { - case BankedL2Key => up(BankedL2Key, site).copy(coherenceManager = CoherenceManagerWrapper.broadcastManager) + case SubsystemBankedCoherenceKey => up(SubsystemBankedCoherenceKey, site).copy(coherenceManager = CoherenceManagerWrapper.broadcastManager) }) class WithSystemBusWidth(bitWidth: Int) extends Config((site, here, up) => { diff --git a/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala b/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala index 17eaa3f0..db104867 100644 --- a/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala @@ -69,7 +69,7 @@ class WithNPMPs(n: Int = 8) extends Config((site, here, up) => { class WithRocketICacheScratchpad extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - icache = tp.tileParams.icache.map(_.copy(itimAddr = Some(0x300000 + tp.tileParams.hartId * 0x10000))) + icache = tp.tileParams.icache.map(_.copy(itimAddr = Some(0x300000 + tp.tileParams.tileId * 0x10000))) )) } }) @@ -77,7 +77,7 @@ class WithRocketICacheScratchpad extends Config((site, here, up) => { class WithRocketDCacheScratchpad extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - dcache = tp.tileParams.dcache.map(_.copy(nSets = 32, nWays = 1, scratch = Some(0x200000 + tp.tileParams.hartId * 0x10000))) + dcache = tp.tileParams.dcache.map(_.copy(nSets = 32, nWays = 1, scratch = Some(0x200000 + tp.tileParams.tileId * 0x10000))) )) } }) @@ -85,14 +85,14 @@ class WithRocketDCacheScratchpad extends Config((site, here, up) => { class WithTilePrefetchers extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - master = TilePrefetchingMasterPortParams(tp.tileParams.hartId, tp.crossingParams.master))) + master = TilePrefetchingMasterPortParams(tp.tileParams.tileId, tp.crossingParams.master))) case tp: BoomTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - master = TilePrefetchingMasterPortParams(tp.tileParams.hartId, tp.crossingParams.master))) + master = TilePrefetchingMasterPortParams(tp.tileParams.tileId, tp.crossingParams.master))) case tp: SodorTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - master = TilePrefetchingMasterPortParams(tp.tileParams.hartId, tp.crossingParams.master))) + master = TilePrefetchingMasterPortParams(tp.tileParams.tileId, tp.crossingParams.master))) case tp: IbexTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - master = TilePrefetchingMasterPortParams(tp.tileParams.hartId, tp.crossingParams.master))) + master = TilePrefetchingMasterPortParams(tp.tileParams.tileId, tp.crossingParams.master))) case tp: CVA6TileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - master = TilePrefetchingMasterPortParams(tp.tileParams.hartId, tp.crossingParams.master))) + master = TilePrefetchingMasterPortParams(tp.tileParams.tileId, tp.crossingParams.master))) } }) diff --git a/generators/chipyard/src/main/scala/example/FlatChipTop.scala b/generators/chipyard/src/main/scala/example/FlatChipTop.scala index a1a1aeaa..954deec8 100644 --- a/generators/chipyard/src/main/scala/example/FlatChipTop.scala +++ b/generators/chipyard/src/main/scala/example/FlatChipTop.scala @@ -24,9 +24,6 @@ class FlatChipTop(implicit p: Parameters) extends LazyModule { //======================== // Diplomatic clock stuff //======================== - val implicitClockSinkNode = ClockSinkNode(Seq(ClockSinkParameters(name = Some("implicit_clock")))) - system.connectImplicitClockSinkNode(implicitClockSinkNode) - val tlbus = system.locateTLBusWrapper(system.prciParams.slaveWhere) val baseAddress = system.prciParams.baseAddress val clockDivider = system.prci_ctrl_domain { LazyModule(new TLClockDivider (baseAddress + 0x20000, tlbus.beatBytes)) } @@ -37,7 +34,7 @@ class FlatChipTop(implicit p: Parameters) extends LazyModule { tlbus.coupleTo("clock-sel-ctrl") { clockSelector.tlNode := TLFragmenter(tlbus.beatBytes, tlbus.blockBytes) := TLBuffer() := _ } tlbus.coupleTo("pll-ctrl") { pllCtrl.tlNode := TLFragmenter(tlbus.beatBytes, tlbus.blockBytes) := TLBuffer() := _ } - system.allClockGroupsNode := clockDivider.clockNode := clockSelector.clockNode + system.chiptopClockGroupsNode := clockDivider.clockNode := clockSelector.clockNode // Connect all other requested clocks val slowClockSource = ClockSourceNode(Seq(ClockSourceParameters())) @@ -61,13 +58,6 @@ class FlatChipTop(implicit p: Parameters) extends LazyModule { //========================= // Clock/reset //========================= - val implicit_clock = implicitClockSinkNode.in.head._1.clock - val implicit_reset = implicitClockSinkNode.in.head._1.reset - system.module match { case l: LazyModuleImp => { - l.clock := implicit_clock - l.reset := implicit_reset - }} - val clock_wire = Wire(Input(Clock())) val reset_wire = Wire(Input(AsyncReset())) val (clock_pad, clockIOCell) = IOCell.generateIOFromSignal(clock_wire, "clock", p(IOCellKey)) diff --git a/generators/chipyard/src/main/scala/example/GCD.scala b/generators/chipyard/src/main/scala/example/GCD.scala index 5e6c5d67..a92beb55 100644 --- a/generators/chipyard/src/main/scala/example/GCD.scala +++ b/generators/chipyard/src/main/scala/example/GCD.scala @@ -185,7 +185,7 @@ trait CanHavePeripheryGCD { this: BaseSubsystem => // DOC include end: GCD lazy trait // DOC include start: GCD imp trait -trait CanHavePeripheryGCDModuleImp extends LazyModuleImp { +trait CanHavePeripheryGCDModuleImp extends LazyRawModuleImp { val outer: CanHavePeripheryGCD val gcd_busy = outer.gcd match { case Some(gcd) => { diff --git a/generators/chipyard/src/main/scala/example/TutorialTile.scala b/generators/chipyard/src/main/scala/example/TutorialTile.scala index 38c8577a..54be0f8a 100644 --- a/generators/chipyard/src/main/scala/example/TutorialTile.scala +++ b/generators/chipyard/src/main/scala/example/TutorialTile.scala @@ -82,7 +82,7 @@ case class MyTileAttachParams( case class MyTileParams( name: Option[String] = Some("my_tile"), - hartId: Int = 0, + tileId: Int = 0, trace: Boolean = false, val core: MyCoreParams = MyCoreParams() ) extends InstantiableTileParams[MyTile] @@ -94,9 +94,11 @@ case class MyTileParams( val dcache: Option[DCacheParams] = Some(DCacheParams()) val icache: Option[ICacheParams] = Some(ICacheParams()) val clockSinkParams: ClockSinkParameters = ClockSinkParameters() - def instantiate(crossing: TileCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters): MyTile = { + def instantiate(crossing: HierarchicalElementCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters): MyTile = { new MyTile(this, crossing, lookup) } + val baseName = name.getOrElse("my_tile") + val uniqueName = s"${baseName}_$tileId" } // DOC include start: Tile class @@ -111,11 +113,11 @@ class MyTile( { // Private constructor ensures altered LazyModule.p is used implicitly - def this(params: MyTileParams, crossing: TileCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters) = + def this(params: MyTileParams, crossing: HierarchicalElementCrossingParamsLike, lookup: LookupByHartIdImpl)(implicit p: Parameters) = this(params, crossing.crossingType, lookup, p) // Require TileLink nodes - val intOutwardNode = IntIdentityNode() + val intOutwardNode = Some(IntIdentityNode()) val masterNode = visibilityNode val slaveNode = TLIdentityNode() @@ -135,7 +137,7 @@ class MyTile( } ResourceBinding { - Resource(cpuDevice, "reg").bind(ResourceAddress(hartId)) + Resource(cpuDevice, "reg").bind(ResourceAddress(tileId)) } // TODO: Create TileLink nodes and connections here. @@ -228,15 +230,15 @@ class MyTileModuleImp(outer: MyTile) extends BaseTileModuleImp(outer){ } // DOC include start: Config fragment -class WithNMyCores(n: Int = 1, overrideIdOffset: Option[Int] = None) extends Config((site, here, up) => { +class WithNMyCores(n: Int = 1) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => { // Calculate the next available hart ID (since hart ID cannot be duplicated) val prev = up(TilesLocated(InSubsystem), site) - val idOffset = overrideIdOffset.getOrElse(prev.size) + val idOffset = up(NumTiles) // Create TileAttachParams for every core to be instantiated (0 until n).map { i => MyTileAttachParams( - tileParams = MyTileParams(hartId = i + idOffset), + tileParams = MyTileParams(tileId = i + idOffset), crossingParams = RocketCrossingParams() ) } ++ prev @@ -245,5 +247,6 @@ class WithNMyCores(n: Int = 1, overrideIdOffset: Option[Int] = None) extends Con case SystemBusKey => up(SystemBusKey, site).copy(beatBytes = 8) // The # of instruction bits. Use maximum # of bits if your core supports both 32 and 64 bits. case XLen => 64 + case NumTiles => up(NumTiles) + n }) // DOC include end: Config fragment diff --git a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala index 773f3d39..7fdc2a37 100644 --- a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala +++ b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala @@ -453,14 +453,14 @@ class WithTraceGenSuccessPunchthrough extends OverrideIOBinder({ } }) -class WithTraceIOPunchthrough extends OverrideIOBinder({ - (system: CanHaveTraceIOModuleImp) => { +class WithTraceIOPunchthrough extends OverrideLazyIOBinder({ + (system: CanHaveTraceIO) => InModuleBody { val ports: Option[TracePort] = system.traceIO.map { t => val trace = IO(DataMirror.internal.chiselTypeClone[TraceOutputTop](t)).suggestName("trace") trace <> t val p = GetSystemParameters(system) val chipyardSystem = system.asInstanceOf[ChipyardSystemModule[_]].outer.asInstanceOf[ChipyardSystem] - val tiles = chipyardSystem.tiles + val tiles = chipyardSystem.totalTiles.values val cfg = SpikeCosimConfig( isa = tiles.headOption.map(_.isaDTS).getOrElse(""), vlen = tiles.headOption.map(_.tileParams.core.vLen).getOrElse(0), @@ -509,8 +509,8 @@ class WithDontTouchPorts extends OverrideIOBinder({ }) class WithNMITiedOff extends ComposeIOBinder({ - (system: HasTilesModuleImp) => { - system.nmi.flatten.foreach { nmi => + (system: HasHierarchicalElementsRootContextModuleImp) => { + system.nmi.foreach { nmi => nmi.rnmi := false.B nmi.rnmi_interrupt_vector := 0.U nmi.rnmi_exception_vector := 0.U diff --git a/generators/cva6 b/generators/cva6 index 46323fcd..942d5aef 160000 --- a/generators/cva6 +++ b/generators/cva6 @@ -1 +1 @@ -Subproject commit 46323fcd7407544c751b353f52e356eb8f33e9d1 +Subproject commit 942d5aef13ab82ce12adfd5346b2a2716832d69d diff --git a/generators/firechip/src/main/scala/FireSim.scala b/generators/firechip/src/main/scala/FireSim.scala index 4cca7557..599788bc 100644 --- a/generators/firechip/src/main/scala/FireSim.scala +++ b/generators/firechip/src/main/scala/FireSim.scala @@ -8,7 +8,7 @@ import chisel3._ import chisel3.experimental.{IO, annotate} import freechips.rocketchip.prci._ -import freechips.rocketchip.subsystem.{BaseSubsystem, SubsystemDriveAsyncClockGroupsKey, HasTiles} +import freechips.rocketchip.subsystem._ import org.chipsalliance.cde.config.{Field, Config, Parameters} import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp, InModuleBody, ValName} import freechips.rocketchip.util.{ResetCatchAndSync, RecordMap} @@ -103,8 +103,8 @@ class FireSim(implicit val p: Parameters) extends RawModule with HasHarnessInsta // FireSim ModelMultithreading chiptops.foreach { case c: ChipTop => c.lazySystem match { - case ls: HasTiles => { - if (p(FireSimMultiCycleRegFile)) ls.tiles.map { + case ls: InstantiatesHierarchicalElements => { + if (p(FireSimMultiCycleRegFile)) ls.totalTiles.values.map { case r: RocketTile => { annotate(MemModelAnnotation(r.module.core.rocketImpl.rf.rf)) r.module.fpuOpt.foreach(fpu => annotate(MemModelAnnotation(fpu.fpuImpl.regfile))) @@ -120,7 +120,7 @@ class FireSim(implicit val p: Parameters) extends RawModule with HasHarnessInsta } case _ => } - if (p(FireSimFAME5)) ls.tiles.map { + if (p(FireSimFAME5)) ls.totalTiles.values.map { case b: BoomTile => annotate(EnableModelMultiThreadingAnnotation(b.module)) case r: RocketTile => diff --git a/generators/ibex b/generators/ibex index 66ec6e56..b52a2d72 160000 --- a/generators/ibex +++ b/generators/ibex @@ -1 +1 @@ -Subproject commit 66ec6e56ed69df4e4af5383128cf21adf88b08fc +Subproject commit b52a2d721993d7b38982a0fa62b696798ac4dd9a diff --git a/generators/riscv-sodor b/generators/riscv-sodor index c1c809eb..ebb45b94 160000 --- a/generators/riscv-sodor +++ b/generators/riscv-sodor @@ -1 +1 @@ -Subproject commit c1c809ebd5c9a76cd60d8c3169cea4bf4b2fa8fd +Subproject commit ebb45b9439a19e2710ce0f2ee6e9ae2a192cbddf diff --git a/generators/rocket-chip b/generators/rocket-chip index 50adbdb3..e0ea9034 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit 50adbdb3e4e18c2b3de57693323f4174b60f9767 +Subproject commit e0ea90344e9edb6a4e24f84e7729d83c217c8859 diff --git a/generators/shuttle b/generators/shuttle index e628836c..924d269d 160000 --- a/generators/shuttle +++ b/generators/shuttle @@ -1 +1 @@ -Subproject commit e628836c3c4bfe29927cd9e1473801fab33dee6c +Subproject commit 924d269d1ef81adfeb263a3d898c82105f7d50ed diff --git a/generators/sifive-blocks b/generators/sifive-blocks index 5edd72e7..212c7b07 160000 --- a/generators/sifive-blocks +++ b/generators/sifive-blocks @@ -1 +1 @@ -Subproject commit 5edd72e793ccb534b1395d0d8c1831754fd72fec +Subproject commit 212c7b070bc7132f31a26deec6b2bde9e0b1b612 diff --git a/generators/sifive-cache b/generators/sifive-cache index 51d400bd..bcd248a2 160000 --- a/generators/sifive-cache +++ b/generators/sifive-cache @@ -1 +1 @@ -Subproject commit 51d400bd32131e8914c6713bfb71bef690f2fe70 +Subproject commit bcd248a2a2e86084a136c05d1844d88d9fba18e5 diff --git a/generators/testchipip b/generators/testchipip index 6436959d..24de6bca 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 6436959d997d0bb578790d95078648b478ca049b +Subproject commit 24de6bca032e730749535a75b37b30834cb23c28 diff --git a/generators/tracegen/src/main/scala/Configs.scala b/generators/tracegen/src/main/scala/Configs.scala index 5d4f0211..f51052c5 100644 --- a/generators/tracegen/src/main/scala/Configs.scala +++ b/generators/tracegen/src/main/scala/Configs.scala @@ -13,19 +13,18 @@ import scala.math.{max, min} class WithTraceGen( n: Int = 2, - overrideIdOffset: Option[Int] = None, overrideMemOffset: Option[BigInt] = None)( params: Seq[DCacheParams] = List.fill(n){ DCacheParams(nSets = 16, nWays = 1) }, nReqs: Int = 8192 ) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => { val prev = up(TilesLocated(InSubsystem), site) - val idOffset = overrideIdOffset.getOrElse(prev.size) + val idOffset = up(NumTiles) val memOffset: BigInt = overrideMemOffset.orElse(site(ExtMem).map(_.master.base)).getOrElse(0x0L) params.zipWithIndex.map { case (dcp, i) => TraceGenTileAttachParams( tileParams = TraceGenParams( - hartId = i + idOffset, + tileId = i + idOffset, dcache = Some(dcp), wordBits = site(XLen), addrBits = 48, @@ -48,23 +47,23 @@ class WithTraceGen( ) } ++ prev } + case NumTiles => up(NumTiles) + n }) class WithBoomTraceGen( n: Int = 2, - overrideIdOffset: Option[Int] = None, overrideMemOffset: Option[BigInt] = None)( params: Seq[DCacheParams] = List.fill(n){ DCacheParams(nMSHRs = 4, nSets = 16, nWays = 2) }, nReqs: Int = 8192 ) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => { val prev = up(TilesLocated(InSubsystem), site) - val idOffset = overrideIdOffset.getOrElse(prev.size) + val idOffset = up(NumTiles) val memOffset: BigInt = overrideMemOffset.orElse(site(ExtMem).map(_.master.base)).getOrElse(0x0L) params.zipWithIndex.map { case (dcp, i) => BoomTraceGenTileAttachParams( tileParams = BoomTraceGenParams( - hartId = i + idOffset, + tileId = i + idOffset, dcache = Some(dcp), wordBits = site(XLen), addrBits = 48, @@ -84,24 +83,24 @@ class WithBoomTraceGen( ) } ++ prev } + case NumTiles => up(NumTiles) + n }) class WithL2TraceGen( n: Int = 2, - overrideIdOffset: Option[Int] = None, overrideMemOffset: Option[BigInt] = None)( params: Seq[DCacheParams] = List.fill(n){ DCacheParams(nSets = 16, nWays = 1) }, nReqs: Int = 8192 ) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => { val prev = up(TilesLocated(InSubsystem), site) - val idOffset = overrideIdOffset.getOrElse(prev.size) + val idOffset = up(NumTiles) val memOffset: BigInt = overrideMemOffset.orElse(site(ExtMem).map(_.master.base)).getOrElse(0x0L) params.zipWithIndex.map { case (dcp, i) => TraceGenTileAttachParams( tileParams = TraceGenParams( - hartId = i + idOffset, + tileId = i + idOffset, dcache = Some(dcp), wordBits = site(XLen), addrBits = 48, @@ -126,4 +125,5 @@ class WithL2TraceGen( ) } ++ prev } + case NumTiles => up(NumTiles) + n }) diff --git a/generators/tracegen/src/main/scala/System.scala b/generators/tracegen/src/main/scala/System.scala index 2a0ba3d5..5d3953cb 100644 --- a/generators/tracegen/src/main/scala/System.scala +++ b/generators/tracegen/src/main/scala/System.scala @@ -9,11 +9,12 @@ import freechips.rocketchip.subsystem._ import boom.lsu.BoomTraceGenTile class TraceGenSystem(implicit p: Parameters) extends BaseSubsystem - with HasTiles + with InstantiatesHierarchicalElements + with HasTileNotificationSinks with CanHaveMasterAXI4MemPort { def coreMonitorBundles = Nil - val tileStatusNodes = tiles.collect { + val tileStatusNodes = totalTiles.values.toSeq.collect { case t: GroundTestTile => t.statusNode.makeSink() case t: BoomTraceGenTile => t.statusNode.makeSink() } From 7cc03f40ebd01e8dc020eb3391ae73b5f0da39ab Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 17 Oct 2023 14:39:39 -0700 Subject: [PATCH 002/105] Add test for clustered-rocket config --- .github/scripts/defaults.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/scripts/defaults.sh b/.github/scripts/defaults.sh index 08637428..e0337f30 100755 --- a/.github/scripts/defaults.sh +++ b/.github/scripts/defaults.sh @@ -33,7 +33,7 @@ grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboom chipyard-spif grouping["group-accels"]="chipyard-mempress chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla" grouping["group-constellation"]="chipyard-constellation" grouping["group-tracegen"]="tracegen tracegen-boom" -grouping["group-other"]="icenet testchipip constellation rocketchip-amba rocketchip-tlsimple rocketchip-tlwidth rocketchip-tlxbar" +grouping["group-other"]="icenet testchipip constellation rocketchip-amba rocketchip-tlsimple rocketchip-tlwidth rocketchip-tlxbar chipyard-clusters" grouping["group-fpga"]="arty arty100t nexysvideo vc707 vcu118" # key value store to get the build strings @@ -67,6 +67,7 @@ mapping["chipyard-shuttle"]=" CONFIG=ShuttleConfig" mapping["chipyard-multiclock-rocket"]=" CONFIG=MulticlockRocketConfig" mapping["chipyard-nomem-scratchpad"]=" CONFIG=MMIOScratchpadOnlyRocketConfig" mapping["chipyard-constellation"]=" CONFIG=SharedNoCConfig" +mapping["chipyard-clusters"]=" CONFIG=ClusteredRocketConfig verilog" mapping["constellation"]=" SUB_PROJECT=constellation" mapping["firesim"]="SCALA_TEST=firesim.firesim.RocketNICF1Tests" From 5f51da3db361331023c660aad7166043a5831e28 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 17 Oct 2023 15:56:22 -0700 Subject: [PATCH 003/105] Fix HasChipyardPRCI typos --- .../chipyard/src/main/scala/clocking/HasChipyardPRCI.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala b/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala index a9832806..1a85c9bb 100644 --- a/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala +++ b/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala @@ -29,8 +29,8 @@ case class ChipyardPRCIControlParams( case object ChipyardPRCIControlKey extends Field[ChipyardPRCIControlParams](ChipyardPRCIControlParams()) -trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesHierarchicalElementss => - require(!p(SubsystemDriveDriveClockGroupsFromIO), "Subsystem allClockGroups cannot be driven from implicit clocks") +trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesHierarchicalElements => + require(!p(SubsystemDriveClockGroupsFromIO), "Subsystem allClockGroups cannot be driven from implicit clocks") val prciParams = p(ChipyardPRCIControlKey) From e8aa68c65cdd3bf613b2d311b0b5cb0c075b9843 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 17 Oct 2023 17:05:45 -0700 Subject: [PATCH 004/105] Tiles do not generate interrupts --- generators/boom | 2 +- generators/chipyard/src/main/scala/SpikeTile.scala | 2 +- generators/chipyard/src/main/scala/example/TutorialTile.scala | 2 +- generators/chipyard/src/main/scala/iobinders/IOBinders.scala | 2 +- generators/cva6 | 2 +- generators/ibex | 2 +- generators/riscv-sodor | 2 +- generators/shuttle | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/generators/boom b/generators/boom index 65b0d39b..9459af0c 160000 --- a/generators/boom +++ b/generators/boom @@ -1 +1 @@ -Subproject commit 65b0d39b35bb5dbb3deba826979c5145846648ae +Subproject commit 9459af0c1f6847f8411622dac770ac78fe10847c diff --git a/generators/chipyard/src/main/scala/SpikeTile.scala b/generators/chipyard/src/main/scala/SpikeTile.scala index 7778deb6..6f211d8b 100644 --- a/generators/chipyard/src/main/scala/SpikeTile.scala +++ b/generators/chipyard/src/main/scala/SpikeTile.scala @@ -111,7 +111,7 @@ class SpikeTile( this(params, crossing.crossingType, lookup, p) // Required TileLink nodes - val intOutwardNode = Some(IntIdentityNode()) + val intOutwardNode = None val masterNode = visibilityNode val slaveNode = TLIdentityNode() diff --git a/generators/chipyard/src/main/scala/example/TutorialTile.scala b/generators/chipyard/src/main/scala/example/TutorialTile.scala index 54be0f8a..76b17273 100644 --- a/generators/chipyard/src/main/scala/example/TutorialTile.scala +++ b/generators/chipyard/src/main/scala/example/TutorialTile.scala @@ -117,7 +117,7 @@ class MyTile( this(params, crossing.crossingType, lookup, p) // Require TileLink nodes - val intOutwardNode = Some(IntIdentityNode()) + val intOutwardNode = None val masterNode = visibilityNode val slaveNode = TLIdentityNode() diff --git a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala index 7fdc2a37..b94c1e3c 100644 --- a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala +++ b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala @@ -459,7 +459,7 @@ class WithTraceIOPunchthrough extends OverrideLazyIOBinder({ val trace = IO(DataMirror.internal.chiselTypeClone[TraceOutputTop](t)).suggestName("trace") trace <> t val p = GetSystemParameters(system) - val chipyardSystem = system.asInstanceOf[ChipyardSystemModule[_]].outer.asInstanceOf[ChipyardSystem] + val chipyardSystem = system.asInstanceOf[ChipyardSystem] val tiles = chipyardSystem.totalTiles.values val cfg = SpikeCosimConfig( isa = tiles.headOption.map(_.isaDTS).getOrElse(""), diff --git a/generators/cva6 b/generators/cva6 index 942d5aef..9d1c1068 160000 --- a/generators/cva6 +++ b/generators/cva6 @@ -1 +1 @@ -Subproject commit 942d5aef13ab82ce12adfd5346b2a2716832d69d +Subproject commit 9d1c106834824ddb8052b7f60574b2b544b40395 diff --git a/generators/ibex b/generators/ibex index b52a2d72..c2174aba 160000 --- a/generators/ibex +++ b/generators/ibex @@ -1 +1 @@ -Subproject commit b52a2d721993d7b38982a0fa62b696798ac4dd9a +Subproject commit c2174aba4fb304c7565c248f2a673f7151be896b diff --git a/generators/riscv-sodor b/generators/riscv-sodor index ebb45b94..bbfc3c35 160000 --- a/generators/riscv-sodor +++ b/generators/riscv-sodor @@ -1 +1 @@ -Subproject commit ebb45b9439a19e2710ce0f2ee6e9ae2a192cbddf +Subproject commit bbfc3c35100329386314c49b62b49a7f42f65e87 diff --git a/generators/shuttle b/generators/shuttle index 924d269d..fd325d43 160000 --- a/generators/shuttle +++ b/generators/shuttle @@ -1 +1 @@ -Subproject commit 924d269d1ef81adfeb263a3d898c82105f7d50ed +Subproject commit fd325d43a162378dc1984e87297e6d710167db79 From 686d9a5f44bd074e9e28790cd982ebade7a57def Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 18 Oct 2023 00:27:05 -0700 Subject: [PATCH 005/105] Bump rocket-chip --- generators/rocket-chip | 2 +- generators/tracegen/src/main/scala/System.scala | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/generators/rocket-chip b/generators/rocket-chip index e0ea9034..d48b45da 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit e0ea90344e9edb6a4e24f84e7729d83c217c8859 +Subproject commit d48b45da568c0d370479325258018a8a5cf3369c diff --git a/generators/tracegen/src/main/scala/System.scala b/generators/tracegen/src/main/scala/System.scala index 5d3953cb..e7e3a033 100644 --- a/generators/tracegen/src/main/scala/System.scala +++ b/generators/tracegen/src/main/scala/System.scala @@ -11,14 +11,22 @@ import boom.lsu.BoomTraceGenTile class TraceGenSystem(implicit p: Parameters) extends BaseSubsystem with InstantiatesHierarchicalElements with HasTileNotificationSinks + with HasTileInputConstants + with HasHierarchicalElementsRootContext + with HasHierarchicalElements with CanHaveMasterAXI4MemPort { def coreMonitorBundles = Nil + val tileStatusNodes = totalTiles.values.toSeq.collect { case t: GroundTestTile => t.statusNode.makeSink() case t: BoomTraceGenTile => t.statusNode.makeSink() } - lazy val debugNode = IntSyncXbar() := NullIntSyncSource() + + lazy val clintOpt = None + lazy val debugOpt = None + lazy val plicOpt = None + override lazy val module = new TraceGenSystemModuleImp(this) } From 1d9dba517b6b0f4c21e7930a607f20dc51d8b316 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 18 Oct 2023 18:59:22 -0700 Subject: [PATCH 006/105] Fix unassigned clocks due to removing implicit clock from BaseSubsystem --- .../chipyard/src/main/scala/clocking/HasChipyardPRCI.scala | 3 +-- .../chipyard/src/main/scala/config/AbstractConfig.scala | 1 + .../src/main/scala/example/dsptools/GenericFIR.scala | 7 ++++--- .../main/scala/example/dsptools/StreamingPassthrough.scala | 5 +++-- generators/fft-generator | 2 +- generators/icenet | 2 +- generators/rocket-chip | 2 +- generators/testchipip | 2 +- generators/tracegen/src/main/scala/System.scala | 2 ++ 9 files changed, 15 insertions(+), 11 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala b/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala index 1a85c9bb..1b5733c5 100644 --- a/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala +++ b/generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala @@ -36,8 +36,7 @@ trait HasChipyardPRCI { this: BaseSubsystem with InstantiatesHierarchicalElement // Set up clock domain private val tlbus = locateTLBusWrapper(prciParams.slaveWhere) - val prci_ctrl_domain = LazyModule(new ClockSinkDomain(name=Some("chipyard-prci-control"))) - prci_ctrl_domain.clockNode := tlbus.fixedClockNode + val prci_ctrl_domain = tlbus.generateSynchronousDomain.suggestName("chipyard_prcictrl_domain") val prci_ctrl_bus = Option.when(prciParams.generatePRCIXBar) { prci_ctrl_domain { TLXbar() } } prci_ctrl_bus.foreach(xbar => tlbus.coupleTo("prci_ctrl") { (xbar diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index 0891a21d..140f74fb 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -55,6 +55,7 @@ class AbstractConfig extends Config( new chipyard.clocking.WithPassthroughClockGenerator ++ new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "mbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++ new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Default 500 MHz pbus + new chipyard.config.WithControlBusFrequency(500.0) ++ // Default 500 MHz cbus new chipyard.config.WithMemoryBusFrequency(500.0) ++ // Default 500 MHz mbus new testchipip.WithCustomBootPin ++ // add a custom-boot-pin to support pin-driven boot address diff --git a/generators/chipyard/src/main/scala/example/dsptools/GenericFIR.scala b/generators/chipyard/src/main/scala/example/dsptools/GenericFIR.scala index 01d72d24..df2ec35a 100644 --- a/generators/chipyard/src/main/scala/example/dsptools/GenericFIR.scala +++ b/generators/chipyard/src/main/scala/example/dsptools/GenericFIR.scala @@ -199,12 +199,13 @@ class TLGenericFIRChain[T<:Data:Ring] (genIn: T, genOut: T, coeffs: => Seq[T], p trait CanHavePeripheryStreamingFIR extends BaseSubsystem { val streamingFIR = p(GenericFIRKey) match { case Some(params) => { - val streamingFIR = LazyModule(new TLGenericFIRChain( + val domain = pbus.generateSynchronousDomain.suggestName("fir_domain") + val streamingFIR = domain { LazyModule(new TLGenericFIRChain( genIn = FixedPoint(8.W, 3.BP), genOut = FixedPoint(8.W, 3.BP), coeffs = Seq(1.U.asFixedPoint(0.BP), 2.U.asFixedPoint(0.BP), 3.U.asFixedPoint(0.BP)), - params = params)) - pbus.coupleTo("streamingFIR") { streamingFIR.mem.get := TLFIFOFixer() := TLFragmenter(pbus.beatBytes, pbus.blockBytes) := _ } + params = params)) } + pbus.coupleTo("streamingFIR") { domain { streamingFIR.mem.get := TLFIFOFixer() := TLFragmenter(pbus.beatBytes, pbus.blockBytes) } := _ } Some(streamingFIR) } case None => None diff --git a/generators/chipyard/src/main/scala/example/dsptools/StreamingPassthrough.scala b/generators/chipyard/src/main/scala/example/dsptools/StreamingPassthrough.scala index 45e05fc2..a2259ab1 100644 --- a/generators/chipyard/src/main/scala/example/dsptools/StreamingPassthrough.scala +++ b/generators/chipyard/src/main/scala/example/dsptools/StreamingPassthrough.scala @@ -131,8 +131,9 @@ class TLStreamingPassthroughChain[T<:Data:Ring](params: StreamingPassthroughPara trait CanHavePeripheryStreamingPassthrough { this: BaseSubsystem => val passthrough = p(StreamingPassthroughKey) match { case Some(params) => { - val streamingPassthroughChain = LazyModule(new TLStreamingPassthroughChain(params, UInt(32.W))) - pbus.coupleTo("streamingPassthrough") { streamingPassthroughChain.mem.get := TLFIFOFixer() := TLFragmenter(pbus.beatBytes, pbus.blockBytes) := _ } + val domain = pbus.generateSynchronousDomain.suggestName("streaming_passthrough_domain") + val streamingPassthroughChain = domain { LazyModule(new TLStreamingPassthroughChain(params, UInt(32.W))) } + pbus.coupleTo("streamingPassthrough") { domain { streamingPassthroughChain.mem.get := TLFIFOFixer() := TLFragmenter(pbus.beatBytes, pbus.blockBytes)} := _ } Some(streamingPassthroughChain) } case None => None diff --git a/generators/fft-generator b/generators/fft-generator index 811951b4..4e7e6cbb 160000 --- a/generators/fft-generator +++ b/generators/fft-generator @@ -1 +1 @@ -Subproject commit 811951b44a113f87710a6abaae4582120c1194ba +Subproject commit 4e7e6cbbbc6ed96d27dbaeb2413764cd446c50b3 diff --git a/generators/icenet b/generators/icenet index 18e88b57..d6a471f2 160000 --- a/generators/icenet +++ b/generators/icenet @@ -1 +1 @@ -Subproject commit 18e88b5779ffdd7d75ca62cf9909f0ffc6fda95b +Subproject commit d6a471f2187c0671eea6567c7ba29e86e830e8d4 diff --git a/generators/rocket-chip b/generators/rocket-chip index d48b45da..8881ccd1 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit d48b45da568c0d370479325258018a8a5cf3369c +Subproject commit 8881ccd1cab941ed0a0981c00361b1415027f8ce diff --git a/generators/testchipip b/generators/testchipip index 24de6bca..9785c266 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 24de6bca032e730749535a75b37b30834cb23c28 +Subproject commit 9785c2662d8153477f004be10faec0037e9949e9 diff --git a/generators/tracegen/src/main/scala/System.scala b/generators/tracegen/src/main/scala/System.scala index e7e3a033..b25225c7 100644 --- a/generators/tracegen/src/main/scala/System.scala +++ b/generators/tracegen/src/main/scala/System.scala @@ -26,6 +26,8 @@ class TraceGenSystem(implicit p: Parameters) extends BaseSubsystem lazy val clintOpt = None lazy val debugOpt = None lazy val plicOpt = None + lazy val clintDomainOpt = None + lazy val plicDomainOpt = None override lazy val module = new TraceGenSystemModuleImp(this) } From 127a7596296cea636dd891226f1c4544bcc31f62 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 20 Oct 2023 15:07:18 -0700 Subject: [PATCH 007/105] Bump rocket-chip --- .../chipyard/src/main/scala/config/AbstractConfig.scala | 2 +- .../chipyard/src/main/scala/config/TracegenConfigs.scala | 3 ++- generators/rocket-chip | 2 +- generators/tracegen/src/main/scala/System.scala | 6 ++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index 140f74fb..bc09862e 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -53,7 +53,7 @@ class AbstractConfig extends Config( // By default, punch out IOs to the Harness new chipyard.clocking.WithPassthroughClockGenerator ++ - new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "mbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++ + new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "mbus", "pbus", "fbus", "cbus"), Seq("tile"))) ++ new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Default 500 MHz pbus new chipyard.config.WithControlBusFrequency(500.0) ++ // Default 500 MHz cbus new chipyard.config.WithMemoryBusFrequency(500.0) ++ // Default 500 MHz mbus diff --git a/generators/chipyard/src/main/scala/config/TracegenConfigs.scala b/generators/chipyard/src/main/scala/config/TracegenConfigs.scala index 78c815fb..77408a96 100644 --- a/generators/chipyard/src/main/scala/config/TracegenConfigs.scala +++ b/generators/chipyard/src/main/scala/config/TracegenConfigs.scala @@ -12,10 +12,11 @@ class AbstractTraceGenConfig extends Config( new chipyard.iobinders.WithAXI4MemPunchthrough ++ new chipyard.iobinders.WithTraceGenSuccessPunchthrough ++ new chipyard.clocking.WithPassthroughClockGenerator ++ - new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "implicit"), Nil)) ++ + new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus"), Nil)) ++ new chipyard.config.WithTracegenSystem ++ new chipyard.config.WithNoSubsystemClockIO ++ new chipyard.config.WithMemoryBusFrequency(1000.0) ++ + new chipyard.config.WithControlBusFrequency(1000.0) ++ new chipyard.config.WithSystemBusFrequency(1000.0) ++ new chipyard.config.WithPeripheryBusFrequency(1000.0) ++ new freechips.rocketchip.subsystem.WithCoherentBusTopology ++ diff --git a/generators/rocket-chip b/generators/rocket-chip index 8881ccd1..0e88fc06 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit 8881ccd1cab941ed0a0981c00361b1415027f8ce +Subproject commit 0e88fc066e293b0da45da7360afd4cd3e6399678 diff --git a/generators/tracegen/src/main/scala/System.scala b/generators/tracegen/src/main/scala/System.scala index b25225c7..488054d3 100644 --- a/generators/tracegen/src/main/scala/System.scala +++ b/generators/tracegen/src/main/scala/System.scala @@ -23,11 +23,13 @@ class TraceGenSystem(implicit p: Parameters) extends BaseSubsystem case t: BoomTraceGenTile => t.statusNode.makeSink() } + lazy val fakeClockDomain = sbus.generateSynchronousDomain + lazy val clintOpt = None lazy val debugOpt = None lazy val plicOpt = None - lazy val clintDomainOpt = None - lazy val plicDomainOpt = None + lazy val clintDomainOpt = Some(fakeClockDomain) + lazy val plicDomainOpt = Some(fakeClockDomain) override lazy val module = new TraceGenSystemModuleImp(this) } From bbf37b2e4b1adeff5a35f6b654121873838b1c2f Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sat, 21 Oct 2023 12:38:21 -0700 Subject: [PATCH 008/105] Fix no-cores ibus null-connection --- generators/chipyard/src/main/scala/Subsystem.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/chipyard/src/main/scala/Subsystem.scala b/generators/chipyard/src/main/scala/Subsystem.scala index 1a41ce81..247a28c5 100644 --- a/generators/chipyard/src/main/scala/Subsystem.scala +++ b/generators/chipyard/src/main/scala/Subsystem.scala @@ -96,7 +96,7 @@ class ChipyardSubsystem(implicit p: Parameters) extends BaseSubsystem intSink := intNexus :=* ibus.toPLIC // avoids a bug when there are no interrupt sources - ibus.fromAsync := NullIntSource() + ibus { ibus.fromAsync := NullIntSource() } // Need to have at least 1 driver to the tile notification sinks tileHaltXbarNode := IntSourceNode(IntSourcePortSimple()) From 2a6939cf0aff8f3107518188859ef05972a1f670 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sat, 21 Oct 2023 14:15:32 -0700 Subject: [PATCH 009/105] Bump nvdla --- generators/nvdla | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/nvdla b/generators/nvdla index 730fad43..95697452 160000 --- a/generators/nvdla +++ b/generators/nvdla @@ -1 +1 @@ -Subproject commit 730fad4360e67b14b1a4656ac58aaa40cfd4fe6b +Subproject commit 95697452e51ad56230a6e631bb02b3351c4293c6 From 1e26618e8dab4a410a4d7c44994dff0c98d4bfbe Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sat, 21 Oct 2023 15:48:01 -0700 Subject: [PATCH 010/105] Fix fpga platforms cbus freq --- fpga/src/main/scala/arty/Configs.scala | 1 + fpga/src/main/scala/arty100t/Configs.scala | 2 ++ fpga/src/main/scala/nexysvideo/Configs.scala | 4 +++- fpga/src/main/scala/vc707/Configs.scala | 2 ++ fpga/src/main/scala/vcu118/Configs.scala | 4 +++- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/fpga/src/main/scala/arty/Configs.scala b/fpga/src/main/scala/arty/Configs.scala index 3e208060..cfbb146c 100644 --- a/fpga/src/main/scala/arty/Configs.scala +++ b/fpga/src/main/scala/arty/Configs.scala @@ -28,6 +28,7 @@ class WithArtyTweaks extends Config( new chipyard.config.WithDTSTimebase(32000) ++ new chipyard.config.WithSystemBusFrequency(32) ++ new chipyard.config.WithPeripheryBusFrequency(32) ++ + new chipyard.config.WithControlBusFrequency(32) ++ new testchipip.WithNoSerialTL ) diff --git a/fpga/src/main/scala/arty100t/Configs.scala b/fpga/src/main/scala/arty100t/Configs.scala index 4a0fb293..dbae2e3b 100644 --- a/fpga/src/main/scala/arty100t/Configs.scala +++ b/fpga/src/main/scala/arty100t/Configs.scala @@ -32,6 +32,7 @@ class WithArty100TTweaks extends Config( new chipyard.config.WithFrontBusFrequency(50.0) ++ new chipyard.config.WithSystemBusFrequency(50.0) ++ new chipyard.config.WithPeripheryBusFrequency(50.0) ++ + new chipyard.config.WithControlBusFrequency(50.0) ++ new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++ new chipyard.clocking.WithPassthroughClockGenerator ++ new chipyard.config.WithNoDebug ++ // no jtag @@ -62,5 +63,6 @@ class NoCoresArty100TConfig extends Config( new WithArty100TTweaks ++ new chipyard.config.WithMemoryBusFrequency(50.0) ++ new chipyard.config.WithPeripheryBusFrequency(50.0) ++ // Match the sbus and pbus frequency + new chipyard.config.WithControlBusFrequency(50.0) ++ new chipyard.config.WithBroadcastManager ++ // no l2 new chipyard.NoCoresConfig) diff --git a/fpga/src/main/scala/nexysvideo/Configs.scala b/fpga/src/main/scala/nexysvideo/Configs.scala index f31e38d1..7b867500 100644 --- a/fpga/src/main/scala/nexysvideo/Configs.scala +++ b/fpga/src/main/scala/nexysvideo/Configs.scala @@ -33,6 +33,7 @@ class WithNexysVideoTweaks extends Config( new chipyard.config.WithFrontBusFrequency(50.0) ++ new chipyard.config.WithSystemBusFrequency(50.0) ++ new chipyard.config.WithPeripheryBusFrequency(50.0) ++ + new chipyard.config.WithControlBusFrequency(50.0) ++ new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++ new chipyard.clocking.WithPassthroughClockGenerator ++ new chipyard.config.WithNoDebug ++ // no jtag @@ -59,6 +60,7 @@ class WithTinyNexysVideoTweaks extends Config( new chipyard.config.WithFrontBusFrequency(50.0) ++ new chipyard.config.WithSystemBusFrequency(50.0) ++ new chipyard.config.WithPeripheryBusFrequency(50.0) ++ + new chipyard.config.WithControlBusFrequency(50.0) ++ new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++ new chipyard.clocking.WithPassthroughClockGenerator ++ new chipyard.config.WithNoDebug ++ // no jtag @@ -69,4 +71,4 @@ class TinyRocketNexysVideoConfig extends Config( new WithTinyNexysVideoTweaks ++ new chipyard.config.WithBroadcastManager ++ // no l2 new chipyard.TinyRocketConfig) - // DOC include end: WithTinyNexysVideoTweaks and Rocket \ No newline at end of file + // DOC include end: WithTinyNexysVideoTweaks and Rocket diff --git a/fpga/src/main/scala/vc707/Configs.scala b/fpga/src/main/scala/vc707/Configs.scala index b37064ac..1d43da2c 100644 --- a/fpga/src/main/scala/vc707/Configs.scala +++ b/fpga/src/main/scala/vc707/Configs.scala @@ -45,6 +45,7 @@ class WithVC707Tweaks extends Config ( new chipyard.config.WithMemoryBusFrequency(50.0) ++ new chipyard.config.WithSystemBusFrequency(50.0) ++ new chipyard.config.WithPeripheryBusFrequency(50.0) ++ + new chipyard.config.WithControlBusFrequency(50.0) ++ new chipyard.harness.WithHarnessBinderClockFreqMHz(50) ++ new WithFPGAFrequency(50) ++ // default 50MHz freq @@ -75,6 +76,7 @@ class BoomVC707Config extends Config ( class WithFPGAFrequency(fMHz: Double) extends Config ( new chipyard.config.WithPeripheryBusFrequency(fMHz) ++ // assumes using PBUS as default freq. + new chipyard.config.WithControlBusFrequency(fMHz) ++ new chipyard.config.WithMemoryBusFrequency(fMHz) ) diff --git a/fpga/src/main/scala/vcu118/Configs.scala b/fpga/src/main/scala/vcu118/Configs.scala index 35632961..e7ea046e 100644 --- a/fpga/src/main/scala/vcu118/Configs.scala +++ b/fpga/src/main/scala/vcu118/Configs.scala @@ -47,6 +47,7 @@ class WithVCU118Tweaks extends Config( new chipyard.config.WithMemoryBusFrequency(100) ++ new chipyard.config.WithSystemBusFrequency(100) ++ new chipyard.config.WithPeripheryBusFrequency(100) ++ + new chipyard.config.WithControlBusFrequency(100) ++ new WithFPGAFrequency(100) ++ // default 100MHz freq // harness binders new WithUART ++ @@ -76,7 +77,8 @@ class BoomVCU118Config extends Config( class WithFPGAFrequency(fMHz: Double) extends Config( new chipyard.harness.WithHarnessBinderClockFreqMHz(fMHz) ++ new chipyard.config.WithSystemBusFrequency(fMHz) ++ - new chipyard.config.WithPeripheryBusFrequency(fMHz) ++ // assumes using PBUS as default freq. + new chipyard.config.WithPeripheryBusFrequency(fMHz) ++ + new chipyard.config.WithControlBusFrequency(fMHz) ++ new chipyard.config.WithMemoryBusFrequency(fMHz) ) From 2ffd52e2db5e65525b7e9855a4fffb7e4ef9cc2f Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sun, 22 Oct 2023 14:08:51 -0700 Subject: [PATCH 011/105] Fix ChipBringupHostConfig cbus freq --- generators/chipyard/src/main/scala/config/ChipConfigs.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/generators/chipyard/src/main/scala/config/ChipConfigs.scala b/generators/chipyard/src/main/scala/config/ChipConfigs.scala index cc61794c..4291ef37 100644 --- a/generators/chipyard/src/main/scala/config/ChipConfigs.scala +++ b/generators/chipyard/src/main/scala/config/ChipConfigs.scala @@ -85,6 +85,7 @@ class ChipBringupHostConfig extends Config( new chipyard.config.WithFrontBusFrequency(75.0) ++ // run all buses of this system at 75 MHz new chipyard.config.WithMemoryBusFrequency(75.0) ++ new chipyard.config.WithPeripheryBusFrequency(75.0) ++ + new chipyard.config.WithControlBusFrequency(75.0) ++ // Base is the no-cores config new chipyard.NoCoresConfig) From a4be70877143428a1b30acbe6a6366a077940799 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sun, 22 Oct 2023 14:23:35 -0700 Subject: [PATCH 012/105] Fix firechip cbus freq --- generators/firechip/src/main/scala/TargetConfigs.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/generators/firechip/src/main/scala/TargetConfigs.scala b/generators/firechip/src/main/scala/TargetConfigs.scala index 6f2a0291..66c1dc09 100644 --- a/generators/firechip/src/main/scala/TargetConfigs.scala +++ b/generators/firechip/src/main/scala/TargetConfigs.scala @@ -121,6 +121,7 @@ class WithFireSimHighPerfClocking extends Config( // This frequency selection matches FireSim's legacy selection and is required // to support 200Gb NIC performance. You may select a smaller value. new chipyard.config.WithPeripheryBusFrequency(3200.0) ++ + new chipyard.config.WithControlBusFrequency(3200.0) ++ new chipyard.config.WithSystemBusFrequency(3200.0) ++ new chipyard.config.WithFrontBusFrequency(3200.0) ++ // Optional: These three configs put the DRAM memory system in it's own clock domain. @@ -140,6 +141,7 @@ class WithFireSimConfigTweaks extends Config( // to generate faithful DDR3 timing values. new chipyard.config.WithSystemBusFrequency(1000.0) ++ new chipyard.config.WithPeripheryBusFrequency(1000.0) ++ + new chipyard.config.WithControlBusFrequency(1000.0) ++ new chipyard.config.WithMemoryBusFrequency(1000.0) ++ new WithFireSimDesignTweaks ) @@ -185,7 +187,8 @@ class WithFireSimTestChipConfigTweaks extends Config( new chipyard.config.WithTileFrequency(1000.0) ++ // Realistic tile frequency for a test chip new chipyard.config.WithSystemBusFrequency(500.0) ++ // Realistic system bus frequency new chipyard.config.WithMemoryBusFrequency(1000.0) ++ // Needs to be 1000 MHz to model DDR performance accurately - new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Match the sbus and pbus frequency + new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Match the sbus/pbus/cbus freqs + new chipyard.config.WithControlBusFrequency(500.0) ++ new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++ // Crossing specifications new chipyard.config.WithCbusToPbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossing between PBUS and CBUS @@ -247,6 +250,7 @@ class FireSimSmallSystemConfig extends Config( new WithDefaultMemModel ++ new WithBootROM ++ new chipyard.config.WithPeripheryBusFrequency(3200.0) ++ + new chipyard.config.WithControlBusFrequency(3200.0) ++ new WithoutClockGating ++ new WithoutTLMonitors ++ new freechips.rocketchip.subsystem.WithExtMemSize(1 << 28) ++ From b4d4e54f9ca9f6fd6d9e5c6201e8e349caae96e6 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 24 Oct 2023 18:24:44 -0700 Subject: [PATCH 013/105] Bump fpga-shells --- fpga/fpga-shells | 2 +- fpga/src/main/scala/arty100t/Configs.scala | 2 +- fpga/src/main/scala/arty100t/Harness.scala | 4 ++-- fpga/src/main/scala/nexysvideo/Configs.scala | 2 +- fpga/src/main/scala/nexysvideo/Harness.scala | 4 ++-- fpga/src/main/scala/vc707/TestHarness.scala | 4 +++- fpga/src/main/scala/vcu118/CustomOverlays.scala | 4 ++-- fpga/src/main/scala/vcu118/TestHarness.scala | 5 +++-- fpga/src/main/scala/vcu118/bringup/TestHarness.scala | 2 +- 9 files changed, 16 insertions(+), 13 deletions(-) diff --git a/fpga/fpga-shells b/fpga/fpga-shells index 19e0e87c..dec6398a 160000 --- a/fpga/fpga-shells +++ b/fpga/fpga-shells @@ -1 +1 @@ -Subproject commit 19e0e87cedd438f8231bb7af420cc58792735473 +Subproject commit dec6398a5c9bf7d9b80f12a9b991ee1a987337c6 diff --git a/fpga/src/main/scala/arty100t/Configs.scala b/fpga/src/main/scala/arty100t/Configs.scala index dbae2e3b..55ebcffb 100644 --- a/fpga/src/main/scala/arty100t/Configs.scala +++ b/fpga/src/main/scala/arty100t/Configs.scala @@ -18,7 +18,7 @@ import chipyard.{BuildSystem} // don't use FPGAShell's DesignKey class WithNoDesignKey extends Config((site, here, up) => { - case DesignKey => (p: Parameters) => new SimpleLazyModule()(p) + case DesignKey => (p: Parameters) => new SimpleLazyRawModule()(p) }) class WithArty100TTweaks extends Config( diff --git a/fpga/src/main/scala/arty100t/Harness.scala b/fpga/src/main/scala/arty100t/Harness.scala index 47ffe7e0..4303a23e 100644 --- a/fpga/src/main/scala/arty100t/Harness.scala +++ b/fpga/src/main/scala/arty100t/Harness.scala @@ -5,12 +5,12 @@ import chisel3.util._ import freechips.rocketchip.diplomacy._ import org.chipsalliance.cde.config.{Parameters} import freechips.rocketchip.tilelink._ -import freechips.rocketchip.prci.{ClockBundle, ClockBundleParameters} +import freechips.rocketchip.prci._ import freechips.rocketchip.subsystem.{SystemBusKey} import sifive.fpgashells.shell.xilinx._ import sifive.fpgashells.shell._ -import sifive.fpgashells.clocks.{ClockGroup, ClockSinkNode, PLLFactoryKey, ResetWrangler} +import sifive.fpgashells.clocks._ import sifive.fpgashells.ip.xilinx.{IBUF, PowerOnResetFPGAOnly} import sifive.blocks.devices.uart._ diff --git a/fpga/src/main/scala/nexysvideo/Configs.scala b/fpga/src/main/scala/nexysvideo/Configs.scala index 7b867500..751115ec 100644 --- a/fpga/src/main/scala/nexysvideo/Configs.scala +++ b/fpga/src/main/scala/nexysvideo/Configs.scala @@ -18,7 +18,7 @@ import chipyard.{BuildSystem} // don't use FPGAShell's DesignKey class WithNoDesignKey extends Config((site, here, up) => { - case DesignKey => (p: Parameters) => new SimpleLazyModule()(p) + case DesignKey => (p: Parameters) => new SimpleLazyRawModule()(p) }) // DOC include start: WithNexysVideoTweaks and Rocket diff --git a/fpga/src/main/scala/nexysvideo/Harness.scala b/fpga/src/main/scala/nexysvideo/Harness.scala index 0cfb7110..cfc4b1cc 100644 --- a/fpga/src/main/scala/nexysvideo/Harness.scala +++ b/fpga/src/main/scala/nexysvideo/Harness.scala @@ -7,10 +7,10 @@ import freechips.rocketchip.diplomacy._ import org.chipsalliance.cde.config.{Parameters} import freechips.rocketchip.tilelink._ import freechips.rocketchip.subsystem.{SystemBusKey} - +import freechips.rocketchip.prci._ import sifive.fpgashells.shell.xilinx._ import sifive.fpgashells.shell._ -import sifive.fpgashells.clocks.{ClockGroup, ClockSinkNode, PLLFactoryKey, ResetWrangler} +import sifive.fpgashells.clocks._ import sifive.blocks.devices.uart._ diff --git a/fpga/src/main/scala/vc707/TestHarness.scala b/fpga/src/main/scala/vc707/TestHarness.scala index 008e2399..75409697 100644 --- a/fpga/src/main/scala/vc707/TestHarness.scala +++ b/fpga/src/main/scala/vc707/TestHarness.scala @@ -7,11 +7,12 @@ import org.chipsalliance.cde.config.{Parameters} import freechips.rocketchip.tilelink._ import freechips.rocketchip.subsystem.{SystemBusKey} import freechips.rocketchip.diplomacy.{IdRange, TransferSizes} +import freechips.rocketchip.prci._ import sifive.fpgashells.shell.xilinx.{VC707Shell, UARTVC707ShellPlacer, PCIeVC707ShellPlacer, ChipLinkVC707PlacedOverlay} import sifive.fpgashells.ip.xilinx.{IBUF, PowerOnResetFPGAOnly} import sifive.fpgashells.shell._ -import sifive.fpgashells.clocks.{ClockGroup, ClockSinkNode, PLLFactoryKey, ResetWrangler} +import sifive.fpgashells.clocks.{PLLFactoryKey} import sifive.fpgashells.devices.xilinx.xilinxvc707pciex1.{XilinxVC707PCIeX1IO} import sifive.blocks.devices.uart.{PeripheryUARTKey, UARTPortIO} @@ -88,6 +89,7 @@ class VC707FPGATestHarness(override implicit val p: Parameters) extends VC707She } class VC707FPGATestHarnessImp(_outer: VC707FPGATestHarness) extends LazyRawModuleImp(_outer) with HasHarnessInstantiators { + override def provideImplicitClockToLazyChildren = true val vc707Outer = _outer val reset = IO(Input(Bool())).suggestName("reset") diff --git a/fpga/src/main/scala/vcu118/CustomOverlays.scala b/fpga/src/main/scala/vcu118/CustomOverlays.scala index 02669b79..473a015d 100644 --- a/fpga/src/main/scala/vcu118/CustomOverlays.scala +++ b/fpga/src/main/scala/vcu118/CustomOverlays.scala @@ -5,7 +5,7 @@ import chisel3._ import freechips.rocketchip.diplomacy._ import org.chipsalliance.cde.config.{Parameters, Field} import freechips.rocketchip.tilelink.{TLInwardNode, TLAsyncCrossingSink} - +import freechips.rocketchip.prci._ import sifive.fpgashells.shell._ import sifive.fpgashells.ip.xilinx._ import sifive.fpgashells.shell.xilinx._ @@ -79,7 +79,7 @@ class DDR2VCU118PlacedOverlay(val shell: VCU118FPGATestHarness, name: String, va ui.reset := /*!port.mmcm_locked ||*/ port.c0_ddr4_ui_clk_sync_rst port.c0_sys_clk_i := sys.clock.asUInt port.sys_rst := sys.reset // pllReset - port.c0_ddr4_aresetn := !ar.reset + port.c0_ddr4_aresetn := !(ar.reset.asBool) // This was just copied from the SiFive example, but it's hard to follow. // The pins are emitted in the following order: diff --git a/fpga/src/main/scala/vcu118/TestHarness.scala b/fpga/src/main/scala/vcu118/TestHarness.scala index 6bffc9a7..09aef9d8 100644 --- a/fpga/src/main/scala/vcu118/TestHarness.scala +++ b/fpga/src/main/scala/vcu118/TestHarness.scala @@ -8,11 +8,11 @@ import org.chipsalliance.cde.config.{Parameters} import freechips.rocketchip.tilelink._ import freechips.rocketchip.diplomacy.{IdRange, TransferSizes} import freechips.rocketchip.subsystem.{SystemBusKey} - +import freechips.rocketchip.prci._ import sifive.fpgashells.shell.xilinx._ import sifive.fpgashells.ip.xilinx.{IBUF, PowerOnResetFPGAOnly} import sifive.fpgashells.shell._ -import sifive.fpgashells.clocks.{ClockGroup, ClockSinkNode, PLLFactoryKey, ResetWrangler} +import sifive.fpgashells.clocks._ import sifive.blocks.devices.uart.{PeripheryUARTKey, UARTPortIO} import sifive.blocks.devices.spi.{PeripherySPIKey, SPIPortIO} @@ -91,6 +91,7 @@ class VCU118FPGATestHarness(override implicit val p: Parameters) extends VCU118S } class VCU118FPGATestHarnessImp(_outer: VCU118FPGATestHarness) extends LazyRawModuleImp(_outer) with HasHarnessInstantiators { + override def provideImplicitClockToLazyChildren = true val vcu118Outer = _outer val reset = IO(Input(Bool())).suggestName("reset") diff --git a/fpga/src/main/scala/vcu118/bringup/TestHarness.scala b/fpga/src/main/scala/vcu118/bringup/TestHarness.scala index 12398d8f..f2ead9ed 100644 --- a/fpga/src/main/scala/vcu118/bringup/TestHarness.scala +++ b/fpga/src/main/scala/vcu118/bringup/TestHarness.scala @@ -5,7 +5,7 @@ import freechips.rocketchip.diplomacy._ import org.chipsalliance.cde.config._ import freechips.rocketchip.subsystem._ import freechips.rocketchip.tilelink._ - +import freechips.rocketchip.prci._ import sifive.fpgashells.shell.xilinx._ import sifive.fpgashells.ip.xilinx._ import sifive.fpgashells.shell._ From ab1db16bdbbe764394fe4c53e0c8d9aabab6f83a Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 24 Oct 2023 20:39:01 -0700 Subject: [PATCH 014/105] Bump rocket-chip --- generators/rocket-chip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/rocket-chip b/generators/rocket-chip index 0e88fc06..59e86fd2 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit 0e88fc066e293b0da45da7360afd4cd3e6399678 +Subproject commit 59e86fd2ba98b02a763dad2bd51b6324671ca2b1 From d828879a7dd4612557673dccce5e7828b3039cca Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 15 Dec 2023 13:23:47 -0800 Subject: [PATCH 015/105] Add CanHaveClockTap --- .../chipyard/src/main/scala/DigitalTop.scala | 1 + .../main/scala/clocking/CanHaveClockTap.scala | 26 +++++++++++++++++++ .../src/main/scala/iobinders/Ports.scala | 3 +++ 3 files changed, 30 insertions(+) create mode 100644 generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala diff --git a/generators/chipyard/src/main/scala/DigitalTop.scala b/generators/chipyard/src/main/scala/DigitalTop.scala index d7263008..7e73866c 100644 --- a/generators/chipyard/src/main/scala/DigitalTop.scala +++ b/generators/chipyard/src/main/scala/DigitalTop.scala @@ -33,6 +33,7 @@ class DigitalTop(implicit p: Parameters) extends ChipyardSystem with chipyard.example.CanHavePeripheryStreamingPassthrough // Enables optionally adding the DSPTools streaming-passthrough example widget with nvidia.blocks.dla.CanHavePeripheryNVDLA // Enables optionally having an NVDLA with chipyard.clocking.HasChipyardPRCI // Use Chipyard reset/clock distribution + with chipyard.clocking.CanHaveClockTap // Enables optionally adding a clock tap output port with fftgenerator.CanHavePeripheryFFT // Enables optionally having an MMIO-based FFT block with constellation.soc.CanHaveGlobalNoC // Support instantiating a global NoC interconnect { diff --git a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala new file mode 100644 index 00000000..798dfda8 --- /dev/null +++ b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala @@ -0,0 +1,26 @@ +package chipyard.clocking + +import chisel3._ + +import org.chipsalliance.cde.config.{Parameters, Field, Config} +import freechips.rocketchip.diplomacy._ +import freechips.rocketchip.tilelink._ +import freechips.rocketchip.subsystem._ +import freechips.rocketchip.util._ +import freechips.rocketchip.tile._ +import freechips.rocketchip.prci._ + +case class ClockTapParams( + busWhere: TLBusWrapperLocation = SBUS, // by default, tap the sbus clock as a debug clock + divider: Int = 16, // a fixed clock division ratio for the clock tap +) + +case object ClockTapKey extends Field[Option[ClockTapParams]](Some(ClockTapParams())) + +trait CanHaveClockTap { this: BaseSubsystem => + val clockTapNode = p(ClockTapKey).map { tapParams => + val clockTap = ClockSinkNode(Seq(ClockSinkParameters(name=Some("clock_tap")))) + val clockTapDivider = LazyModule(new ClockDivider(tapParams.divider)) + clockTap := clockTapDivider.node := locateTLBusWrapper(tapParams.busWhere).fixedClockNode + } +} diff --git a/generators/chipyard/src/main/scala/iobinders/Ports.scala b/generators/chipyard/src/main/scala/iobinders/Ports.scala index c5c9f19e..867efdfd 100644 --- a/generators/chipyard/src/main/scala/iobinders/Ports.scala +++ b/generators/chipyard/src/main/scala/iobinders/Ports.scala @@ -86,6 +86,9 @@ case class CustomBootPort (val getIO: () => Bool) case class ClockPort (val getIO: () => Clock, val freqMHz: Double) extends Port[Clock] +case class ClockTapPort (val getIO: () => Clock) + extends Port[Clock] + case class ResetPort (val getIO: () => AsyncReset) extends Port[Reset] From 1d05eda438f43371b153081a5279ea42365189a6 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 15 Dec 2023 13:53:11 -0800 Subject: [PATCH 016/105] Add debug Clock Tap IO --- .../src/main/scala/clocking/CanHaveClockTap.scala | 6 ++++++ .../src/main/scala/clocking/ClockBinders.scala | 11 ++++++++++- .../src/main/scala/config/AbstractConfig.scala | 7 ++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala index 798dfda8..0bf7242b 100644 --- a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala +++ b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala @@ -22,5 +22,11 @@ trait CanHaveClockTap { this: BaseSubsystem => val clockTap = ClockSinkNode(Seq(ClockSinkParameters(name=Some("clock_tap")))) val clockTapDivider = LazyModule(new ClockDivider(tapParams.divider)) clockTap := clockTapDivider.node := locateTLBusWrapper(tapParams.busWhere).fixedClockNode + clockTap } + val clockTapIO = clockTapNode.map { node => InModuleBody { + val clock_tap = IO(Output(Clock())) + clock_tap := node.in.head._1.clock + clock_tap + }} } diff --git a/generators/chipyard/src/main/scala/clocking/ClockBinders.scala b/generators/chipyard/src/main/scala/clocking/ClockBinders.scala index 36d1fa2f..0a5c09e7 100644 --- a/generators/chipyard/src/main/scala/clocking/ClockBinders.scala +++ b/generators/chipyard/src/main/scala/clocking/ClockBinders.scala @@ -2,7 +2,7 @@ package chipyard.clocking import chisel3._ import chisel3.util._ -import chipyard.iobinders.{OverrideLazyIOBinder, GetSystemParameters, IOCellKey, ClockPort, ResetPort} +import chipyard.iobinders._ import freechips.rocketchip.prci._ import freechips.rocketchip.diplomacy._ import freechips.rocketchip.subsystem._ @@ -119,3 +119,12 @@ class WithPassthroughClockGenerator extends OverrideLazyIOBinder({ } } }) + +class WithClockTapIOCells extends OverrideIOBinder({ + (system: CanHaveClockTap) => { + system.clockTapIO.map { tap => + val (clock_tap_io, clock_tap_cell) = IOCell.generateIOFromSignal(tap.getWrappedValue, "clock_tap") + (Seq(ClockTapPort(() => clock_tap_io)), clock_tap_cell) + }.getOrElse((Nil, Nil)) + } +}) diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index a08abb6d..43cfc110 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -51,9 +51,10 @@ class AbstractConfig extends Config( new chipyard.iobinders.WithUARTTSIPunchthrough ++ new chipyard.iobinders.WithNMITiedOff ++ - // By default, punch out IOs to the Harness - new chipyard.clocking.WithPassthroughClockGenerator ++ - new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "mbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++ + new chipyard.clocking.WithClockTapIOCells ++ // Default generate a clock tapio + new chipyard.clocking.WithPassthroughClockGenerator ++ // Default punch out IOs to the Harness + new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", // Default merge all the bus clocks + Seq("sbus", "mbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++ new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Default 500 MHz pbus new chipyard.config.WithMemoryBusFrequency(500.0) ++ // Default 500 MHz mbus From c5921ddef2f608c60eaab34250a1d56c35e2a520 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 15 Dec 2023 15:50:34 -0800 Subject: [PATCH 017/105] Bump rocket-chip --- generators/rocket-chip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/rocket-chip b/generators/rocket-chip index 59e86fd2..562ab170 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit 59e86fd2ba98b02a763dad2bd51b6324671ca2b1 +Subproject commit 562ab1709f37a7e9cb4d52120cd3fe20d436e1f0 From b37b6b0d9be64722c9c79d010c12886fbbceed93 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 15 Dec 2023 15:51:04 -0800 Subject: [PATCH 018/105] Remove clock tap from firesim designs --- .../src/main/scala/config/fragments/ClockingFragments.scala | 4 ++++ generators/firechip/src/main/scala/TargetConfigs.scala | 3 +++ 2 files changed, 7 insertions(+) diff --git a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala index 567cc2f7..65b73015 100644 --- a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala @@ -122,3 +122,7 @@ class WithNoTileResetSetters extends Config((site, here, up) => { class WithNoResetSynchronizers extends Config((site, here, up) => { case ChipyardPRCIControlKey => up(ChipyardPRCIControlKey).copy(enableResetSynchronizers = false) }) + +class WithNoClockTap extends Config((site, here, up) => { + case ClockTapKey => None +}) diff --git a/generators/firechip/src/main/scala/TargetConfigs.scala b/generators/firechip/src/main/scala/TargetConfigs.scala index 16d5281b..cf0ed66e 100644 --- a/generators/firechip/src/main/scala/TargetConfigs.scala +++ b/generators/firechip/src/main/scala/TargetConfigs.scala @@ -84,6 +84,7 @@ class WithMinimalFireSimDesignTweaks extends Config( new chipyard.harness.WithHarnessBinderClockFreqMHz(1000.0) ++ new chipyard.harness.WithClockFromHarness ++ new chipyard.harness.WithResetFromHarness ++ + new chipyard.config.WithNoClockTap ++ new chipyard.clocking.WithPassthroughClockGenerator ++ // Required*: When using FireSim-as-top to provide a correct path to the target bootrom source new WithBootROM ++ @@ -98,6 +99,8 @@ class WithMinimalFireSimDesignTweaks extends Config( // Non-frequency tweaks that are generally applied to all firesim configs class WithFireSimDesignTweaks extends Config( new WithMinimalFireSimDesignTweaks ++ + // Required: Remove the debug clock tap, this breaks compilation of target-level sim in FireSim + new chipyard.config.WithNoClockTap ++ // Required: Bake in the default FASED memory model new WithDefaultMemModel ++ // Optional: reduce the width of the Serial TL interface From 7c8de34904bd40361bcf3bf9a85c736c5229fa4d Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 15 Dec 2023 17:20:48 -0800 Subject: [PATCH 019/105] Use Chipyard's hardfloat --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index c3be6161..47b3dbba 100644 --- a/build.sbt +++ b/build.sbt @@ -95,7 +95,7 @@ lazy val chiselSettings = Seq( // -- Rocket Chip -- -lazy val hardfloat = freshProject("hardfloat", rocketChipDir / "hardfloat/hardfloat") +lazy val hardfloat = freshProject("hardfloat", file("generators/hardfloat/hardfloat")) .settings(chiselSettings) .dependsOn(midasTargetUtils) .settings(commonSettings) From 16c60ca6593ef19f93fb6975c457a31540aac272 Mon Sep 17 00:00:00 2001 From: bartender Date: Fri, 8 Dec 2023 23:20:27 +0000 Subject: [PATCH 020/105] [cd] Bump CIRCT from firtool-1.60.0 to firtool-1.61.0 This is an automated commit generated by the `circt/update-circt` GitHub Action. (cherry picked from commit 5e26029dd061bef861307e1c9817208463512e88) --- conda-reqs/circt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda-reqs/circt.json b/conda-reqs/circt.json index 42d4fa09..3b5ca63a 100644 --- a/conda-reqs/circt.json +++ b/conda-reqs/circt.json @@ -1,3 +1,3 @@ { - "version": "firtool-1.60.0" + "version": "firtool-1.61.0" } From 2e778675777848e20d6b3f49a1fd498989fbf140 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sat, 16 Dec 2023 12:24:22 -0800 Subject: [PATCH 021/105] [ci skip] Add inline comments on some of the clocking fragments --- .../src/main/scala/config/fragments/ClockingFragments.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala index 65b73015..eddcb803 100644 --- a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala @@ -111,18 +111,22 @@ class WithOffchipBusFrequency(freqMHz: Double) extends Config((site, here, up) = class WithRationalMemoryBusCrossing extends WithSbusToMbusCrossingType(RationalCrossing(Symmetric)) class WithAsynchrousMemoryBusCrossing extends WithSbusToMbusCrossingType(AsynchronousCrossing()) +// Remove the tile clock gaters in this system class WithNoTileClockGaters extends Config((site, here, up) => { case ChipyardPRCIControlKey => up(ChipyardPRCIControlKey).copy(enableTileClockGating = false) }) +// Remove the tile reset control blocks in this system class WithNoTileResetSetters extends Config((site, here, up) => { case ChipyardPRCIControlKey => up(ChipyardPRCIControlKey).copy(enableTileResetSetting = false) }) +// Remove the global reset synchronizers in this system class WithNoResetSynchronizers extends Config((site, here, up) => { case ChipyardPRCIControlKey => up(ChipyardPRCIControlKey).copy(enableResetSynchronizers = false) }) +// Remove any ClockTap ports in this system class WithNoClockTap extends Config((site, here, up) => { case ClockTapKey => None }) From 8067bd061b2e053ebdd9b736b11dcf93fd9b4619 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 18 Dec 2023 13:44:39 -0800 Subject: [PATCH 022/105] Remove help text on nonexistent bmark_timeout_cycles --- variables.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/variables.mk b/variables.mk index fcda57ef..71651bb2 100644 --- a/variables.mk +++ b/variables.mk @@ -29,8 +29,7 @@ HELP_SIMULATION_VARIABLES = \ " LOADMEM = riscv elf binary that should be loaded directly into simulated DRAM. LOADMEM=1 will load the BINARY elf" \ " LOADARCH = path to a architectural checkpoint directory that should end in .loadarch/, for restoring from a checkpoint" \ " VERBOSE_FLAGS = flags used when doing verbose simulation [$(VERBOSE_FLAGS)]" \ -" timeout_cycles = number of clock cycles before simulator times out, defaults to 10000000" \ -" bmark_timeout_cycles = number of clock cycles before benchmark simulator times out, defaults to 100000000" +" timeout_cycles = number of clock cycles before simulator times out, defaults to 10000000" # include default simulation rules HELP_COMMANDS = \ From 4d928c3c14d94723b40f870d74e117ee1635c0a1 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 18 Dec 2023 13:47:48 -0800 Subject: [PATCH 023/105] Rename timeout_cycles to TIMEOUT_CYCLES to match convention --- variables.mk | 15 ++++++++++----- vlsi/power.mk | 2 +- vlsi/sim.mk | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/variables.mk b/variables.mk index 71651bb2..dc3483ae 100644 --- a/variables.mk +++ b/variables.mk @@ -29,7 +29,7 @@ HELP_SIMULATION_VARIABLES = \ " LOADMEM = riscv elf binary that should be loaded directly into simulated DRAM. LOADMEM=1 will load the BINARY elf" \ " LOADARCH = path to a architectural checkpoint directory that should end in .loadarch/, for restoring from a checkpoint" \ " VERBOSE_FLAGS = flags used when doing verbose simulation [$(VERBOSE_FLAGS)]" \ -" timeout_cycles = number of clock cycles before simulator times out, defaults to 10000000" +" TIMEOUT_CYCLES = number of clock cycles before simulator times out, defaults to 10000000" # include default simulation rules HELP_COMMANDS = \ @@ -274,7 +274,7 @@ PERMISSIVE_ON=+permissive PERMISSIVE_OFF=+permissive-off BINARY ?= BINARIES ?= -override SIM_FLAGS += +dramsim +dramsim_ini_dir=$(TESTCHIP_DIR)/src/main/resources/dramsim2_ini +max-cycles=$(timeout_cycles) +override SIM_FLAGS += +dramsim +dramsim_ini_dir=$(TESTCHIP_DIR)/src/main/resources/dramsim2_ini +max-cycles=$(TIMEOUT_CYCLES) VERBOSE_FLAGS ?= +verbose # get_out_name is a function, 1st argument is the binary get_out_name = $(subst $() $(),_,$(notdir $(basename $(1)))) @@ -300,7 +300,12 @@ build_dir =$(gen_dir)/$(long_name) GEN_COLLATERAL_DIR ?=$(build_dir)/gen-collateral ######################################################################################### -# assembly/benchmark variables +# simulation variables ######################################################################################### -timeout_cycles = 10000000 -bmark_timeout_cycles = 100000000 +TIMEOUT_CYCLES = 10000000 + +# legacy timeout_cycles handling +timeout_cycles ?= +ifneq ($(timeout_cycles),) +TIMEOUT_CYCLES=$(timeout_cycles) +endif diff --git a/vlsi/power.mk b/vlsi/power.mk index ff1c1729..c006d338 100644 --- a/vlsi/power.mk +++ b/vlsi/power.mk @@ -23,7 +23,7 @@ endif endif echo " start_times: ['0ns']" >> $@ echo " end_times: [" >> $@ - echo " '`bc <<< $(timeout_cycles)*$(CLOCK_PERIOD)`ns'" >> $@ + echo " '`bc <<< $(TIMEOUT_CYCLES)*$(CLOCK_PERIOD)`ns'" >> $@ echo " ]" >> $@ $(POWER_RTL_CONF): $(VLSI_RTL) diff --git a/vlsi/sim.mk b/vlsi/sim.mk index 1da6f0bc..f5ff85ff 100644 --- a/vlsi/sim.mk +++ b/vlsi/sim.mk @@ -64,7 +64,7 @@ endif echo " execution_flags_meta: 'append'" >> $@ echo " saif.mode: 'time'" >> $@ echo " saif.start_time: '0ns'" >> $@ - echo " saif.end_time: '`bc <<< $(timeout_cycles)*$(CLOCK_PERIOD)`ns'" >> $@ + echo " saif.end_time: '`bc <<< $(TIMEOUT_CYCLES)*$(CLOCK_PERIOD)`ns'" >> $@ ifndef USE_VPD echo " options:" >> $@ echo ' - "-kdb"' >> $@ From 4b9e9dacbcd4618926448f9787e4818df09bbbc0 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 18 Dec 2023 09:23:42 -0800 Subject: [PATCH 024/105] Move clock tap to its own async domain --- .../src/main/scala/clocking/CanHaveClockTap.scala | 13 ++++--------- .../src/main/scala/config/AbstractConfig.scala | 2 +- .../src/main/scala/config/RocketConfigs.scala | 2 +- .../scala/config/fragments/ClockingFragments.scala | 2 +- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala index 0bf7242b..5d0ce538 100644 --- a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala +++ b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala @@ -10,18 +10,13 @@ import freechips.rocketchip.util._ import freechips.rocketchip.tile._ import freechips.rocketchip.prci._ -case class ClockTapParams( - busWhere: TLBusWrapperLocation = SBUS, // by default, tap the sbus clock as a debug clock - divider: Int = 16, // a fixed clock division ratio for the clock tap -) - -case object ClockTapKey extends Field[Option[ClockTapParams]](Some(ClockTapParams())) +case object ClockTapKey extends Field[Boolean](true) trait CanHaveClockTap { this: BaseSubsystem => - val clockTapNode = p(ClockTapKey).map { tapParams => + require(p(SubsystemDriveAsyncClockGroupsKey).isEmpty, "Subsystem asyncClockGroups must be undriven") + val clockTapNode = Option.when(p(ClockTapKey)) { val clockTap = ClockSinkNode(Seq(ClockSinkParameters(name=Some("clock_tap")))) - val clockTapDivider = LazyModule(new ClockDivider(tapParams.divider)) - clockTap := clockTapDivider.node := locateTLBusWrapper(tapParams.busWhere).fixedClockNode + clockTap := ClockGroup() := asyncClockGroupsNode clockTap } val clockTapIO = clockTapNode.map { node => InModuleBody { diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index 96794546..2e34f19c 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -54,7 +54,7 @@ class AbstractConfig extends Config( new chipyard.clocking.WithClockTapIOCells ++ // Default generate a clock tapio new chipyard.clocking.WithPassthroughClockGenerator ++ // Default punch out IOs to the Harness new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", // Default merge all the bus clocks - Seq("sbus", "mbus", "pbus", "fbus", "cbus", "obus", "implicit"), Seq("tile"))) ++ + Seq("sbus", "mbus", "pbus", "fbus", "cbus", "obus", "implicit", "clock_tap"), Seq("tile"))) ++ new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Default 500 MHz pbus new chipyard.config.WithMemoryBusFrequency(500.0) ++ // Default 500 MHz mbus new chipyard.config.WithControlBusFrequency(500.0) ++ // Default 500 MHz cbus diff --git a/generators/chipyard/src/main/scala/config/RocketConfigs.scala b/generators/chipyard/src/main/scala/config/RocketConfigs.scala index 929e8c59..3c0f66d7 100644 --- a/generators/chipyard/src/main/scala/config/RocketConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RocketConfigs.scala @@ -60,7 +60,7 @@ class MulticlockRocketConfig extends Config( new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // Frequency specifications new chipyard.config.WithTileFrequency(1000.0) ++ // Matches the maximum frequency of U540 - new chipyard.clocking.WithClockGroupsCombinedByName(("uncore" , Seq("sbus", "cbus", "implicit"), Nil), + new chipyard.clocking.WithClockGroupsCombinedByName(("uncore" , Seq("sbus", "cbus", "implicit", "clock_tap"), Nil), ("periphery", Seq("pbus", "fbus"), Nil)) ++ new chipyard.config.WithSystemBusFrequency(500.0) ++ // Matches the maximum frequency of U540 new chipyard.config.WithMemoryBusFrequency(500.0) ++ // Matches the maximum frequency of U540 diff --git a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala index 8b061e5c..9869095f 100644 --- a/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/ClockingFragments.scala @@ -130,5 +130,5 @@ class WithNoResetSynchronizers extends Config((site, here, up) => { // Remove any ClockTap ports in this system class WithNoClockTap extends Config((site, here, up) => { - case ClockTapKey => None + case ClockTapKey => false }) From 7e90fc3e5e0478aface52fc909b19c04d835c83a Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 18 Dec 2023 18:01:25 -0800 Subject: [PATCH 025/105] Disable JTAG reset synchronization for verilator CI --- generators/chipyard/src/main/scala/config/ChipConfigs.scala | 5 ++++- .../chipyard/src/main/scala/iobinders/IOBinders.scala | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/generators/chipyard/src/main/scala/config/ChipConfigs.scala b/generators/chipyard/src/main/scala/config/ChipConfigs.scala index e3d18375..e9b82223 100644 --- a/generators/chipyard/src/main/scala/config/ChipConfigs.scala +++ b/generators/chipyard/src/main/scala/config/ChipConfigs.scala @@ -110,5 +110,8 @@ class TetheredChipLikeRocketConfig extends Config( class VerilatorCITetheredChipLikeRocketConfig extends Config( new chipyard.harness.WithAbsoluteFreqHarnessClockInstantiator ++ // use absolute freqs for sims in the harness new chipyard.harness.WithMultiChipSerialTL(0, 1) ++ // connect the serial-tl ports of the chips together - new chipyard.harness.WithMultiChip(0, new chipyard.config.WithNoResetSynchronizers ++ new ChipLikeRocketConfig) ++ + new chipyard.harness.WithMultiChip(0, + new chipyard.iobinders.WithDebugIOCells(syncReset = false) ++ + new chipyard.config.WithNoResetSynchronizers ++ + new ChipLikeRocketConfig) ++ new chipyard.harness.WithMultiChip(1, new ChipBringupHostConfig)) diff --git a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala index 7894ba51..9dde6544 100644 --- a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala +++ b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala @@ -275,7 +275,9 @@ class JTAGChipIO extends Bundle { val TDO = Output(Bool()) } -class WithDebugIOCells extends OverrideLazyIOBinder({ +// WARNING: Don't disable syncReset unless you are trying to +// get around bugs in RTL simulators +class WithDebugIOCells(syncReset: Boolean = true) extends OverrideLazyIOBinder({ (system: HasPeripheryDebug) => { implicit val p = GetSystemParameters(system) val tlbus = system.asInstanceOf[BaseSubsystem].locateTLBusWrapper(p(ExportDebug).slaveWhere) @@ -299,7 +301,7 @@ class WithDebugIOCells extends OverrideLazyIOBinder({ d.disableDebug.foreach { d => d := false.B } // Drive JTAG on-chip IOs d.systemjtag.map { j => - j.reset := ResetCatchAndSync(j.jtag.TCK, clockBundle.reset.asBool) + j.reset := (if (syncReset) ResetCatchAndSync(j.jtag.TCK, clockBundle.reset.asBool) else clockBundle.reset.asBool) j.mfr_id := p(JtagDTMKey).idcodeManufId.U(11.W) j.part_number := p(JtagDTMKey).idcodePartNum.U(16.W) j.version := p(JtagDTMKey).idcodeVersion.U(4.W) From ca6f3d9fab8164d129eb6232cca8e1413117a061 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 19 Dec 2023 09:10:19 -0800 Subject: [PATCH 026/105] Enabling disable all the PLLSelectorDivider features for Verilator CI This is to work-around Verilator's modeling of reset, which does not model a posedge reset as t=0 --- .../main/scala/clocking/ClockBinders.scala | 9 +++-- .../main/scala/clocking/TLClockDivider.scala | 38 +++++++++++++++---- .../main/scala/clocking/TLClockSelector.scala | 33 +++++++++++++--- .../src/main/scala/config/ChipConfigs.scala | 3 +- 4 files changed, 67 insertions(+), 16 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/ClockBinders.scala b/generators/chipyard/src/main/scala/clocking/ClockBinders.scala index 0a5c09e7..76b26698 100644 --- a/generators/chipyard/src/main/scala/clocking/ClockBinders.scala +++ b/generators/chipyard/src/main/scala/clocking/ClockBinders.scala @@ -14,7 +14,10 @@ import barstools.iocell.chisel._ // blocks, which allow memory-mapped control of clock division, and clock muxing // between the FakePLL and the slow off-chip clock // Note: This will not simulate properly with firesim -class WithPLLSelectorDividerClockGenerator extends OverrideLazyIOBinder({ +// Unsetting enable will prevent the divider/selector from actually modifying the clock, +// while preserving the address map. Unsetting enable should only be done for RTL +// simulators (Verilator) which do not model reset properly +class WithPLLSelectorDividerClockGenerator(enable: Boolean = true) extends OverrideLazyIOBinder({ (system: HasChipyardPRCI) => { // Connect the implicit clock implicit val p = GetSystemParameters(system) @@ -30,8 +33,8 @@ class WithPLLSelectorDividerClockGenerator extends OverrideLazyIOBinder({ } val tlbus = system.asInstanceOf[BaseSubsystem].locateTLBusWrapper(system.prciParams.slaveWhere) val baseAddress = system.prciParams.baseAddress - val clockDivider = system.prci_ctrl_domain { LazyModule(new TLClockDivider (baseAddress + 0x20000, tlbus.beatBytes)) } - val clockSelector = system.prci_ctrl_domain { LazyModule(new TLClockSelector(baseAddress + 0x30000, tlbus.beatBytes)) } + val clockDivider = system.prci_ctrl_domain { LazyModule(new TLClockDivider (baseAddress + 0x20000, tlbus.beatBytes, enable=enable)) } + val clockSelector = system.prci_ctrl_domain { LazyModule(new TLClockSelector(baseAddress + 0x30000, tlbus.beatBytes, enable=enable)) } val pllCtrl = system.prci_ctrl_domain { LazyModule(new FakePLLCtrl (baseAddress + 0x40000, tlbus.beatBytes)) } clockDivider.tlNode := system.prci_ctrl_domain { TLFragmenter(tlbus.beatBytes, tlbus.blockBytes) := system.prci_ctrl_bus.get } diff --git a/generators/chipyard/src/main/scala/clocking/TLClockDivider.scala b/generators/chipyard/src/main/scala/clocking/TLClockDivider.scala index 45f9374d..e5597f06 100644 --- a/generators/chipyard/src/main/scala/clocking/TLClockDivider.scala +++ b/generators/chipyard/src/main/scala/clocking/TLClockDivider.scala @@ -15,11 +15,27 @@ import testchipip._ // This module adds a TileLink memory-mapped clock divider to the clock graph // The output clock/reset pairs from this module should be synchronized later -class TLClockDivider(address: BigInt, beatBytes: Int, divBits: Int = 8)(implicit p: Parameters) extends LazyModule { +// If enable is unset, this will not divide the clock +// DO NOT unset enable for VLSI, or prototyping flows. The disable feature is a work around for +// some RTL simulators which do not simulate the reset synchronization properly +class TLClockDivider(address: BigInt, beatBytes: Int, divBits: Int = 8, enable: Boolean = true)(implicit p: Parameters) extends LazyModule { val device = new SimpleDevice(s"clk-div-ctrl", Nil) val clockNode = ClockGroupIdentityNode() val tlNode = TLRegisterNode(Seq(AddressSet(address, 4096-1)), device, "reg/control", beatBytes=beatBytes) + if (!enable) println(Console.RED + s""" + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +WARNING: + +YOU ARE USING THE TLCLOCKDIVIDER IN +"DISABLED" MODE. THIS SHOULD ONLY BE DONE +FOR RTL SIMULATION + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +""" + Console.RESET) + lazy val module = new LazyModuleImp(this) { require (clockNode.out.size == 1) val sources = clockNode.in.head._1.member.data.toSeq @@ -45,13 +61,21 @@ class TLClockDivider(address: BigInt, beatBytes: Int, divBits: Int = 8)(implicit // by setting divisor=0. The divisor signal into the ClockDividerOrPass is synchronized internally divider.io.divisor := Mux(busReset.asBool, 0.U, reg.io.q) divider.io.resetAsync := ResetStretcher(sources(i).clock, asyncReset, 20).asAsyncReset - sinks(i)._2.clock := divider.io.clockOut - // Note this is not synchronized to the output clock, which takes time to appear - // so this is still asyncreset - // Stretch the reset for 40 cycles, to give enough time to reset any downstream - // digital logic - sinks(i)._2.reset := ResetStretcher(sources(i).clock, asyncReset, 40).asAsyncReset + if (enable) { + sinks(i)._2.clock := divider.io.clockOut + + // Note this is not synchronized to the output clock, which takes time to appear + // so this is still asyncreset + // Stretch the reset for 40 cycles, to give enough time to reset any downstream + // digital logic + sinks(i)._2.reset := ResetStretcher(sources(i).clock, asyncReset, 40).asAsyncReset + } else { + // WARNING: THIS IS FOR RTL SIMULATION ONLY + sinks(i)._2.clock := sources(i).clock + sinks(i)._2.reset := sources(i).reset + } + reg } diff --git a/generators/chipyard/src/main/scala/clocking/TLClockSelector.scala b/generators/chipyard/src/main/scala/clocking/TLClockSelector.scala index 27870428..45405926 100644 --- a/generators/chipyard/src/main/scala/clocking/TLClockSelector.scala +++ b/generators/chipyard/src/main/scala/clocking/TLClockSelector.scala @@ -21,12 +21,30 @@ case class ClockSelNode()(implicit valName: ValName) // This module adds a TileLink memory-mapped clock mux for each downstream clock domain // in the clock graph. The output clock/reset should be synchronized downstream -class TLClockSelector(address: BigInt, beatBytes: Int)(implicit p: Parameters) extends LazyModule { +// If enable is unset, this will always pass through the 0'th clock +// DO NOT unset enable for VLSI, or prototyping flows. The disable feature is a work around for +// some RTL simulators which do not simulate the reset synchronization properly +class TLClockSelector(address: BigInt, beatBytes: Int, enable: Boolean = true)(implicit p: Parameters) extends LazyModule { val device = new SimpleDevice("clk-sel-ctrl", Nil) val tlNode = TLRegisterNode(Seq(AddressSet(address, 4096-1)), device, "reg/control", beatBytes=beatBytes) val clockNode = ClockSelNode() + if (!enable) println(Console.RED + s""" + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +WARNING: + +YOU ARE USING THE TLCLOCKSELECTOR IN +"DISABLED" MODE. THIS SHOULD ONLY BE DONE +FOR RTL SIMULATION + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +""" + Console.RESET) + + + lazy val module = new LazyModuleImp(this) { val asyncReset = clockNode.in.map(_._1).map(_.reset).toSeq(0) val clocks = clockNode.in.map(_._1).map(_.clock) @@ -43,10 +61,15 @@ class TLClockSelector(address: BigInt, beatBytes: Int)(implicit p: Parameters) e val mux = testchipip.ClockMutexMux(clocks).suggestName(s"${sinkName}_clkmux") mux.io.sel := sel mux.io.resetAsync := asyncReset.asAsyncReset - sinks(i).clock := mux.io.clockOut - // Stretch the reset for 20 cycles, to give time to reset any downstream digital logic - sinks(i).reset := ResetStretcher(clocks(0), asyncReset, 20).asAsyncReset - + if (enable) { + sinks(i).clock := mux.io.clockOut + // Stretch the reset for 20 cycles, to give time to reset any downstream digital logic + sinks(i).reset := ResetStretcher(clocks(0), asyncReset, 20).asAsyncReset + } else { + // WARNING: THIS IS FOR RTL SIMULATION ONLY + sinks(i).clock := clocks(0) + sinks(i).reset := asyncReset + } reg } tlNode.regmap((0 until sinks.size).map { i => diff --git a/generators/chipyard/src/main/scala/config/ChipConfigs.scala b/generators/chipyard/src/main/scala/config/ChipConfigs.scala index e9b82223..526ea43a 100644 --- a/generators/chipyard/src/main/scala/config/ChipConfigs.scala +++ b/generators/chipyard/src/main/scala/config/ChipConfigs.scala @@ -110,7 +110,8 @@ class TetheredChipLikeRocketConfig extends Config( class VerilatorCITetheredChipLikeRocketConfig extends Config( new chipyard.harness.WithAbsoluteFreqHarnessClockInstantiator ++ // use absolute freqs for sims in the harness new chipyard.harness.WithMultiChipSerialTL(0, 1) ++ // connect the serial-tl ports of the chips together - new chipyard.harness.WithMultiChip(0, + new chipyard.harness.WithMultiChip(0, // These fragments remove all troublesome + new chipyard.clocking.WithPLLSelectorDividerClockGenerator(enable=false) ++ // clocking features from the design new chipyard.iobinders.WithDebugIOCells(syncReset = false) ++ new chipyard.config.WithNoResetSynchronizers ++ new ChipLikeRocketConfig) ++ From cfd555ee94faa34c27906436c648b3eb4c3d2907 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 21 Dec 2023 14:18:06 -0800 Subject: [PATCH 027/105] Bump testchipip for updated sertl type names --- .../main/scala/arty100t/HarnessBinders.scala | 70 +++++++++++-------- .../main/scala/example/FlatTestHarness.scala | 33 +++++---- .../main/scala/harness/HarnessBinders.scala | 50 +++++++------ .../scala/harness/MultiHarnessBinders.scala | 15 ++-- .../src/main/scala/iobinders/Ports.scala | 5 +- .../src/main/scala/BridgeBinders.scala | 26 ++++--- generators/testchipip | 2 +- 7 files changed, 118 insertions(+), 83 deletions(-) diff --git a/fpga/src/main/scala/arty100t/HarnessBinders.scala b/fpga/src/main/scala/arty100t/HarnessBinders.scala index dd7c1a35..d6371ed5 100644 --- a/fpga/src/main/scala/arty100t/HarnessBinders.scala +++ b/fpga/src/main/scala/arty100t/HarnessBinders.scala @@ -19,6 +19,7 @@ import sifive.fpgashells.clocks._ import chipyard._ import chipyard.harness._ import chipyard.iobinders._ +import testchipip.serdes._ class WithArty100TUARTTSI extends HarnessBinder({ case (th: HasHarnessInstantiators, port: UARTTSIPort) => { @@ -48,36 +49,47 @@ class WithArty100TSerialTLToGPIO extends HarnessBinder({ val artyTh = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[Arty100THarness] val harnessIO = IO(chiselTypeOf(port.io)).suggestName("serial_tl") harnessIO <> port.io - val clkIO = IOPin(harnessIO.clock) - val packagePinsWithPackageIOs = Seq( - ("G13", clkIO), - ("B11", IOPin(harnessIO.bits.out.valid)), - ("A11", IOPin(harnessIO.bits.out.ready)), - ("D12", IOPin(harnessIO.bits.in.valid)), - ("D13", IOPin(harnessIO.bits.in.ready)), - ("B18", IOPin(harnessIO.bits.out.bits, 0)), - ("A18", IOPin(harnessIO.bits.out.bits, 1)), - ("K16", IOPin(harnessIO.bits.out.bits, 2)), - ("E15", IOPin(harnessIO.bits.out.bits, 3)), - ("E16", IOPin(harnessIO.bits.in.bits, 0)), - ("D15", IOPin(harnessIO.bits.in.bits, 1)), - ("C15", IOPin(harnessIO.bits.in.bits, 2)), - ("J17", IOPin(harnessIO.bits.in.bits, 3)) - ) - packagePinsWithPackageIOs foreach { case (pin, io) => { - artyTh.xdc.addPackagePin(io, pin) - artyTh.xdc.addIOStandard(io, "LVCMOS33") - }} - // Don't add IOB to the clock, if its an input - if (DataMirror.directionOf(port.io.clock) == Direction.Input) { - packagePinsWithPackageIOs foreach { case (pin, io) => { - artyTh.xdc.addIOB(io) - }} + harnessIO match { + case io: DecoupledSerialIO => { + val clkIO = io match { + case io: LocallySyncSerialIO => IOPin(io.clock_out) + case io: ExternallySyncSerialIO => IOPin(io.clock_in) + } + val packagePinsWithPackageIOs = Seq( + ("G13", clkIO), + ("B11", IOPin(io.out.valid)), + ("A11", IOPin(io.out.ready)), + ("D12", IOPin(io.in.valid)), + ("D13", IOPin(io.in.ready)), + ("B18", IOPin(io.out.bits, 0)), + ("A18", IOPin(io.out.bits, 1)), + ("K16", IOPin(io.out.bits, 2)), + ("E15", IOPin(io.out.bits, 3)), + ("E16", IOPin(io.in.bits, 0)), + ("D15", IOPin(io.in.bits, 1)), + ("C15", IOPin(io.in.bits, 2)), + ("J17", IOPin(io.in.bits, 3)) + ) + packagePinsWithPackageIOs foreach { case (pin, io) => { + artyTh.xdc.addPackagePin(io, pin) + artyTh.xdc.addIOStandard(io, "LVCMOS33") + }} + + // Don't add IOB to the clock, if its an input + io match { + case io: LocallySyncSerialIO => packagePinsWithPackageIOs foreach { case (pin, io) => { + artyTh.xdc.addIOB(io) + }} + case io: ExternallySyncSerialIO => packagePinsWithPackageIOs.drop(1).foreach { case (pin, io) => { + artyTh.xdc.addIOB(io) + }} + } + + artyTh.sdc.addClock("ser_tl_clock", clkIO, 100) + artyTh.sdc.addGroup(pins = Seq(clkIO)) + artyTh.xdc.clockDedicatedRouteFalse(clkIO) + } } - - artyTh.sdc.addClock("ser_tl_clock", clkIO, 100) - artyTh.sdc.addGroup(pins = Seq(clkIO)) - artyTh.xdc.clockDedicatedRouteFalse(clkIO) } }) diff --git a/generators/chipyard/src/main/scala/example/FlatTestHarness.scala b/generators/chipyard/src/main/scala/example/FlatTestHarness.scala index 304c58a3..d9e37918 100644 --- a/generators/chipyard/src/main/scala/example/FlatTestHarness.scala +++ b/generators/chipyard/src/main/scala/example/FlatTestHarness.scala @@ -11,10 +11,10 @@ import freechips.rocketchip.util.{PlusArg} import freechips.rocketchip.subsystem.{CacheBlockBytes} import freechips.rocketchip.devices.debug.{SimJTAG} import freechips.rocketchip.jtag.{JTAGIO} -import testchipip.serdes.{SerialTLKey} +import testchipip.serdes.{SerialTLKey, LocallySyncSerialIO, ExternallySyncSerialIO} import testchipip.uart.{UARTAdapter} import testchipip.dram.{SimDRAM} -import testchipip.tsi.{TSIHarness, SimTSI} +import testchipip.tsi.{TSIHarness, SimTSI, SerialRAM} import chipyard.harness.{BuildTop} // A "flat" TestHarness that doesn't use IOBinders @@ -46,18 +46,25 @@ class FlatTestHarness(implicit val p: Parameters) extends Module { val serialTLManagerParams = sVal.manager.get require(serialTLManagerParams.isMemoryDevice) - withClockAndReset(clock, reset) { - val serial_bits = dut.serial_tl_pad.bits - if (DataMirror.directionOf(dut.serial_tl_pad.clock) == Direction.Input) { - dut.serial_tl_pad.clock := clock - } - val harnessRAM = TSIHarness.connectRAM( - p(SerialTLKey)(0), - lazyDut.system.serdessers(0), - serial_bits, - reset) - io.success := SimTSI.connect(harnessRAM.module.io.tsi, clock, reset) + // Figure out which clock drives the harness TLSerdes, based on the port type + val serial_ram_clock = dut.serial_tl_pad match { + case io: LocallySyncSerialIO => io.clock_out + case io: ExternallySyncSerialIO => clock + } + withClockAndReset(serial_ram_clock, reset) { + dut.serial_tl_pad match { + case io: ExternallySyncSerialIO => io.clock_in := clock + case io: LocallySyncSerialIO => + } + + // SerialRAM implements the memory regions the chip expects + val ram = Module(LazyModule(new SerialRAM(lazyDut.system.serdessers(0), p(SerialTLKey)(0))).module) + ram.io.ser.in <> dut.serial_tl_pad.out + dut.serial_tl_pad.in <> ram.io.ser.out + + // Allow TSI to master the chip + io.success := SimTSI.connect(ram.io.tsi, serial_ram_clock, reset) } // JTAG diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 6710696d..128cae0e 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -17,7 +17,7 @@ import testchipip.tsi.{SimTSI, SerialRAM, TSI, TSIIO} import testchipip.soc.{TestchipSimDTM} import testchipip.spi.{SimSPIFlashModel} import testchipip.uart.{UARTAdapter, UARTToSerial} -import testchipip.serdes.{SerialWidthAdapter} +import testchipip.serdes._ import testchipip.iceblk.{SimBlockDevice, BlockDeviceModel} import testchipip.cosim.{SpikeCosim} import icenet.{NicLoopback, SimNetwork} @@ -207,33 +207,41 @@ class WithTiedOffDMI extends HarnessBinder({ class WithSerialTLTiedOff extends HarnessBinder({ case (th: HasHarnessInstantiators, port: SerialTLPort) => { - if (DataMirror.directionOf(port.io.clock) == Direction.Input) { - port.io.clock := false.B.asClock + port.io match { + case io: DecoupledSerialIO => io.out.ready := false.B; io.in.valid := false.B; io.in.bits := DontCare; + } + port.io match { + case io: LocallySyncSerialIO => + case io: ExternallySyncSerialIO => io.clock_in := false.B.asClock } - port.io.bits.out.ready := false.B - port.io.bits.in.valid := false.B - port.io.bits.in.bits := DontCare } }) class WithSimTSIOverSerialTL extends HarnessBinder({ case (th: HasHarnessInstantiators, port: SerialTLPort) => { - val bits = port.io.bits - if (DataMirror.directionOf(port.io.clock) == Direction.Input) { - port.io.clock := th.harnessBinderClock + port.io match { + case io: LocallySyncSerialIO => + case io: ExternallySyncSerialIO => io.clock_in := false.B.asClock + } + + port.io match { + case io: DecoupledSerialIO => { + // If the port is locally synchronous (provides a clock), drive everything with that clock + // Else, drive everything with the harnes clock + val clock = port.io match { + case io: LocallySyncSerialIO => io.clock_out + case io: ExternallySyncSerialIO => th.harnessBinderClock + } + withClock(clock) { + val ram = Module(LazyModule(new SerialRAM(port.serdesser, port.params)(port.serdesser.p)).module) + ram.io.ser.in <> io.out + io.in <> ram.io.ser.out + + val success = SimTSI.connect(ram.io.tsi, clock, th.harnessBinderReset) + when (success) { th.success := true.B } + } + } } - val ram = LazyModule(new SerialRAM(port.serdesser, port.params)(port.serdesser.p)) - Module(ram.module) - ram.module.io.ser <> port.io.bits - val tsi = Module(new SimTSI) - tsi.io.clock := th.harnessBinderClock - tsi.io.reset := th.harnessBinderReset - tsi.io.tsi <> ram.module.io.tsi.get - val exit = tsi.io.exit - val success = exit === 1.U - val error = exit >= 2.U - assert(!error, "*** FAILED *** (exit code = %d)\n", exit >> 1.U) - when (success) { th.success := true.B } } }) diff --git a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala index d3371dfd..d89d2d98 100644 --- a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala @@ -10,7 +10,7 @@ import freechips.rocketchip.devices.debug._ import freechips.rocketchip.subsystem._ import freechips.rocketchip.util._ -import testchipip._ +import testchipip.serdes._ import chipyard._ import chipyard.iobinders.{GetSystemParameters, JTAGChipIO, HasChipyardPorts, Port, SerialTLPort} @@ -60,11 +60,14 @@ class WithMultiChipSerialTL(chip0: Int, chip1: Int, chip0portId: Int = 0, chip1p (p0: SerialTLPort) => p0.portId == chip0portId, (p1: SerialTLPort) => p1.portId == chip1portId, (th: HasHarnessInstantiators, p0: SerialTLPort, p1: SerialTLPort) => { - (DataMirror.directionOf(p0.io.clock), DataMirror.directionOf(p1.io.clock)) match { - case (Direction.Input, Direction.Output) => p0.io.clock := p1.io.clock - case (Direction.Output, Direction.Input) => p1.io.clock := p0.io.clock + def connectDecoupledSyncSerialIO(clkSource: LocallySyncSerialIO, clkSink: ExternallySyncSerialIO) = { + clkSink.clock_in := clkSource.clock_out + clkSink.in <> clkSource.out + clkSource.in <> clkSink.out + } + (p0.io, p1.io) match { + case (io0: LocallySyncSerialIO , io1: ExternallySyncSerialIO) => connectDecoupledSyncSerialIO(io0, io1) + case (io0: ExternallySyncSerialIO, io1: LocallySyncSerialIO) => connectDecoupledSyncSerialIO(io1, io0) } - p0.io.bits.in <> p1.io.bits.out - p1.io.bits.in <> p0.io.bits.out } ) diff --git a/generators/chipyard/src/main/scala/iobinders/Ports.scala b/generators/chipyard/src/main/scala/iobinders/Ports.scala index ba14cc39..feb7bccb 100644 --- a/generators/chipyard/src/main/scala/iobinders/Ports.scala +++ b/generators/chipyard/src/main/scala/iobinders/Ports.scala @@ -72,8 +72,9 @@ case class DMIPort (val getIO: () => ClockedDMIIO) case class JTAGPort (val getIO: () => JTAGChipIO) extends Port[JTAGChipIO] -case class SerialTLPort (val getIO: () => ClockedIO[SerialIO], val params: SerialTLParams, val serdesser: TLSerdesser, val portId: Int) - extends Port[ClockedIO[SerialIO]] +// Lack of nice union types in scala-2 means we have to set this type as Data +case class SerialTLPort (val getIO: () => Data, val params: SerialTLParams, val serdesser: TLSerdesser, val portId: Int) + extends Port[Data] case class UARTTSIPort (val getIO: () => UARTTSIIO) extends Port[UARTTSIIO] diff --git a/generators/firechip/src/main/scala/BridgeBinders.scala b/generators/firechip/src/main/scala/BridgeBinders.scala index 954c104c..25ae6668 100644 --- a/generators/firechip/src/main/scala/BridgeBinders.scala +++ b/generators/firechip/src/main/scala/BridgeBinders.scala @@ -15,6 +15,7 @@ import freechips.rocketchip.prci.{ClockBundle, ClockBundleParameters} import freechips.rocketchip.util.{ResetCatchAndSync} import sifive.blocks.devices.uart._ +import testchipip.serdes.{ExternallySyncSerialIO} import testchipip.tsi.{SerialRAM} import icenet.{CanHavePeripheryIceNIC, SimNetwork, NicLoopback, NICKey, NICIOvonly} @@ -67,18 +68,21 @@ class WithFireSimIOCellModels extends Config((site, here, up) => { class WithTSIBridgeAndHarnessRAMOverSerialTL extends HarnessBinder({ case (th: FireSim, port: SerialTLPort) => { - val bits = port.io.bits - port.io.clock := th.harnessBinderClock - val ram = LazyModule(new SerialRAM(port.serdesser, port.params)(port.serdesser.p)) - Module(ram.module) - ram.module.io.ser <> port.io.bits + port.io match { + case io: ExternallySyncSerialIO => { + io.clock_in := th.harnessBinderClock + val ram = Module(LazyModule(new SerialRAM(port.serdesser, port.params)(port.serdesser.p)).module) + ram.io.ser.in <> io.out + io.in <> ram.io.ser.out - // This assumes that: - // If ExtMem for the target is defined, then FASED bridge will be attached - // If FASED bridge is attached, loadmem widget is present - val hasMainMemory = th.chipParameters(th.p(MultiChipIdx))(ExtMem).isDefined - val mainMemoryName = Option.when(hasMainMemory)(MainMemoryConsts.globalName(th.p(MultiChipIdx))) - TSIBridge(th.harnessBinderClock, ram.module.io.tsi.get, mainMemoryName, th.harnessBinderReset.asBool)(th.p) + // This assumes that: + // If ExtMem for the target is defined, then FASED bridge will be attached + // If FASED bridge is attached, loadmem widget is present + val hasMainMemory = th.chipParameters(th.p(MultiChipIdx))(ExtMem).isDefined + val mainMemoryName = Option.when(hasMainMemory)(MainMemoryConsts.globalName(th.p(MultiChipIdx))) + TSIBridge(th.harnessBinderClock, ram.io.tsi.get, mainMemoryName, th.harnessBinderReset.asBool)(th.p) + } + } } }) diff --git a/generators/testchipip b/generators/testchipip index 70e19831..e53f78aa 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 70e198313a7e467f9219e4caba0158a96f851503 +Subproject commit e53f78aa189c0cf7e0d3a9b08b44222ca05ab160 From 194d4462f9d6588d28d538a1d9711391bbd2db00 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 21 Dec 2023 20:33:24 -0800 Subject: [PATCH 028/105] Update testchipip with source-synchronous serdes --- fpga/src/main/scala/arty100t/Configs.scala | 2 +- .../main/scala/arty100t/HarnessBinders.scala | 8 ++--- .../main/scala/config/AbstractConfig.scala | 4 +-- .../src/main/scala/config/ChipConfigs.scala | 28 ++++++++++++---- .../main/scala/example/FlatTestHarness.scala | 33 ++++++++++--------- .../main/scala/harness/HarnessBinders.scala | 12 +++---- .../scala/harness/MultiHarnessBinders.scala | 6 ++-- .../src/main/scala/BridgeBinders.scala | 4 +-- .../src/main/scala/TargetConfigs.scala | 2 +- generators/testchipip | 2 +- 10 files changed, 60 insertions(+), 41 deletions(-) diff --git a/fpga/src/main/scala/arty100t/Configs.scala b/fpga/src/main/scala/arty100t/Configs.scala index c9892aa8..9588d80e 100644 --- a/fpga/src/main/scala/arty100t/Configs.scala +++ b/fpga/src/main/scala/arty100t/Configs.scala @@ -56,5 +56,5 @@ class NoCoresArty100TConfig extends Config( class BringupArty100TConfig extends Config( new WithArty100TSerialTLToGPIO ++ new WithArty100TTweaks(freqMHz = 50) ++ - new testchipip.serdes.WithSerialTLClockDirection(provideClockFreqMHz = Some(50)) ++ + new testchipip.serdes.WithSerialTLPHYParams(testchipip.serdes.InternalSyncSerialParams(freqMHz=50)) ++ new chipyard.ChipBringupHostConfig) diff --git a/fpga/src/main/scala/arty100t/HarnessBinders.scala b/fpga/src/main/scala/arty100t/HarnessBinders.scala index d6371ed5..d1af6fdc 100644 --- a/fpga/src/main/scala/arty100t/HarnessBinders.scala +++ b/fpga/src/main/scala/arty100t/HarnessBinders.scala @@ -53,8 +53,8 @@ class WithArty100TSerialTLToGPIO extends HarnessBinder({ harnessIO match { case io: DecoupledSerialIO => { val clkIO = io match { - case io: LocallySyncSerialIO => IOPin(io.clock_out) - case io: ExternallySyncSerialIO => IOPin(io.clock_in) + case io: InternalSyncSerialIO => IOPin(io.clock_out) + case io: ExternalSyncSerialIO => IOPin(io.clock_in) } val packagePinsWithPackageIOs = Seq( ("G13", clkIO), @@ -78,10 +78,10 @@ class WithArty100TSerialTLToGPIO extends HarnessBinder({ // Don't add IOB to the clock, if its an input io match { - case io: LocallySyncSerialIO => packagePinsWithPackageIOs foreach { case (pin, io) => { + case io: InternalSyncSerialIO => packagePinsWithPackageIOs foreach { case (pin, io) => { artyTh.xdc.addIOB(io) }} - case io: ExternallySyncSerialIO => packagePinsWithPackageIOs.drop(1).foreach { case (pin, io) => { + case io: ExternalSyncSerialIO => packagePinsWithPackageIOs.drop(1).foreach { case (pin, io) => { artyTh.xdc.addIOB(io) }} } diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index cef46e04..c234e21a 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -65,8 +65,8 @@ class AbstractConfig extends Config( new testchipip.boot.WithBootAddrReg ++ // add a boot-addr-reg for configurable boot address new testchipip.serdes.WithSerialTL(Seq( // add a serial-tilelink interface testchipip.serdes.SerialTLParams( - client = Some(testchipip.serdes.SerialTLClientParams(idBits=4)), // serial-tilelink interface will master the FBUS, and support 4 idBits - width = 32 // serial-tilelink interface with 32 lanes + client = Some(testchipip.serdes.SerialTLClientParams()), // serial-tilelink interface will master the FBUS, and support 4 idBits + phyParams = testchipip.serdes.ExternalSyncSerialParams(width=32) // serial-tilelink interface with 32 lanes ) )) ++ new chipyard.config.WithDebugModuleAbstractDataWords(8) ++ // increase debug module data capacity diff --git a/generators/chipyard/src/main/scala/config/ChipConfigs.scala b/generators/chipyard/src/main/scala/config/ChipConfigs.scala index ffcb3f77..583d40bc 100644 --- a/generators/chipyard/src/main/scala/config/ChipConfigs.scala +++ b/generators/chipyard/src/main/scala/config/ChipConfigs.scala @@ -22,8 +22,18 @@ class ChipLikeRocketConfig extends Config( //================================== // Set up I/O //================================== - new testchipip.serdes.WithSerialTLWidth(4) ++ // 4bit wide Serialized TL interface to minimize IO - new testchipip.serdes.WithSerialTLMem(size = (1 << 30) * 4L) ++ // Configure the off-chip memory accessible over serial-tl as backing memory + new testchipip.serdes.WithSerialTL(Seq(testchipip.serdes.SerialTLParams( // 1 serial tilelink port + manager = Some(testchipip.serdes.SerialTLManagerParams( // port acts as a manager of offchip memory + memParams = Seq(testchipip.serdes.ManagerRAMParams( // 4 GB of off-chip memory + address = BigInt("80000000", 16), + size = BigInt("100000000", 16) + )), + isMemoryDevice = true + )), + client = Some(testchipip.serdes.SerialTLClientParams()), // Allow an external manager to probe this chip + phyParams = testchipip.serdes.ExternalSyncSerialParams(width=4) // 4-bit bidir interface, sync'd to an external clock + ))) ++ + new freechips.rocketchip.subsystem.WithNoMemPort ++ // Remove axi4 mem port new freechips.rocketchip.subsystem.WithNMemoryChannels(1) ++ // 1 memory channel @@ -60,10 +70,16 @@ class ChipBringupHostConfig extends Config( //============================= // Setup the SerialTL side on the bringup device //============================= - new testchipip.serdes.WithSerialTLWidth(4) ++ // match width with the chip - new testchipip.serdes.WithSerialTLMem(base = 0x0, size = 0x80000000L, // accessible memory of the chip that doesn't come from the tethered host - idBits = 4, isMainMemory = false) ++ // This assumes off-chip mem starts at 0x8000_0000 - new testchipip.serdes.WithSerialTLClockDirection(provideClockFreqMHz = Some(75)) ++ // bringup board drives the clock for the serial-tl receiver on the chip, use 75MHz clock + new testchipip.serdes.WithSerialTL(Seq(testchipip.serdes.SerialTLParams( + manager = Some(testchipip.serdes.SerialTLManagerParams( + memParams = Seq(testchipip.serdes.ManagerRAMParams( // Bringup platform can access all memory from 0 to DRAM_BASE + address = BigInt("00000000", 16), + size = BigInt("80000000", 16) + )) + )), + client = Some(testchipip.serdes.SerialTLClientParams()), // Allow chip to access this device's memory (DRAM) + phyParams = testchipip.serdes.InternalSyncSerialParams(width=4, freqMHz = 75) // bringup platform provides the clock + ))) ++ //============================ // Setup bus topology on the bringup system diff --git a/generators/chipyard/src/main/scala/example/FlatTestHarness.scala b/generators/chipyard/src/main/scala/example/FlatTestHarness.scala index d9e37918..9eeabecf 100644 --- a/generators/chipyard/src/main/scala/example/FlatTestHarness.scala +++ b/generators/chipyard/src/main/scala/example/FlatTestHarness.scala @@ -11,7 +11,7 @@ import freechips.rocketchip.util.{PlusArg} import freechips.rocketchip.subsystem.{CacheBlockBytes} import freechips.rocketchip.devices.debug.{SimJTAG} import freechips.rocketchip.jtag.{JTAGIO} -import testchipip.serdes.{SerialTLKey, LocallySyncSerialIO, ExternallySyncSerialIO} +import testchipip.serdes._ import testchipip.uart.{UARTAdapter} import testchipip.dram.{SimDRAM} import testchipip.tsi.{TSIHarness, SimTSI, SerialRAM} @@ -48,23 +48,26 @@ class FlatTestHarness(implicit val p: Parameters) extends Module { // Figure out which clock drives the harness TLSerdes, based on the port type val serial_ram_clock = dut.serial_tl_pad match { - case io: LocallySyncSerialIO => io.clock_out - case io: ExternallySyncSerialIO => clock + case io: InternalSyncSerialIO => io.clock_out + case io: ExternalSyncSerialIO => clock + } + dut.serial_tl_pad match { + case io: ExternalSyncSerialIO => io.clock_in := clock + case io: InternalSyncSerialIO => } - withClockAndReset(serial_ram_clock, reset) { - dut.serial_tl_pad match { - case io: ExternallySyncSerialIO => io.clock_in := clock - case io: LocallySyncSerialIO => + dut.serial_tl_pad match { + case pad: DecoupledSerialIO => { + withClockAndReset(serial_ram_clock, reset) { + // SerialRAM implements the memory regions the chip expects + val ram = Module(LazyModule(new SerialRAM(lazyDut.system.serdessers(0), p(SerialTLKey)(0))).module) + ram.io.ser.in <> pad.out + pad.in <> ram.io.ser.out + + // Allow TSI to master the chip + io.success := SimTSI.connect(ram.io.tsi, serial_ram_clock, reset) + } } - - // SerialRAM implements the memory regions the chip expects - val ram = Module(LazyModule(new SerialRAM(lazyDut.system.serdessers(0), p(SerialTLKey)(0))).module) - ram.io.ser.in <> dut.serial_tl_pad.out - dut.serial_tl_pad.in <> ram.io.ser.out - - // Allow TSI to master the chip - io.success := SimTSI.connect(ram.io.tsi, serial_ram_clock, reset) } // JTAG diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 128cae0e..a29cf5c0 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -211,8 +211,8 @@ class WithSerialTLTiedOff extends HarnessBinder({ case io: DecoupledSerialIO => io.out.ready := false.B; io.in.valid := false.B; io.in.bits := DontCare; } port.io match { - case io: LocallySyncSerialIO => - case io: ExternallySyncSerialIO => io.clock_in := false.B.asClock + case io: InternalSyncSerialIO => + case io: ExternalSyncSerialIO => io.clock_in := false.B.asClock } } }) @@ -220,8 +220,8 @@ class WithSerialTLTiedOff extends HarnessBinder({ class WithSimTSIOverSerialTL extends HarnessBinder({ case (th: HasHarnessInstantiators, port: SerialTLPort) => { port.io match { - case io: LocallySyncSerialIO => - case io: ExternallySyncSerialIO => io.clock_in := false.B.asClock + case io: InternalSyncSerialIO => + case io: ExternalSyncSerialIO => io.clock_in := false.B.asClock } port.io match { @@ -229,8 +229,8 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ // If the port is locally synchronous (provides a clock), drive everything with that clock // Else, drive everything with the harnes clock val clock = port.io match { - case io: LocallySyncSerialIO => io.clock_out - case io: ExternallySyncSerialIO => th.harnessBinderClock + case io: InternalSyncSerialIO => io.clock_out + case io: ExternalSyncSerialIO => th.harnessBinderClock } withClock(clock) { val ram = Module(LazyModule(new SerialRAM(port.serdesser, port.params)(port.serdesser.p)).module) diff --git a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala index d89d2d98..e159e345 100644 --- a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala @@ -60,14 +60,14 @@ class WithMultiChipSerialTL(chip0: Int, chip1: Int, chip0portId: Int = 0, chip1p (p0: SerialTLPort) => p0.portId == chip0portId, (p1: SerialTLPort) => p1.portId == chip1portId, (th: HasHarnessInstantiators, p0: SerialTLPort, p1: SerialTLPort) => { - def connectDecoupledSyncSerialIO(clkSource: LocallySyncSerialIO, clkSink: ExternallySyncSerialIO) = { + def connectDecoupledSyncSerialIO(clkSource: InternalSyncSerialIO, clkSink: ExternalSyncSerialIO) = { clkSink.clock_in := clkSource.clock_out clkSink.in <> clkSource.out clkSource.in <> clkSink.out } (p0.io, p1.io) match { - case (io0: LocallySyncSerialIO , io1: ExternallySyncSerialIO) => connectDecoupledSyncSerialIO(io0, io1) - case (io0: ExternallySyncSerialIO, io1: LocallySyncSerialIO) => connectDecoupledSyncSerialIO(io1, io0) + case (io0: InternalSyncSerialIO, io1: ExternalSyncSerialIO) => connectDecoupledSyncSerialIO(io0, io1) + case (io0: ExternalSyncSerialIO, io1: InternalSyncSerialIO) => connectDecoupledSyncSerialIO(io1, io0) } } ) diff --git a/generators/firechip/src/main/scala/BridgeBinders.scala b/generators/firechip/src/main/scala/BridgeBinders.scala index 25ae6668..1cb365bd 100644 --- a/generators/firechip/src/main/scala/BridgeBinders.scala +++ b/generators/firechip/src/main/scala/BridgeBinders.scala @@ -15,7 +15,7 @@ import freechips.rocketchip.prci.{ClockBundle, ClockBundleParameters} import freechips.rocketchip.util.{ResetCatchAndSync} import sifive.blocks.devices.uart._ -import testchipip.serdes.{ExternallySyncSerialIO} +import testchipip.serdes.{ExternalSyncSerialIO} import testchipip.tsi.{SerialRAM} import icenet.{CanHavePeripheryIceNIC, SimNetwork, NicLoopback, NICKey, NICIOvonly} @@ -69,7 +69,7 @@ class WithFireSimIOCellModels extends Config((site, here, up) => { class WithTSIBridgeAndHarnessRAMOverSerialTL extends HarnessBinder({ case (th: FireSim, port: SerialTLPort) => { port.io match { - case io: ExternallySyncSerialIO => { + case io: ExternalSyncSerialIO => { io.clock_in := th.harnessBinderClock val ram = Module(LazyModule(new SerialRAM(port.serdesser, port.params)(port.serdesser.p)).module) ram.io.ser.in <> io.out diff --git a/generators/firechip/src/main/scala/TargetConfigs.scala b/generators/firechip/src/main/scala/TargetConfigs.scala index 9f5f7ef6..eb092944 100644 --- a/generators/firechip/src/main/scala/TargetConfigs.scala +++ b/generators/firechip/src/main/scala/TargetConfigs.scala @@ -260,7 +260,7 @@ class FireSimSmallSystemConfig extends Config( new freechips.rocketchip.subsystem.WithExtMemSize(1 << 28) ++ new testchipip.serdes.WithSerialTL(Seq(testchipip.serdes.SerialTLParams( client = Some(testchipip.serdes.SerialTLClientParams(idBits = 4)), - width = 32 + phyParams = testchipip.serdes.ExternalSyncSerialParams(width=32) ))) ++ new testchipip.iceblk.WithBlockDevice ++ new chipyard.config.WithUARTInitBaudRate(BigInt(3686400L)) ++ diff --git a/generators/testchipip b/generators/testchipip index e53f78aa..9011ac85 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit e53f78aa189c0cf7e0d3a9b08b44222ca05ab160 +Subproject commit 9011ac8530f8186e013409f0e2d65f54b2b512d4 From 5a96abeb146c5a2993654ccef8f24e4664c9af93 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Thu, 21 Dec 2023 21:09:39 -0800 Subject: [PATCH 029/105] FIX: fix conda-lock version, >1.4.0 does not work! --- docs/Chipyard-Basics/Initial-Repo-Setup.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Chipyard-Basics/Initial-Repo-Setup.rst b/docs/Chipyard-Basics/Initial-Repo-Setup.rst index 9f31624e..948b7e2e 100644 --- a/docs/Chipyard-Basics/Initial-Repo-Setup.rst +++ b/docs/Chipyard-Basics/Initial-Repo-Setup.rst @@ -46,7 +46,7 @@ This is done by the following: .. code-block:: shell - conda install -n base conda-lock=1.4 + conda install -n base conda-lock==1.4.0 conda activate base From 81cc556c3b79e727a69ae2437e42bd9e85bb3359 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 26 Dec 2023 10:05:44 -0800 Subject: [PATCH 030/105] Add symmetric rocket config --- .../main/scala/config/ChipletConfigs.scala | 38 +++++++++++++++++++ .../main/scala/harness/HarnessBinders.scala | 17 +++++++-- .../scala/harness/MultiHarnessBinders.scala | 11 ++++++ generators/testchipip | 2 +- 4 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 generators/chipyard/src/main/scala/config/ChipletConfigs.scala diff --git a/generators/chipyard/src/main/scala/config/ChipletConfigs.scala b/generators/chipyard/src/main/scala/config/ChipletConfigs.scala new file mode 100644 index 00000000..3b802c57 --- /dev/null +++ b/generators/chipyard/src/main/scala/config/ChipletConfigs.scala @@ -0,0 +1,38 @@ +package chipyard + +import org.chipsalliance.cde.config.{Config} +import freechips.rocketchip.diplomacy.{AddressSet} +import freechips.rocketchip.subsystem.{SBUS} +import testchipip.soc.{OBUS} + +// ------------------------------------------------ +// Configs demonstrating chip-to-chip communication +// ------------------------------------------------ + +// Simple design which exposes a second serial-tl port that can connect to another instance of itself +class SymmetricChipletRocketConfig extends Config( + new chipyard.harness.WithSerialTLTiedOff(tieoffs=Some(Seq(1))) ++ // Tie-off the chip-to-chip link in single-chip sims + new testchipip.serdes.WithSerialTL(Seq( + testchipip.serdes.SerialTLParams( // 0th serial-tl is chip-to-bringup-fpga + client = Some(testchipip.serdes.SerialTLClientParams()), // bringup serial-tl acts only as a client + phyParams = testchipip.serdes.ExternalSyncSerialParams() // bringup serial-tl is sync'd to external clock + ), + testchipip.serdes.SerialTLParams( // 1st serial-tl is chip-to-chip + client = Some(testchipip.serdes.SerialTLClientParams()), // chip-to-chip serial-tl acts as a client + manager = Some(testchipip.serdes.SerialTLManagerParams( // chip-to-chip serial-tl managers other chip's memory + memParams = Seq(testchipip.serdes.ManagerRAMParams( + address = 0, + size = 1L << 32, + )), + slaveWhere = OBUS + )), + phyParams = testchipip.serdes.SourceSyncSerialParams() // chip-to-chip serial-tl is symmetric source-sync'd + )) + ) ++ + new testchipip.soc.WithOffchipBusClient(SBUS, // obus provides path to other chip's memory + blockRange = Seq(AddressSet(0, (1L << 32) - 1)), // The lower 4GB is mapped to this chip + replicationBase = Some(1L << 32) // The upper 4GB goes off-chip + ) ++ + new testchipip.soc.WithOffchipBus ++ + new freechips.rocketchip.subsystem.WithNBigCores(1) ++ + new chipyard.config.AbstractConfig) diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index a29cf5c0..a50f1743 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -205,23 +205,32 @@ class WithTiedOffDMI extends HarnessBinder({ } }) -class WithSerialTLTiedOff extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SerialTLPort) => { +// If tieoffs is specified, a list of serial portIds to tie off +// If tieoffs is unspecified, ties off all serial ports +class WithSerialTLTiedOff(tieoffs: Option[Seq[Int]] = None) extends HarnessBinder({ + case (th: HasHarnessInstantiators, port: SerialTLPort) if (tieoffs.map(_.contains(port.portId)).getOrElse(true)) => { port.io match { case io: DecoupledSerialIO => io.out.ready := false.B; io.in.valid := false.B; io.in.bits := DontCare; + case io: SourceSyncSerialIO => { + io.clock_in := false.B.asClock + io.reset_in := false.B.asAsyncReset + io.in := DontCare + io.credit_in := DontCare + } } port.io match { case io: InternalSyncSerialIO => case io: ExternalSyncSerialIO => io.clock_in := false.B.asClock + case _ => } } }) class WithSimTSIOverSerialTL extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SerialTLPort) => { + case (th: HasHarnessInstantiators, port: SerialTLPort) if (port.portId == 0) => { port.io match { case io: InternalSyncSerialIO => - case io: ExternalSyncSerialIO => io.clock_in := false.B.asClock + case io: ExternalSyncSerialIO => io.clock_in := th.harnessBinderClock } port.io match { diff --git a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala index e159e345..9cd6afd2 100644 --- a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala @@ -65,9 +65,20 @@ class WithMultiChipSerialTL(chip0: Int, chip1: Int, chip0portId: Int = 0, chip1p clkSink.in <> clkSource.out clkSource.in <> clkSink.out } + def connectSourceSyncSerialIO(a: SourceSyncSerialIO, b: SourceSyncSerialIO) = { + a.clock_in := b.clock_out + b.clock_in := a.clock_out + a.reset_in := b.reset_out + b.reset_in := a.reset_out + a.in := b.out + b.in := a.out + a.credit_in := b.credit_out + b.credit_in := a.credit_out + } (p0.io, p1.io) match { case (io0: InternalSyncSerialIO, io1: ExternalSyncSerialIO) => connectDecoupledSyncSerialIO(io0, io1) case (io0: ExternalSyncSerialIO, io1: InternalSyncSerialIO) => connectDecoupledSyncSerialIO(io1, io0) + case (io0: SourceSyncSerialIO , io1: SourceSyncSerialIO ) => connectSourceSyncSerialIO (io0, io1) } } ) diff --git a/generators/testchipip b/generators/testchipip index 9011ac85..11551255 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 9011ac8530f8186e013409f0e2d65f54b2b512d4 +Subproject commit 11551255834ff4f98c1474a806b7c733cb53d6ee From 8e37dcdf81d18649f21725014e6e3b07b7a98229 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 26 Dec 2023 12:52:23 -0800 Subject: [PATCH 031/105] Support multi-TSI/multi-SimDRAM --- .../chipyard/src/main/scala/config/ChipletConfigs.scala | 8 ++++++++ .../chipyard/src/main/scala/harness/HarnessBinders.scala | 8 +++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/generators/chipyard/src/main/scala/config/ChipletConfigs.scala b/generators/chipyard/src/main/scala/config/ChipletConfigs.scala index 3b802c57..e07aa73d 100644 --- a/generators/chipyard/src/main/scala/config/ChipletConfigs.scala +++ b/generators/chipyard/src/main/scala/config/ChipletConfigs.scala @@ -36,3 +36,11 @@ class SymmetricChipletRocketConfig extends Config( new testchipip.soc.WithOffchipBus ++ new freechips.rocketchip.subsystem.WithNBigCores(1) ++ new chipyard.config.AbstractConfig) + +// Simulates 2X of the SymmetricChipletRocketConfig in a multi-sim config +class MultiSimSymmetricChipletRocketConfig extends Config( + new chipyard.harness.WithAbsoluteFreqHarnessClockInstantiator ++ + new chipyard.harness.WithMultiChipSerialTL(chip0=0, chip1=1, chip0portId=1, chip1portId=1) ++ + new chipyard.harness.WithMultiChip(0, new SymmetricChipletRocketConfig) ++ + new chipyard.harness.WithMultiChip(1, new SymmetricChipletRocketConfig) +) diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index a50f1743..5d71c1bd 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -50,9 +50,7 @@ class WithGPIOTiedOff extends HarnessBinder({ class WithUARTAdapter extends HarnessBinder({ case (th: HasHarnessInstantiators, port: UARTPort) => { val div = (th.getHarnessBinderClockFreqMHz.toDouble * 1000000 / port.io.c.initBaudRate.toDouble).toInt - val uart_sim = Module(new UARTAdapter(port.uartNo, div, false)).suggestName(s"uart_sim_uartno${port.uartNo}") - uart_sim.io.uart.txd := port.io.txd - port.io.rxd := uart_sim.io.uart.rxd + UARTAdapter.connect(Seq(port.io), div, false) } }) // DOC include end: WithUARTAdapter @@ -113,7 +111,7 @@ class WithBlackBoxSimMem(additionalLatency: Int = 0) extends HarnessBinder({ val memBase = port.params.master.base val lineSize = 64 // cache block size val clockFreq = port.clockFreqMHz - val mem = Module(new SimDRAM(memSize, lineSize, clockFreq, memBase, port.edge.bundle)).suggestName("simdram") + val mem = Module(new SimDRAM(memSize, lineSize, clockFreq, memBase, port.edge.bundle, th.p(MultiChipIdx))).suggestName("simdram") mem.io.clock := port.io.clock mem.io.reset := th.harnessBinderReset.asAsyncReset @@ -246,7 +244,7 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ ram.io.ser.in <> io.out io.in <> ram.io.ser.out - val success = SimTSI.connect(ram.io.tsi, clock, th.harnessBinderReset) + val success = SimTSI.connect(ram.io.tsi, clock, th.harnessBinderReset, th.p(MultiChipIdx)) when (success) { th.success := true.B } } } From fdeede7b0bbbf1ce818812f27264da7363cda274 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 26 Dec 2023 12:55:32 -0800 Subject: [PATCH 032/105] Add tests for symmetric rocket chiplet config --- .github/scripts/defaults.sh | 3 ++- .github/scripts/run-tests.sh | 4 ++++ .github/workflows/chipyard-run-tests.yml | 24 +++++++++++++++++++ generators/testchipip | 2 +- tests/Makefile | 2 +- tests/symmetric.c | 30 ++++++++++++++++++++++++ 6 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 tests/symmetric.c diff --git a/.github/scripts/defaults.sh b/.github/scripts/defaults.sh index d4eb7b56..94339a5b 100755 --- a/.github/scripts/defaults.sh +++ b/.github/scripts/defaults.sh @@ -29,7 +29,7 @@ REMOTE_COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache # key value store to get the build groups declare -A grouping grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boom chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket chipyard-nomem-scratchpad chipyard-spike chipyard-clone chipyard-prefetchers chipyard-shuttle" -grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboom chipyard-spiflashwrite chipyard-mmios chipyard-nocores chipyard-manyperipherals chipyard-chiplike chipyard-tethered" +grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboom chipyard-spiflashwrite chipyard-mmios chipyard-nocores chipyard-manyperipherals chipyard-chiplike chipyard-tethered chipyard-symmetric" grouping["group-accels"]="chipyard-mempress chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla chipyard-aes256ecb" grouping["group-constellation"]="chipyard-constellation" grouping["group-tracegen"]="tracegen tracegen-boom" @@ -58,6 +58,7 @@ mapping["chipyard-spiflashwrite"]=" CONFIG=SmallSPIFlashRocketConfig EXTRA_SIM_F mapping["chipyard-manyperipherals"]=" CONFIG=ManyPeripheralsRocketConfig EXTRA_SIM_FLAGS='+spiflash0=${LOCAL_CHIPYARD_DIR}/tests/spiflash.img'" mapping["chipyard-chiplike"]=" CONFIG=ChipLikeRocketConfig MODEL=FlatTestHarness MODEL_PACKAGE=chipyard.example verilog" mapping["chipyard-tethered"]=" CONFIG=VerilatorCITetheredChipLikeRocketConfig" +mapping["chipyard-symmetric"]=" CONFIG=MultiSimSymmetricChipletRocketConfig" mapping["chipyard-cloneboom"]=" CONFIG=Cloned64MegaBoomConfig verilog" mapping["chipyard-nocores"]=" CONFIG=NoCoresConfig verilog" mapping["tracegen"]=" CONFIG=NonBlockingTraceGenL2Config" diff --git a/.github/scripts/run-tests.sh b/.github/scripts/run-tests.sh index ce272737..eccc5563 100755 --- a/.github/scripts/run-tests.sh +++ b/.github/scripts/run-tests.sh @@ -118,6 +118,10 @@ case $1 in make -C $LOCAL_CHIPYARD_DIR/tests run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/hello.riscv LOADMEM=1 EXTRA_SIM_FLAGS="+cflush_addr=0x2010200" ;; + chipyard-symmetric) + make -C $LOCAL_CHIPYARD_DIR/tests + run_binary BINARY=$LOCAL_CHIPYARD_DIR/tests/symmetric.riscv LOADMEM=1 + ;; tracegen) run_tracegen ;; diff --git a/.github/workflows/chipyard-run-tests.yml b/.github/workflows/chipyard-run-tests.yml index 1c0f10d8..b524ae37 100644 --- a/.github/workflows/chipyard-run-tests.yml +++ b/.github/workflows/chipyard-run-tests.yml @@ -708,6 +708,29 @@ jobs: group-key: "group-peripherals" project-key: "chipyard-tethered" + chipyard-symmetric-run-tests: + name: chipyard-symmetric-run-tests + needs: prepare-chipyard-peripherals + runs-on: as4 + steps: + - name: Delete old checkout + run: | + ls -alh . + rm -rf ${{ github.workspace }}/* || true + rm -rf ${{ github.workspace }}/.* || true + ls -alh . + - name: Checkout + uses: actions/checkout@v3 + - name: Git workaround + uses: ./.github/actions/git-workaround + - name: Create conda env + uses: ./.github/actions/create-conda-env + - name: Run tests + uses: ./.github/actions/run-tests + with: + group-key: "group-peripherals" + project-key: "chipyard-symmetric" + chipyard-sha3-run-tests: name: chipyard-sha3-run-tests needs: prepare-chipyard-accels @@ -1071,6 +1094,7 @@ jobs: chipyard-spiflashwrite-run-tests, chipyard-manyperipherals-run-tests, chipyard-tethered-run-tests, + chipyard-symmetric-run-tests, chipyard-sha3-run-tests, chipyard-gemmini-run-tests, chipyard-manymmioaccels-run-tests, # chipyard-nvdla-run-tests, diff --git a/generators/testchipip b/generators/testchipip index 11551255..9d1a2125 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 11551255834ff4f98c1474a806b7c733cb53d6ee +Subproject commit 9d1a2125799cd7179e280e6901e84235f3f479a8 diff --git a/tests/Makefile b/tests/Makefile index 670b49ea..1c6df31b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -29,7 +29,7 @@ include libgloss.mk PROGRAMS = pwm blkdev accum charcount nic-loopback big-blkdev pingd \ streaming-passthrough streaming-fir nvdla spiflashread spiflashwrite fft gcd \ - hello mt-hello + hello mt-hello symmetric .DEFAULT_GOAL := default diff --git a/tests/symmetric.c b/tests/symmetric.c new file mode 100644 index 00000000..a6d37627 --- /dev/null +++ b/tests/symmetric.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include "marchid.h" + +#define OBUS_OFFSET (0x1L << 32) + +char src[] = "This is a test string. It will be written into the off-chip memory address, then copied back."; +char dest[4096]; +char test[4096]; + +int main(void) { + size_t write_start = rdcycle(); + memcpy(dest + OBUS_OFFSET, src, sizeof(src)); + size_t write_end = rdcycle(); + + printf("Wrote %ld bytes in %ld cycles\n", sizeof(src), write_end - write_start); + + size_t read_start = rdcycle(); + memcpy(test, dest + OBUS_OFFSET, sizeof(src)); + size_t read_end = rdcycle(); + + if (memcmp(src, test, sizeof(src))) { + printf("Remote write/read failed\n"); + exit(1); + } + printf("Read %ld bytes in %ld cycles\n", sizeof(src), read_end - read_start); + + return 0; +} From 3885e79f7734ecd5650ee6cd7644744514178ad2 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 26 Dec 2023 17:19:09 -0800 Subject: [PATCH 033/105] Bump testchipip --- generators/testchipip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/testchipip b/generators/testchipip index 9d1a2125..e1fc05b0 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 9d1a2125799cd7179e280e6901e84235f3f479a8 +Subproject commit e1fc05b09283524fc09bee7d3ff351b6f83825ca From 835562238add317102f3312844675826e1e50ce9 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 26 Dec 2023 18:37:39 -0800 Subject: [PATCH 034/105] Explicitly pass chipId to all HarnessBinders --- fpga/src/main/scala/arty/HarnessBinders.scala | 8 +-- .../main/scala/arty100t/HarnessBinders.scala | 6 +- .../scala/nexysvideo/HarnessBinders.scala | 4 +- .../src/main/scala/vc707/HarnessBinders.scala | 6 +- .../main/scala/vcu118/HarnessBinders.scala | 6 +- .../scala/vcu118/bringup/HarnessBinders.scala | 10 ++-- .../main/scala/harness/HarnessBinders.scala | 58 +++++++++---------- .../harness/HasHarnessInstantiators.scala | 2 +- .../scala/harness/MultiHarnessBinders.scala | 4 +- .../src/main/scala/harness/package.scala | 2 +- .../src/main/scala/BridgeBinders.scala | 22 +++---- 11 files changed, 64 insertions(+), 64 deletions(-) diff --git a/fpga/src/main/scala/arty/HarnessBinders.scala b/fpga/src/main/scala/arty/HarnessBinders.scala index d2ce5489..39ddd204 100644 --- a/fpga/src/main/scala/arty/HarnessBinders.scala +++ b/fpga/src/main/scala/arty/HarnessBinders.scala @@ -15,19 +15,19 @@ import chipyard.harness.{HarnessBinder} import chipyard.iobinders._ class WithArtyDebugResetHarnessBinder extends HarnessBinder({ - case (th: Arty35THarness, port: DebugResetPort) => { + case (th: Arty35THarness, port: DebugResetPort, chipId: Int) => { th.dut_ndreset := port.io // Debug module reset } }) class WithArtyJTAGResetHarnessBinder extends HarnessBinder({ - case (th: Arty35THarness, port: JTAGResetPort) => { + case (th: Arty35THarness, port: JTAGResetPort, chipId: Int) => { port.io := PowerOnResetFPGAOnly(th.clock_32MHz) // JTAG module reset } }) class WithArtyJTAGHarnessBinder extends HarnessBinder({ - case (th: Arty35THarness, port: JTAGPort) => { + case (th: Arty35THarness, port: JTAGPort, chipId: Int) => { val jtag_wire = Wire(new JTAGIO) jtag_wire.TDO.data := port.io.TDO jtag_wire.TDO.driven := true.B @@ -62,7 +62,7 @@ class WithArtyJTAGHarnessBinder extends HarnessBinder({ }) class WithArtyUARTHarnessBinder extends HarnessBinder({ - case (th: Arty35THarness, port: UARTPort) => { + case (th: Arty35THarness, port: UARTPort, chipId: Int) => { withClockAndReset(th.clock_32MHz, th.ck_rst) { IOBUF(th.uart_rxd_out, port.io.txd) port.io.rxd := IOBUF(th.uart_txd_in) diff --git a/fpga/src/main/scala/arty100t/HarnessBinders.scala b/fpga/src/main/scala/arty100t/HarnessBinders.scala index d1af6fdc..b6c7273a 100644 --- a/fpga/src/main/scala/arty100t/HarnessBinders.scala +++ b/fpga/src/main/scala/arty100t/HarnessBinders.scala @@ -22,7 +22,7 @@ import chipyard.iobinders._ import testchipip.serdes._ class WithArty100TUARTTSI extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: UARTTSIPort) => { + case (th: HasHarnessInstantiators, port: UARTTSIPort, chipId: Int) => { val ath = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[Arty100THarness] ath.io_uart_bb.bundle <> port.io.uart ath.other_leds(1) := port.io.dropped @@ -34,7 +34,7 @@ class WithArty100TUARTTSI extends HarnessBinder({ }) class WithArty100TDDRTL extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: TLMemPort) => { + case (th: HasHarnessInstantiators, port: TLMemPort, chipId: Int) => { val artyTh = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[Arty100THarness] val bundles = artyTh.ddrClient.out.map(_._1) val ddrClientBundle = Wire(new HeterogeneousBag(bundles.map(_.cloneType))) @@ -45,7 +45,7 @@ class WithArty100TDDRTL extends HarnessBinder({ // Uses PMOD JA/JB class WithArty100TSerialTLToGPIO extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SerialTLPort) => { + case (th: HasHarnessInstantiators, port: SerialTLPort, chipId: Int) => { val artyTh = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[Arty100THarness] val harnessIO = IO(chiselTypeOf(port.io)).suggestName("serial_tl") harnessIO <> port.io diff --git a/fpga/src/main/scala/nexysvideo/HarnessBinders.scala b/fpga/src/main/scala/nexysvideo/HarnessBinders.scala index e6865eff..29deeadb 100644 --- a/fpga/src/main/scala/nexysvideo/HarnessBinders.scala +++ b/fpga/src/main/scala/nexysvideo/HarnessBinders.scala @@ -15,7 +15,7 @@ import chipyard.harness._ import chipyard.iobinders._ class WithNexysVideoUARTTSI(uartBaudRate: BigInt = 115200) extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: UARTTSIPort) => { + case (th: HasHarnessInstantiators, port: UARTTSIPort, chipId: Int) => { val nexysvideoth = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[NexysVideoHarness] nexysvideoth.io_uart_bb.bundle <> port.io.uart nexysvideoth.other_leds(1) := port.io.dropped @@ -27,7 +27,7 @@ class WithNexysVideoUARTTSI(uartBaudRate: BigInt = 115200) extends HarnessBinder }) class WithNexysVideoDDRTL extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: TLMemPort) => { + case (th: HasHarnessInstantiators, port: TLMemPort, chipId: Int) => { val nexysTh = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[NexysVideoHarness] val bundles = nexysTh.ddrClient.get.out.map(_._1) val ddrClientBundle = Wire(new HeterogeneousBag(bundles.map(_.cloneType))) diff --git a/fpga/src/main/scala/vc707/HarnessBinders.scala b/fpga/src/main/scala/vc707/HarnessBinders.scala index 25224d57..d08fba76 100644 --- a/fpga/src/main/scala/vc707/HarnessBinders.scala +++ b/fpga/src/main/scala/vc707/HarnessBinders.scala @@ -16,21 +16,21 @@ import chipyard.iobinders._ /*** UART ***/ class WithVC707UARTHarnessBinder extends HarnessBinder({ - case (th: VC707FPGATestHarnessImp, port: UARTPort) => { + case (th: VC707FPGATestHarnessImp, port: UARTPort, chipId: Int) => { th.vc707Outer.io_uart_bb.bundle <> port.io } }) /*** SPI ***/ class WithVC707SPISDCardHarnessBinder extends HarnessBinder({ - case (th: VC707FPGATestHarnessImp, port: SPIPort) => { + case (th: VC707FPGATestHarnessImp, port: SPIPort, chipId: Int) => { th.vc707Outer.io_spi_bb.bundle <> port.io } }) /*** Experimental DDR ***/ class WithVC707DDRMemHarnessBinder extends HarnessBinder({ - case (th: VC707FPGATestHarnessImp, port: TLMemPort) => { + case (th: VC707FPGATestHarnessImp, port: TLMemPort, chipId: Int) => { val bundles = th.vc707Outer.ddrClient.out.map(_._1) val ddrClientBundle = Wire(new HeterogeneousBag(bundles.map(_.cloneType))) bundles.zip(ddrClientBundle).foreach { case (bundle, io) => bundle <> io } diff --git a/fpga/src/main/scala/vcu118/HarnessBinders.scala b/fpga/src/main/scala/vcu118/HarnessBinders.scala index 769e5b42..c03f551f 100644 --- a/fpga/src/main/scala/vcu118/HarnessBinders.scala +++ b/fpga/src/main/scala/vcu118/HarnessBinders.scala @@ -15,21 +15,21 @@ import chipyard.iobinders._ /*** UART ***/ class WithUART extends HarnessBinder({ - case (th: VCU118FPGATestHarnessImp, port: UARTPort) => { + case (th: VCU118FPGATestHarnessImp, port: UARTPort, chipId: Int) => { th.vcu118Outer.io_uart_bb.bundle <> port.io } }) /*** SPI ***/ class WithSPISDCard extends HarnessBinder({ - case (th: VCU118FPGATestHarnessImp, port: SPIPort) => { + case (th: VCU118FPGATestHarnessImp, port: SPIPort, chipId: Int) => { th.vcu118Outer.io_spi_bb.bundle <> port.io } }) /*** Experimental DDR ***/ class WithDDRMem extends HarnessBinder({ - case (th: VCU118FPGATestHarnessImp, port: TLMemPort) => { + case (th: VCU118FPGATestHarnessImp, port: TLMemPort, chipId: Int) => { val bundles = th.vcu118Outer.ddrClient.out.map(_._1) val ddrClientBundle = Wire(new HeterogeneousBag(bundles.map(_.cloneType))) bundles.zip(ddrClientBundle).foreach { case (bundle, io) => bundle <> io } diff --git a/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala b/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala index c130a697..27933bf6 100644 --- a/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala +++ b/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala @@ -18,34 +18,34 @@ import chipyard.iobinders._ /*** UART ***/ class WithBringupUART extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: UARTPort) => { + case (th: BringupVCU118FPGATestHarnessImp, port: UARTPort, chipId: Int) => { th.bringupOuter.io_fmc_uart_bb.bundle <> port.io } }) /*** I2C ***/ class WithBringupI2C extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: chipyard.iobinders.I2CPort) => { + case (th: BringupVCU118FPGATestHarnessImp, port: chipyard.iobinders.I2CPort, chipId: Int) => { th.bringupOuter.io_i2c_bb.bundle <> port.io } }) /*** GPIO ***/ class WithBringupGPIO extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: GPIOPort) => { + case (th: BringupVCU118FPGATestHarnessImp, port: GPIOPort, chipId: Int) => { th.bringupOuter.io_gpio_bb(port.pinId).bundle <> port.io } }) /*** TSI Host Widget ***/ class WithBringupTSIHost extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: TLMemPort) => { + case (th: BringupVCU118FPGATestHarnessImp, port: TLMemPort, chipId: Int) => { val tsiBundles = th.bringupOuter.tsiDdrClient.out.map(_._1) val tsiDdrClientBundle = Wire(new HeterogeneousBag(tsiBundles.map(_.cloneType))) tsiBundles.zip(tsiDdrClientBundle).foreach { case (bundle, io) => bundle <> io } tsiDdrClientBundle <> port.io } - case (th: BringupVCU118FPGATestHarnessImp, port: TSIHostWidgetPort) => { + case (th: BringupVCU118FPGATestHarnessImp, port: TSIHostWidgetPort, chipId: Int) => { th.bringupOuter.io_tsi_serial_bb.bundle <> port.io } }) diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 5d71c1bd..999c8877 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -28,8 +28,8 @@ import chipyard.iobinders._ case object HarnessBinders extends Field[HarnessBinderFunction]({case _ => }) object ApplyHarnessBinders { - def apply(th: HasHarnessInstantiators, ports: Seq[Port[_]])(implicit p: Parameters): Unit = { - ports.foreach(port => p(HarnessBinders)(th, port)) + def apply(th: HasHarnessInstantiators, ports: Seq[Port[_]], chipId: Int)(implicit p: Parameters): Unit = { + ports.foreach(port => p(HarnessBinders)(th, port, chipId)) } } @@ -41,14 +41,14 @@ class HarnessBinder[T <: HasHarnessInstantiators, S <: Port[_]]( class WithGPIOTiedOff extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: GPIOPort) => { + case (th: HasHarnessInstantiators, port: GPIOPort, chipId: Int) => { port.io <> AnalogConst(0) } }) // DOC include start: WithUARTAdapter class WithUARTAdapter extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: UARTPort) => { + case (th: HasHarnessInstantiators, port: UARTPort, chipId: Int) => { val div = (th.getHarnessBinderClockFreqMHz.toDouble * 1000000 / port.io.c.initBaudRate.toDouble).toInt UARTAdapter.connect(Seq(port.io), div, false) } @@ -56,7 +56,7 @@ class WithUARTAdapter extends HarnessBinder({ // DOC include end: WithUARTAdapter class WithSimSPIFlashModel(rdOnly: Boolean = true) extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SPIFlashPort) => { + case (th: HasHarnessInstantiators, port: SPIFlashPort, chipId: Int) => { val spi_mem = Module(new SimSPIFlashModel(port.params.fSize, port.spiId, rdOnly)).suggestName(s"spi_mem${port.spiId}") spi_mem.io.sck := port.io.sck require(port.params.csWidth == 1, "I don't know what to do with your extra CS bits. Fix me please.") @@ -67,7 +67,7 @@ class WithSimSPIFlashModel(rdOnly: Boolean = true) extends HarnessBinder({ }) class WithSimBlockDevice extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: BlockDevicePort) => { + case (th: HasHarnessInstantiators, port: BlockDevicePort, chipId: Int) => { val sim_blkdev = Module(new SimBlockDevice(port.params)) sim_blkdev.io.bdev <> port.io.bits sim_blkdev.io.clock := port.io.clock @@ -76,7 +76,7 @@ class WithSimBlockDevice extends HarnessBinder({ }) class WithBlockDeviceModel extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: BlockDevicePort) => { + case (th: HasHarnessInstantiators, port: BlockDevicePort, chipId: Int) => { val blkdev_model = Module(new BlockDeviceModel(16, port.params)) blkdev_model.io <> port.io.bits blkdev_model.clock := port.io.clock @@ -85,19 +85,19 @@ class WithBlockDeviceModel extends HarnessBinder({ }) class WithLoopbackNIC extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: NICPort) => { + case (th: HasHarnessInstantiators, port: NICPort, chipId: Int) => { withClock(port.io.clock) { NicLoopback.connect(port.io.bits, port.params) } } }) class WithSimNetwork extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: NICPort) => { + case (th: HasHarnessInstantiators, port: NICPort, chipId: Int) => { withClock(port.io.clock) { SimNetwork.connect(Some(port.io.bits), port.io.clock, th.harnessBinderReset.asBool) } } }) class WithSimAXIMem extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: AXI4MemPort) => { + case (th: HasHarnessInstantiators, port: AXI4MemPort, chipId: Int) => { val mem = LazyModule(new SimAXIMem(port.edge, size=port.params.master.size)(Parameters.empty)) withClock(port.io.clock) { Module(mem.module) } mem.io_axi4.head <> port.io @@ -105,13 +105,13 @@ class WithSimAXIMem extends HarnessBinder({ }) class WithBlackBoxSimMem(additionalLatency: Int = 0) extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: AXI4MemPort) => { + case (th: HasHarnessInstantiators, port: AXI4MemPort, chipId: Int) => { // TODO FIX: This currently makes each SimDRAM contain the entire memory space val memSize = port.params.master.size val memBase = port.params.master.base val lineSize = 64 // cache block size val clockFreq = port.clockFreqMHz - val mem = Module(new SimDRAM(memSize, lineSize, clockFreq, memBase, port.edge.bundle, th.p(MultiChipIdx))).suggestName("simdram") + val mem = Module(new SimDRAM(memSize, lineSize, clockFreq, memBase, port.edge.bundle, chipId)).suggestName("simdram") mem.io.clock := port.io.clock mem.io.reset := th.harnessBinderReset.asAsyncReset @@ -138,7 +138,7 @@ class WithBlackBoxSimMem(additionalLatency: Int = 0) extends HarnessBinder({ }) class WithSimAXIMMIO extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: AXI4MMIOPort) => { + case (th: HasHarnessInstantiators, port: AXI4MMIOPort, chipId: Int) => { val mmio_mem = LazyModule(new SimAXIMem(port.edge, size = port.params.size)(Parameters.empty)) withClock(port.io.clock) { Module(mmio_mem.module).suggestName("mmio_mem") } mmio_mem.io_axi4.head <> port.io.bits @@ -146,13 +146,13 @@ class WithSimAXIMMIO extends HarnessBinder({ }) class WithTieOffInterrupts extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: ExtIntPort) => { + case (th: HasHarnessInstantiators, port: ExtIntPort, chipId: Int) => { port.io := 0.U } }) class WithTieOffL2FBusAXI extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: AXI4InPort) => { + case (th: HasHarnessInstantiators, port: AXI4InPort, chipId: Int) => { port.io := DontCare port.io.bits.aw.valid := false.B port.io.bits.w.valid := false.B @@ -163,7 +163,7 @@ class WithTieOffL2FBusAXI extends HarnessBinder({ }) class WithSimJTAGDebug extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: JTAGPort) => { + case (th: HasHarnessInstantiators, port: JTAGPort, chipId: Int) => { val dtm_success = WireInit(false.B) when (dtm_success) { th.success := true.B } val jtag_wire = Wire(new JTAGIO) @@ -178,7 +178,7 @@ class WithSimJTAGDebug extends HarnessBinder({ }) class WithSimDMI extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: DMIPort) => { + case (th: HasHarnessInstantiators, port: DMIPort, chipId: Int) => { val dtm_success = WireInit(false.B) when (dtm_success) { th.success := true.B } val dtm = Module(new TestchipSimDTM()(Parameters.empty)).connect(th.harnessBinderClock, th.harnessBinderReset.asBool, port.io, dtm_success) @@ -186,7 +186,7 @@ class WithSimDMI extends HarnessBinder({ }) class WithTiedOffJTAG extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: JTAGPort) => { + case (th: HasHarnessInstantiators, port: JTAGPort, chipId: Int) => { port.io.TCK := true.B.asClock port.io.TMS := true.B port.io.TDI := true.B @@ -194,7 +194,7 @@ class WithTiedOffJTAG extends HarnessBinder({ }) class WithTiedOffDMI extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: DMIPort) => { + case (th: HasHarnessInstantiators, port: DMIPort, chipId: Int) => { port.io.dmi.req.valid := false.B port.io.dmi.req.bits := DontCare port.io.dmi.resp.ready := true.B @@ -206,7 +206,7 @@ class WithTiedOffDMI extends HarnessBinder({ // If tieoffs is specified, a list of serial portIds to tie off // If tieoffs is unspecified, ties off all serial ports class WithSerialTLTiedOff(tieoffs: Option[Seq[Int]] = None) extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SerialTLPort) if (tieoffs.map(_.contains(port.portId)).getOrElse(true)) => { + case (th: HasHarnessInstantiators, port: SerialTLPort, chipId: Int) if (tieoffs.map(_.contains(port.portId)).getOrElse(true)) => { port.io match { case io: DecoupledSerialIO => io.out.ready := false.B; io.in.valid := false.B; io.in.bits := DontCare; case io: SourceSyncSerialIO => { @@ -225,7 +225,7 @@ class WithSerialTLTiedOff(tieoffs: Option[Seq[Int]] = None) extends HarnessBinde }) class WithSimTSIOverSerialTL extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SerialTLPort) if (port.portId == 0) => { + case (th: HasHarnessInstantiators, port: SerialTLPort, chipId: Int) if (port.portId == 0) => { port.io match { case io: InternalSyncSerialIO => case io: ExternalSyncSerialIO => io.clock_in := th.harnessBinderClock @@ -244,7 +244,7 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ ram.io.ser.in <> io.out io.in <> ram.io.ser.out - val success = SimTSI.connect(ram.io.tsi, clock, th.harnessBinderReset, th.p(MultiChipIdx)) + val success = SimTSI.connect(ram.io.tsi, clock, th.harnessBinderReset, chipId) when (success) { th.success := true.B } } } @@ -253,7 +253,7 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ }) class WithSimUARTToUARTTSI extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: UARTPort) => { + case (th: HasHarnessInstantiators, port: UARTPort, chipId: Int) => { UARTAdapter.connect(Seq(port.io), baudrate=port.io.c.initBaudRate, clockFrequency=th.getHarnessBinderClockFreqHz.toInt, @@ -262,7 +262,7 @@ class WithSimUARTToUARTTSI extends HarnessBinder({ }) class WithSimTSIToUARTTSI extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: UARTTSIPort) => { + case (th: HasHarnessInstantiators, port: UARTTSIPort, chipId: Int) => { val freq = th.getHarnessBinderClockFreqHz.toInt val uart_to_serial = Module(new UARTToSerial(freq, port.io.uart.c)) val serial_width_adapter = Module(new SerialWidthAdapter(8, TSI.WIDTH)) @@ -276,27 +276,27 @@ class WithSimTSIToUARTTSI extends HarnessBinder({ }) class WithTraceGenSuccess extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: SuccessPort) => { + case (th: HasHarnessInstantiators, port: SuccessPort, chipId: Int) => { when (port.io) { th.success := true.B } } }) class WithCospike extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: TracePort) => { + case (th: HasHarnessInstantiators, port: TracePort, chipId: Int) => { port.io.traces.zipWithIndex.map(t => SpikeCosim(t._1, t._2, port.cosimCfg)) } }) class WithCustomBootPinPlusArg extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: CustomBootPort) => { + case (th: HasHarnessInstantiators, port: CustomBootPort, chipId: Int) => { val pin = PlusArg("custom_boot_pin", width=1) port.io := pin } }) class WithClockFromHarness extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: ClockPort) => { + case (th: HasHarnessInstantiators, port: ClockPort, chipId: Int) => { // DOC include start: HarnessClockInstantiatorEx port.io := th.harnessClockInstantiator.requestClockMHz(s"clock_${port.freqMHz}MHz", port.freqMHz) // DOC include end: HarnessClockInstantiatorEx @@ -304,7 +304,7 @@ class WithClockFromHarness extends HarnessBinder({ }) class WithResetFromHarness extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: ResetPort) => { + case (th: HasHarnessInstantiators, port: ResetPort, chipId: Int) => { port.io := th.referenceReset.asAsyncReset } }) diff --git a/generators/chipyard/src/main/scala/harness/HasHarnessInstantiators.scala b/generators/chipyard/src/main/scala/harness/HasHarnessInstantiators.scala index 35331715..b8674623 100644 --- a/generators/chipyard/src/main/scala/harness/HasHarnessInstantiators.scala +++ b/generators/chipyard/src/main/scala/harness/HasHarnessInstantiators.scala @@ -89,7 +89,7 @@ trait HasHarnessInstantiators { withClockAndReset (harnessBinderClock, harnessBinderReset) { lazyDuts.zipWithIndex.foreach { case (d: HasChipyardPorts, i: Int) => { - ApplyHarnessBinders(this, d.ports)(chipParameters(i)) + ApplyHarnessBinders(this, d.ports, i)(chipParameters(i)) } case _ => } diff --git a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala index 9cd6afd2..4f32880e 100644 --- a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala @@ -38,10 +38,10 @@ class MultiHarnessBinder[T <: Port[_], S <: HasHarnessInstantiators]( )(implicit tag0: ClassTag[T], tag1: ClassTag[S]) extends Config((site, here, up) => { // Override any HarnessBinders for chip0/chip1 case MultiChipParameters(`chip0`) => new Config( - new HarnessBinder({case (th: S, port: T) if chip0portFn(port) => }) ++ up(MultiChipParameters(chip0)) + new HarnessBinder({case (th: S, port: T, chipId: Int) if chip0portFn(port) => }) ++ up(MultiChipParameters(chip0)) ) case MultiChipParameters(`chip1`) => new Config( - new HarnessBinder({case (th: S, port: T) if chip1portFn(port) => }) ++ up(MultiChipParameters(chip1)) + new HarnessBinder({case (th: S, port: T, chipId: Int) if chip1portFn(port) => }) ++ up(MultiChipParameters(chip1)) ) // Set the multiharnessbinder key case MultiHarnessBinders(`chip0`, `chip1`) => up(MultiHarnessBinders(chip0, chip1)) :+ { diff --git a/generators/chipyard/src/main/scala/harness/package.scala b/generators/chipyard/src/main/scala/harness/package.scala index d0366c55..d49c1119 100644 --- a/generators/chipyard/src/main/scala/harness/package.scala +++ b/generators/chipyard/src/main/scala/harness/package.scala @@ -6,6 +6,6 @@ import scala.collection.immutable.ListMap package object harness { import chipyard.iobinders.Port - type HarnessBinderFunction = PartialFunction[(HasHarnessInstantiators, Port[_]), Unit] + type HarnessBinderFunction = PartialFunction[(HasHarnessInstantiators, Port[_], Int), Unit] type MultiHarnessBinderFunction = (HasHarnessInstantiators, Seq[Port[_]], Seq[Port[_]]) => Unit } diff --git a/generators/firechip/src/main/scala/BridgeBinders.scala b/generators/firechip/src/main/scala/BridgeBinders.scala index 1cb365bd..bd662a27 100644 --- a/generators/firechip/src/main/scala/BridgeBinders.scala +++ b/generators/firechip/src/main/scala/BridgeBinders.scala @@ -67,7 +67,7 @@ class WithFireSimIOCellModels extends Config((site, here, up) => { }) class WithTSIBridgeAndHarnessRAMOverSerialTL extends HarnessBinder({ - case (th: FireSim, port: SerialTLPort) => { + case (th: FireSim, port: SerialTLPort, chipId: Int) => { port.io match { case io: ExternalSyncSerialIO => { io.clock_in := th.harnessBinderClock @@ -78,8 +78,8 @@ class WithTSIBridgeAndHarnessRAMOverSerialTL extends HarnessBinder({ // This assumes that: // If ExtMem for the target is defined, then FASED bridge will be attached // If FASED bridge is attached, loadmem widget is present - val hasMainMemory = th.chipParameters(th.p(MultiChipIdx))(ExtMem).isDefined - val mainMemoryName = Option.when(hasMainMemory)(MainMemoryConsts.globalName(th.p(MultiChipIdx))) + val hasMainMemory = th.chipParameters(chipId)(ExtMem).isDefined + val mainMemoryName = Option.when(hasMainMemory)(MainMemoryConsts.globalName(chipId)) TSIBridge(th.harnessBinderClock, ram.io.tsi.get, mainMemoryName, th.harnessBinderReset.asBool)(th.p) } } @@ -87,26 +87,26 @@ class WithTSIBridgeAndHarnessRAMOverSerialTL extends HarnessBinder({ }) class WithNICBridge extends HarnessBinder({ - case (th: FireSim, port: NICPort) => { + case (th: FireSim, port: NICPort, chipId: Int) => { NICBridge(port.io.clock, port.io.bits)(th.p) } }) class WithUARTBridge extends HarnessBinder({ - case (th: FireSim, port: UARTPort) => + case (th: FireSim, port: UARTPort, chipId: Int) => val uartSyncClock = th.harnessClockInstantiator.requestClockMHz("uart_clock", port.freqMHz) UARTBridge(uartSyncClock, port.io, th.harnessBinderReset.asBool, port.freqMHz)(th.p) }) class WithBlockDeviceBridge extends HarnessBinder({ - case (th: FireSim, port: BlockDevicePort) => { + case (th: FireSim, port: BlockDevicePort, chipId: Int) => { BlockDevBridge(port.io.clock, port.io.bits, th.harnessBinderReset.asBool) } }) class WithFASEDBridge extends HarnessBinder({ - case (th: FireSim, port: AXI4MemPort) => { + case (th: FireSim, port: AXI4MemPort, chipId: Int) => { val nastiKey = NastiParameters(port.io.bits.r.bits.data.getWidth, port.io.bits.ar.bits.addr.getWidth, port.io.bits.ar.bits.id.getWidth) @@ -114,24 +114,24 @@ class WithFASEDBridge extends HarnessBinder({ CompleteConfig(th.p(firesim.configs.MemModelKey), nastiKey, Some(AXI4EdgeSummary(port.edge)), - Some(MainMemoryConsts.globalName(th.p(MultiChipIdx)))))(th.p) + Some(MainMemoryConsts.globalName(chipId))))(th.p) } }) class WithTracerVBridge extends HarnessBinder({ - case (th: FireSim, port: TracePort) => { + case (th: FireSim, port: TracePort, chipId: Int) => { port.io.traces.map(tileTrace => TracerVBridge(tileTrace)(th.p)) } }) class WithCospikeBridge extends HarnessBinder({ - case (th: FireSim, port: TracePort) => { + case (th: FireSim, port: TracePort, chipId: Int) => { port.io.traces.zipWithIndex.map(t => CospikeBridge(t._1, t._2, port.cosimCfg)) } }) class WithSuccessBridge extends HarnessBinder({ - case (th: FireSim, port: SuccessPort) => { + case (th: FireSim, port: SuccessPort, chipId: Int) => { GroundTestBridge(th.harnessBinderClock, port.io)(th.p) } }) From 86f028ac783dd8327efd0283be68788afc21e7d0 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 27 Dec 2023 07:55:00 -0800 Subject: [PATCH 035/105] Update SimTSI API in spiketile --- generators/chipyard/src/main/resources/csrc/spiketile.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/generators/chipyard/src/main/resources/csrc/spiketile.cc b/generators/chipyard/src/main/resources/csrc/spiketile.cc index 5483cf6b..dd02d55e 100644 --- a/generators/chipyard/src/main/resources/csrc/spiketile.cc +++ b/generators/chipyard/src/main/resources/csrc/spiketile.cc @@ -12,7 +12,7 @@ #if __has_include("spiketile_tsi.h") #define SPIKETILE_HTIF_TSI -extern htif_t* tsi; +extern std::map tsis; #endif #if __has_include("spiketile_dtm.h") #define SPIKETILE_HTIF_DTM @@ -346,8 +346,8 @@ extern "C" void spike_tile(int hartid, char* isa, chipyard_simif_t* simif = tile->simif; processor_t* proc = tile->proc; #if defined(SPIKETILE_HTIF_TSI) - if (!simif->htif && tsi) - simif->htif = tsi; + if (!simif->htif && tsis.size() > 0 && tsis[0]) + simif->htif = tsis[0]; #endif #if defined(SPIKETILE_HTIF_DTM) if (!simif->htif && dtm) From cce5122fd22dacda35dd97bb107c4a6cdee8322b Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 27 Dec 2023 12:05:26 -0800 Subject: [PATCH 036/105] Bump testchipip to fix memory leak --- generators/testchipip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/testchipip b/generators/testchipip index e1fc05b0..b3b74435 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit e1fc05b09283524fc09bee7d3ff351b6f83825ca +Subproject commit b3b744353875056cbe865d5b767e488713f4c7f1 From 638d40e988e5b39f02614b9ea03f1fe373580b17 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 27 Dec 2023 12:53:38 -0800 Subject: [PATCH 037/105] Remove esp-conda-env from CI conda envs This was unused --- .github/actions/create-conda-env/action.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/actions/create-conda-env/action.yml b/.github/actions/create-conda-env/action.yml index e29a06e9..b9fd6066 100644 --- a/.github/actions/create-conda-env/action.yml +++ b/.github/actions/create-conda-env/action.yml @@ -11,7 +11,6 @@ runs: echo "Creating a conda environment for each toolchain with the toolchain installed" conda activate base 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 --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 echo "Add extra toolchain collateral + CIRCT to RISC-V install area" @@ -25,14 +24,5 @@ runs: -x ./conda-reqs/circt.json \ -g ${{ github.token }} conda deactivate - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-esp-tools - ./scripts/build-toolchain-extra.sh esp-tools -p $CONDA_PREFIX/esp-tools - ./tools/install-circt/bin/download-release-or-nightly-circt.sh \ - -f circt-full-shared-linux-x64.tar.gz \ - -i $CONDA_PREFIX \ - -v version-file \ - -x ./conda-reqs/circt.json \ - -g ${{ github.token }} - conda deactivate fi shell: bash -leo pipefail {0} From 9529c13610bd1f698c51bd00bc868543669b346c Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 29 Dec 2023 18:01:14 -0800 Subject: [PATCH 038/105] Add generators/ submodule status check --- common.mk | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/common.mk b/common.mk index f525b526..d52af1a0 100644 --- a/common.mk +++ b/common.mk @@ -118,7 +118,7 @@ $(BOOTROM_TARGETS): $(build_dir)/bootrom.%.img: $(TESTCHIP_RSRCS_DIR)/testchipip ######################################################################################### # compile scala jars ######################################################################################### -$(CHIPYARD_CLASSPATH_TARGETS) &: $(CHIPYARD_SCALA_SOURCES) $(SCALA_BUILDTOOL_DEPS) $(CHIPYARD_VLOG_SOURCES) +$(CHIPYARD_CLASSPATH_TARGETS) &: check-submodule-status $(CHIPYARD_SCALA_SOURCES) $(SCALA_BUILDTOOL_DEPS) $(CHIPYARD_VLOG_SOURCES) mkdir -p $(dir $@) $(call run_sbt_assembly,$(SBT_PROJECT),$(CHIPYARD_CLASSPATH)) @@ -451,6 +451,15 @@ find-config-fragments: help: @for line in $(HELP_LINES); do echo "$$line"; done +######################################################################################### +# Check submodule status +######################################################################################### + +.PHONY: check-submodule-status +check-submodule-status: + echo "Checking all submodules in generators/ are initialized. Uninitialized submodules will be displayed" + ! git submodule status $(base_dir)/generators | grep ^- + ######################################################################################### # Implicit rule handling ######################################################################################### From 8600640a40c232717acf6530c373a226c53a9fa8 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 28 Dec 2023 07:36:53 -0800 Subject: [PATCH 039/105] Bump verilator to v5.018 --- conda-reqs/chipyard.yaml | 6 +- ...irements-esp-tools-linux-64.conda-lock.yml | 664 +++++++++--------- ...ements-riscv-tools-linux-64.conda-lock.yml | 660 ++++++++--------- sims/verilator/Makefile | 7 +- 4 files changed, 680 insertions(+), 657 deletions(-) diff --git a/conda-reqs/chipyard.yaml b/conda-reqs/chipyard.yaml index cc63f613..564f05e3 100644 --- a/conda-reqs/chipyard.yaml +++ b/conda-reqs/chipyard.yaml @@ -23,8 +23,8 @@ dependencies: # bundle FireSim driver with deps into installer shell-script - constructor - - gcc<13 - - gxx<13 + - gcc<12 + - gxx<12 - sysroot_linux-64=2.17 # needed to match pre-built CI XRT glibc version - conda-gcc-specs - binutils @@ -88,7 +88,7 @@ dependencies: - graphviz - expect - dtc - - verilator==5.008 + - verilator==5.018 - screen - elfutils - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index f5fc3fbf..f61642e8 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/abejgonza/cy-fixes-1/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-fixes-1/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml +# conda-lock -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,12 +21,12 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: db7fdb1eff05509c5804999acd40af2d5f212a2f7d2eca69702241bfbebef70d + linux-64: ff6d08e475547b935387001d63d60acbd5f49e2b4fe52cca99a819e4d97a1861 platforms: - linux-64 sources: - - /scratch/abejgonza/cy-fixes-1/conda-reqs/chipyard.yaml - - /scratch/abejgonza/cy-fixes-1/conda-reqs/esp-tools.yaml + - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml + - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/esp-tools.yaml package: - category: main dependencies: {} @@ -141,25 +141,25 @@ package: - category: main dependencies: {} hash: - md5: 1d7f6d1825bd6bf21ee04336ec87a777 - sha256: 92bec8177aacfcd49a8e5bda49c10e4b77e239e9d58a0ca4ef31344a2be1fc82 + md5: 2390dcf3fd78c2c426f1c5b6664fa4b7 + sha256: 12904b795e5cb877ce6a7bb30feba9bfbe1dd38bd5f520e6af8d89a51bb6b6a6 manager: conda name: libgcc-devel_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-12.3.0-h8bca6fd_103.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 - category: main dependencies: {} hash: - md5: 3f784d2c059e960156d1ab3858cbf200 - sha256: 8a78b0ab9f845a90d3b66a5d83e4e1131a236d1c5badd3660fb7c12daac796bf + md5: be10a739476d68c464101836773463f1 + sha256: 4957848888d7a8cdc77c605357e759f0c9b08c18510f08a205f567666602ca2b manager: conda name: libstdcxx-devel_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-12.3.0-h8bca6fd_103.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 - category: main dependencies: {} hash: @@ -174,14 +174,14 @@ package: - category: main dependencies: {} hash: - md5: 5b874a5f133b1bd0c5f227eed4758fdb - sha256: 9aa01c1102811cae6f60efa9d17f8f44365791d53a712dce3fe9a0488b6f6c2f + md5: ca8ce27415e2e304ec35b3de2af12364 + sha256: b6f56d6c0a95dbd27bdcd5c666781c58c037850cebbaf62536a4fdf2bdcf2a2e manager: conda name: open_pdks.sky130a optional: false platform: linux-64 - url: https://conda.anaconda.org/litex-hub/noarch/open_pdks.sky130a-1.0.458_0_g8c68aca-20231104_052339.tar.bz2 - version: 1.0.458_0_g8c68aca + url: https://conda.anaconda.org/litex-hub/noarch/open_pdks.sky130a-1.0.460_0_gfdb1863-20231104_052339.tar.bz2 + version: 1.0.460_0_gfdb1863 - category: main dependencies: {} hash: @@ -196,14 +196,14 @@ package: - category: main dependencies: {} hash: - md5: 939e3e74d8be4dac89ce83b20de2492a - sha256: 0449138224adfa125b220154408419ec37c06b0b49f63c5954724325903ecf55 + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d manager: conda name: tzdata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda - version: 2023c + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + version: 2023d - category: main dependencies: font-ttf-dejavu-sans-mono: '' @@ -371,14 +371,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: d459949bc10f64dee1595c176c2e6291 - sha256: 6b0eee827bade11c2964a05867499a50ad2a9d1b14dfe18fb867a3bc9357f56f + md5: f5842b88e9cbfa177abfaeacd457a45d + sha256: b68b0611d1c9d0222b56d5fe3d634e7a26979c3aef30f5f48b1593e7249e8f7a manager: conda name: c-ares optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.23.0-hd590300_0.conda - version: 1.23.0 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.24.0-hd590300_0.conda + version: 1.24.0 - category: main dependencies: libgcc-ng: '>=12' @@ -567,15 +567,15 @@ package: version: '1.18' - category: main dependencies: - libgcc-ng: '>=7.5.0' + libgcc-ng: '>=12' hash: - md5: 6f8720dff19e17ce5d48cfe7f3d2f0a3 - sha256: 8c9635aa0ea28922877dc96358f9547f6a55fc7e2eb75a556b05f1725496baf9 + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 manager: conda name: libev optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda version: '4.33' - category: main dependencies: @@ -627,15 +627,15 @@ package: version: 13.2.0 - category: main dependencies: - libgcc-ng: '>=10.3.0' + libgcc-ng: '>=12' hash: - md5: b62b52da46c39ee2bc3c162ac7f1804d - sha256: 6a81ebac9f1aacdf2b4f945c87ad62b972f0f69c8e0981d68e111739e6720fd7 + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 manager: conda name: libiconv optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-h166bdaf_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda version: '1.17' - category: main dependencies: @@ -663,16 +663,16 @@ package: version: 2.0.1 - category: main dependencies: - libgcc-ng: '>=12.3.0' + libgcc-ng: '>=11.4.0' hash: - md5: eda05ab0db8f8490945fd99244183e3a - sha256: 903c5786e0379da751e297dbe603be19b030994bac3caa74b3a596c1858c0296 + md5: e6f89a7be0ec320c1b1746971045b0e7 + sha256: c4c5c87f5c717e83299740f6a20393f9a131f05e2e9df63faafd6bb71dc58346 manager: conda name: libsanitizer optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.3.0-h0f45ef3_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-11.4.0-h4dcbe23_3.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -757,6 +757,18 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.1-hd590300_0.conda version: 1.3.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + manager: conda + name: libxcrypt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + version: 4.4.36 - category: main dependencies: libgcc-ng: '>=12' @@ -1128,14 +1140,14 @@ package: aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' hash: - md5: fe9b3bb0a3961dfb12506d865d818c00 - sha256: 8f3b8f8b7b1f021eac80018d03ff24e2b390627b53eb17f07476f38ea67f4c56 + md5: a4a83424ad4eab023c6e5b4adf264006 + sha256: 8696e7023fde7c4588db8aedd08ffc0b4041c8449bd9edd50f237534cbcfac93 manager: conda name: aws-c-sdkutils optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.12-h7f92143_6.conda - version: 0.1.12 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.13-h7f92143_0.conda + version: 0.1.13 - category: main dependencies: aws-c-common: '>=0.9.10,<0.9.11.0a0' @@ -1219,34 +1231,34 @@ package: - category: main dependencies: binutils_impl_linux-64: '>=2.39' - libgcc-devel_linux-64: 12.3.0 h8bca6fd_103 - libgcc-ng: '>=12.3.0' - libgomp: '>=12.3.0' - libsanitizer: 12.3.0 h0f45ef3_3 - libstdcxx-ng: '>=12.3.0' + libgcc-devel_linux-64: 11.4.0 h922705a_103 + libgcc-ng: '>=11.4.0' + libgomp: '>=11.4.0' + libsanitizer: 11.4.0 h4dcbe23_3 + libstdcxx-ng: '>=11.4.0' sysroot_linux-64: '' hash: - md5: 71c68ea75afe6ac7a9c62c08f5d67a5a - sha256: ab2ea2890f43d45dc49ff59a3c35348e675ba728e088957209fa8f0e40a498e5 + md5: b17749a6ae62cf9a5eafd96a6bcaad0e + sha256: 24d34853611b8758c40fa9d6a0d0b738312f51af9fed8fa6c6422f15ec475763 manager: conda name: gcc_impl_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.3.0-he2b93b0_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=12' oniguruma: '>=6.9.9,<6.10.0a0' hash: - md5: c29cbd5ee663325f9bed9a2b2488ef3a - sha256: e994d4e162a882ed9706f1ce992b5c33419ef425eafcd321252a6f94d3a05ab8 + md5: 80814f94713e35df60aad6c4b235de87 + sha256: a04a1603e405ea9ae5c4a492a8e361086cb441a91ef7299bd4bf3eca0b485b6d manager: conda name: jq optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7-hd590300_0.conda - version: '1.7' + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + version: 1.7.1 - category: main dependencies: libbrotlicommon: 1.1.0 hd590300_1 @@ -1327,20 +1339,20 @@ package: version: '5.39' - category: main dependencies: - c-ares: '>=1.21.0,<2.0a0' - libev: '>=4.33,<4.34.0a0' + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' hash: - md5: 9b13d5ee90fc9f09d54fd403247342b4 - sha256: 151b18e4f92dcca263a6d23e4beb0c4e2287aa1c7d0587ff71ef50035ed34aca + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb manager: conda name: libnghttp2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda version: 1.58.0 - category: main dependencies: @@ -1485,15 +1497,15 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libnsl: '>=2.0.0,<2.1.0a0' + libxcrypt: '>=4.4.36' hash: - md5: 3e785bff761095eb7f8676f4694bd1b1 - sha256: 6e18c1488d191cb1a43a483f44fffa75668779a29927319b4adeb10da12ad06b + md5: f2cfec9406850991f4e3d960cc9e3321 + sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 manager: conda name: perl optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-4_hd590300_perl5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda version: 5.32.1 - category: main dependencies: @@ -1524,16 +1536,16 @@ package: - category: main dependencies: libgcc-ng: '>=12' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' hash: - md5: 04b4845b9e9b5a0ee6eba013ecdbbddb - sha256: 4c00411d49fefc6a53167c3120e386b3f35510544a44d2e647615b510a622f29 + md5: 3d1b58d2664d96f9fbc0afe5e1d04632 + sha256: f6cc2bdcb5d809bbaae218e03bdefef4a309d1fc7ccc9444fda59bd4553a83f8 manager: conda name: s2n optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.56-h06160fa_0.conda - version: 1.3.56 + url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.0-h06160fa_0.conda + version: 1.4.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -1646,15 +1658,15 @@ package: aws-c-cal: '>=0.6.9,<0.6.10.0a0' aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - s2n: '>=1.3.56,<1.3.57.0a0' + s2n: '>=1.4.0,<1.4.1.0a0' hash: - md5: d15f4dfeef1d65de9a5283c984981776 - sha256: ca5094093d0f2de9b0b2bd4697088565d0ef930364df8a67c8b79172dc9c209d + md5: c930336aa72995f1b5459b51df3ba841 + sha256: 7426f7444cd43cd7a649670c7330c163b40f40aa832e82be873d9de91e49b05e manager: conda name: aws-c-io optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he14a76f_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he0cd244_2.conda version: 0.13.36 - category: main dependencies: @@ -1699,16 +1711,16 @@ package: version: 1.1.0 - category: main dependencies: - gcc_impl_linux-64: '>=12.3.0,<12.3.1.0a0' + gcc_impl_linux-64: '>=11.4.0,<11.4.1.0a0' hash: - md5: 93700ef8b49aebbfb0bf40e0b1448834 - sha256: f361a244a51874065b4d9a2d27089647e7966050abb8a76cad57471776b8ba19 + md5: 42003d7074d4daaf287d19987cd927bf + sha256: 2c30ddc6cb51a03fb5f671f55eaabcb9208d6ce701e6de2234518eec43a6f2d1 manager: conda name: conda-gcc-specs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-12.3.0-h83fac38_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-11.4.0-h240829a_3.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -1752,16 +1764,16 @@ package: version: 2.12.1 - category: main dependencies: - gcc_impl_linux-64: 12.3.0.* + gcc_impl_linux-64: 11.4.0.* hash: - md5: e2f2f81f367e14ca1f77a870bda2fe59 - sha256: 1bbf077688822993c39518056fb43d83ff0920eb42fef11e8714d2a298cc0f27 + md5: 0c8d100583c5fd6d20cd5307aaedaf0d + sha256: b515e9222a8af974024b02c7265bed8e4edf912707a5a8fc207cbc8bc2ac0bff manager: conda name: gcc optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc-12.3.0-h8d2909c_2.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-11.4.0-h7baecda_2.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=12' @@ -1781,18 +1793,18 @@ package: version: 3.7.9 - category: main dependencies: - gcc_impl_linux-64: 12.3.0 he2b93b0_3 - libstdcxx-devel_linux-64: 12.3.0 h8bca6fd_103 + gcc_impl_linux-64: 11.4.0 h7aa1c59_3 + libstdcxx-devel_linux-64: 11.4.0 h922705a_103 sysroot_linux-64: '' hash: - md5: b6ce9868fc6c65a18c22fd983e2d7e6f - sha256: 63e75858b60fe6d7227cd6026ed7ad0a8df4c5592454f752ff7ffc1e283e66a7 + md5: dbee4be21eb6dbf596afddf60ff120bf + sha256: 424d9989ea82e6777e569de6873cc56229a8982e274409c344473ad89bb7bbb7 manager: conda name: gxx_impl_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-12.3.0-he2b93b0_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 - category: main dependencies: keyutils: '>=1.6.1,<2.0a0' @@ -1839,14 +1851,14 @@ package: libzlib: '>=1.2.13,<1.3.0a0' pcre2: '>=10.42,<10.43.0a0' hash: - md5: 70052d6c1e84643e30ffefb21ab6950f - sha256: 4e6fa28002f834cfc30a64792e95c1701d835cc3d3a4bb18d6e8d16bb8aba05b + md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 + sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 manager: conda name: libglib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.1-h783c2da_1.conda - version: 2.78.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda + version: 2.78.3 - category: main dependencies: libgcc-ng: '>=12' @@ -1935,24 +1947,25 @@ package: ld_impl_linux-64: '>=2.36.1' libffi: '>=3.4,<4.0a0' libgcc-ng: '>=12' - libnsl: '>=2.0.0,<2.1.0a0' - libsqlite: '>=3.43.0,<4.0a0' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.44.2,<4.0a0' libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' libzlib: '>=1.2.13,<1.3.0a0' ncurses: '>=6.4,<7.0a0' - openssl: '>=3.1.2,<4.0a0' + openssl: '>=3.2.0,<4.0a0' readline: '>=8.2,<9.0a0' - tk: '>=8.6.12,<8.7.0a0' + tk: '>=8.6.13,<8.7.0a0' tzdata: '' xz: '>=5.2.6,<6.0a0' hash: - md5: 3ede353bc605068d9677e700b1847382 - sha256: 18db2220328abee8eb19f51c8df88bcfdf3a557b8181e7f5bda291deb067e40f + md5: 255a7002aeec7a067ff19b545aca6328 + sha256: c0e800d255a771926007043d2859cbbbdb1387477ec813f085640c8887b391a2 manager: conda name: python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.18-h0755675_0_cpython.conda + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.18-h0755675_1_cpython.conda version: 3.9.18 - category: main dependencies: @@ -2061,14 +2074,14 @@ package: dependencies: python: '>=3.8' hash: - md5: c629a13439d80b37c6a946b098c4ac2b - sha256: 62c3486961e43fb9b495b7854f48fea9b486b2176a9629c6faf80c445543b1aa + md5: 0801250abb3d5b86010e20324f0dde94 + sha256: af221f16a23feea4d91db75b35c5720c9c448814af815fe6d45c5627eb75e897 manager: conda name: argcomplete optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.1.6-pyhd8ed1ab_0.conda - version: 3.1.6 + url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.2.1-pyhd8ed1ab_0.conda + version: 3.2.1 - category: main dependencies: libgcc-ng: '>=12' @@ -2133,14 +2146,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: be773757df1f0a5f7c783d6c56666ee7 - sha256: 6c1ea83b3a9f7d7ae5681cbd2eb6d4cc770e103c86f303ab3c568a7249383561 + md5: 171d33a4f1694713e0646dbc98e7f7cf + sha256: 72c5a63962463b0d7c7c95db33266c8dbcdd72cd8ae9ca81d42f253f9d80cdf3 manager: conda name: bcrypt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/bcrypt-4.1.1-py39h9fdd4d6_0.conda - version: 4.1.1 + url: https://conda.anaconda.org/conda-forge/linux-64/bcrypt-4.1.2-py39h9fdd4d6_0.conda + version: 4.1.2 - category: main dependencies: python: '>=3.8' @@ -2155,16 +2168,16 @@ package: version: 1.7.0 - category: main dependencies: - python: ==2.7.*|>=3.7 + python: 2.7.*|>=3.7 hash: - md5: 033eb25fffd222aceeca6d58cd953680 - sha256: 4ff828cceb8f55cb26d23b1a4c174d22c7cd92350221724bcaf2d6632e33fdee + md5: 56febe65315cc388a5d20adf2b39a74d + sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 manager: conda name: boltons optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.0.0-pyhd8ed1ab_0.conda - version: 23.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.1.1-pyhd8ed1ab_0.conda + version: 23.1.1 - category: main dependencies: brotli-bin: 1.1.0 hd590300_1 @@ -2322,14 +2335,14 @@ package: dependencies: python: 2.7|>=3.6 hash: - md5: 12d8aae6994f342618443a8f05c652a0 - sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + md5: db16c66b759a64dc5183d69cc3745a52 + sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e manager: conda name: distlib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda - version: 0.3.7 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + version: 0.3.8 - category: main dependencies: python: '>=3.6' @@ -2418,26 +2431,26 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: 5ccdccec4ed5576ae7382e33cd343dc2 - sha256: f1d0981597be0e7f78c4454517e16e09f0c7290af30e0e705a5a6a4952cf7bdd + md5: 194fa03bd6b1054b8de8d48d335e45b2 + sha256: a011b537e04ef72d85ff47d7d60ebc815c457a2790a6ab8d77a0956db78b08e1 manager: conda name: frozenlist optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.0-py39hd1e30aa_1.conda - version: 1.4.0 + url: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.1-py39hd1e30aa_0.conda + version: 1.4.1 - category: main dependencies: python: '>=3.8' hash: - md5: 5b86cf1ceaaa9be2ec4627377e538db1 - sha256: 1bbdfadb93cc768252fd207dca406cde928f9a81ff985ea1760b6539c55923e6 + md5: bf40f2a8835b78b1f91083d306b493d2 + sha256: 9269a5464698e0fde1f9c78544552817370c26df86e2a5a7518544b6a55ae8ee manager: conda name: fsspec optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.10.0-pyhca7485f_0.conda - version: 2023.10.0 + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.12.2-pyhca7485f_0.conda + version: 2023.12.2 - category: main dependencies: libgcc-ng: '>=12' @@ -2488,17 +2501,17 @@ package: version: 0.7.6 - category: main dependencies: - gcc: 12.3.0.* - gxx_impl_linux-64: 12.3.0.* + gcc: 11.4.0.* + gxx_impl_linux-64: 11.4.0.* hash: - md5: 673bac341be6b90ef9e8abae7e52ca46 - sha256: 5fd65768fb602fd21466831c96e7a2355a4df692507abbd481aa65a777151d85 + md5: 4821dd86fa505a0d5b6aacd28ed8291f + sha256: e07c2da262b374fc9aad422a4927660ef96aec6d1445c7673a6ba58a445523a5 manager: conda name: gxx optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx-12.3.0-h8d2909c_2.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-11.4.0-h7baecda_2.conda + version: 11.4.0 - category: main dependencies: __unix: '' @@ -2630,14 +2643,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: 3bb122939197cec97f376a56e8dce6ea - sha256: ec6eec84b5279ea1d099a8a919ff76c9418ebe8cd4302b05fe22a58651fb0e55 + md5: c078f60a823037c75efeb602d2496e3b + sha256: fd3b9387f1edef65c6b82c887e4510ec188f2e2f61d7e9f72795c0bb00dccaa9 manager: conda name: lazy-object-proxy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.9.0-py39hd1e30aa_1.conda - version: 1.9.0 + url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.10.0-py39hd1e30aa_0.conda + version: 1.10.0 - category: main dependencies: libgcc-ng: '>=12' @@ -2946,6 +2959,18 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda version: 1.3.10 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + manager: conda + name: platformdirs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + version: 4.1.0 - category: main dependencies: python: '>=3.8' @@ -2977,14 +3002,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: c2e412b0f11e5983bcfc35d9beb91ecb - sha256: 02df40691ebe8632ad18ca641c70b74302b538922ccc86c3afee5de83f4298f0 + md5: 34d2731732bc7de6269657d5d9fd6e79 + sha256: 1f5e5d4ce98df5dbfc8478a3339e3848891fed2f26405676ee39010777245894 manager: conda name: psutil optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.5-py39hd1e30aa_1.conda - version: 5.9.5 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.7-py39hd1e30aa_0.conda + version: 5.9.7 - category: main dependencies: python: '!=3.0,!=3.1,!=3.2,!=3.3,!=3.4,!=3.5' @@ -3013,7 +3038,7 @@ package: version: 0.6.6 - category: main dependencies: - python: ==2.7.*|>=3.4 + python: 2.7.*|>=3.4 hash: md5: 076becd9e05608f8dc72757d5f3a91ff sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc @@ -3088,14 +3113,14 @@ package: dependencies: python: '>=3.6' hash: - md5: 2590495f608a63625e165915fb4e2e34 - sha256: 0108888507014fb24573c31e4deceb61c99e63d37776dddcadd7c89b2ecae0b6 + md5: c79cacf8a06a51552fc651652f170208 + sha256: d2381037bf362c78654a8ece0e0f54715e09113448ddd7ed837f688536cbf176 manager: conda name: python-tzdata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda - version: '2023.3' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.4-pyhd8ed1ab_0.conda + version: '2023.4' - category: main dependencies: python: '>=3.6' @@ -3142,28 +3167,28 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: 4f76a945255f9bae15ca3979e9b129ea - sha256: 4eed688717096aadabbfb29039d80eb47b659a10a9ec298bef3ff3bd1286a703 + md5: 775fa081f76b6e6197bd12bd28856546 + sha256: 9dc5eb83c637131caac6cdc6e48775712475eb02820d0eba30c10605cfde0f89 manager: conda name: regex optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/regex-2023.10.3-py39hd1e30aa_0.conda - version: 2023.10.3 + url: https://conda.anaconda.org/conda-forge/linux-64/regex-2023.12.25-py39hd1e30aa_0.conda + version: 2023.12.25 - category: main dependencies: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: 75f11bc5ee4f3cf1d12bc17066b6a367 - sha256: f7e4dc74a7c8928edd8bf63316f09443943faf723487310c0f4ab76a5c62a5e6 + md5: d6358075cf3adab3d41db038560943ad + sha256: 92ffa0aea7f984a2fab97d517aa54f8370ca45f8bdd9bbdb245cd577f8e68c8c manager: conda name: rpds-py optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.13.2-py39h9fdd4d6_0.conda - version: 0.13.2 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.16.2-py39h9fdd4d6_0.conda + version: 0.16.2 - category: main dependencies: libgcc-ng: '>=12' @@ -3340,14 +3365,14 @@ package: dependencies: python: '>=3.8' hash: - md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 - sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 manager: conda name: typing_extensions optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda - version: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + version: 4.9.0 - category: main dependencies: libgcc-ng: '>=12' @@ -3373,14 +3398,14 @@ package: perl: '' python: '' hash: - md5: efb0e7909f1a41159856e688e216bd26 - sha256: c24f5fc704ee3c0737456e7a4b8f75114b25a51812c6f801a22ed43652e0b211 + md5: 6ecc6f19e3a0661c096d0e84015c8122 + sha256: 582ae4513d3ef87d4b0c5d53a3a691575de2aabe8cc5a5554bb1db5bcd6a40b4 manager: conda name: verilator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.008-h514fc35_1.conda - version: '5.008' + url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.018-h4f9daa6_0.conda + version: '5.018' - category: main dependencies: python: '>=3.8' @@ -3409,14 +3434,14 @@ package: dependencies: python: '>=3.8' hash: - md5: bdb77b28cf16deac0eef431a068320e8 - sha256: df45b89862edcd7cd5180ec7b8c0c0ca9fb4d3f7d49ddafccdc76afcf50d8da6 + md5: 50ad31e07d706aae88b14a4ac9c73f23 + sha256: d9b537d5b7c5aa7a02a4ce4c6b755e458bd8083b67752a73c92d113ccec6c10f manager: conda name: websocket-client optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.6.4-pyhd8ed1ab_0.conda - version: 1.6.4 + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.7.0-pyhd8ed1ab_0.conda + version: 1.7.0 - category: main dependencies: python: '>=3.7' @@ -3545,16 +3570,16 @@ package: aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' - aws-c-sdkutils: '>=0.1.12,<0.1.13.0a0' + aws-c-sdkutils: '>=0.1.13,<0.1.14.0a0' libgcc-ng: '>=12' hash: - md5: 65d47e98af07d5e361707dda2ce44f3a - sha256: 48c768d96b09396190b717e126d33ca68f3d2786a068af188fd16fa469cbad76 + md5: d42aebb91e28e2fee2a0218cfbff2c90 + sha256: b06ef95458fc70af4230c9c6690011235cd25288752ff7aa25492fc6d1c0e028 manager: conda name: aws-c-auth optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h5c941e0_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h538f98c_2.conda version: 0.7.8 - category: main dependencies: @@ -3577,14 +3602,14 @@ package: pytz: '' setuptools: '' hash: - md5: 3ccff479c246692468f604df9c85ef26 - sha256: 1f955c700db16f65b16c9e9c1613436480d5497970b8030b7a9ebe1620cc2147 + md5: 9669586875baeced8fc30c0826c3270e + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 manager: conda name: babel optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/babel-2.13.1-pyhd8ed1ab_0.conda - version: 2.13.1 + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda + version: 2.14.0 - category: main dependencies: fontconfig: '>=2.14.2,<3.0a0' @@ -3756,14 +3781,14 @@ package: python_abi: 3.9.* *_cp39 unicodedata2: '>=14.0.0' hash: - md5: 616bc0b442acefebdbe97c7b885d771e - sha256: f908a09abb6c53e65dcd36d6c269fae3f9d6fa41ddb90bd8382e9e8da18005a1 + md5: 01eba09d574310de928abf121f89b116 + sha256: 1678f7623f057f07760c26a81f74180355c14cb808addcfc45b7a4ea04356b8d manager: conda name: fonttools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.45.1-py39hd1e30aa_0.conda - version: 4.45.1 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py39hd1e30aa_0.conda + version: 4.47.0 - category: main dependencies: python: '>=3.7' @@ -3809,14 +3834,14 @@ package: python: '>=3.8' zipp: '>=0.5' hash: - md5: 4e9f59a060c3be52bc4ddc46ee9b6946 - sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + md5: 746623a787e06191d80a2133e5daff17 + sha256: e72d05f171f4567004c9360a838e9d5df21e23dcfeb945066b53a6e5f754b861 manager: conda name: importlib-metadata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda - version: 6.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda + version: 7.0.1 - category: main dependencies: python: '>=3.8' @@ -3955,14 +3980,14 @@ package: tomli: '>=1.1.0' typing_extensions: '>=4.1.0' hash: - md5: aa252e335aa572e5052c4bb54519f1b9 - sha256: e2ccf9efb93065d65337199d6aca1f1ee94f583d3cf78d5998ac3b261b080d1e + md5: 1a30eefd87f32b65815198dafe7d16c4 + sha256: 3f2141bc34b200258c50c3e3dd291903718d92fcf760854a4bbc189e861438df manager: conda name: mypy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.7.1-py39hd1e30aa_0.conda - version: 1.7.1 + url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.8.0-py39hd1e30aa_0.conda + version: 1.8.0 - category: main dependencies: python: 2.7|>=3.7 @@ -4005,27 +4030,14 @@ package: setuptools: '' wheel: '' hash: - md5: 2400c0b86889f43aa52067161e1fb108 - sha256: 435829a03e1c6009f013f29bb83de8b876c388820bf8cf69a7baeec25f6a3563 + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed manager: conda name: pip optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.1-pyhd8ed1ab_0.conda - version: 23.3.1 -- category: main - dependencies: - python: '>=3.7' - typing_extensions: '>=4.7.1' - hash: - md5: 6bb4ee32cd435deaeac72776c001e7ac - sha256: 67381d3f7cadca7df7699238e0dcce680ad20d7fd28804bab48611fecb084937 - manager: conda - name: platformdirs - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.0.0-pyhd8ed1ab_0.conda - version: 4.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + version: 23.3.2 - category: main dependencies: python: '>=3.7' @@ -4188,16 +4200,16 @@ package: version: 2.31.0.6 - category: main dependencies: - typing_extensions: 4.8.0 pyha770c72_0 + typing_extensions: 4.9.0 pyha770c72_0 hash: - md5: 384462e63262a527bda564fa2d9126c0 - sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + md5: c16524c1b7227dc80b36b4fa6f77cc86 + sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c manager: conda name: typing-extensions optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.8.0-hd8ed1ab_0.conda - version: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + version: 4.9.0 - category: main dependencies: brotli-python: '>=1.0.9' @@ -4232,6 +4244,21 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.0.2059-py39pl5321hb4338c2_1.conda version: 9.0.2059 +- category: main + dependencies: + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <5,>=3.9.1 + python: '>=3.8' + hash: + md5: c119653cba436d8183c27bf6d190e587 + sha256: 50827c3721a9dbf973b568709d4381add2a6552fa562f26a385c5edc16a534af + manager: conda + name: virtualenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.0-pyhd8ed1ab_0.conda + version: 20.25.0 - category: main dependencies: markupsafe: '>=2.1.1' @@ -4314,29 +4341,29 @@ package: libgcc-ng: '>=12' openssl: '>=3.2.0,<4.0a0' hash: - md5: d193ad6b5c2d47c679202afe5b69b371 - sha256: d99862ce623c68dd86225520c08bfe5ff46a0af885530a3faca4d3d54c7480bf + md5: f27f792aa83c7be3ee96d09a637a6474 + sha256: 04142edf1a574e137a9e30a4f4e9b9448e219b6f4216a782ceaed933f27852a6 manager: conda name: aws-c-s3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.3-h0448019_0.conda - version: 0.4.3 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.4-h0448019_0.conda + version: 0.4.4 - category: main dependencies: jmespath: '>=0.7.1,<2.0.0' - python: '>=3.7' + python: '>=3.8' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' hash: - md5: 352c39ba5cd9ea01996358f0748e102e - sha256: 56566ea8f3a48c24190c1dcf50681c0a84b26821c335c21b5c3c5d238e4bdb14 + md5: d6850c205e9f86502bd6a58e270e8fd5 + sha256: ad25216fd91ac9a624ffde69679c3d476c4091adad30b9169aa3486bd25e1e88 manager: conda name: botocore optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.33.5-pyhd8ed1ab_0.conda - version: 1.33.5 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: clang-format-16: 16.0.3 default_h1cdf331_2 @@ -4468,16 +4495,16 @@ package: version: 6.1.1 - category: main dependencies: - importlib-metadata: '>=6.8.0,<6.8.1.0a0' + importlib-metadata: '>=7.0.1,<7.0.2.0a0' hash: - md5: b279b07ce18058034e5b3606ba103a8b - sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + md5: 4a2f43a20fa404b998859c6a470ba316 + sha256: bc362df1d4f5a04c38dff29cd9c2d0ac584f9c4b45d3e4683ee090944a38fba4 manager: conda name: importlib_metadata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.8.0-hd8ed1ab_0.conda - version: 6.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.1-hd8ed1ab_0.conda + version: 7.0.1 - category: main dependencies: importlib_resources: '>=1.4.0' @@ -4553,16 +4580,16 @@ package: libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 - typing-extensions: '>=4.6.0' + typing-extensions: '>=4.6.0,!=4.7.0' hash: - md5: edfef0feb17faf35c3d7b6665cf30343 - sha256: 90162f949a7008c8f018e34c2a5e88add11c7c802727b2fd38a53d6e03cce7ab + md5: 26910c0ed0b85e87d5c1dd19723b2996 + sha256: 3770a69799d1366629a9944fb2eef9c15ecfd4c0d00cabee8b264d23bebf3726 manager: conda name: pydantic-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.5-py39h9fdd4d6_0.conda - version: 2.14.5 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py39h9fdd4d6_1.conda + version: 2.14.6 - category: main dependencies: cffi: '>=1.4.1' @@ -4627,14 +4654,14 @@ package: pip: '' python: '>=3.7,<4.0' hash: - md5: 1205762a36a808c0976f959caf389e8e - sha256: 0040b85370375694ae48d21af3e14471f78578fb22cd284c80da3741def0ad4a + md5: aaafd70a6934549210865f558a0eee96 + sha256: 4e695e4d83cfc4ffd557cc2bdbecc0cedb9df8831d1a415b8e8c0e5f96bc6b5f manager: conda name: types-awscrt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.19.19-pyhd8ed1ab_0.conda - version: 0.19.19 + url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.20.0-pyhd8ed1ab_0.conda + version: 0.20.0 - category: main dependencies: cffi: '' @@ -4651,21 +4678,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py39h7633fee_4.conda version: 1.0.1 -- category: main - dependencies: - distlib: <1,>=0.3.7 - filelock: <4,>=3.12.2 - platformdirs: <5,>=3.9.1 - python: '>=3.8' - hash: - md5: db990278c2c00b268eed778de44f6057 - sha256: ad661ae59c64bd73c25dfadb00c601659f4d9cafbf428e36a690075e52bac96a - manager: conda - name: virtualenv - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.7-pyhd8ed1ab_0.conda - version: 20.24.7 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -4742,21 +4754,21 @@ package: aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' aws-c-mqtt: '>=0.9.10,<0.9.11.0a0' - aws-c-s3: '>=0.4.3,<0.4.4.0a0' + aws-c-s3: '>=0.4.4,<0.4.5.0a0' aws-checksums: '>=0.1.17,<0.1.18.0a0' libgcc-ng: '>=12' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 - s2n: '>=1.3.56,<1.3.57.0a0' + s2n: '>=1.4.0,<1.4.1.0a0' hash: - md5: b06d5b1342885fa70ce1371b695cc038 - sha256: b30260ea6484450ad8f5e2ad0cc342302ef199d6ee55f57c1c78fbb8c8b7dad6 + md5: 111dc2570e8dd2eebecbfd8be3bc4616 + sha256: 22fc0c664015c56fd5d96c93a5abd04a51b76b69b21981afd9ed521c72e64b73 manager: conda name: awscrt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.19.18-py39h13f1633_0.conda - version: 0.19.18 + url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.19.19-py39hf0530f4_2.conda + version: 0.19.19 - category: main dependencies: python: '>=3.6' @@ -4778,14 +4790,14 @@ package: types-awscrt: '' typing_extensions: '>=4.1.0' hash: - md5: 3e24267b0fce04a61f7532f3096c45a5 - sha256: 5e0daa0d40c5a6ea3b3798d31e0ae6bdc1d53c487e59153e5e4d9ee8c2ccc47c + md5: 75715c2695eb5d1da023a79140e923cd + sha256: e539bb5b339fc2136b086ce084fbf7b8c8f694d0c6ac30db2565c426bcdf28da manager: conda name: botocore-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.33.5-pyhd8ed1ab_0.conda - version: 1.33.5 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -4881,14 +4893,14 @@ package: python: '>=3.6' ukkonen: '' hash: - md5: 3ef8e9bab1bfaf900bb0a5db8c0c742c - sha256: 0783aa58f43d1c113a2ec300a29ba3313184056f9893671c75037fbadaf9e546 + md5: 93c8f8ceb83827d88deeba796f07fba7 + sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f manager: conda name: identify optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.32-pyhd8ed1ab_0.conda - version: 2.5.32 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda + version: 2.5.33 - category: main dependencies: importlib_metadata: '' @@ -4957,14 +4969,14 @@ package: python: '>=3.6' requests: <3,>=2.0.0 hash: - md5: 4b2d7e21aa309356a9396d54800cd271 - sha256: 8a37a7c3efae510b90669cbae7b4f736477361406028953cd804d09a2d24c53a + md5: 9d9b0ef23f5dbe0d612ca037b9bfb410 + sha256: e0eb5606b4a164964d663d7a215ac9cd18db1ce1eca544aa61348e0a2bda94a9 manager: conda name: msal optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/msal-1.25.0-pyhd8ed1ab_0.conda - version: 1.25.0 + url: https://conda.anaconda.org/conda-forge/noarch/msal-1.26.0-pyhd8ed1ab_0.conda + version: 1.26.0 - category: main dependencies: alsa-lib: '>=1.2.9,<1.2.10.0a0' @@ -5006,14 +5018,14 @@ package: python_abi: 3.9.* *_cp39 pytz: '>=2020.1' hash: - md5: 961b398d8c421a3752e26f01f2dcbdac - sha256: cb67f58e2a5c3c5f033e5901dbc067fcf8b1caebb8c9afd728471c9e75f2073f + md5: dcfd2f15c6f8f0bbf234412b18a2a5d0 + sha256: 3344059c6df1a07e9e5824990c53f8ac4ee7a19a209e33f0009b5af266844d2b manager: conda name: pandas optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.3-py39hddac248_0.conda - version: 2.1.3 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py39hddac248_0.conda + version: 2.1.4 - category: main dependencies: cairo: '>=1.16.0,<2.0a0' @@ -5041,29 +5053,29 @@ package: pynacl: '>=1.5' python: '>=3.6' hash: - md5: 8d4563992b27cdb8e673d1ca16962c9d - sha256: 9139c13cb7ea5729af862db5fb0523daa5900b9b4fa36637cd7f9c01be665f80 + md5: a5e792523b028b06d7ce6e65a6cd4a33 + sha256: 2e66359261954a79b66858c30e69ea6dd4380bf8bd733940527386b25e31dd13 manager: conda name: paramiko optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/paramiko-3.3.1-pyhd8ed1ab_0.conda - version: 3.3.1 + url: https://conda.anaconda.org/conda-forge/noarch/paramiko-3.4.0-pyhd8ed1ab_0.conda + version: 3.4.0 - category: main dependencies: annotated-types: '>=0.4.0' - pydantic-core: 2.14.5 + pydantic-core: 2.14.6 python: '>=3.7' typing-extensions: '>=4.6.1' hash: - md5: 3f908ebfccbfd09946961862d26bb9af - sha256: e3baa6424af931d8d7c5a0554b24d85faf3471df8036181d598065beed3096de + md5: 3569001fd8b37e542aaefdf5de124e19 + sha256: 07ec778cbf17737b740f0547fb5cba91a7bff52945fe637287458e4119c58ffe manager: conda name: pydantic optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.2-pyhd8ed1ab_0.conda - version: 2.5.2 + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda + version: 2.5.3 - category: main dependencies: cryptography: '>=38.0.0,<41' @@ -5113,16 +5125,16 @@ package: - category: main dependencies: botocore: '>=1.33.2,<2.0a.0' - python: '>=3.7' + python: '>=3.8' hash: - md5: 75e12933f4bf755c9cdd37072bcb6203 - sha256: 2e5679abcec8eb646df37518ecdbdaa224d7ff5295a1e56707317d52b47d9c79 + md5: 2d52125a7fe49248ce5e883fed6c935a + sha256: 5f1fccbbc0460971f12dda7ab0465d8f6037486042d156b611881e57d218ce95 manager: conda name: s3transfer optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.8.2-pyhd8ed1ab_0.conda - version: 0.8.2 + url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.10.0-pyhd8ed1ab_0.conda + version: 0.10.0 - category: main dependencies: attrs: '' @@ -5169,7 +5181,7 @@ package: version: 3.3.1 - category: main dependencies: - awscrt: 0.19.18 + awscrt: '>=0.19.18,<=0.19.19' colorama: '>=0.2.5,<0.4.7' cryptography: '>=3.3.2,<=40.0.2' distro: '>=1.5.0,<1.9.0' @@ -5184,29 +5196,29 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 5ffefcaa01088d683a89ed416cee51be - sha256: 272e0c846b7288e179e1a58ce18a5ec1d8bd4f3a0829df27dbe4ebe799ec3f3f + md5: 602c85ef4db55f9b4b34c5bb6aaa2795 + sha256: 11a001f8ac7000eaaa9f5c3e6d9978abf263f5ad8487a15ef8676bdc1fc1a7e7 manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.14.4-py39hf3d152e_0.conda - version: 2.14.4 + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.6-py39hf3d152e_0.conda + version: 2.15.6 - category: main dependencies: - botocore: '>=1.33.4,<1.34.0' + botocore: '>=1.34.11,<1.35.0' jmespath: '>=0.7.1,<2.0.0' - python: '>=3.7' - s3transfer: '>=0.8.2,<0.9.0' + python: '>=3.8' + s3transfer: '>=0.10.0,<0.11.0' hash: - md5: 914d59cf685448451de9ac736cb0fb2a - sha256: cb63cadfb3c593cb7295b14450e4310af88d32dc1bbf185ec82a325a12e86f28 + md5: b1256264fc531fca35aabab7d517438a + sha256: b4d3415b4beee1623c02b7ddc593ae7ca5c5843c943424a73b7648e05858e008 manager: conda name: boto3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.33.4-pyhd8ed1ab_0.conda - version: 1.33.4 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: cachecontrol: 0.13.1 pyhd8ed1ab_0 @@ -5245,14 +5257,14 @@ package: urllib3: '>=1.26.0' websocket-client: '>=0.32.0' hash: - md5: c95d23d8bae7e21491868cc7772d7c73 - sha256: 7c3031602e92fd7682302ef98a45bdf7374d48a849cdd3900b7c68a32d162177 + md5: aec5f308cb9055e83c59afecd5fcb58a + sha256: b9bf5990dc968123e5817096daddd2105857cfd4c5b94c0937d929bc74fc7a31 manager: conda name: docker-py optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/docker-py-6.1.3-pyhd8ed1ab_0.conda - version: 6.1.3 + url: https://conda.anaconda.org/conda-forge/noarch/docker-py-7.0.0-pyhd8ed1ab_0.conda + version: 7.0.0 - category: main dependencies: atk-1.0: '>=2.36.0' @@ -5383,18 +5395,18 @@ package: cfgv: '>=2.0.0' identify: '>=1.0.0' nodeenv: '>=0.11.1' - python: '>=3.8' + python: '>=3.9' pyyaml: '>=5.1' virtualenv: '>=20.10.0' hash: - md5: 964e3d762e427661c59263435a14c492 - sha256: 51a4a17334a15ec92805cd075776563ff93b3b6c20732c4cb607c98a761ae02f + md5: 473a7cfca197da0a10cff3f6dded7d4b + sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 manager: conda name: pre-commit optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.5.0-pyha770c72_0.conda - version: 3.5.0 + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda + version: 3.6.0 - category: main dependencies: __unix: '' @@ -5416,14 +5428,14 @@ package: python: '>=3.7,<4.0' typing-extensions: <5,>=4.4 hash: - md5: d9f3ca99e7d10b05ead04edcdcb7e0cb - sha256: 1bf5fa0d34e4de0843eaa82311e3dd680fdbe02cd74a6945f9b662f504bbcd08 + md5: 9fabf343ed3cdb5803480768e6338826 + sha256: 6cdad8582e270b88147295e9ec4817bdcda14212098efa77165a96870a31bbf4 manager: conda name: aws-sam-translator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.81.0-pyhd8ed1ab_0.conda - version: 1.81.0 + url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.82.0-pyhd8ed1ab_0.conda + version: 1.82.0 - category: main dependencies: azure-core: <2.0.0,>=1.23.0 @@ -5446,14 +5458,14 @@ package: python: '' typing_extensions: '' hash: - md5: 23cf1bb1fb33251d3f0caf4198a90782 - sha256: 44363a8ede827c4bac4c1e6535461ab6f12a19c658dff0a4d908c6d1e19c5d70 + md5: 8e4b38b9dfc865ffb06a2bf2f3719d91 + sha256: e8d31daecb364f893495430612721bb7b8f240e0834be5d1226810ace22cde68 manager: conda name: boto3-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.33.5-pyhd8ed1ab_0.conda - version: 1.33.5 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: archspec: '' @@ -5549,28 +5561,28 @@ package: python: '>=3.6' typing-extensions: '' hash: - md5: 01f46d3078f21041719d2c5fb83200de - sha256: ef1e693434f0d3c84389e459486d57abda67df228c2671d11285ba73baa5c11a + md5: 768ff0d711180b901b1490ebe7010ada + sha256: 9482dd403e24f5e5c155624de7d89f5521a97e8130f0a014899b12486a331a85 manager: conda name: mypy-boto3-s3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.33.2-pyhd8ed1ab_0.conda - version: 1.33.2 + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.34.0-pyhd8ed1ab_0.conda + version: 1.34.0 - category: main dependencies: boto3: '' python: '>=3.6' typing-extensions: '' hash: - md5: 687d78daf8e04f4c5e5cfa92ead666c4 - sha256: 2fecbcc276e13a119ec87602d9547aa537bf690724288d368ebf606351c19f67 + md5: a810296f4cdd969085c1c3d78c846588 + sha256: 3975c31a2c88ff9925922537bb653f84a1c91ed5152043788bc8cc49d541951d manager: conda name: mypy_boto3_ec2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.33.0-pyhd8ed1ab_0.conda - version: 1.33.0 + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.34.4-pyhd8ed1ab_0.conda + version: 1.34.4 - category: main dependencies: importlib_resources: '>=5.8,<7.0' @@ -5604,7 +5616,7 @@ package: version: 0.4.2 - category: main dependencies: - aws-sam-translator: '>=1.79.0' + aws-sam-translator: '>=1.82.0' jschema-to-python: '>=1.2.3,<1.3.dev0' jsonpatch: '' jsonschema: '>=3.0,<5' @@ -5616,14 +5628,14 @@ package: sarif-om: '>=1.0.4,<1.1.dev0' sympy: '>=1.0.0' hash: - md5: 8fa5ac9497fc51cb02377e38500ce964 - sha256: a77254900a3bc62e4c216f1223c9a14982db30e3c24a1b3fcc9cd9dcf3d1f5a4 + md5: 6bf6c385031287e86a5821f57544fc12 + sha256: deed7d4700694a25d440816d13de89468fe92dfc87ba506f3fee72b5d1131c75 manager: conda name: cfn-lint optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.83.3-pyhd8ed1ab_0.conda - version: 0.83.3 + url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.83.6-pyhd8ed1ab_0.conda + version: 0.83.6 - category: main dependencies: colorama: '' @@ -5699,14 +5711,14 @@ package: werkzeug: '>=0.5,!=2.2.0,!=2.2.1' xmltodict: '' hash: - md5: cd76850f625a821bd553380913baf5d6 - sha256: 307ce3acd4c5c3b25f25e871924e96ee052c09a8a2832fcb7a89a2dc26f309cb + md5: 9447c344fde58f458a55b05729ae74aa + sha256: f0586fd89bcc4e7df9cd12e66627473bed9b4bc33814b01f48e6059628af2f6b manager: conda name: moto optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.10-pyhd8ed1ab_0.conda - version: 4.2.10 + url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.12-pyhd8ed1ab_0.conda + version: 4.2.12 - category: main dependencies: livereload: '>=2.3.0' diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 760a7911..9187da76 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/abejgonza/cy-fixes-1/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-fixes-1/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml +# conda-lock -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,12 +21,12 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: f1bcd6ae2c33f314a2957b51c4689ea4e99a5ea5a2bf7e6d199abfb9f6ae65c4 + linux-64: d002c72bdb6dab9165fd4a7c10f2c91ead3a528494418421f075feaf35d0646c platforms: - linux-64 sources: - - /scratch/abejgonza/cy-fixes-1/conda-reqs/chipyard.yaml - - /scratch/abejgonza/cy-fixes-1/conda-reqs/riscv-tools.yaml + - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml + - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/riscv-tools.yaml package: - category: main dependencies: {} @@ -141,25 +141,25 @@ package: - category: main dependencies: {} hash: - md5: 1d7f6d1825bd6bf21ee04336ec87a777 - sha256: 92bec8177aacfcd49a8e5bda49c10e4b77e239e9d58a0ca4ef31344a2be1fc82 + md5: 2390dcf3fd78c2c426f1c5b6664fa4b7 + sha256: 12904b795e5cb877ce6a7bb30feba9bfbe1dd38bd5f520e6af8d89a51bb6b6a6 manager: conda name: libgcc-devel_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-12.3.0-h8bca6fd_103.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 - category: main dependencies: {} hash: - md5: 3f784d2c059e960156d1ab3858cbf200 - sha256: 8a78b0ab9f845a90d3b66a5d83e4e1131a236d1c5badd3660fb7c12daac796bf + md5: be10a739476d68c464101836773463f1 + sha256: 4957848888d7a8cdc77c605357e759f0c9b08c18510f08a205f567666602ca2b manager: conda name: libstdcxx-devel_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-12.3.0-h8bca6fd_103.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 - category: main dependencies: {} hash: @@ -174,14 +174,14 @@ package: - category: main dependencies: {} hash: - md5: 5b874a5f133b1bd0c5f227eed4758fdb - sha256: 9aa01c1102811cae6f60efa9d17f8f44365791d53a712dce3fe9a0488b6f6c2f + md5: ca8ce27415e2e304ec35b3de2af12364 + sha256: b6f56d6c0a95dbd27bdcd5c666781c58c037850cebbaf62536a4fdf2bdcf2a2e manager: conda name: open_pdks.sky130a optional: false platform: linux-64 - url: https://conda.anaconda.org/litex-hub/noarch/open_pdks.sky130a-1.0.458_0_g8c68aca-20231104_052339.tar.bz2 - version: 1.0.458_0_g8c68aca + url: https://conda.anaconda.org/litex-hub/noarch/open_pdks.sky130a-1.0.460_0_gfdb1863-20231104_052339.tar.bz2 + version: 1.0.460_0_gfdb1863 - category: main dependencies: {} hash: @@ -196,14 +196,14 @@ package: - category: main dependencies: {} hash: - md5: 939e3e74d8be4dac89ce83b20de2492a - sha256: 0449138224adfa125b220154408419ec37c06b0b49f63c5954724325903ecf55 + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d manager: conda name: tzdata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda - version: 2023c + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + version: 2023d - category: main dependencies: font-ttf-dejavu-sans-mono: '' @@ -371,14 +371,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: d459949bc10f64dee1595c176c2e6291 - sha256: 6b0eee827bade11c2964a05867499a50ad2a9d1b14dfe18fb867a3bc9357f56f + md5: f5842b88e9cbfa177abfaeacd457a45d + sha256: b68b0611d1c9d0222b56d5fe3d634e7a26979c3aef30f5f48b1593e7249e8f7a manager: conda name: c-ares optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.23.0-hd590300_0.conda - version: 1.23.0 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.24.0-hd590300_0.conda + version: 1.24.0 - category: main dependencies: libgcc-ng: '>=12' @@ -567,15 +567,15 @@ package: version: '1.18' - category: main dependencies: - libgcc-ng: '>=7.5.0' + libgcc-ng: '>=12' hash: - md5: 6f8720dff19e17ce5d48cfe7f3d2f0a3 - sha256: 8c9635aa0ea28922877dc96358f9547f6a55fc7e2eb75a556b05f1725496baf9 + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 manager: conda name: libev optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda version: '4.33' - category: main dependencies: @@ -627,15 +627,15 @@ package: version: 13.2.0 - category: main dependencies: - libgcc-ng: '>=10.3.0' + libgcc-ng: '>=12' hash: - md5: b62b52da46c39ee2bc3c162ac7f1804d - sha256: 6a81ebac9f1aacdf2b4f945c87ad62b972f0f69c8e0981d68e111739e6720fd7 + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 manager: conda name: libiconv optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-h166bdaf_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda version: '1.17' - category: main dependencies: @@ -663,16 +663,16 @@ package: version: 2.0.1 - category: main dependencies: - libgcc-ng: '>=12.3.0' + libgcc-ng: '>=11.4.0' hash: - md5: eda05ab0db8f8490945fd99244183e3a - sha256: 903c5786e0379da751e297dbe603be19b030994bac3caa74b3a596c1858c0296 + md5: e6f89a7be0ec320c1b1746971045b0e7 + sha256: c4c5c87f5c717e83299740f6a20393f9a131f05e2e9df63faafd6bb71dc58346 manager: conda name: libsanitizer optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.3.0-h0f45ef3_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-11.4.0-h4dcbe23_3.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -757,6 +757,18 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.1-hd590300_0.conda version: 1.3.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + manager: conda + name: libxcrypt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + version: 4.4.36 - category: main dependencies: libgcc-ng: '>=12' @@ -1128,14 +1140,14 @@ package: aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' hash: - md5: fe9b3bb0a3961dfb12506d865d818c00 - sha256: 8f3b8f8b7b1f021eac80018d03ff24e2b390627b53eb17f07476f38ea67f4c56 + md5: a4a83424ad4eab023c6e5b4adf264006 + sha256: 8696e7023fde7c4588db8aedd08ffc0b4041c8449bd9edd50f237534cbcfac93 manager: conda name: aws-c-sdkutils optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.12-h7f92143_6.conda - version: 0.1.12 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.13-h7f92143_0.conda + version: 0.1.13 - category: main dependencies: aws-c-common: '>=0.9.10,<0.9.11.0a0' @@ -1219,34 +1231,34 @@ package: - category: main dependencies: binutils_impl_linux-64: '>=2.39' - libgcc-devel_linux-64: 12.3.0 h8bca6fd_103 - libgcc-ng: '>=12.3.0' - libgomp: '>=12.3.0' - libsanitizer: 12.3.0 h0f45ef3_3 - libstdcxx-ng: '>=12.3.0' + libgcc-devel_linux-64: 11.4.0 h922705a_103 + libgcc-ng: '>=11.4.0' + libgomp: '>=11.4.0' + libsanitizer: 11.4.0 h4dcbe23_3 + libstdcxx-ng: '>=11.4.0' sysroot_linux-64: '' hash: - md5: 71c68ea75afe6ac7a9c62c08f5d67a5a - sha256: ab2ea2890f43d45dc49ff59a3c35348e675ba728e088957209fa8f0e40a498e5 + md5: b17749a6ae62cf9a5eafd96a6bcaad0e + sha256: 24d34853611b8758c40fa9d6a0d0b738312f51af9fed8fa6c6422f15ec475763 manager: conda name: gcc_impl_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.3.0-he2b93b0_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=12' oniguruma: '>=6.9.9,<6.10.0a0' hash: - md5: c29cbd5ee663325f9bed9a2b2488ef3a - sha256: e994d4e162a882ed9706f1ce992b5c33419ef425eafcd321252a6f94d3a05ab8 + md5: 80814f94713e35df60aad6c4b235de87 + sha256: a04a1603e405ea9ae5c4a492a8e361086cb441a91ef7299bd4bf3eca0b485b6d manager: conda name: jq optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7-hd590300_0.conda - version: '1.7' + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + version: 1.7.1 - category: main dependencies: libbrotlicommon: 1.1.0 hd590300_1 @@ -1327,20 +1339,20 @@ package: version: '5.39' - category: main dependencies: - c-ares: '>=1.21.0,<2.0a0' - libev: '>=4.33,<4.34.0a0' + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' libgcc-ng: '>=12' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' hash: - md5: 9b13d5ee90fc9f09d54fd403247342b4 - sha256: 151b18e4f92dcca263a6d23e4beb0c4e2287aa1c7d0587ff71ef50035ed34aca + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb manager: conda name: libnghttp2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda version: 1.58.0 - category: main dependencies: @@ -1485,15 +1497,15 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libnsl: '>=2.0.0,<2.1.0a0' + libxcrypt: '>=4.4.36' hash: - md5: 3e785bff761095eb7f8676f4694bd1b1 - sha256: 6e18c1488d191cb1a43a483f44fffa75668779a29927319b4adeb10da12ad06b + md5: f2cfec9406850991f4e3d960cc9e3321 + sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 manager: conda name: perl optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-4_hd590300_perl5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda version: 5.32.1 - category: main dependencies: @@ -1524,16 +1536,16 @@ package: - category: main dependencies: libgcc-ng: '>=12' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' hash: - md5: 04b4845b9e9b5a0ee6eba013ecdbbddb - sha256: 4c00411d49fefc6a53167c3120e386b3f35510544a44d2e647615b510a622f29 + md5: 3d1b58d2664d96f9fbc0afe5e1d04632 + sha256: f6cc2bdcb5d809bbaae218e03bdefef4a309d1fc7ccc9444fda59bd4553a83f8 manager: conda name: s2n optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.56-h06160fa_0.conda - version: 1.3.56 + url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.0-h06160fa_0.conda + version: 1.4.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -1646,15 +1658,15 @@ package: aws-c-cal: '>=0.6.9,<0.6.10.0a0' aws-c-common: '>=0.9.10,<0.9.11.0a0' libgcc-ng: '>=12' - s2n: '>=1.3.56,<1.3.57.0a0' + s2n: '>=1.4.0,<1.4.1.0a0' hash: - md5: d15f4dfeef1d65de9a5283c984981776 - sha256: ca5094093d0f2de9b0b2bd4697088565d0ef930364df8a67c8b79172dc9c209d + md5: c930336aa72995f1b5459b51df3ba841 + sha256: 7426f7444cd43cd7a649670c7330c163b40f40aa832e82be873d9de91e49b05e manager: conda name: aws-c-io optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he14a76f_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he0cd244_2.conda version: 0.13.36 - category: main dependencies: @@ -1699,16 +1711,16 @@ package: version: 1.1.0 - category: main dependencies: - gcc_impl_linux-64: '>=12.3.0,<12.3.1.0a0' + gcc_impl_linux-64: '>=11.4.0,<11.4.1.0a0' hash: - md5: 93700ef8b49aebbfb0bf40e0b1448834 - sha256: f361a244a51874065b4d9a2d27089647e7966050abb8a76cad57471776b8ba19 + md5: 42003d7074d4daaf287d19987cd927bf + sha256: 2c30ddc6cb51a03fb5f671f55eaabcb9208d6ce701e6de2234518eec43a6f2d1 manager: conda name: conda-gcc-specs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-12.3.0-h83fac38_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-11.4.0-h240829a_3.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -1752,16 +1764,16 @@ package: version: 2.12.1 - category: main dependencies: - gcc_impl_linux-64: 12.3.0.* + gcc_impl_linux-64: 11.4.0.* hash: - md5: e2f2f81f367e14ca1f77a870bda2fe59 - sha256: 1bbf077688822993c39518056fb43d83ff0920eb42fef11e8714d2a298cc0f27 + md5: 0c8d100583c5fd6d20cd5307aaedaf0d + sha256: b515e9222a8af974024b02c7265bed8e4edf912707a5a8fc207cbc8bc2ac0bff manager: conda name: gcc optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc-12.3.0-h8d2909c_2.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-11.4.0-h7baecda_2.conda + version: 11.4.0 - category: main dependencies: libgcc-ng: '>=12' @@ -1781,18 +1793,18 @@ package: version: 3.7.9 - category: main dependencies: - gcc_impl_linux-64: 12.3.0 he2b93b0_3 - libstdcxx-devel_linux-64: 12.3.0 h8bca6fd_103 + gcc_impl_linux-64: 11.4.0 h7aa1c59_3 + libstdcxx-devel_linux-64: 11.4.0 h922705a_103 sysroot_linux-64: '' hash: - md5: b6ce9868fc6c65a18c22fd983e2d7e6f - sha256: 63e75858b60fe6d7227cd6026ed7ad0a8df4c5592454f752ff7ffc1e283e66a7 + md5: dbee4be21eb6dbf596afddf60ff120bf + sha256: 424d9989ea82e6777e569de6873cc56229a8982e274409c344473ad89bb7bbb7 manager: conda name: gxx_impl_linux-64 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-12.3.0-he2b93b0_3.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 - category: main dependencies: keyutils: '>=1.6.1,<2.0a0' @@ -1839,14 +1851,14 @@ package: libzlib: '>=1.2.13,<1.3.0a0' pcre2: '>=10.42,<10.43.0a0' hash: - md5: 70052d6c1e84643e30ffefb21ab6950f - sha256: 4e6fa28002f834cfc30a64792e95c1701d835cc3d3a4bb18d6e8d16bb8aba05b + md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 + sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 manager: conda name: libglib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.1-h783c2da_1.conda - version: 2.78.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda + version: 2.78.3 - category: main dependencies: libgcc-ng: '>=12' @@ -1936,23 +1948,24 @@ package: libffi: '>=3.4,<4.0a0' libgcc-ng: '>=12' libnsl: '>=2.0.1,<2.1.0a0' - libsqlite: '>=3.43.2,<4.0a0' + libsqlite: '>=3.44.2,<4.0a0' libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' libzlib: '>=1.2.13,<1.3.0a0' ncurses: '>=6.4,<7.0a0' - openssl: '>=3.1.4,<4.0a0' + openssl: '>=3.2.0,<4.0a0' readline: '>=8.2,<9.0a0' tk: '>=8.6.13,<8.7.0a0' tzdata: '' xz: '>=5.2.6,<6.0a0' hash: - md5: f3a8c32aa764c3e7188b4b810fc9d6ce - sha256: a53410f459f314537b379982717b1c5911efc2f0cc26d63c4d6f831bcb31c964 + md5: ed38140af93f81319ebc472fbcf16cca + sha256: 4234c8e301737aa245d12c8fb44a4128005795e42883977c29cca3f34c71a1eb manager: conda name: python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_0_cpython.conda + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_1_cpython.conda version: 3.10.13 - category: main dependencies: @@ -2061,14 +2074,14 @@ package: dependencies: python: '>=3.8' hash: - md5: c629a13439d80b37c6a946b098c4ac2b - sha256: 62c3486961e43fb9b495b7854f48fea9b486b2176a9629c6faf80c445543b1aa + md5: 0801250abb3d5b86010e20324f0dde94 + sha256: af221f16a23feea4d91db75b35c5720c9c448814af815fe6d45c5627eb75e897 manager: conda name: argcomplete optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.1.6-pyhd8ed1ab_0.conda - version: 3.1.6 + url: https://conda.anaconda.org/conda-forge/noarch/argcomplete-3.2.1-pyhd8ed1ab_0.conda + version: 3.2.1 - category: main dependencies: libgcc-ng: '>=12' @@ -2133,14 +2146,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: e6792675103087f822f9705a22e4845d - sha256: 070fdd2e887a0b898764bfd6aa603365cf79dda30b1161ae06c607d510920f7d + md5: 6dd3d49f65ceb05dbd527a5b6301611b + sha256: df399f6daedb506d2f0d2d0cc2619969b9042455c1f4314eee526bbf6f4d7aba manager: conda name: bcrypt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/bcrypt-4.1.1-py310hcb5633a_0.conda - version: 4.1.1 + url: https://conda.anaconda.org/conda-forge/linux-64/bcrypt-4.1.2-py310hcb5633a_0.conda + version: 4.1.2 - category: main dependencies: python: '>=3.8' @@ -2155,16 +2168,16 @@ package: version: 1.7.0 - category: main dependencies: - python: ==2.7.*|>=3.7 + python: 2.7.*|>=3.7 hash: - md5: 033eb25fffd222aceeca6d58cd953680 - sha256: 4ff828cceb8f55cb26d23b1a4c174d22c7cd92350221724bcaf2d6632e33fdee + md5: 56febe65315cc388a5d20adf2b39a74d + sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 manager: conda name: boltons optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.0.0-pyhd8ed1ab_0.conda - version: 23.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.1.1-pyhd8ed1ab_0.conda + version: 23.1.1 - category: main dependencies: brotli-bin: 1.1.0 hd590300_1 @@ -2322,14 +2335,14 @@ package: dependencies: python: 2.7|>=3.6 hash: - md5: 12d8aae6994f342618443a8f05c652a0 - sha256: 13c887cb4a29e1e853a118cfc0e42b72a7e1d1c50c66c0974885d37f0db30619 + md5: db16c66b759a64dc5183d69cc3745a52 + sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e manager: conda name: distlib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda - version: 0.3.7 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + version: 0.3.8 - category: main dependencies: python: '>=3.6' @@ -2401,26 +2414,26 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: c7b2865e86782925a872c8598b760c08 - sha256: cd1e59ceac047d9f692bb7cc2a6a6e2356a7d3db660b076b4afb19d35db2fd02 + md5: f20cd4d9c1f4a8377d0818c819918bbb + sha256: 496d0ae05e81be0bd8e046bc48a3346f867caaad65041aa14ee2f3717af70db6 manager: conda name: frozenlist optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.0-py310h2372a71_1.conda - version: 1.4.0 + url: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.1-py310h2372a71_0.conda + version: 1.4.1 - category: main dependencies: python: '>=3.8' hash: - md5: 5b86cf1ceaaa9be2ec4627377e538db1 - sha256: 1bbdfadb93cc768252fd207dca406cde928f9a81ff985ea1760b6539c55923e6 + md5: bf40f2a8835b78b1f91083d306b493d2 + sha256: 9269a5464698e0fde1f9c78544552817370c26df86e2a5a7518544b6a55ae8ee manager: conda name: fsspec optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.10.0-pyhca7485f_0.conda - version: 2023.10.0 + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.12.2-pyhca7485f_0.conda + version: 2023.12.2 - category: main dependencies: libgcc-ng: '>=12' @@ -2471,17 +2484,17 @@ package: version: 0.7.6 - category: main dependencies: - gcc: 12.3.0.* - gxx_impl_linux-64: 12.3.0.* + gcc: 11.4.0.* + gxx_impl_linux-64: 11.4.0.* hash: - md5: 673bac341be6b90ef9e8abae7e52ca46 - sha256: 5fd65768fb602fd21466831c96e7a2355a4df692507abbd481aa65a777151d85 + md5: 4821dd86fa505a0d5b6aacd28ed8291f + sha256: e07c2da262b374fc9aad422a4927660ef96aec6d1445c7673a6ba58a445523a5 manager: conda name: gxx optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx-12.3.0-h8d2909c_2.conda - version: 12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-11.4.0-h7baecda_2.conda + version: 11.4.0 - category: main dependencies: __unix: '' @@ -2613,14 +2626,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: ee36f87084373c3e01a7f14d372ccf35 - sha256: 0261c90c6f990d7a06f2ef107d53cb33a720a0c7420cc9f280ad0deb4aedda68 + md5: 24d67b3be879d3f72b199061189ff022 + sha256: 6dd8e02aa0ca786bae44793475141a2218882f5c225c4e31f0b1c70ac012e586 manager: conda name: lazy-object-proxy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.9.0-py310h2372a71_1.conda - version: 1.9.0 + url: https://conda.anaconda.org/conda-forge/linux-64/lazy-object-proxy-1.10.0-py310h2372a71_0.conda + version: 1.10.0 - category: main dependencies: libgcc-ng: '>=12' @@ -2929,6 +2942,18 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda version: 1.3.10 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + manager: conda + name: platformdirs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + version: 4.1.0 - category: main dependencies: python: '>=3.8' @@ -2960,14 +2985,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: cb25177acf28cc35cfa6c1ac1c679e22 - sha256: db8a99bc41c1b0405c8e9daa92b9d4e7711f9717aff7fd3feeba407ca2a91aa2 + md5: eb1f8f278d0b00c7b6d5c01a5b06609f + sha256: 82d01c09f10cdc0b9333c9478a05bfd55f9cf7b5a1db079938b46920fedd9f7b manager: conda name: psutil optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.5-py310h2372a71_1.conda - version: 5.9.5 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.7-py310h2372a71_0.conda + version: 5.9.7 - category: main dependencies: python: '!=3.0,!=3.1,!=3.2,!=3.3,!=3.4,!=3.5' @@ -2996,7 +3021,7 @@ package: version: 0.6.6 - category: main dependencies: - python: ==2.7.*|>=3.4 + python: 2.7.*|>=3.4 hash: md5: 076becd9e05608f8dc72757d5f3a91ff sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc @@ -3071,14 +3096,14 @@ package: dependencies: python: '>=3.6' hash: - md5: 2590495f608a63625e165915fb4e2e34 - sha256: 0108888507014fb24573c31e4deceb61c99e63d37776dddcadd7c89b2ecae0b6 + md5: c79cacf8a06a51552fc651652f170208 + sha256: d2381037bf362c78654a8ece0e0f54715e09113448ddd7ed837f688536cbf176 manager: conda name: python-tzdata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda - version: '2023.3' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.4-pyhd8ed1ab_0.conda + version: '2023.4' - category: main dependencies: python: '>=3.6' @@ -3125,14 +3150,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: 124bc31abd31cd6990a9f6ade3a4da2d - sha256: bf8e736b9b4f73c3142842b280982581037b40904b6dea4706ab137b3179c5c7 + md5: 4a9ba4e7af60356e63b38a6d419acad6 + sha256: b9d2c96a468e4c871df098f6c34c72b160911fb98132e1ffd6ba92670cbeb523 manager: conda name: regex optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/regex-2023.10.3-py310h2372a71_0.conda - version: 2023.10.3 + url: https://conda.anaconda.org/conda-forge/linux-64/regex-2023.12.25-py310h2372a71_0.conda + version: 2023.12.25 - category: main dependencies: __glibc: '>=2.17,<3.0.a0' @@ -3158,14 +3183,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: 99b553d12fe320478b5b094cc1558f5a - sha256: af3b44e6e9ef8b18292c4854cf07edce6051efce06b75367bf0fc0599ba2cdf7 + md5: 849507c9b0652ec09c110bcc5213f482 + sha256: ebd8fb3040ec0ba40fe72da8136b847edd6f878a8f6862e534165d721a8af0d8 manager: conda name: rpds-py optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.13.2-py310hcb5633a_0.conda - version: 0.13.2 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.16.2-py310hcb5633a_0.conda + version: 0.16.2 - category: main dependencies: libgcc-ng: '>=12' @@ -3354,14 +3379,14 @@ package: dependencies: python: '>=3.8' hash: - md5: 5b1be40a26d10a06f6d4f1f9e19fa0c7 - sha256: 38d16b5c53ec1af845d37d22e7bb0e6c934c7f19499123507c5a470f6f8b7dde + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 manager: conda name: typing_extensions optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.8.0-pyha770c72_0.conda - version: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + version: 4.9.0 - category: main dependencies: libgcc-ng: '>=12' @@ -3387,14 +3412,14 @@ package: perl: '' python: '' hash: - md5: efb0e7909f1a41159856e688e216bd26 - sha256: c24f5fc704ee3c0737456e7a4b8f75114b25a51812c6f801a22ed43652e0b211 + md5: 6ecc6f19e3a0661c096d0e84015c8122 + sha256: 582ae4513d3ef87d4b0c5d53a3a691575de2aabe8cc5a5554bb1db5bcd6a40b4 manager: conda name: verilator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.008-h514fc35_1.conda - version: '5.008' + url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.018-h4f9daa6_0.conda + version: '5.018' - category: main dependencies: python: '>=3.8' @@ -3423,14 +3448,14 @@ package: dependencies: python: '>=3.8' hash: - md5: bdb77b28cf16deac0eef431a068320e8 - sha256: df45b89862edcd7cd5180ec7b8c0c0ca9fb4d3f7d49ddafccdc76afcf50d8da6 + md5: 50ad31e07d706aae88b14a4ac9c73f23 + sha256: d9b537d5b7c5aa7a02a4ce4c6b755e458bd8083b67752a73c92d113ccec6c10f manager: conda name: websocket-client optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.6.4-pyhd8ed1ab_0.conda - version: 1.6.4 + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.7.0-pyhd8ed1ab_0.conda + version: 1.7.0 - category: main dependencies: python: '>=3.7' @@ -3559,16 +3584,16 @@ package: aws-c-common: '>=0.9.10,<0.9.11.0a0' aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' - aws-c-sdkutils: '>=0.1.12,<0.1.13.0a0' + aws-c-sdkutils: '>=0.1.13,<0.1.14.0a0' libgcc-ng: '>=12' hash: - md5: 65d47e98af07d5e361707dda2ce44f3a - sha256: 48c768d96b09396190b717e126d33ca68f3d2786a068af188fd16fa469cbad76 + md5: d42aebb91e28e2fee2a0218cfbff2c90 + sha256: b06ef95458fc70af4230c9c6690011235cd25288752ff7aa25492fc6d1c0e028 manager: conda name: aws-c-auth optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h5c941e0_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h538f98c_2.conda version: 0.7.8 - category: main dependencies: @@ -3591,14 +3616,14 @@ package: pytz: '' setuptools: '' hash: - md5: 3ccff479c246692468f604df9c85ef26 - sha256: 1f955c700db16f65b16c9e9c1613436480d5497970b8030b7a9ebe1620cc2147 + md5: 9669586875baeced8fc30c0826c3270e + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 manager: conda name: babel optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/babel-2.13.1-pyhd8ed1ab_0.conda - version: 2.13.1 + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda + version: 2.14.0 - category: main dependencies: fontconfig: '>=2.14.2,<3.0a0' @@ -3770,14 +3795,14 @@ package: python_abi: 3.10.* *_cp310 unicodedata2: '>=14.0.0' hash: - md5: c2dcff257e040bcda00e2a30a9d85333 - sha256: 65239757b26d95fe4d4368a9892d68baad555f3f62b405c3a58309db7747f929 + md5: 27df6604157a2a9e782cbe720f752cf5 + sha256: 468904105e134301032749de8bf613a5cbc61d4de51bce25524716b6386885a4 manager: conda name: fonttools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.45.1-py310h2372a71_0.conda - version: 4.45.1 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py310h2372a71_0.conda + version: 4.47.0 - category: main dependencies: python: '>=3.7' @@ -3823,14 +3848,14 @@ package: python: '>=3.8' zipp: '>=0.5' hash: - md5: 4e9f59a060c3be52bc4ddc46ee9b6946 - sha256: 2797ed927d65324309b6c630190d917b9f2111e0c217b721f80429aeb57f9fcf + md5: 746623a787e06191d80a2133e5daff17 + sha256: e72d05f171f4567004c9360a838e9d5df21e23dcfeb945066b53a6e5f754b861 manager: conda name: importlib-metadata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda - version: 6.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda + version: 7.0.1 - category: main dependencies: python: '>=3.8' @@ -3969,14 +3994,14 @@ package: tomli: '>=1.1.0' typing_extensions: '>=4.1.0' hash: - md5: 0d60b1efdb10a07411570305e9e9421d - sha256: d15de464eb41a105bd381779e6bf8311f72346afc9e7d6a79165d505403d4d54 + md5: 3320dc32fc6bd29ab4a16cf22bc35fc2 + sha256: 6c01268327db83c70c38cfc87fc13a71d09cda123ae06cd6edbbe620c2b20f33 manager: conda name: mypy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.7.1-py310h2372a71_0.conda - version: 1.7.1 + url: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.8.0-py310h2372a71_0.conda + version: 1.8.0 - category: main dependencies: python: 2.7|>=3.7 @@ -4019,27 +4044,14 @@ package: setuptools: '' wheel: '' hash: - md5: 2400c0b86889f43aa52067161e1fb108 - sha256: 435829a03e1c6009f013f29bb83de8b876c388820bf8cf69a7baeec25f6a3563 + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed manager: conda name: pip optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.1-pyhd8ed1ab_0.conda - version: 23.3.1 -- category: main - dependencies: - python: '>=3.7' - typing_extensions: '>=4.7.1' - hash: - md5: 6bb4ee32cd435deaeac72776c001e7ac - sha256: 67381d3f7cadca7df7699238e0dcce680ad20d7fd28804bab48611fecb084937 - manager: conda - name: platformdirs - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.0.0-pyhd8ed1ab_0.conda - version: 4.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + version: 23.3.2 - category: main dependencies: python: '>=3.7' @@ -4202,16 +4214,16 @@ package: version: 2.31.0.6 - category: main dependencies: - typing_extensions: 4.8.0 pyha770c72_0 + typing_extensions: 4.9.0 pyha770c72_0 hash: - md5: 384462e63262a527bda564fa2d9126c0 - sha256: d6e1dddd0c372218ef15912383d351ac8c73465cbf16238017f0269813cafe2d + md5: c16524c1b7227dc80b36b4fa6f77cc86 + sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c manager: conda name: typing-extensions optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.8.0-hd8ed1ab_0.conda - version: 4.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + version: 4.9.0 - category: main dependencies: brotli-python: '>=1.0.9' @@ -4246,6 +4258,21 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.0.2059-py310pl5321he660f0e_1.conda version: 9.0.2059 +- category: main + dependencies: + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <5,>=3.9.1 + python: '>=3.8' + hash: + md5: c119653cba436d8183c27bf6d190e587 + sha256: 50827c3721a9dbf973b568709d4381add2a6552fa562f26a385c5edc16a534af + manager: conda + name: virtualenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.0-pyhd8ed1ab_0.conda + version: 20.25.0 - category: main dependencies: markupsafe: '>=2.1.1' @@ -4328,29 +4355,29 @@ package: libgcc-ng: '>=12' openssl: '>=3.2.0,<4.0a0' hash: - md5: d193ad6b5c2d47c679202afe5b69b371 - sha256: d99862ce623c68dd86225520c08bfe5ff46a0af885530a3faca4d3d54c7480bf + md5: f27f792aa83c7be3ee96d09a637a6474 + sha256: 04142edf1a574e137a9e30a4f4e9b9448e219b6f4216a782ceaed933f27852a6 manager: conda name: aws-c-s3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.3-h0448019_0.conda - version: 0.4.3 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.4-h0448019_0.conda + version: 0.4.4 - category: main dependencies: jmespath: '>=0.7.1,<2.0.0' - python: '>=3.7' + python: '>=3.8' python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' hash: - md5: 352c39ba5cd9ea01996358f0748e102e - sha256: 56566ea8f3a48c24190c1dcf50681c0a84b26821c335c21b5c3c5d238e4bdb14 + md5: d6850c205e9f86502bd6a58e270e8fd5 + sha256: ad25216fd91ac9a624ffde69679c3d476c4091adad30b9169aa3486bd25e1e88 manager: conda name: botocore optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.33.5-pyhd8ed1ab_0.conda - version: 1.33.5 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: clang-format-16: 16.0.3 default_h1cdf331_2 @@ -4469,16 +4496,16 @@ package: version: 7.3.0 - category: main dependencies: - importlib-metadata: '>=6.8.0,<6.8.1.0a0' + importlib-metadata: '>=7.0.1,<7.0.2.0a0' hash: - md5: b279b07ce18058034e5b3606ba103a8b - sha256: b96e01dc42d547d6d9ceb1c5b52a5232cc04e40153534350f702c3e0418a6b3f + md5: 4a2f43a20fa404b998859c6a470ba316 + sha256: bc362df1d4f5a04c38dff29cd9c2d0ac584f9c4b45d3e4683ee090944a38fba4 manager: conda name: importlib_metadata optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.8.0-hd8ed1ab_0.conda - version: 6.8.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.1-hd8ed1ab_0.conda + version: 7.0.1 - category: main dependencies: importlib_resources: '>=1.4.0' @@ -4554,16 +4581,16 @@ package: libgcc-ng: '>=12' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 - typing-extensions: '>=4.6.0' + typing-extensions: '>=4.6.0,!=4.7.0' hash: - md5: a47e1b53da51f577ee44e79f7589c388 - sha256: 58ce2738657c5b3c5539465fa54eb499361df836034501c4bf03b1fc0ba9a1b7 + md5: f0f6b7e4b3d134f070288963ed4fbeee + sha256: 3bdc1ef89f9e431392aec8ed5695d8aefc7b65a014cc46934f75e87779f89745 manager: conda name: pydantic-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.5-py310hcb5633a_0.conda - version: 2.14.5 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py310hcb5633a_1.conda + version: 2.14.6 - category: main dependencies: cffi: '>=1.4.1' @@ -4628,14 +4655,14 @@ package: pip: '' python: '>=3.7,<4.0' hash: - md5: 1205762a36a808c0976f959caf389e8e - sha256: 0040b85370375694ae48d21af3e14471f78578fb22cd284c80da3741def0ad4a + md5: aaafd70a6934549210865f558a0eee96 + sha256: 4e695e4d83cfc4ffd557cc2bdbecc0cedb9df8831d1a415b8e8c0e5f96bc6b5f manager: conda name: types-awscrt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.19.19-pyhd8ed1ab_0.conda - version: 0.19.19 + url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.20.0-pyhd8ed1ab_0.conda + version: 0.20.0 - category: main dependencies: cffi: '' @@ -4652,21 +4679,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda version: 1.0.1 -- category: main - dependencies: - distlib: <1,>=0.3.7 - filelock: <4,>=3.12.2 - platformdirs: <5,>=3.9.1 - python: '>=3.8' - hash: - md5: db990278c2c00b268eed778de44f6057 - sha256: ad661ae59c64bd73c25dfadb00c601659f4d9cafbf428e36a690075e52bac96a - manager: conda - name: virtualenv - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.7-pyhd8ed1ab_0.conda - version: 20.24.7 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -4743,21 +4755,21 @@ package: aws-c-http: '>=0.7.14,<0.7.15.0a0' aws-c-io: '>=0.13.36,<0.13.37.0a0' aws-c-mqtt: '>=0.9.10,<0.9.11.0a0' - aws-c-s3: '>=0.4.3,<0.4.4.0a0' + aws-c-s3: '>=0.4.4,<0.4.5.0a0' aws-checksums: '>=0.1.17,<0.1.18.0a0' libgcc-ng: '>=12' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 - s2n: '>=1.3.56,<1.3.57.0a0' + s2n: '>=1.4.0,<1.4.1.0a0' hash: - md5: 7fe0965c0d18613708e4b9793c0ac0c4 - sha256: 532660a9498d4c5728b803fb5476f2a327cb81ab832b9bf36fadeb4ed4d1b09f + md5: fd4b703083170315b3735e43967e3983 + sha256: bdab178420ff1e1dcf13407c662d355290bbad434844ed903029f98cd8afc29c manager: conda name: awscrt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.19.18-py310h9381138_0.conda - version: 0.19.18 + url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.19.19-py310h43b4219_2.conda + version: 0.19.19 - category: main dependencies: python: '>=3.6' @@ -4779,14 +4791,14 @@ package: types-awscrt: '' typing_extensions: '>=4.1.0' hash: - md5: 3e24267b0fce04a61f7532f3096c45a5 - sha256: 5e0daa0d40c5a6ea3b3798d31e0ae6bdc1d53c487e59153e5e4d9ee8c2ccc47c + md5: 75715c2695eb5d1da023a79140e923cd + sha256: e539bb5b339fc2136b086ce084fbf7b8c8f694d0c6ac30db2565c426bcdf28da manager: conda name: botocore-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.33.5-pyhd8ed1ab_0.conda - version: 1.33.5 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -4882,14 +4894,14 @@ package: python: '>=3.6' ukkonen: '' hash: - md5: 3ef8e9bab1bfaf900bb0a5db8c0c742c - sha256: 0783aa58f43d1c113a2ec300a29ba3313184056f9893671c75037fbadaf9e546 + md5: 93c8f8ceb83827d88deeba796f07fba7 + sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f manager: conda name: identify optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.32-pyhd8ed1ab_0.conda - version: 2.5.32 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda + version: 2.5.33 - category: main dependencies: importlib_metadata: '' @@ -4958,14 +4970,14 @@ package: python: '>=3.6' requests: <3,>=2.0.0 hash: - md5: 4b2d7e21aa309356a9396d54800cd271 - sha256: 8a37a7c3efae510b90669cbae7b4f736477361406028953cd804d09a2d24c53a + md5: 9d9b0ef23f5dbe0d612ca037b9bfb410 + sha256: e0eb5606b4a164964d663d7a215ac9cd18db1ce1eca544aa61348e0a2bda94a9 manager: conda name: msal optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/msal-1.25.0-pyhd8ed1ab_0.conda - version: 1.25.0 + url: https://conda.anaconda.org/conda-forge/noarch/msal-1.26.0-pyhd8ed1ab_0.conda + version: 1.26.0 - category: main dependencies: alsa-lib: '>=1.2.9,<1.2.10.0a0' @@ -5007,14 +5019,14 @@ package: python_abi: 3.10.* *_cp310 pytz: '>=2020.1' hash: - md5: 30a39c1064e5efc578d83c2a5f7cd749 - sha256: bb2b3e4a3f3d40b87ac214b88393a7f1ee5b2cac41d249c580d184f7edb30653 + md5: 410f7e83992a591e492c25049a859254 + sha256: d0743541397140a25a89ab0686933005a4c104d95c23ff1c322f903a50b18099 manager: conda name: pandas optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.3-py310hcc13569_0.conda - version: 2.1.3 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py310hcc13569_0.conda + version: 2.1.4 - category: main dependencies: cairo: '>=1.16.0,<2.0a0' @@ -5042,29 +5054,29 @@ package: pynacl: '>=1.5' python: '>=3.6' hash: - md5: 8d4563992b27cdb8e673d1ca16962c9d - sha256: 9139c13cb7ea5729af862db5fb0523daa5900b9b4fa36637cd7f9c01be665f80 + md5: a5e792523b028b06d7ce6e65a6cd4a33 + sha256: 2e66359261954a79b66858c30e69ea6dd4380bf8bd733940527386b25e31dd13 manager: conda name: paramiko optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/paramiko-3.3.1-pyhd8ed1ab_0.conda - version: 3.3.1 + url: https://conda.anaconda.org/conda-forge/noarch/paramiko-3.4.0-pyhd8ed1ab_0.conda + version: 3.4.0 - category: main dependencies: annotated-types: '>=0.4.0' - pydantic-core: 2.14.5 + pydantic-core: 2.14.6 python: '>=3.7' typing-extensions: '>=4.6.1' hash: - md5: 3f908ebfccbfd09946961862d26bb9af - sha256: e3baa6424af931d8d7c5a0554b24d85faf3471df8036181d598065beed3096de + md5: 3569001fd8b37e542aaefdf5de124e19 + sha256: 07ec778cbf17737b740f0547fb5cba91a7bff52945fe637287458e4119c58ffe manager: conda name: pydantic optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.2-pyhd8ed1ab_0.conda - version: 2.5.2 + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda + version: 2.5.3 - category: main dependencies: cryptography: '>=38.0.0,<41' @@ -5114,16 +5126,16 @@ package: - category: main dependencies: botocore: '>=1.33.2,<2.0a.0' - python: '>=3.7' + python: '>=3.8' hash: - md5: 75e12933f4bf755c9cdd37072bcb6203 - sha256: 2e5679abcec8eb646df37518ecdbdaa224d7ff5295a1e56707317d52b47d9c79 + md5: 2d52125a7fe49248ce5e883fed6c935a + sha256: 5f1fccbbc0460971f12dda7ab0465d8f6037486042d156b611881e57d218ce95 manager: conda name: s3transfer optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.8.2-pyhd8ed1ab_0.conda - version: 0.8.2 + url: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.10.0-pyhd8ed1ab_0.conda + version: 0.10.0 - category: main dependencies: attrs: '' @@ -5170,7 +5182,7 @@ package: version: 3.3.1 - category: main dependencies: - awscrt: 0.19.18 + awscrt: '>=0.19.18,<=0.19.19' colorama: '>=0.2.5,<0.4.7' cryptography: '>=3.3.2,<=40.0.2' distro: '>=1.5.0,<1.9.0' @@ -5185,29 +5197,29 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 83b614ffebf970bc4c848a34be1afe2d - sha256: 85b91372b3343c70a52ac76eab1878b0ac41a2446778b2379c725c614a2c41be + md5: 80d2f2f27aafd39e4b8134e9ee9ab312 + sha256: 943e8710df413e02b1d017c462b1b5e976f44751f51e07851b30917d6b63b44f manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.14.4-py310hff52083_0.conda - version: 2.14.4 + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.6-py310hff52083_0.conda + version: 2.15.6 - category: main dependencies: - botocore: '>=1.33.4,<1.34.0' + botocore: '>=1.34.11,<1.35.0' jmespath: '>=0.7.1,<2.0.0' - python: '>=3.7' - s3transfer: '>=0.8.2,<0.9.0' + python: '>=3.8' + s3transfer: '>=0.10.0,<0.11.0' hash: - md5: 914d59cf685448451de9ac736cb0fb2a - sha256: cb63cadfb3c593cb7295b14450e4310af88d32dc1bbf185ec82a325a12e86f28 + md5: b1256264fc531fca35aabab7d517438a + sha256: b4d3415b4beee1623c02b7ddc593ae7ca5c5843c943424a73b7648e05858e008 manager: conda name: boto3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.33.4-pyhd8ed1ab_0.conda - version: 1.33.4 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: cachecontrol: 0.13.1 pyhd8ed1ab_0 @@ -5246,14 +5258,14 @@ package: urllib3: '>=1.26.0' websocket-client: '>=0.32.0' hash: - md5: c95d23d8bae7e21491868cc7772d7c73 - sha256: 7c3031602e92fd7682302ef98a45bdf7374d48a849cdd3900b7c68a32d162177 + md5: aec5f308cb9055e83c59afecd5fcb58a + sha256: b9bf5990dc968123e5817096daddd2105857cfd4c5b94c0937d929bc74fc7a31 manager: conda name: docker-py optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/docker-py-6.1.3-pyhd8ed1ab_0.conda - version: 6.1.3 + url: https://conda.anaconda.org/conda-forge/noarch/docker-py-7.0.0-pyhd8ed1ab_0.conda + version: 7.0.0 - category: main dependencies: atk-1.0: '>=2.36.0' @@ -5383,18 +5395,18 @@ package: cfgv: '>=2.0.0' identify: '>=1.0.0' nodeenv: '>=0.11.1' - python: '>=3.8' + python: '>=3.9' pyyaml: '>=5.1' virtualenv: '>=20.10.0' hash: - md5: 964e3d762e427661c59263435a14c492 - sha256: 51a4a17334a15ec92805cd075776563ff93b3b6c20732c4cb607c98a761ae02f + md5: 473a7cfca197da0a10cff3f6dded7d4b + sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 manager: conda name: pre-commit optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.5.0-pyha770c72_0.conda - version: 3.5.0 + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda + version: 3.6.0 - category: main dependencies: __unix: '' @@ -5416,14 +5428,14 @@ package: python: '>=3.7,<4.0' typing-extensions: <5,>=4.4 hash: - md5: d9f3ca99e7d10b05ead04edcdcb7e0cb - sha256: 1bf5fa0d34e4de0843eaa82311e3dd680fdbe02cd74a6945f9b662f504bbcd08 + md5: 9fabf343ed3cdb5803480768e6338826 + sha256: 6cdad8582e270b88147295e9ec4817bdcda14212098efa77165a96870a31bbf4 manager: conda name: aws-sam-translator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.81.0-pyhd8ed1ab_0.conda - version: 1.81.0 + url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.82.0-pyhd8ed1ab_0.conda + version: 1.82.0 - category: main dependencies: azure-core: <2.0.0,>=1.23.0 @@ -5446,14 +5458,14 @@ package: python: '' typing_extensions: '' hash: - md5: 23cf1bb1fb33251d3f0caf4198a90782 - sha256: 44363a8ede827c4bac4c1e6535461ab6f12a19c658dff0a4d908c6d1e19c5d70 + md5: 8e4b38b9dfc865ffb06a2bf2f3719d91 + sha256: e8d31daecb364f893495430612721bb7b8f240e0834be5d1226810ace22cde68 manager: conda name: boto3-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.33.5-pyhd8ed1ab_0.conda - version: 1.33.5 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.11-pyhd8ed1ab_0.conda + version: 1.34.11 - category: main dependencies: archspec: '' @@ -5550,28 +5562,28 @@ package: python: '>=3.6' typing-extensions: '' hash: - md5: 01f46d3078f21041719d2c5fb83200de - sha256: ef1e693434f0d3c84389e459486d57abda67df228c2671d11285ba73baa5c11a + md5: 768ff0d711180b901b1490ebe7010ada + sha256: 9482dd403e24f5e5c155624de7d89f5521a97e8130f0a014899b12486a331a85 manager: conda name: mypy-boto3-s3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.33.2-pyhd8ed1ab_0.conda - version: 1.33.2 + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.34.0-pyhd8ed1ab_0.conda + version: 1.34.0 - category: main dependencies: boto3: '' python: '>=3.6' typing-extensions: '' hash: - md5: 687d78daf8e04f4c5e5cfa92ead666c4 - sha256: 2fecbcc276e13a119ec87602d9547aa537bf690724288d368ebf606351c19f67 + md5: a810296f4cdd969085c1c3d78c846588 + sha256: 3975c31a2c88ff9925922537bb653f84a1c91ed5152043788bc8cc49d541951d manager: conda name: mypy_boto3_ec2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.33.0-pyhd8ed1ab_0.conda - version: 1.33.0 + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.34.4-pyhd8ed1ab_0.conda + version: 1.34.4 - category: main dependencies: importlib_resources: '>=5.8,<7.0' @@ -5605,7 +5617,7 @@ package: version: 0.4.2 - category: main dependencies: - aws-sam-translator: '>=1.79.0' + aws-sam-translator: '>=1.82.0' jschema-to-python: '>=1.2.3,<1.3.dev0' jsonpatch: '' jsonschema: '>=3.0,<5' @@ -5617,14 +5629,14 @@ package: sarif-om: '>=1.0.4,<1.1.dev0' sympy: '>=1.0.0' hash: - md5: 8fa5ac9497fc51cb02377e38500ce964 - sha256: a77254900a3bc62e4c216f1223c9a14982db30e3c24a1b3fcc9cd9dcf3d1f5a4 + md5: 6bf6c385031287e86a5821f57544fc12 + sha256: deed7d4700694a25d440816d13de89468fe92dfc87ba506f3fee72b5d1131c75 manager: conda name: cfn-lint optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.83.3-pyhd8ed1ab_0.conda - version: 0.83.3 + url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.83.6-pyhd8ed1ab_0.conda + version: 0.83.6 - category: main dependencies: colorama: '' @@ -5700,14 +5712,14 @@ package: werkzeug: '>=0.5,!=2.2.0,!=2.2.1' xmltodict: '' hash: - md5: cd76850f625a821bd553380913baf5d6 - sha256: 307ce3acd4c5c3b25f25e871924e96ee052c09a8a2832fcb7a89a2dc26f309cb + md5: 9447c344fde58f458a55b05729ae74aa + sha256: f0586fd89bcc4e7df9cd12e66627473bed9b4bc33814b01f48e6059628af2f6b manager: conda name: moto optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.10-pyhd8ed1ab_0.conda - version: 4.2.10 + url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.12-pyhd8ed1ab_0.conda + version: 4.2.12 - category: main dependencies: livereload: '>=2.3.0' diff --git a/sims/verilator/Makefile b/sims/verilator/Makefile index 0341ff7d..86463fa1 100644 --- a/sims/verilator/Makefile +++ b/sims/verilator/Makefile @@ -162,8 +162,7 @@ VERILATOR_NONCC_OPTS = \ VERILATOR_CXXFLAGS = \ $(SIM_CXXFLAGS) \ $(RUNTIME_PROFILING_CFLAGS) \ - -DVERILATOR \ - -include $(build_dir)/$(long_name).plusArgs + -DVERILATOR VERILATOR_LDFLAGS = $(SIM_LDFLAGS) @@ -194,13 +193,13 @@ model_mk_debug = $(model_dir_debug)/V$(TB).mk $(model_mk): $(sim_common_files) $(EXTRA_SIM_REQS) rm -rf $(model_dir) mkdir -p $(model_dir) - $(VERILATOR) $(VERILATOR_OPTS) $(EXTRA_SIM_SOURCES) -o $(sim) -Mdir $(model_dir) -CFLAGS "-include $(model_header)" + $(VERILATOR) $(VERILATOR_OPTS) $(EXTRA_SIM_SOURCES) -o $(sim) -Mdir $(model_dir) touch $@ $(model_mk_debug): $(sim_common_files) $(EXTRA_SIM_REQS) rm -rf $(model_dir_debug) mkdir -p $(model_dir_debug) - $(VERILATOR) $(VERILATOR_OPTS) +define+DEBUG $(EXTRA_SIM_SOURCES) -o $(sim_debug) $(TRACING_OPTS) -Mdir $(model_dir_debug) -CFLAGS "-include $(model_header_debug)" + $(VERILATOR) $(VERILATOR_OPTS) +define+DEBUG $(EXTRA_SIM_SOURCES) -o $(sim_debug) $(TRACING_OPTS) -Mdir $(model_dir_debug) touch $@ ######################################################################################### From 5f2b2181c2e57cf90d0ea8de43542b2a92028aff Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 1 Jan 2024 11:42:37 -0800 Subject: [PATCH 040/105] Bump to verilator v5.020 --- conda-reqs/chipyard.yaml | 2 +- ...irements-esp-tools-linux-64.conda-lock.yml | 26 +++++++++---------- ...ements-riscv-tools-linux-64.conda-lock.yml | 26 +++++++++---------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/conda-reqs/chipyard.yaml b/conda-reqs/chipyard.yaml index 564f05e3..ec49a0a4 100644 --- a/conda-reqs/chipyard.yaml +++ b/conda-reqs/chipyard.yaml @@ -88,7 +88,7 @@ dependencies: - graphviz - expect - dtc - - verilator==5.018 + - verilator==5.020 - screen - elfutils - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index f61642e8..f63afc45 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -21,7 +21,7 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: ff6d08e475547b935387001d63d60acbd5f49e2b4fe52cca99a819e4d97a1861 + linux-64: de1e2d263317a6a0c7c45acb734d166b9975ff1a94cd138e3427bb7b7bdd8db4 platforms: - linux-64 sources: @@ -2100,14 +2100,14 @@ package: dependencies: python: '>=3.7' hash: - md5: 3edfead7cedd1ab4400a6c588f3e75f8 - sha256: 063639cd568f5c7a557b0fb1cc27f098598c0d8ff869088bfeb82934674f8821 + md5: 5e4c0743c70186509d1412e03c2d8dfa + sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea manager: conda name: attrs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda - version: 23.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + version: 23.2.0 - category: main dependencies: aws-c-common: '>=0.9.10,<0.9.11.0a0' @@ -3398,14 +3398,14 @@ package: perl: '' python: '' hash: - md5: 6ecc6f19e3a0661c096d0e84015c8122 - sha256: 582ae4513d3ef87d4b0c5d53a3a691575de2aabe8cc5a5554bb1db5bcd6a40b4 + md5: 0b2929f84fe7d3a6117439507d5d50d9 + sha256: 1d6af07d2d19be7adc296e8b6c43bd3eb12b48d8ab8e0cec566e8f9872661813 manager: conda name: verilator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.018-h4f9daa6_0.conda - version: '5.018' + url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.020-h7cd9344_0.conda + version: '5.020' - category: main dependencies: python: '>=3.8' @@ -4061,14 +4061,14 @@ package: python: '>=3.7' tomli: '>=1.0.0' hash: - md5: 5bdca0aca30b0ee62bb84854e027eae0 - sha256: 14e948e620ec87d9e62a8d9c21d40084b4805a939cfee322be7d457379dc96a0 + md5: a9d145de8c5f064b5fa68fb34725d9f4 + sha256: 8979721b7f86b183d21103f3ec2734783847d317c1b754f462f407efc7c60886 manager: conda name: pytest optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.3-pyhd8ed1ab_0.conda - version: 7.4.3 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda + version: 7.4.4 - category: main dependencies: python: '>=3.6' diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 9187da76..61cc9654 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -21,7 +21,7 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: d002c72bdb6dab9165fd4a7c10f2c91ead3a528494418421f075feaf35d0646c + linux-64: ca6a27eca59955764c48c1f6e92b9c0d88ab3b0ce2cf79bc2b35e847e0aecff4 platforms: - linux-64 sources: @@ -2100,14 +2100,14 @@ package: dependencies: python: '>=3.7' hash: - md5: 3edfead7cedd1ab4400a6c588f3e75f8 - sha256: 063639cd568f5c7a557b0fb1cc27f098598c0d8ff869088bfeb82934674f8821 + md5: 5e4c0743c70186509d1412e03c2d8dfa + sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea manager: conda name: attrs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda - version: 23.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + version: 23.2.0 - category: main dependencies: aws-c-common: '>=0.9.10,<0.9.11.0a0' @@ -3412,14 +3412,14 @@ package: perl: '' python: '' hash: - md5: 6ecc6f19e3a0661c096d0e84015c8122 - sha256: 582ae4513d3ef87d4b0c5d53a3a691575de2aabe8cc5a5554bb1db5bcd6a40b4 + md5: 0b2929f84fe7d3a6117439507d5d50d9 + sha256: 1d6af07d2d19be7adc296e8b6c43bd3eb12b48d8ab8e0cec566e8f9872661813 manager: conda name: verilator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.018-h4f9daa6_0.conda - version: '5.018' + url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.020-h7cd9344_0.conda + version: '5.020' - category: main dependencies: python: '>=3.8' @@ -4075,14 +4075,14 @@ package: python: '>=3.7' tomli: '>=1.0.0' hash: - md5: 5bdca0aca30b0ee62bb84854e027eae0 - sha256: 14e948e620ec87d9e62a8d9c21d40084b4805a939cfee322be7d457379dc96a0 + md5: a9d145de8c5f064b5fa68fb34725d9f4 + sha256: 8979721b7f86b183d21103f3ec2734783847d317c1b754f462f407efc7c60886 manager: conda name: pytest optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.3-pyhd8ed1ab_0.conda - version: 7.4.3 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda + version: 7.4.4 - category: main dependencies: python: '>=3.6' From 41651edbdc206d63e248b48056b2bdfd0eb1d28c Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 1 Jan 2024 15:44:23 -0800 Subject: [PATCH 041/105] Bump firesim | fix testchipip segfaults --- fpga/src/main/scala/arty100t/HarnessBinders.scala | 4 ++-- .../chipyard/src/main/scala/harness/HarnessBinders.scala | 2 +- generators/testchipip | 2 +- sims/firesim | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fpga/src/main/scala/arty100t/HarnessBinders.scala b/fpga/src/main/scala/arty100t/HarnessBinders.scala index e8029884..7b1640ba 100644 --- a/fpga/src/main/scala/arty100t/HarnessBinders.scala +++ b/fpga/src/main/scala/arty100t/HarnessBinders.scala @@ -107,7 +107,7 @@ class WithArty100TSerialTLToGPIO extends HarnessBinder({ // Maps the UART device to the on-board USB-UART class WithArty100TUART(rxdPin: String = "A9", txdPin: String = "D10") extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: UARTPort) => { + case (th: HasHarnessInstantiators, port: UARTPort, chipId: Int) => { val ath = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[Arty100THarness] val harnessIO = IO(chiselTypeOf(port.io)).suggestName("uart") harnessIO <> port.io @@ -126,7 +126,7 @@ class WithArty100TUART(rxdPin: String = "A9", txdPin: String = "D10") extends Ha class WithArty100TPMODUART extends WithArty100TUART("G2", "F3") class WithArty100TJTAG extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: JTAGPort) => { + case (th: HasHarnessInstantiators, port: JTAGPort, chipId: Int) => { val ath = th.asInstanceOf[LazyRawModuleImp].wrapper.asInstanceOf[Arty100THarness] val harnessIO = IO(chiselTypeOf(port.io)).suggestName("jtag") harnessIO <> port.io diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 999c8877..d70519b3 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -100,7 +100,7 @@ class WithSimAXIMem extends HarnessBinder({ case (th: HasHarnessInstantiators, port: AXI4MemPort, chipId: Int) => { val mem = LazyModule(new SimAXIMem(port.edge, size=port.params.master.size)(Parameters.empty)) withClock(port.io.clock) { Module(mem.module) } - mem.io_axi4.head <> port.io + mem.io_axi4.head <> port.io.bits } }) diff --git a/generators/testchipip b/generators/testchipip index b3b74435..263980a9 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit b3b744353875056cbe865d5b767e488713f4c7f1 +Subproject commit 263980a9f503e0e57705b6d31002077fa6269aa6 diff --git a/sims/firesim b/sims/firesim index e9758935..c113e2d6 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit e975893595129c2682a72fb7e5898273fcc2d071 +Subproject commit c113e2d6001080749b20c5a60b67eb338267a823 From 561e3fca68c4bd2717509d9160d6cabf206656b1 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 2 Jan 2024 12:51:27 -0800 Subject: [PATCH 042/105] [ci skip] Add makefile help text for check-submodule-status --- common.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common.mk b/common.mk index d52af1a0..c4ae8548 100644 --- a/common.mk +++ b/common.mk @@ -57,7 +57,8 @@ HELP_COMMANDS += \ " firrtl = generate intermediate firrtl files from chisel elaboration" \ " run-tests = run all assembly and benchmark tests" \ " launch-sbt = start sbt terminal" \ -" find-config-fragments = list all config. fragments" +" find-config-fragments = list all config. fragments" \ +" check-submodule-status = check that all submodules in generators/ have been initialized" ######################################################################################### # include additional subproject make fragments From 0a42dd1ca1bc83d12de40ab7d5b6ebe28630bb81 Mon Sep 17 00:00:00 2001 From: Tynan McAuley Date: Wed, 3 Jan 2024 16:22:51 -0800 Subject: [PATCH 043/105] Update deprecated APIs to prepare for Chisel 5 - `IO` was moved from `chisel3.experimental` to `chisel3` - `DataMirror` was moved from `chisel3.experimental` to `chisel3.reflect` --- generators/chipyard/src/main/scala/SpikeTile.scala | 2 +- .../chipyard/src/main/scala/clocking/ClockGroupCombiner.scala | 2 +- .../chipyard/src/main/scala/clocking/TileClockGater.scala | 2 +- .../chipyard/src/main/scala/clocking/TileResetSetter.scala | 2 +- generators/chipyard/src/main/scala/iobinders/IOBinders.scala | 3 ++- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/generators/chipyard/src/main/scala/SpikeTile.scala b/generators/chipyard/src/main/scala/SpikeTile.scala index fc822c22..777b3731 100644 --- a/generators/chipyard/src/main/scala/SpikeTile.scala +++ b/generators/chipyard/src/main/scala/SpikeTile.scala @@ -2,7 +2,7 @@ package chipyard import chisel3._ import chisel3.util._ -import chisel3.experimental.{IntParam, StringParam, IO} +import chisel3.experimental.{IntParam, StringParam} import org.chipsalliance.cde.config._ import freechips.rocketchip.subsystem._ diff --git a/generators/chipyard/src/main/scala/clocking/ClockGroupCombiner.scala b/generators/chipyard/src/main/scala/clocking/ClockGroupCombiner.scala index e5236804..9b53cbef 100644 --- a/generators/chipyard/src/main/scala/clocking/ClockGroupCombiner.scala +++ b/generators/chipyard/src/main/scala/clocking/ClockGroupCombiner.scala @@ -2,7 +2,7 @@ package chipyard.clocking import chisel3._ import chisel3.util._ -import chisel3.experimental.{Analog, IO} +import chisel3.experimental.Analog import org.chipsalliance.cde.config._ import freechips.rocketchip.subsystem._ diff --git a/generators/chipyard/src/main/scala/clocking/TileClockGater.scala b/generators/chipyard/src/main/scala/clocking/TileClockGater.scala index e299d0a9..c92e05bc 100644 --- a/generators/chipyard/src/main/scala/clocking/TileClockGater.scala +++ b/generators/chipyard/src/main/scala/clocking/TileClockGater.scala @@ -2,7 +2,7 @@ package chipyard.clocking import chisel3._ import chisel3.util._ -import chisel3.experimental.{Analog, IO} +import chisel3.experimental.Analog import org.chipsalliance.cde.config._ import freechips.rocketchip.subsystem._ diff --git a/generators/chipyard/src/main/scala/clocking/TileResetSetter.scala b/generators/chipyard/src/main/scala/clocking/TileResetSetter.scala index 53dd36d0..88916d17 100644 --- a/generators/chipyard/src/main/scala/clocking/TileResetSetter.scala +++ b/generators/chipyard/src/main/scala/clocking/TileResetSetter.scala @@ -2,7 +2,7 @@ package chipyard.clocking import chisel3._ import chisel3.util._ -import chisel3.experimental.{Analog, IO} +import chisel3.experimental.Analog import org.chipsalliance.cde.config._ import freechips.rocketchip.subsystem._ diff --git a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala index 7695be70..f67ea81f 100644 --- a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala +++ b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala @@ -1,7 +1,8 @@ package chipyard.iobinders import chisel3._ -import chisel3.experimental.{Analog, IO, DataMirror} +import chisel3.reflect.DataMirror +import chisel3.experimental.Analog import org.chipsalliance.cde.config._ import freechips.rocketchip.diplomacy._ From 9ab9132c8b30753450518f9ca3f4ab03719b3b92 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 4 Jan 2024 13:34:53 -0800 Subject: [PATCH 044/105] Fix missing childClock/childReset in Arty100THarness --- fpga/src/main/scala/arty100t/Harness.scala | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fpga/src/main/scala/arty100t/Harness.scala b/fpga/src/main/scala/arty100t/Harness.scala index 577bd1b2..30a382e1 100644 --- a/fpga/src/main/scala/arty100t/Harness.scala +++ b/fpga/src/main/scala/arty100t/Harness.scala @@ -76,6 +76,9 @@ class Arty100THarness(override implicit val p: Parameters) extends Arty100TShell def referenceReset = dutClock.in.head._1.reset def success = { require(false, "Unused"); false.B } + childClock := harnessBinderClock + childReset := harnessBinderReset + ddrOverlay.mig.module.clock := harnessBinderClock ddrOverlay.mig.module.reset := harnessBinderReset ddrBlockDuringReset.module.clock := harnessBinderClock From bb23af97be037af80ef1710034eaa1d3b4785fcd Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 4 Jan 2024 12:10:36 -0800 Subject: [PATCH 045/105] Add clearer --skip flags to build-setup --- scripts/build-setup.sh | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index d3a66ca6..a55b10fd 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -38,12 +38,20 @@ usage() { echo " --help -h : Display this message" echo " --force -f : Skip all prompts and checks" - echo " --skip-validate : DEPRECATED: Same functionality as --force" echo " --verbose -v : Verbose printout" echo " --use-unpinned-deps -ud : Use unpinned conda environment" echo " --skip -s N : Skip step N in the list above. Use multiple times to skip multiple steps ('-s N -s M ...')." + echo " --skip-conda : Skip Conda initialization (step 1)" + echo " --skip-submodules : Skip submodule initialization (step 2)" + echo " --skip-toolchain : Skip toolchain collateral (step 3)" + echo " --skip-ctags : Skip ctags (step 4)" + echo " --skip-precompile : Skip precompiling sources (steps 5/7)" + echo " --skip-firesim : Skip Firesim initialization (steps 6/7)" + echo " --skip-marshal : Skip firemarshal initialization (steps 8/9)" + echo " --skip-circt : Skip CIRCT install (step 10)" + echo " --skip-clean : Skip repository clean-up (step 11)" exit "$1" } @@ -73,6 +81,24 @@ do --skip | -s) shift SKIP_LIST+=(${1}) ;; + --skip-conda) + SKIP_LIST+=(1) ;; + --skip-submodules) + SKIP_LIST+=(2) ;; + --skip-toolchain) + SKIP_LIST+=(3) ;; + --skip-ctags) + SKIP_LIST+=(4) ;; + --skip-precompile) + SKIP_LIST+=(5 6) ;; + --skip-firesim) + SKIP_LIST+=(6 7) ;; + --skip-marshal) + SKIP_LIST+=(8 9) ;; + --skip-circt) + SKIP_LIST+=(10) ;; + --skip-clean) + SKIP_LIST+=(11) ;; * ) error "invalid option $1" usage 1 ;; From 7c1357476920dbccc2065827e3f3457e096d4fec Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 4 Jan 2024 14:09:54 -0800 Subject: [PATCH 046/105] Rename cache/blocks submodules to match new chipsalliance ownership --- .github/scripts/check-commit.sh | 2 +- .gitmodules | 12 ++++++------ build.sbt | 12 ++++++------ docs/Chipyard-Basics/Chipyard-Components.rst | 6 +++--- docs/Customization/Custom-Chisel.rst | 2 +- docs/Customization/Memory-Hierarchy.rst | 8 ++++---- ...nerators.rst => Rocket-Chip-Generators.rst} | 18 +++++++++--------- docs/Generators/Rocket-Chip.rst | 4 ++-- docs/Generators/Rocket.rst | 2 +- docs/Generators/index.rst | 2 +- fpga/Makefile | 2 +- .../{sifive-blocks => rocket-chip-blocks} | 0 ...ifive-cache => rocket-chip-inclusive-cache} | 0 scripts/tutorial-patches/build.sbt.patch | 2 +- sims/firesim | 2 +- 15 files changed, 37 insertions(+), 37 deletions(-) rename docs/Generators/{SiFive-Generators.rst => Rocket-Chip-Generators.rst} (73%) rename generators/{sifive-blocks => rocket-chip-blocks} (100%) rename generators/{sifive-cache => rocket-chip-inclusive-cache} (100%) diff --git a/.github/scripts/check-commit.sh b/.github/scripts/check-commit.sh index d3b856c8..a4a95611 100755 --- a/.github/scripts/check-commit.sh +++ b/.github/scripts/check-commit.sh @@ -45,7 +45,7 @@ search () { done } -submodules=("cva6" "boom" "ibex" "gemmini" "hwacha" "icenet" "nvdla" "rocket-chip" "sha3" "sifive-blocks" "sifive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils") +submodules=("cva6" "boom" "ibex" "gemmini" "hwacha" "icenet" "nvdla" "rocket-chip" "sha3" "rocket-chip-blocks" "rocket-chip-inclusive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils") dir="generators" branches=("master" "main" "dev") search diff --git a/.gitmodules b/.gitmodules index e1768873..b047c838 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,9 +13,6 @@ [submodule "generators/boom"] path = generators/boom url = https://github.com/riscv-boom/riscv-boom.git -[submodule "generators/sifive-blocks"] - path = generators/sifive-blocks - url = https://github.com/chipsalliance/rocket-chip-blocks.git [submodule "generators/hwacha"] path = generators/hwacha url = https://github.com/ucb-bar/hwacha.git @@ -25,9 +22,6 @@ [submodule "generators/icenet"] path = generators/icenet url = https://github.com/firesim/icenet.git -[submodule "generators/block-inclusivecache-sifive"] - path = generators/sifive-cache - url = https://github.com/chipsalliance/rocket-chip-inclusive-cache.git [submodule "tools/dsptools"] path = tools/dsptools url = https://github.com/ucb-bar/dsptools.git @@ -145,3 +139,9 @@ [submodule "toolchains/riscv-tools/riscv-spike-devices"] path = toolchains/riscv-tools/riscv-spike-devices url = https://github.com/ucb-bar/spike-devices.git +[submodule "generators/rocket-chip-blocks"] + path = generators/rocket-chip-blocks + url = https://github.com/chipsalliance/rocket-chip-blocks.git +[submodule "generators/rocket-chip-inclusive-cache"] + path = generators/rocket-chip-inclusive-cache + url = https://github.com/chipsalliance/rocket-chip-inclusive-cache.git diff --git a/build.sbt b/build.sbt index c3be6161..51fd6b09 100644 --- a/build.sbt +++ b/build.sbt @@ -141,12 +141,12 @@ lazy val rocketLibDeps = (rocketchip / Keys.libraryDependencies) lazy val midasTargetUtils = ProjectRef(firesimDir, "targetutils") lazy val testchipip = (project in file("generators/testchipip")) - .dependsOn(rocketchip, sifive_blocks) + .dependsOn(rocketchip, rocketchip_blocks) .settings(libraryDependencies ++= rocketLibDeps.value) .settings(commonSettings) lazy val chipyard = (project in file("generators/chipyard")) - .dependsOn(testchipip, rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell, + .dependsOn(testchipip, rocketchip, boom, hwacha, rocketchip_blocks, rocketchip_inclusive_cache, iocell, sha3, // On separate line to allow for cleaner tutorial-setup patches dsptools, rocket_dsp_utils, gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex, fft_generator, @@ -180,7 +180,7 @@ lazy val fft_generator = (project in file("generators/fft-generator")) .settings(commonSettings) lazy val tracegen = (project in file("generators/tracegen")) - .dependsOn(testchipip, rocketchip, sifive_cache, boom) + .dependsOn(testchipip, rocketchip, rocketchip_inclusive_cache, boom) .settings(libraryDependencies ++= rocketLibDeps.value) .settings(commonSettings) @@ -279,12 +279,12 @@ lazy val rocket_dsp_utils = freshProject("rocket-dsp-utils", file("./tools/rocke .settings(libraryDependencies ++= rocketLibDeps.value) .settings(commonSettings) -lazy val sifive_blocks = (project in file("generators/sifive-blocks")) +lazy val rocketchip_blocks = (project in file("generators/rocket-chip-blocks")) .dependsOn(rocketchip) .settings(libraryDependencies ++= rocketLibDeps.value) .settings(commonSettings) -lazy val sifive_cache = (project in file("generators/sifive-cache")) +lazy val rocketchip_inclusive_cache = (project in file("generators/rocket-chip-inclusive-cache")) .settings( commonSettings, Compile / scalaSource := baseDirectory.value / "design/craft") @@ -304,7 +304,7 @@ lazy val firechip = (project in file("generators/firechip")) Test / testOptions += Tests.Argument("-oF") ) lazy val fpga_shells = (project in file("./fpga/fpga-shells")) - .dependsOn(rocketchip, sifive_blocks) + .dependsOn(rocketchip, rocketchip_blocks) .settings(libraryDependencies ++= rocketLibDeps.value) .settings(commonSettings) diff --git a/docs/Chipyard-Basics/Chipyard-Components.rst b/docs/Chipyard-Basics/Chipyard-Components.rst index 8f8e9045..222d37df 100644 --- a/docs/Chipyard-Basics/Chipyard-Components.rst +++ b/docs/Chipyard-Basics/Chipyard-Components.rst @@ -53,9 +53,9 @@ System Components: **icenet** A Network Interface Controller (NIC) designed to achieve up to 200 Gbps. -**sifive-blocks** - System components implemented by SiFive and used by SiFive projects, designed to be integrated with the Rocket Chip generator. - These system and peripheral components include UART, SPI, JTAG, I2C, PWM, and other peripheral and interface devices. +**rocket-chip-blocks** + System components originally implemented by SiFive and used by SiFive projects, designed to be integrated with the Rocket Chip generator. + Now maintained by Chips Alliance. These system and peripheral components include UART, SPI, JTAG, I2C, PWM, and other peripheral and interface devices. **AWL (Analog Widget Library)** Digital components required for integration with high speed serial links. diff --git a/docs/Customization/Custom-Chisel.rst b/docs/Customization/Custom-Chisel.rst index 121ca712..a3b4ef72 100644 --- a/docs/Customization/Custom-Chisel.rst +++ b/docs/Customization/Custom-Chisel.rst @@ -59,7 +59,7 @@ should look something like this: .. code-block:: scala lazy val chipyard = (project in file("generators/chipyard")) - .dependsOn(testchipip, rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell, + .dependsOn(testchipip, rocketchip, boom, hwacha, rocketchip_blocks, rocketchip_inclusive_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 diff --git a/docs/Customization/Memory-Hierarchy.rst b/docs/Customization/Memory-Hierarchy.rst index ecb666d1..11bc132b 100644 --- a/docs/Customization/Memory-Hierarchy.rst +++ b/docs/Customization/Memory-Hierarchy.rst @@ -46,17 +46,17 @@ agents and MMIO peripherals. Ordinarily, it is a fully-connected crossbar, but a network-on-chip-based implementation can be generated using Constellation. See :ref:`Customization/NoC-SoCs:SoCs with NoC-based Interconnects` for more. -The SiFive L2 Cache -------------------- +The Inclusive Last-Level Cache +--------------------------------- -The default ``RocketConfig`` provided in the Chipyard example project uses SiFive's +The default ``RocketConfig`` provided in the Chipyard example project uses the Rocket-Chip InclusiveCache generator to produce a shared L2 cache. In the default configuration, the L2 uses a single cache bank with 512 KiB capacity and 8-way set-associativity. However, you can change these parameters to obtain your desired cache configuration. The main restriction is that the number of ways and the number of banks must be powers of 2. -Refer to the ``CacheParameters`` object defined in sifive-cache for +Refer to the ``CacheParameters`` object defined in ``rocket-chip-inclusive-cache`` for customization options. The Broadcast Hub diff --git a/docs/Generators/SiFive-Generators.rst b/docs/Generators/Rocket-Chip-Generators.rst similarity index 73% rename from docs/Generators/SiFive-Generators.rst rename to docs/Generators/Rocket-Chip-Generators.rst index d6b174ef..66dd66a0 100644 --- a/docs/Generators/SiFive-Generators.rst +++ b/docs/Generators/Rocket-Chip-Generators.rst @@ -1,19 +1,19 @@ -SiFive Generators +Rocket-Chip Generators ================== -Chipyard includes several open-source generators developed and maintained by `SiFive `__. -These are currently organized within two submodules named ``sifive-blocks`` and ``sifive-cache``. +Chipyard includes several open-source generators developed by `SiFive `__, and now openly maintained as part of Chips Alliance. +These are currently organized within two submodules named ``rocket-chip-blocks`` and ``rocket-chip-inclusive-cache``. Last-Level Cache Generator ----------------------------- -``sifive-cache`` includes last-level cache geneator. The Chipyard framework uses this last-level cache as an L2 cache. To use this L2 cache, you should add the ``freechips.rocketchip.subsystem.WithInclusiveCache`` config fragment to your SoC configuration. +``rocket-chip-inclusive-cache`` includes last-level cache geneator. The Chipyard framework uses this last-level cache as an L2 cache. To use this L2 cache, you should add the ``freechips.rocketchip.subsystem.WithInclusiveCache`` config fragment to your SoC configuration. To learn more about configuring this L2 cache, please refer to the :ref:`memory-hierarchy` section. Peripheral Devices Overview ---------------------------- -``sifive-blocks`` includes multiple peripheral device generators, such as UART, SPI, PWM, JTAG, GPIO and more. +``rocket-chip-blocks`` includes multiple peripheral device generators, such as UART, SPI, PWM, JTAG, GPIO and more. These peripheral devices usually affect the memory map of the SoC, and its top-level IO as well. All the peripheral blocks comes with a default memory address that would not collide with each other, but if integrating multiple duplicated blocks in the SoC is needed, you will need to explicitly specify an approriate memory address for that device. @@ -34,7 +34,7 @@ Finally, you add the relevant config fragment to the SoC config. For example: General Purpose I/Os (GPIO) Device ---------------------------------- -GPIO device is a periphery device provided by ``sifive-blocks``. Each general-purpose I/O port has five 32-bit configuration registers, two 32-bit data registers controlling pin input and output values, and eight 32-bit interrupt control/status register for signal level and edge triggering. In addition, all GPIOs can have two 32-bit alternate function selection registers. +GPIO device is a periphery device provided by ``rocket-chip-blocks``. Each general-purpose I/O port has five 32-bit configuration registers, two 32-bit data registers controlling pin input and output values, and eight 32-bit interrupt control/status register for signal level and edge triggering. In addition, all GPIOs can have two 32-bit alternate function selection registers. GPIO main features @@ -78,7 +78,7 @@ Including GPIO in the SoC Universal Asynchronous Receiver/Transmitter (UART) Device ---------------------------------------------------------- -UART device is a periphery device provided by ``sifive-blocks``. The UART offers a flexible means to perform Full-duplex data exchange with external devices. A very wide range of baud rates can be achieved through a fractional baud rate generator. The UART peripheral does not support other modem control signals, or synchronous serial data transfers. +UART device is a periphery device provided by ``rocket-chip-blocks``. The UART offers a flexible means to perform Full-duplex data exchange with external devices. A very wide range of baud rates can be achieved through a fractional baud rate generator. The UART peripheral does not support other modem control signals, or synchronous serial data transfers. UART main features @@ -125,7 +125,7 @@ Including UART in the SoC Inter-Integrated Circuit (I2C) Interface Device ------------------------------------------------- -I2C device is a periphery device provided by ``sifive-blocks``. The I2C (inter-integrated circuit) bus interface handles communications to the serial I2C bus. It provides multi-master capability, and controls all I2C bus-specific sequencing, protocol, arbitration and timing. It supports Standard-mode (Sm), Fast-mode (Fm) and Fast-mode Plus (Fm+). +I2C device is a periphery device provided by ``rocket-chip-blocks``. The I2C (inter-integrated circuit) bus interface handles communications to the serial I2C bus. It provides multi-master capability, and controls all I2C bus-specific sequencing, protocol, arbitration and timing. It supports Standard-mode (Sm), Fast-mode (Fm) and Fast-mode Plus (Fm+). I2C main features @@ -169,7 +169,7 @@ Including I2C in the SoC Serial Peripheral Interface (SPI) Device ------------------------------------------------- -SPI device is a periphery device provided by ``sifive-blocks``. The SPI interface can be used to communicate with external devices using the SPI protocol. +SPI device is a periphery device provided by ``rocket-chip-blocks``. The SPI interface can be used to communicate with external devices using the SPI protocol. The serial peripheral interface (SPI) protocol supports half-duplex, full-duplex and simplex synchronous, serial communication with external devices. The interface can be configured as master and in this case it provides the communication clock (SCLK) to the external slave device. diff --git a/docs/Generators/Rocket-Chip.rst b/docs/Generators/Rocket-Chip.rst index 856d01e1..3e404939 100644 --- a/docs/Generators/Rocket-Chip.rst +++ b/docs/Generators/Rocket-Chip.rst @@ -1,8 +1,8 @@ Rocket Chip =========== -Rocket Chip generator is an SoC generator developed at Berkeley and now supported by -`SiFive `__. Chipyard uses the Rocket Chip generator as the basis for producing a RISC-V SoC. +Rocket Chip generator is an SoC generator developed at Berkeley and SiFive, and now maintained openly in Chips Alliance. +Chipyard uses the Rocket Chip generator as the basis for producing a RISC-V SoC. `Rocket Chip` is distinct from `Rocket core`, the in-order RISC-V CPU generator. Rocket Chip includes many parts of the SoC besides the CPU. Though Rocket Chip diff --git a/docs/Generators/Rocket.rst b/docs/Generators/Rocket.rst index 6c55b761..536d6991 100644 --- a/docs/Generators/Rocket.rst +++ b/docs/Generators/Rocket.rst @@ -1,7 +1,7 @@ Rocket Core ==================================== -`Rocket `__ is a 5-stage in-order scalar processor core generator, originally developed at UC Berkeley and currently supported by `SiFive `__. The `Rocket core` is used as a component within the `Rocket Chip SoC generator`. A Rocket core combined with L1 caches (data and instruction caches) form a `Rocket tile`. The `Rocket tile` is the replicable component of the `Rocket Chip SoC generator`. +`Rocket `__ is a 5-stage in-order scalar processor core generator, originally developed at UC Berkeley and `SiFive `__, and now maintained by Chips Alliance. The `Rocket core` is used as a component within the `Rocket Chip SoC generator`. A Rocket core combined with L1 caches (data and instruction caches) form a `Rocket tile`. The `Rocket tile` is the replicable component of the `Rocket Chip SoC generator`. The Rocket core supports the open-source RV64GC RISC-V instruction set and is written in the Chisel hardware construction language. It has an MMU that supports page-based virtual memory, a non-blocking data cache, and a front-end with branch prediction. diff --git a/docs/Generators/index.rst b/docs/Generators/index.rst index c2bf3719..651a6bae 100644 --- a/docs/Generators/index.rst +++ b/docs/Generators/index.rst @@ -26,7 +26,7 @@ so changes to the generators themselves will automatically be used when building Gemmini IceNet TestChipIP - SiFive-Generators + Rocket-Chip-Generators SHA3 CVA6 Ibex diff --git a/fpga/Makefile b/fpga/Makefile index cfe760f4..a4d3bf99 100644 --- a/fpga/Makefile +++ b/fpga/Makefile @@ -137,7 +137,7 @@ include $(base_dir)/common.mk # copy from other directory ######################################################################################### all_vsrcs := \ - $(base_dir)/generators/sifive-blocks/vsrc/SRLatch.v + $(base_dir)/generators/rocket-chip-blocks/vsrc/SRLatch.v ######################################################################################### # vivado rules diff --git a/generators/sifive-blocks b/generators/rocket-chip-blocks similarity index 100% rename from generators/sifive-blocks rename to generators/rocket-chip-blocks diff --git a/generators/sifive-cache b/generators/rocket-chip-inclusive-cache similarity index 100% rename from generators/sifive-cache rename to generators/rocket-chip-inclusive-cache diff --git a/scripts/tutorial-patches/build.sbt.patch b/scripts/tutorial-patches/build.sbt.patch index e47fbbf6..b64d7a43 100644 --- a/scripts/tutorial-patches/build.sbt.patch +++ b/scripts/tutorial-patches/build.sbt.patch @@ -5,7 +5,7 @@ index c3be6161..2a6d7160 100644 @@ -147,7 +147,7 @@ lazy val testchipip = (project in file("generators/testchipip")) lazy val chipyard = (project in file("generators/chipyard")) - .dependsOn(testchipip, rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell, + .dependsOn(testchipip, rocketchip, boom, hwacha, rocketchip_blocks, rocketchip_inclusive_cache, iocell, - sha3, // On separate line to allow for cleaner tutorial-setup patches + //sha3, // On separate line to allow for cleaner tutorial-setup patches dsptools, rocket_dsp_utils, diff --git a/sims/firesim b/sims/firesim index e9758935..0443e53f 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit e975893595129c2682a72fb7e5898273fcc2d071 +Subproject commit 0443e53fcbf5dad4a51bcbdcf6c7556e86e81deb From 46585a5114f521dc45e4b0c31f374105afaaeee4 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 5 Jan 2024 11:14:38 -0800 Subject: [PATCH 047/105] Fix check-submodule-status forcing rebuilds --- common.mk | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/common.mk b/common.mk index c4ae8548..3763584f 100644 --- a/common.mk +++ b/common.mk @@ -84,6 +84,8 @@ endif # Returns a list of files in directories $1 with *any* of the file extensions in $2 lookup_srcs_by_multiple_type = $(foreach type,$(2),$(call lookup_srcs,$(1),$(type))) +CHECK_SUBMODULES_COMMAND = echo "Checking all submodules in generators/ are initialized. Uninitialized submodules will be displayed" ; ! git submodule status $(base_dir)/generators | grep ^- + SCALA_EXT = scala VLOG_EXT = sv v CHIPYARD_SOURCE_DIRS = $(addprefix $(base_dir)/,generators sims/firesim/sim fpga/fpga-shells fpga/src) @@ -119,7 +121,8 @@ $(BOOTROM_TARGETS): $(build_dir)/bootrom.%.img: $(TESTCHIP_RSRCS_DIR)/testchipip ######################################################################################### # compile scala jars ######################################################################################### -$(CHIPYARD_CLASSPATH_TARGETS) &: check-submodule-status $(CHIPYARD_SCALA_SOURCES) $(SCALA_BUILDTOOL_DEPS) $(CHIPYARD_VLOG_SOURCES) +$(CHIPYARD_CLASSPATH_TARGETS) &: $(CHIPYARD_SCALA_SOURCES) $(SCALA_BUILDTOOL_DEPS) $(CHIPYARD_VLOG_SOURCES) + $(CHECK_SUBMODULES_COMMAND) mkdir -p $(dir $@) $(call run_sbt_assembly,$(SBT_PROJECT),$(CHIPYARD_CLASSPATH)) @@ -458,8 +461,7 @@ help: .PHONY: check-submodule-status check-submodule-status: - echo "Checking all submodules in generators/ are initialized. Uninitialized submodules will be displayed" - ! git submodule status $(base_dir)/generators | grep ^- + $(CHECK_SUBMODULES_COMMAND) ######################################################################################### # Implicit rule handling From 9f45c49f04979f352035770d60e948edd720d9b7 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 5 Jan 2024 11:51:17 -0800 Subject: [PATCH 048/105] Fix docs --- docs/Generators/Rocket-Chip-Generators.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Generators/Rocket-Chip-Generators.rst b/docs/Generators/Rocket-Chip-Generators.rst index 66dd66a0..435fa1dd 100644 --- a/docs/Generators/Rocket-Chip-Generators.rst +++ b/docs/Generators/Rocket-Chip-Generators.rst @@ -1,5 +1,5 @@ Rocket-Chip Generators -================== +====================== Chipyard includes several open-source generators developed by `SiFive `__, and now openly maintained as part of Chips Alliance. These are currently organized within two submodules named ``rocket-chip-blocks`` and ``rocket-chip-inclusive-cache``. From 2f1ee6bb326451e9eb95675019e97cb76fd7d850 Mon Sep 17 00:00:00 2001 From: Tynan McAuley Date: Fri, 5 Jan 2024 12:15:48 -0800 Subject: [PATCH 049/105] Allow sed override in uniquify-module-names.py On macOS, this can be set to `gsed` to allow use of the `-i` flag. --- scripts/uniquify-module-names.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/uniquify-module-names.py b/scripts/uniquify-module-names.py index 237054f2..0ddea49f 100755 --- a/scripts/uniquify-module-names.py +++ b/scripts/uniquify-module-names.py @@ -21,6 +21,7 @@ parser.add_argument("--gcpath", type=str, required=True, help="Path to gen-colla args = parser.parse_args() MODEL_SFX=args.model + "_UNIQUIFIED" +SED=os.environ.get("SED", "sed") def bash(cmd): @@ -109,7 +110,7 @@ def generate_copy(c, sfx): new_file = os.path.join(args.gcpath, new_file) shutil.copy(cur_file, new_file) - bash(f"sed -i 's/module\( \+\){cur_name}/module\\1{new_name}/' {new_file}") + bash(f"{SED} -i 's/module\( \+\){cur_name}/module\\1{new_name}/' {new_file}") return new_file def bfs_uniquify_modules(tree, common_fnames, verilog_module_filename): @@ -136,7 +137,7 @@ def bfs_uniquify_modules(tree, common_fnames, verilog_module_filename): new_file = generate_copy(cur_file, MODEL_SFX) if parent is not None and ((parent, mod) not in updated_submodule): parent_file = os.path.join(args.gcpath, verilog_module_filename[parent]) - bash(f"sed -i 's/\( \*\){mod}\( \+\)/\\1{mod}_{MODEL_SFX}\\2/' {parent_file}") + bash(f"{SED} -i 's/\( \*\){mod}\( \+\)/\\1{mod}_{MODEL_SFX}\\2/' {parent_file}") updated_submodule.add((parent, mod)) # add the uniquified module to the verilog_modul_filename dict From ba560002dc87ce988881ead81154781de108b745 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Sat, 6 Jan 2024 18:23:02 -0800 Subject: [PATCH 050/105] Add Baremetal IDE support (#1534) --- .gitmodules | 3 +++ software/baremetal-ide | 1 + 2 files changed, 4 insertions(+) create mode 160000 software/baremetal-ide diff --git a/.gitmodules b/.gitmodules index e1768873..ac7a790e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -64,6 +64,9 @@ [submodule "software/nvdla-workload"] path = software/nvdla-workload url = https://github.com/ucb-bar/nvdla-workload.git +[submodule "software/baremetal-ide"] + path = software/baremetal-ide + url = https://github.com/ucb-bar/Baremetal-IDE.git [submodule "generators/riscv-sodor"] path = generators/riscv-sodor url = https://github.com/ucb-bar/riscv-sodor.git diff --git a/software/baremetal-ide b/software/baremetal-ide new file mode 160000 index 00000000..f488090a --- /dev/null +++ b/software/baremetal-ide @@ -0,0 +1 @@ +Subproject commit f488090a7f37da43610bd5017ee401526bf40fb2 From 3a00005d8977096e683918f985e0813622ebf295 Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Sat, 6 Jan 2024 21:58:22 -0800 Subject: [PATCH 051/105] ADD: add information on Baremetal-IDE --- docs/Chipyard-Basics/Chipyard-Components.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/Chipyard-Basics/Chipyard-Components.rst b/docs/Chipyard-Basics/Chipyard-Components.rst index 8f8e9045..72735e16 100644 --- a/docs/Chipyard-Basics/Chipyard-Components.rst +++ b/docs/Chipyard-Basics/Chipyard-Components.rst @@ -106,6 +106,9 @@ Software FireMarshal is the default workload generation tool that Chipyard uses to create software to run on its platforms. See :ref:`fire-marshal` for more information. +**Baremetal-IDE** + Baremetal-IDE is an all-in-one tool for baremetal-level C/C++ program developments. See `Tutorial `_ for more information. + Sims ------------------------------------------- From 33c96703868430589fc463172ef6fd5c3314567c Mon Sep 17 00:00:00 2001 From: "-T.K.-" Date: Sat, 6 Jan 2024 22:16:39 -0800 Subject: [PATCH 052/105] Update docs/Chipyard-Basics/Chipyard-Components.rst Co-authored-by: Jerry Zhao --- docs/Chipyard-Basics/Chipyard-Components.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Chipyard-Basics/Chipyard-Components.rst b/docs/Chipyard-Basics/Chipyard-Components.rst index 72735e16..34e983b3 100644 --- a/docs/Chipyard-Basics/Chipyard-Components.rst +++ b/docs/Chipyard-Basics/Chipyard-Components.rst @@ -107,7 +107,7 @@ Software See :ref:`fire-marshal` for more information. **Baremetal-IDE** - Baremetal-IDE is an all-in-one tool for baremetal-level C/C++ program developments. See `Tutorial `_ for more information. + Baremetal-IDE is an all-in-one tool for baremetal-level C/C++ program development. See `Tutorial `_ for more information. Sims ------------------------------------------- From 5bc9aea8daa4418f41edf7722629033a87b044c7 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 9 Jan 2024 13:51:55 -0800 Subject: [PATCH 053/105] Bump rc-inclusive-cache --- generators/rocket-chip-inclusive-cache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/rocket-chip-inclusive-cache b/generators/rocket-chip-inclusive-cache index bcd248a2..1332d226 160000 --- a/generators/rocket-chip-inclusive-cache +++ b/generators/rocket-chip-inclusive-cache @@ -1 +1 @@ -Subproject commit bcd248a2a2e86084a136c05d1844d88d9fba18e5 +Subproject commit 1332d2268ae01b2b311966d53a3ee0d930e83f07 From f84b2428d56bba8b47aac0c55716fbf08123837e Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 11 Jan 2024 16:40:57 -0800 Subject: [PATCH 054/105] Fix CanHaveClockTap --- .../chipyard/src/main/scala/clocking/CanHaveClockTap.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala index 5d0ce538..9af30ddf 100644 --- a/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala +++ b/generators/chipyard/src/main/scala/clocking/CanHaveClockTap.scala @@ -13,10 +13,10 @@ import freechips.rocketchip.prci._ case object ClockTapKey extends Field[Boolean](true) trait CanHaveClockTap { this: BaseSubsystem => - require(p(SubsystemDriveAsyncClockGroupsKey).isEmpty, "Subsystem asyncClockGroups must be undriven") + require(!p(SubsystemDriveClockGroupsFromIO), "Subsystem must not drive clocks from IO") val clockTapNode = Option.when(p(ClockTapKey)) { val clockTap = ClockSinkNode(Seq(ClockSinkParameters(name=Some("clock_tap")))) - clockTap := ClockGroup() := asyncClockGroupsNode + clockTap := ClockGroup() := allClockGroupsNode clockTap } val clockTapIO = clockTapNode.map { node => InModuleBody { From 7c55ff39ccf93df91ebc3de33cd407d4e186d22e Mon Sep 17 00:00:00 2001 From: Ella Schwarz Date: Sun, 31 Dec 2023 14:40:10 -0800 Subject: [PATCH 055/105] Add chipid port --- generators/chipyard/src/main/scala/DigitalTop.scala | 1 + .../chipyard/src/main/scala/config/AbstractConfig.scala | 3 +++ .../chipyard/src/main/scala/harness/HarnessBinders.scala | 7 +++++++ .../chipyard/src/main/scala/iobinders/IOBinders.scala | 9 +++++++++ generators/chipyard/src/main/scala/iobinders/Ports.scala | 3 +++ 5 files changed, 23 insertions(+) diff --git a/generators/chipyard/src/main/scala/DigitalTop.scala b/generators/chipyard/src/main/scala/DigitalTop.scala index 879ede57..3a0e2fa9 100644 --- a/generators/chipyard/src/main/scala/DigitalTop.scala +++ b/generators/chipyard/src/main/scala/DigitalTop.scala @@ -20,6 +20,7 @@ class DigitalTop(implicit p: Parameters) extends ChipyardSystem with testchipip.soc.CanHaveBankedScratchpad // Enables optionally adding a banked scratchpad with testchipip.iceblk.CanHavePeripheryBlockDevice // Enables optionally adding the block device with testchipip.serdes.CanHavePeripheryTLSerial // Enables optionally adding the backing memory and serial adapter + with testchipip.soc.CanHavePeripheryChipIdPin // Enables optional pin to set chip id for multi-chip configs with sifive.blocks.devices.i2c.HasPeripheryI2C // Enables optionally adding the sifive I2C with sifive.blocks.devices.pwm.HasPeripheryPWM // Enables optionally adding the sifive PWM with sifive.blocks.devices.uart.HasPeripheryUART // Enables optionally adding the sifive UART diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index 70770491..ec3c685e 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -23,6 +23,7 @@ class AbstractConfig extends Config( new chipyard.harness.WithTieOffInterrupts ++ // tie-off interrupt ports, if present new chipyard.harness.WithTieOffL2FBusAXI ++ // tie-off external AXI4 master, if present new chipyard.harness.WithCustomBootPinPlusArg ++ // drive custom-boot pin with a plusarg, if custom-boot-pin is present + new chipyard.harness.WithChipIdPinFromHarness ++ // drive chip id pin with a plusarg, if chip id pin is present new chipyard.harness.WithSimUARTToUARTTSI ++ // connect a SimUART to the UART-TSI port new chipyard.harness.WithClockFromHarness ++ // all Clock I/O in ChipTop should be driven by harnessClockInstantiator new chipyard.harness.WithResetFromHarness ++ // reset controlled by harness @@ -36,6 +37,7 @@ class AbstractConfig extends Config( new chipyard.iobinders.WithGPIOCells ++ new chipyard.iobinders.WithSPIFlashIOCells ++ new chipyard.iobinders.WithExtInterruptIOCells ++ + new chipyard.iobinders.WithChipIdPin ++ new chipyard.iobinders.WithCustomBootPin ++ // The "punchthrough" IOBInders below don't generate IOCells, as these interfaces shouldn't really be mapped to ASIC IO // Instead, they directly pass through the DigitalTop ports to ports in the ChipTop @@ -63,6 +65,7 @@ class AbstractConfig extends Config( new chipyard.config.WithFrontBusFrequency(500.0) ++ // Default 500 MHz fbus new chipyard.config.WithOffchipBusFrequency(500.0) ++ // Default 500 MHz obus + new testchipip.soc.WithChipIdPin ++ // add a chip id pin for setting chip id in multi-chip configs new testchipip.boot.WithCustomBootPin ++ // add a custom-boot-pin to support pin-driven boot address new testchipip.boot.WithBootAddrReg ++ // add a boot-addr-reg for configurable boot address new testchipip.serdes.WithSerialTL(Seq( // add a serial-tilelink interface diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index d70519b3..5549d9c4 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -252,6 +252,13 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ } }) +//TODO: Allow setting from harness with chipId argument, hardcoding is temporary hack +class WithChipIdPinFromHarness extends HarnessBinder({ + case (th: HasHarnessInstantiators, port: ChipIdPort) => { + port.io := 0.U + } +}) + class WithSimUARTToUARTTSI extends HarnessBinder({ case (th: HasHarnessInstantiators, port: UARTPort, chipId: Int) => { UARTAdapter.connect(Seq(port.io), diff --git a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala index 309ec004..de7f2867 100644 --- a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala +++ b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala @@ -27,6 +27,7 @@ import barstools.iocell.chisel._ import testchipip.serdes.{CanHavePeripheryTLSerial, SerialTLKey} import testchipip.spi.{SPIChipIO} import testchipip.boot.{CanHavePeripheryCustomBootPin} +import testchipip.soc.{CanHavePeripheryChipIdPin} import testchipip.util.{ClockedIO} import testchipip.iceblk.{CanHavePeripheryBlockDevice, BlockDeviceKey, BlockDeviceIO} import testchipip.cosim.{CanHaveTraceIO, TraceOutputTop, SpikeCosimConfig} @@ -355,6 +356,14 @@ class WithSerialTLIOCells extends OverrideIOBinder({ } }) +class WithChipIdPin extends OverrideIOBinder({ + (system: CanHavePeripheryChipIdPin) => system.chip_id_pin.map({ p => + val sys = system.asInstanceOf[BaseSubsystem] + val (port, cells) = IOCell.generateIOFromSignal(p.getWrappedValue, s"chip_id", sys.p(IOCellKey), abstractResetAsAsync = true) + (Seq(ChipIdPort(() => port)), cells) + }).getOrElse(Nil, Nil) +}) + class WithSerialTLPunchthrough extends OverrideIOBinder({ (system: CanHavePeripheryTLSerial) => { val (ports, cells) = system.serial_tls.zipWithIndex.map({ case (s, id) => diff --git a/generators/chipyard/src/main/scala/iobinders/Ports.scala b/generators/chipyard/src/main/scala/iobinders/Ports.scala index 627693aa..6b327a18 100644 --- a/generators/chipyard/src/main/scala/iobinders/Ports.scala +++ b/generators/chipyard/src/main/scala/iobinders/Ports.scala @@ -76,6 +76,9 @@ case class JTAGPort (val getIO: () => JTAGChipIO) case class SerialTLPort (val getIO: () => Data, val params: SerialTLParams, val serdesser: TLSerdesser, val portId: Int) extends Port[Data] +case class ChipIdPort (val getIO: () => UInt) + extends Port[UInt] + case class UARTTSIPort (val getIO: () => UARTTSIIO) extends Port[UARTTSIIO] From fcf9139009dedf437c07977e5bfcd4c01c9bca2e Mon Sep 17 00:00:00 2001 From: Ella Schwarz Date: Sun, 31 Dec 2023 14:43:50 -0800 Subject: [PATCH 056/105] bump tcip --- generators/testchipip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/testchipip b/generators/testchipip index e844c51a..28a4d01b 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit e844c51a084aebd89968166bab421dda87a1e693 +Subproject commit 28a4d01b1130b76ea725850fe8b600f9847b6cb8 From e7ed33244ab8f187ab04c5563ab3f5c3fea0a5c1 Mon Sep 17 00:00:00 2001 From: Ella Schwarz Date: Mon, 1 Jan 2024 13:16:53 -0800 Subject: [PATCH 057/105] fix naming --- .../chipyard/src/main/scala/config/AbstractConfig.scala | 5 ++--- .../chipyard/src/main/scala/harness/HarnessBinders.scala | 4 ++-- generators/chipyard/src/main/scala/iobinders/IOBinders.scala | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index ec3c685e..8a328daf 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -23,7 +23,7 @@ class AbstractConfig extends Config( new chipyard.harness.WithTieOffInterrupts ++ // tie-off interrupt ports, if present new chipyard.harness.WithTieOffL2FBusAXI ++ // tie-off external AXI4 master, if present new chipyard.harness.WithCustomBootPinPlusArg ++ // drive custom-boot pin with a plusarg, if custom-boot-pin is present - new chipyard.harness.WithChipIdPinFromHarness ++ // drive chip id pin with a plusarg, if chip id pin is present + new chipyard.harness.WithDriveChipIdPin ++ // drive chip id pin from harness binder, if chip id pin is present new chipyard.harness.WithSimUARTToUARTTSI ++ // connect a SimUART to the UART-TSI port new chipyard.harness.WithClockFromHarness ++ // all Clock I/O in ChipTop should be driven by harnessClockInstantiator new chipyard.harness.WithResetFromHarness ++ // reset controlled by harness @@ -37,7 +37,7 @@ class AbstractConfig extends Config( new chipyard.iobinders.WithGPIOCells ++ new chipyard.iobinders.WithSPIFlashIOCells ++ new chipyard.iobinders.WithExtInterruptIOCells ++ - new chipyard.iobinders.WithChipIdPin ++ + new chipyard.iobinders.WithChipIdIOCells ++ new chipyard.iobinders.WithCustomBootPin ++ // The "punchthrough" IOBInders below don't generate IOCells, as these interfaces shouldn't really be mapped to ASIC IO // Instead, they directly pass through the DigitalTop ports to ports in the ChipTop @@ -65,7 +65,6 @@ class AbstractConfig extends Config( new chipyard.config.WithFrontBusFrequency(500.0) ++ // Default 500 MHz fbus new chipyard.config.WithOffchipBusFrequency(500.0) ++ // Default 500 MHz obus - new testchipip.soc.WithChipIdPin ++ // add a chip id pin for setting chip id in multi-chip configs new testchipip.boot.WithCustomBootPin ++ // add a custom-boot-pin to support pin-driven boot address new testchipip.boot.WithBootAddrReg ++ // add a boot-addr-reg for configurable boot address new testchipip.serdes.WithSerialTL(Seq( // add a serial-tilelink interface diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 5549d9c4..aeaec1c7 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -252,8 +252,8 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ } }) -//TODO: Allow setting from harness with chipId argument, hardcoding is temporary hack -class WithChipIdPinFromHarness extends HarnessBinder({ +//TODO: Set with chipId argument to harness binder, hardcoding is temporary hack +class WithDriveChipIdPin extends HarnessBinder({ case (th: HasHarnessInstantiators, port: ChipIdPort) => { port.io := 0.U } diff --git a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala index de7f2867..64b1296e 100644 --- a/generators/chipyard/src/main/scala/iobinders/IOBinders.scala +++ b/generators/chipyard/src/main/scala/iobinders/IOBinders.scala @@ -356,7 +356,7 @@ class WithSerialTLIOCells extends OverrideIOBinder({ } }) -class WithChipIdPin extends OverrideIOBinder({ +class WithChipIdIOCells extends OverrideIOBinder({ (system: CanHavePeripheryChipIdPin) => system.chip_id_pin.map({ p => val sys = system.asInstanceOf[BaseSubsystem] val (port, cells) = IOCell.generateIOFromSignal(p.getWrappedValue, s"chip_id", sys.p(IOCellKey), abstractResetAsAsync = true) From 8a4fc7c82f4f5fbfedea44b2d1ee813f27d65c7e Mon Sep 17 00:00:00 2001 From: Ella Schwarz Date: Tue, 2 Jan 2024 14:23:07 -0800 Subject: [PATCH 058/105] [ci skip] update docs with chip id pin --- docs/Generators/TestChipIP.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/Generators/TestChipIP.rst b/docs/Generators/TestChipIP.rst index 2c382d4f..32e76f5b 100644 --- a/docs/Generators/TestChipIP.rst +++ b/docs/Generators/TestChipIP.rst @@ -92,3 +92,15 @@ The SPI flash model is a device that models a simple SPI flash device. It curren only supports single read, quad read, single write, and quad write instructions. The memory is backed by a file which is provided using ``+spiflash#=``, where ``#`` is the SPI flash ID (usually ``0``). + +Chip ID Pin +--------------- + +The chip ID pin sets the chip ID for the chip it is added to. This is most useful in +multi-chip configs. The pin value is driven by the chip ID value set in the harness +binder and the chip ID value can be read through MMIO at the address ``0x2000`` by default. + +The pin can be added to a system with the ``testchipip.soc.WithChipIdPin`` config. The pin +width and MMIO address are parameterizable and can be set by passing ``ChipIdPinParams`` as an +argument to the config. The width can additionally be set using the ``testchipip.soc.WithChipIdPinWidth`` +config. From 67faf0c3e350fc9e90dd23d112ab72c026f40a00 Mon Sep 17 00:00:00 2001 From: Ella Schwarz Date: Fri, 12 Jan 2024 11:39:54 -0800 Subject: [PATCH 059/105] Use harness binder chipId to support multi-chip id pins --- .../chipyard/src/main/scala/config/ChipletConfigs.scala | 1 + .../chipyard/src/main/scala/harness/HarnessBinders.scala | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/generators/chipyard/src/main/scala/config/ChipletConfigs.scala b/generators/chipyard/src/main/scala/config/ChipletConfigs.scala index e07aa73d..a7d2113f 100644 --- a/generators/chipyard/src/main/scala/config/ChipletConfigs.scala +++ b/generators/chipyard/src/main/scala/config/ChipletConfigs.scala @@ -11,6 +11,7 @@ import testchipip.soc.{OBUS} // Simple design which exposes a second serial-tl port that can connect to another instance of itself class SymmetricChipletRocketConfig extends Config( + new testchipip.soc.WithChipIdPin ++ // Add pin to identify chips new chipyard.harness.WithSerialTLTiedOff(tieoffs=Some(Seq(1))) ++ // Tie-off the chip-to-chip link in single-chip sims new testchipip.serdes.WithSerialTL(Seq( testchipip.serdes.SerialTLParams( // 0th serial-tl is chip-to-bringup-fpga diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index aeaec1c7..11fa670d 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -254,8 +254,8 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ //TODO: Set with chipId argument to harness binder, hardcoding is temporary hack class WithDriveChipIdPin extends HarnessBinder({ - case (th: HasHarnessInstantiators, port: ChipIdPort) => { - port.io := 0.U + case (th: HasHarnessInstantiators, port: ChipIdPort, chipId: Int) => { + port.io := chipId.U } }) From 47322af3c0768d4abd68efd95bb915247980b622 Mon Sep 17 00:00:00 2001 From: Ella Schwarz Date: Sun, 14 Jan 2024 14:47:12 -0800 Subject: [PATCH 060/105] Add assert to check that chip id pin is wide enough --- generators/chipyard/src/main/scala/harness/HarnessBinders.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 11fa670d..7ea74cee 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -252,9 +252,9 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ } }) -//TODO: Set with chipId argument to harness binder, hardcoding is temporary hack class WithDriveChipIdPin extends HarnessBinder({ case (th: HasHarnessInstantiators, port: ChipIdPort, chipId: Int) => { + assert(chipId < math.pow(2, port.io.getWidth), "ID Pin is not wide enough") port.io := chipId.U } }) From 565c187549bb6d457623a7eed8a4d1dbbb77e140 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Tue, 16 Jan 2024 10:15:53 -0800 Subject: [PATCH 061/105] Switch static assert to require --- generators/chipyard/src/main/scala/harness/HarnessBinders.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 7ea74cee..59d4110d 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -254,7 +254,7 @@ class WithSimTSIOverSerialTL extends HarnessBinder({ class WithDriveChipIdPin extends HarnessBinder({ case (th: HasHarnessInstantiators, port: ChipIdPort, chipId: Int) => { - assert(chipId < math.pow(2, port.io.getWidth), "ID Pin is not wide enough") + require(chipId < math.pow(2, port.io.getWidth), "ID Pin is not wide enough") port.io := chipId.U } }) From bc6af9207b8eaaa01b73c75befe6a3eb6cadf4b0 Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Thu, 18 Jan 2024 10:45:40 -0800 Subject: [PATCH 062/105] Separate out docs into its own yaml | Use in RTD --- .readthedocs.yml | 2 +- conda-reqs/chipyard.yaml | 7 - ...irements-esp-tools-linux-64.conda-lock.yml | 669 +++++++++--------- ...ements-riscv-tools-linux-64.conda-lock.yml | 669 +++++++++--------- conda-reqs/docs.yaml | 23 + scripts/generate-conda-lockfiles.sh | 1 + 6 files changed, 681 insertions(+), 690 deletions(-) create mode 100644 conda-reqs/docs.yaml diff --git a/.readthedocs.yml b/.readthedocs.yml index b5b883b5..3fba50e3 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -9,4 +9,4 @@ sphinx: configuration: docs/conf.py conda: - environment: conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml + environment: conda-reqs/docs.yaml diff --git a/conda-reqs/chipyard.yaml b/conda-reqs/chipyard.yaml index ec49a0a4..32b9c765 100644 --- a/conda-reqs/chipyard.yaml +++ b/conda-reqs/chipyard.yaml @@ -104,13 +104,6 @@ dependencies: - pip: - hammer-vlsi[asap7]==1.2.0 - # doc requirements - - sphinx - - pygments - - sphinx-autobuild - - sphinx_rtd_theme - - docutils - # firesim python packages # While it is possible to install using pip after creating the # conda environment, pip's dependency resolution can conflict with diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index f63afc45..2083ce4d 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,12 +21,13 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: de1e2d263317a6a0c7c45acb734d166b9975ff1a94cd138e3427bb7b7bdd8db4 + linux-64: dff1e57c6346a984141e6206e0fc0c8c13152f37ae38ad67d6e938937c5b061a platforms: - linux-64 sources: - - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml - - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/esp-tools.yaml + - /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml + - /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml + - /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml package: - category: main dependencies: {} @@ -75,14 +76,14 @@ package: - category: main dependencies: {} hash: - md5: 9936f9d4393c27069e6ee70338f955a5 - sha256: 5098310ea9ec4dae611a658c1ea26436001b2d2a4ed3c8e9468881337e02682f + md5: fd2989188c0421b101b12c4ee91a8967 + sha256: f0cb3d37b2642bf982d497d63f351dcdcd03cea1b0b175d4d3c9d13b3c022d80 manager: conda name: conda-standalone optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.10.0-ha770c72_0.conda - version: 23.10.0 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.11.0-ha770c72_1.conda + version: 23.11.0 - category: main dependencies: {} hash: @@ -311,14 +312,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: a0c6f0e7e1a467f5678f94dea18c8aa7 - sha256: f177627acdfcead15a28f4a07fcda6a1e26b83f053eaa1efa7cce01c0a3b09a8 + md5: 75dae9a4201732aa78a530b826ee5fe0 + sha256: 51147922bad9d3176e780eb26f748f380cd3184896a9f9125d8ac64fe330158b manager: conda name: alsa-lib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.9-hd590300_0.conda - version: 1.2.9 + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.10-hd590300_0.conda + version: 1.2.10 - category: main dependencies: libgcc-ng: '>=12' @@ -371,14 +372,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: f5842b88e9cbfa177abfaeacd457a45d - sha256: b68b0611d1c9d0222b56d5fe3d634e7a26979c3aef30f5f48b1593e7249e8f7a + md5: 89e40af02dd3a0846c0c1131c5126706 + sha256: c4bbdafd6791583e3c77e8ed0e1df9e0021d542249c3543de3d72788f5c8a0c4 manager: conda name: c-ares optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.24.0-hd590300_0.conda - version: 1.24.0 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.25.0-hd590300_0.conda + version: 1.25.0 - category: main dependencies: libgcc-ng: '>=12' @@ -495,14 +496,14 @@ package: libgcc-ng: '>=12' libstdcxx-ng: '>=12' hash: - md5: 7c8d20d847bb45f56bd941578fcfa146 - sha256: e44cc00eec068e7f7a6dd117ba17bf5d57658729b7b841945546f82505138292 + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 manager: conda name: icu optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/icu-72.1-hcb278e6_0.conda - version: '72.1' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + version: '73.2' - category: main dependencies: libgcc-ng: '>=10.3.0' @@ -557,14 +558,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: 6aa9c9de5542ecb07fdda9ca626252d8 - sha256: 949d84ceea543802c1e085b2aa58f1d6cb5dd8cec5a9abaaf4e8ac65d6094b3a + md5: 1635570038840ee3f9c71d22aa5b8b6d + sha256: 985ad27aa0ba7aad82afa88a8ede6a1aacb0aaca950d710f15d85360451e72fd manager: conda name: libdeflate optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.18-h0b41bf4_0.conda - version: '1.18' + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.19-hd590300_0.conda + version: '1.19' - category: main dependencies: libgcc-ng: '>=12' @@ -641,14 +642,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: 323e90742f0f48fc22bea908735f55e6 - sha256: 0ef7378818c6d5b407692d02556c32e2f6af31c7542bca5160d0b92a59427fb5 + md5: ea25936bb4080d843790b586850f82b8 + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f manager: conda name: libjpeg-turbo optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-2.1.5.1-hd590300_1.conda - version: 2.1.5.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + version: 3.0.0 - category: main dependencies: libgcc-ng: '>=12' @@ -697,18 +698,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2 version: 4.19.0 -- category: main - dependencies: - libgcc-ng: '>=12' - hash: - md5: f204c8ba400ec475452737094fb81d52 - sha256: 345b3b580ef91557a82425ea3f432a70a8748c040deb14570b9f4dca4af3e3d1 - manager: conda - name: libtool - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtool-2.4.7-h27087fc_0.conda - version: 2.4.7 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -749,14 +738,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: 82bf6f63eb15ef719b556b63feec3a77 - sha256: 66658d5cdcf89169e284488d280b6ce693c98c0319d7eabebcedac0929140a73 + md5: 30de3fd9b3b602f7473f30e684eeea8c + sha256: 68764a760fa81ef35dacb067fe8ace452bbb41476536a4a147a1051df29525f0 manager: conda name: libwebp-base optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.1-hd590300_0.conda - version: 1.3.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.conda + version: 1.3.2 - category: main dependencies: libgcc-ng: '>=12' @@ -896,14 +885,14 @@ package: libgcc-ng: '>=12' libstdcxx-ng: '>=12' hash: - md5: 700edd63ccd5fc66b70b1c028cea9a68 - sha256: ae917851474eb3b08812b02c9e945d040808523ec53f828aa74a90b0cdf15f57 + md5: 6b4b43013628634b6cfdee6b74fd696b + sha256: 07a5ffcd34e241f900433af4c6d4904518aab76add4e1e40a2c4bad93ae43f2b manager: conda name: pixman optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.42.2-h59595ed_0.conda - version: 0.42.2 + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.0-h59595ed_0.conda + version: 0.43.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -1426,20 +1415,20 @@ package: version: '1.15' - category: main dependencies: - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' libgcc-ng: '>=12' libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' hash: - md5: 241845899caff54ac1d2b3102ad988cf - sha256: 624b6e29e23a51353cff2aff7364c42b831139afd131d239e79f60aea4dae887 + md5: 53e951fab78d7e3bab40745f7b3d1620 + sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 manager: conda name: libxml2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.10.4-hfdac1af_0.conda - version: 2.10.4 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda + version: 2.12.4 - category: main dependencies: libgcc-ng: '>=7.3.0' @@ -1825,7 +1814,7 @@ package: dependencies: bzip2: '>=1.0.8,<2.0a0' libgcc-ng: '>=12' - libxml2: '>=2.9.14,<2.11.0a0' + libxml2: '>=2.9.14,<3.0.0a0' libzlib: '>=1.2.12,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' lzo: '>=2.10,<3.0a0' @@ -1863,18 +1852,18 @@ package: dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libxml2: '>=2.10.4,<2.11.0a0' + libxml2: '>=2.12.1,<3.0.0a0' libzlib: '>=1.2.13,<1.3.0a0' - zstd: '>=1.5.2,<1.6.0a0' + zstd: '>=1.5.5,<1.6.0a0' hash: - md5: 3d942f062d7656168bb42b3439bdfede - sha256: c52c239b583a1b2d03bdc641afd8cbab0499b0a46ea55b40e1dbed112283a772 + md5: 94246254aa1699cc154ade6ffda128a4 + sha256: f0c46a724eeaaf5f45670b8344616e5a0397b7b7ae66ce01fc184fe80e37b0bc manager: conda - name: libllvm16 + name: libllvm17 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm16-16.0.3-hbf9e925_1.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm17-17.0.6-hb3ce162_1.conda + version: 17.0.6 - category: main dependencies: libgcc-ng: '>=12' @@ -1892,23 +1881,23 @@ package: - category: main dependencies: lerc: '>=4.0.0,<5.0a0' - libdeflate: '>=1.18,<1.19.0a0' + libdeflate: '>=1.19,<1.20.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libstdcxx-ng: '>=12' - libwebp-base: '>=1.3.1,<2.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' - zstd: '>=1.5.2,<1.6.0a0' + zstd: '>=1.5.5,<1.6.0a0' hash: - md5: 5b09e13d732dda1a2bc9adc711164f4d - sha256: 631ccfdd460eda9661b6371aa459fe5ce174816365873deb5af955c9e10bf8c2 + md5: 55ed21669b2015f77c180feb1dd41930 + sha256: 45158f5fbee7ee3e257e6b9f51b9f1c919ed5518a94a9973fe7fa4764330473e manager: conda name: libtiff optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.1-h8b53f26_1.conda - version: 4.5.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-ha9c0a0a_2.conda + version: 4.6.0 - category: main dependencies: libgcc-ng: '>=12' @@ -2036,16 +2025,16 @@ package: version: 1.8.7 - category: main dependencies: - python: '>=3.6' + python: '>=3.9' hash: - md5: 06006184e203b61d3525f90de394471e - sha256: b2d160a050996950434c6e87a174fc01c4a937cbeffbdd20d1b46126b4478a95 + md5: def531a3ac77b7fb8c21d17bb5d0badb + sha256: fd39ad2fabec1569bbb0dfdae34ab6ce7de6ec09dcec8638f83dad0373594069 manager: conda name: alabaster optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.13-pyhd8ed1ab_0.conda - version: 0.7.13 + url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda + version: 0.7.16 - category: main dependencies: python: '' @@ -2389,13 +2378,13 @@ package: dependencies: python: '>=3.7' hash: - md5: f6c211fee3c98229652b60a9a42ef363 - sha256: cf83dcaf9006015c8ccab3fc6770f478464a66a8769e1763ca5d7dff09d11d08 + md5: 8d652ea2ee8eaee02ed8dc820bc794aa + sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d manager: conda name: exceptiongroup optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda version: 1.2.0 - category: main dependencies: @@ -2454,19 +2443,19 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libglib: '>=2.74.1,<3.0a0' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libglib: '>=2.78.0,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.5.0,<4.6.0a0' + libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' hash: - md5: ee8220db21db8094998005990418fe5b - sha256: 7acc699871310e9a89aaa7e90de9ac949e2fa649232c8a8dfcafa67e8f36a266 + md5: 252a696860674caf7a855e16f680d63a + sha256: 884992d0665a0a5c728943d99b5fba30fd6911bb84eee622fa7ad8a4fa9f6cf7 manager: conda name: gdk-pixbuf optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h6b639ba_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h829c605_4.conda version: 2.42.10 - category: main dependencies: @@ -2514,16 +2503,16 @@ package: version: 11.4.0 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 2ed1fe4b9079da97c44cfe9c2e5078fd - sha256: cd93d5d4b1d98f7ce76a8658c35de9c63e17b3a40e52f40fa2f459e0da83d0b1 + md5: d4b34ce06e172f5f18c39be4aed98fd8 + sha256: d259113b1a2eeea896ea3062cea1325fd5ab979a1186b209b7bdb8e066b09156 manager: conda name: humanfriendly optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyhd8ed1ab_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/humanfriendly-10.0-py39hf3d152e_5.conda version: '10.0' - category: main dependencies: @@ -2654,17 +2643,17 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' - libtiff: '>=4.5.0,<4.6.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' hash: - md5: 980d8aca0bc23ca73fa8caa3e7c84c28 - sha256: 0d88e0e7f8dbf8f01788e21dd63dd49b89433ce7dfd10f53839441396f6481cd + md5: 51bb7010fc86f70eee639b4bb7a894f5 + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 manager: conda name: lcms2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.15-haa2dc70_1.conda - version: '2.15' + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + version: '2.16' - category: main dependencies: libopenblas: '>=0.3.25,<1.0a0' @@ -2680,31 +2669,31 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: e3a70b7bde225412a04c681f5aa094f5 - sha256: 925c2e940a74cdda141b350ee6f6d7dfe5783c1f7575bd95649117c1841908e2 + md5: 2a85746a47b578eee4618642131345de + sha256: 713cad0dbb8530bc627042a01728f2479c4e73f69f440320a0ee421c12cd403c manager: conda - name: libclang-cpp16 + name: libclang-cpp17 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp16-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp17-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: 2dd726d3664b57ff32e4ef1965774c02 - sha256: b79181e5d1e3cd80ce5cbc0d0098621413e24c37437e8906b5bca1c398a5ce34 + md5: 93d59bd3649bba44d182dad3646db9e8 + sha256: 465504d1fd72a6f6d3c301862ed97bf3247234c7389bd82070bb50ce61c04c92 manager: conda name: libclang13 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-16.0.3-default_h4d60ac6_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-17.0.6-default_ha2b6cf4_2.conda + version: 17.0.6 - category: main dependencies: krb5: '>=1.20.1,<1.21.0a0' @@ -2767,19 +2756,19 @@ package: dependencies: giflib: '>=5.2.1,<5.3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.5.1,<4.6.0a0' - libwebp-base: '>=1.3.1,<2.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' hash: - md5: 4963f3f12db45a576f2b8fbe9a0b8569 - sha256: b0428f43bb3bc4544b997fcd9dfeb5593ee10701e8895cef22212105a8d8aa8d + md5: 0ebb65e8d86843865796c7c95a941f34 + sha256: cc5e55531d8067ea379b145861aea8c749a545912bc016372f5e3c69cc925efd manager: conda name: libwebp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.1-hbf2b3c1_0.conda - version: 1.3.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.2-h658648e_1.conda + version: 1.3.2 - category: main dependencies: libgcc-ng: '>=12' @@ -2798,14 +2787,14 @@ package: dependencies: python: '>=3.8' hash: - md5: 8549fafed0351bbfaa1ddaa15fdf9b4e - sha256: 07ce65497dec537e490992758934ddbc4fb5ed9285b41387a7cca966f1a98a0f + md5: d5c98e9706fdc5328d49a9bf2ce5fb42 + sha256: 9e49e9484ff279453f0b55323a3f0c7cb97440c74f69eecda1f4ad29fae5cd3c manager: conda name: more-itertools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.1.0-pyhd8ed1ab_0.conda - version: 10.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.2.0-pyhd8ed1ab_0.conda + version: 10.2.0 - category: main dependencies: python: '>=3.6' @@ -2888,16 +2877,16 @@ package: libgcc-ng: '>=12' libpng: '>=1.6.39,<1.7.0a0' libstdcxx-ng: '>=12' - libtiff: '>=4.5.0,<4.6.0a0' + libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' hash: - md5: 5ce6a42505c6e9e6151c54c3ec8d68ea - sha256: 3cbfb1fe9bb492dcb672f98f0ddc7b4e029f51f77101d9c301caa3acaea8cba2 + md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 + sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a manager: conda name: openjpeg optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-hfec8fc6_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda version: 2.5.0 - category: main dependencies: @@ -3098,16 +3087,16 @@ package: version: 3.1.1 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 2a7de29fb590ca14b5243c4c812c8025 - sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + md5: d34b97a2386932b97c7cb80916a673e7 + sha256: 42d46baeab725d3c70d22a4258549e9f0f1a72b740166cd9c3b394c4369cb306 manager: conda name: pysocks optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_5.tar.bz2 version: 1.7.1 - category: main dependencies: @@ -3181,14 +3170,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: d6358075cf3adab3d41db038560943ad - sha256: 92ffa0aea7f984a2fab97d517aa54f8370ca45f8bdd9bbdb245cd577f8e68c8c + md5: 601e09c9de429baaabce5f1283c51fdf + sha256: 0ec45efa1c5599a9779ac34cf5bcb7602a2294f79b8959a7b15b92b4275979ee manager: conda name: rpds-py optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.16.2-py39h9fdd4d6_0.conda - version: 0.16.2 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.17.1-py39h9fdd4d6_0.conda + version: 0.17.1 - category: main dependencies: libgcc-ng: '>=12' @@ -3207,14 +3196,14 @@ package: dependencies: python: '>=3.7' hash: - md5: fc2166155db840c634a1291a5c35a709 - sha256: 851901b1f8f2049edb36a675f0c3f9a98e1495ef4eb214761b048c6f696a06f7 + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 manager: conda name: setuptools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda - version: 68.2.2 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + version: 69.0.3 - category: main dependencies: python: '' @@ -3410,14 +3399,14 @@ package: dependencies: python: '>=3.8' hash: - md5: bf4a1d1a97ca27b0b65bacd9e238b484 - sha256: ca757d0fc2dbd422af9d3238a8b4b630a6e11df3707a447bd89540656770d1d7 + md5: 68f0738df502a14213624b288c60c9ad + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 manager: conda name: wcwidth optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.12-pyhd8ed1ab_0.conda - version: 0.2.12 + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + version: 0.2.13 - category: main dependencies: python: '>=2.6' @@ -3615,28 +3604,29 @@ package: fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.2,<3.0a0' + libglib: '>=2.78.0,<3.0a0' libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' libxcb: '>=1.15,<1.16.0a0' libzlib: '>=1.2.13,<1.3.0a0' - pixman: '>=0.40.0,<1.0a0' - xorg-libice: '' - xorg-libsm: '' - xorg-libx11: '>=1.8.4,<2.0a0' + pixman: '>=0.42.2,<1.0a0' + xorg-libice: '>=1.1.1,<2.0a0' + xorg-libsm: '>=1.2.4,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxrender: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' zlib: '' hash: - md5: c1dd96500b9b1a75e9e511931f415cbc - sha256: 1fffecc684c26e0f1aed6d9857ad0f2abfe3a849977f718ad82366c68c7a9a36 + md5: f907bb958910dc404647326ca80c263e + sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e manager: conda name: cairo optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.16.0-hbbf8b49_1016.conda - version: 1.16.0 + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + version: 1.18.0 - category: main dependencies: libffi: '>=3.4,<4.0a0' @@ -3655,19 +3645,19 @@ package: version: 1.16.0 - category: main dependencies: - libclang-cpp16: '>=16.0.3,<16.1.0a0' + libclang-cpp17: '>=17.0.6,<17.1.0a0' libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: 738a21e17b4d9d846cf96503810c9b45 - sha256: 2d0c4ecdf647bf0bf3602495f0a3b85aa1985d0027cc787aa43e0c810ebbc704 + md5: 714849d4f3034fff0663b005b9b657d8 + sha256: 8ad2310be45c84ab2fec72eb23d1a57d961770a803f44ff850c0b9f3c8c56b74 manager: conda - name: clang-format-16 + name: clang-format-17 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-16-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-17-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: click: '' @@ -3781,14 +3771,14 @@ package: python_abi: 3.9.* *_cp39 unicodedata2: '>=14.0.0' hash: - md5: 01eba09d574310de928abf121f89b116 - sha256: 1678f7623f057f07760c26a81f74180355c14cb808addcfc45b7a4ea04356b8d + md5: 4e2b802b69be81944fdcd71018b74226 + sha256: f0834381dcabbaa5df8124bee63c6e26c642000a6f3fe80f521b3c95b1342f27 manager: conda name: fonttools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py39hd1e30aa_0.conda - version: 4.47.0 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.2-py39hd1e30aa_0.conda + version: 4.47.2 - category: main dependencies: python: '>=3.7' @@ -3873,14 +3863,14 @@ package: markupsafe: '>=2.0' python: '>=3.7' hash: - md5: c8490ed5c70966d232fdd389d0dbed37 - sha256: b045faba7130ab263db6a8fdc96b1a3de5fcf85c4a607c5f11a49e76851500b5 + md5: e7d8df6509ba635247ff9aea31134262 + sha256: fd517b7dd3a61eca34f8a6f9f92f306397149cae1204fce72ac3d227107dafdc manager: conda name: jinja2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2 - version: 3.1.2 + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda + version: 3.1.3 - category: main dependencies: jsonpointer: '>=1.9' @@ -3921,27 +3911,28 @@ package: version: 3.9.0 - category: main dependencies: - expat: '>=2.5.0,<3.0a0' + expat: '' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' + libexpat: '>=2.5.0,<3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.5.0,<4.6.0a0' + libtiff: '>=4.6.0,<4.7.0a0' libwebp: '' - libwebp-base: '>=1.3.0,<2.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' zlib: '' hash: - md5: ef06bee47510a7f5db3c2297a51d6ce2 - sha256: 6335db21afc72f86cf4ee0298acde3af950087db2b24df3d28a81c7d24574244 + md5: cfebc557e54905dadc355c0e9f003004 + sha256: b74f95a6e1f3b31a74741b39cba83ed99fc82d17243c0fd3b5ab16ddd48ab89d manager: conda name: libgd optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hfa28ad5_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h119a65a_9.conda version: 2.3.3 - category: main dependencies: @@ -4004,26 +3995,26 @@ package: - category: main dependencies: freetype: '>=2.12.1,<3.0a0' - lcms2: '>=2.15,<3.0a0' + lcms2: '>=2.16,<3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' - libtiff: '>=4.5.1,<4.6.0a0' - libwebp-base: '>=1.3.1,<2.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libxcb: '>=1.15,<1.16.0a0' libzlib: '>=1.2.13,<1.3.0a0' openjpeg: '>=2.5.0,<3.0a0' python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 - tk: '>=8.6.12,<8.7.0a0' + tk: '>=8.6.13,<8.7.0a0' hash: - md5: f97a95fab7c69678ebf6b57396b1323e - sha256: 8182e1782baaef35efdbb80468db7df160af7bd4ec46127d5c284768eca2980b + md5: 2972754dc054bb079d1d121918b5126f + sha256: 6936d54f9830ac66bee7b26187eb2297d80febe110e978cd9ae6a54e62ec6aaf manager: conda name: pillow optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.0.0-py39haaeba84_0.conda - version: 10.0.0 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py39had0adad_0.conda + version: 10.2.0 - category: main dependencies: python: '>=3.7' @@ -4236,14 +4227,14 @@ package: xorg-libx11: '>=1.8.7,<2.0a0' xorg-libxt: '>=1.3.0,<2.0a0' hash: - md5: 8024965420fb58bb3a7c38bba7843cb7 - sha256: 388c5ad10d126111bb8c6d04d543cd25e2fe96926c0ba20c6a4e01d7a79c8c09 + md5: 7f5118d10e1d63e10d99e949bf259e31 + sha256: a3806691033da843cc7a14554db116956c25a67d94290a5d20c83761a393fb00 manager: conda name: vim optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.0.2059-py39pl5321hb4338c2_1.conda - version: 9.0.2059 + url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.1.0041-py39pl5321hb4338c2_0.conda + version: 9.1.0041 - category: main dependencies: distlib: <1,>=0.3.7 @@ -4296,14 +4287,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: c8654dea9ff4b633fbdfddff7e321bb9 - sha256: 871782b22363b3fb449e2a29a3620045a1c40643e3726767f5b9cd4455ec36c7 + md5: 7288bccf99dd979dfcf80bb372c3de3f + sha256: a0370c724d347103ae1a7c8a49166cc69359d80055c11bc5d7222d259efd8f12 manager: conda name: yarl optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.3-py39hd1e30aa_0.conda - version: 1.9.3 + url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.4-py39hd1e30aa_0.conda + version: 1.9.4 - category: main dependencies: python: '>=3.7' @@ -4356,30 +4347,30 @@ package: python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' hash: - md5: d6850c205e9f86502bd6a58e270e8fd5 - sha256: ad25216fd91ac9a624ffde69679c3d476c4091adad30b9169aa3486bd25e1e88 + md5: 99a0a30966b1f81e2d5ddc09a4f108b1 + sha256: c0c592170d69e464145bf2e49a798812f38d4db0391fbc87614a926c27077881 manager: conda name: botocore optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.21-pyhd8ed1ab_0.conda + version: 1.34.21 - category: main dependencies: - clang-format-16: 16.0.3 default_h1cdf331_2 - libclang-cpp16: '>=16.0.3,<16.1.0a0' + clang-format-17: 17.0.6 default_hb11cfb5_2 + libclang-cpp17: '>=17.0.6,<17.1.0a0' libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: c15e6c12bbd093170f1dab9d1ee922a8 - sha256: fe8d04e73e28a844e3513b214ca83a218d6d7115b1a86d5dfe1eb4e80e4bd15a + md5: 494178765431e2992fe5619a57b39616 + sha256: 72a08b56741b14175ce8df86540237c61bf218f7c88b65564b261aa950c96701 manager: conda name: clang-format optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: cffi: '>=1.12' @@ -4454,32 +4445,32 @@ package: python: '>=3.7' typing_extensions: '>=3.7.4.3' hash: - md5: 6bf74c3b7c13079a91d4bd3da51cefcf - sha256: 6b85809ffbfe5c1887b674bf0492cc4dd1ac8a25f4d9fa20ef404be92186259b + md5: 84874a90c312088f7b5e63402fc44a58 + sha256: cf3c45156feec1fe8adfd3552ed70f4218e9771643cca8dd2673bca9dea04c9c manager: conda name: gitpython optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.40-pyhd8ed1ab_0.conda - version: 3.1.40 + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.41-pyhd8ed1ab_0.conda + version: 3.1.41 - category: main dependencies: - cairo: '>=1.16.0,<2.0a0' + cairo: '>=1.18.0,<2.0a0' freetype: '>=2.12.1,<3.0a0' graphite2: '' - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.2,<3.0a0' + libglib: '>=2.78.1,<3.0a0' libstdcxx-ng: '>=12' hash: - md5: 765bc76c0dfaf24ff9d8a2935b2510df - sha256: 9d99416e9d4a01ea0915f65ea7fac71dee11916de115fbd0325c0cb82e0b63f8 + md5: 5a6f6c00ef982a9bc83558d9ac8f64a0 + sha256: 4b55aea03b18a4084b750eee531ad978d4a3690f63019132c26c6ad26bbe3aed manager: conda name: harfbuzz optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-7.3.0-hdb3a94d_0.conda - version: 7.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda + version: 8.3.0 - category: main dependencies: importlib_resources: '>=6.1.1,<6.1.2.0a0' @@ -4542,14 +4533,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: 459a58eda3e74dd5e3d596c618e7f20a - sha256: da2439d911005c9c83e7586f72014f58958ff0b0dbc7a3c38c14fbbe2841b455 + md5: a1f1ad2d8ebf63f13f45fb21b7f49dfb + sha256: 047bb87cea3d7151f9f36cc2c0a1a47c644e069bdeed7711b279b70970ca85e9 manager: conda name: numpy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.2-py39h474f0d3_0.conda - version: 1.26.2 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.3-py39h474f0d3_0.conda + version: 1.26.3 - category: main dependencies: pip: '' @@ -4771,33 +4762,33 @@ package: version: 0.19.19 - category: main dependencies: - python: '>=3.6' + python: '>=3.7' requests: '>=2.18.4' six: '>=1.11.0' - typing-extensions: '>=4.0.1' + typing-extensions: '>=4.6.0' hash: - md5: 6e97f7d5387626f896515442002ac920 - sha256: 3f3ec0617e825bcabb70722ace9153dfdc02895aebb2179fc20b82eb30f79ec8 + md5: ddd941af93e209e34bae519fcbeb9b5e + sha256: 87dc6e347cef964bb8725dc990ce0c4f7668fbb251b630af5001b16fb8a0df94 manager: conda name: azure-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.5-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.5-pyhd8ed1ab_1.conda version: 1.29.5 - category: main dependencies: - python: '>=3.7,<4.0' + python: '>=3.8,<4.0' types-awscrt: '' typing_extensions: '>=4.1.0' hash: - md5: 75715c2695eb5d1da023a79140e923cd - sha256: e539bb5b339fc2136b086ce084fbf7b8c8f694d0c6ac30db2565c426bcdf28da + md5: 9dafeab4f5e116f48d49ae5833913448 + sha256: 66fa23291d7b7fac66af3f8e1a7b33db08d488b4d00847b5920db53f06c2f434 manager: conda name: botocore-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.21-pyhd8ed1ab_0.conda + version: 1.34.21 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -4814,21 +4805,22 @@ package: version: 0.13.1 - category: main dependencies: - clang-format: 16.0.3 default_h1cdf331_2 - libclang-cpp16: '>=16.0.3,<16.1.0a0' - libclang13: '>=16.0.3' + clang-format: 17.0.6 default_hb11cfb5_2 + libclang-cpp17: '>=17.0.6,<17.1.0a0' + libclang13: '>=17.0.6' libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' + libxml2: '>=2.12.3,<3.0.0a0' hash: - md5: 8910812419605001db20734aad191191 - sha256: 236cd870e4a155d323202961cbcf13b1de84a86dde4ef6bf160b7e05b699b9d8 + md5: 65fe0c9fbf75eef82b8a2bce629774ec + sha256: b9e2c06011261261d873c3d7033df0612a0f61d3a2e25e71323270ac23f79204 manager: conda name: clang-tools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: python: '>=3.7' @@ -4924,14 +4916,14 @@ package: referencing: '>=0.28.4' rpds-py: '>=0.7.1' hash: - md5: 1116d79def5268414fb0917520b2bbf1 - sha256: 77aae609097d06deedb8ef8407a44b23d5fef95962ba6fe1c959ac7bd6195296 + md5: 63dd555524e29934d1d3c9f7001ec4bd + sha256: 3562f0b6abaab7547ac3d86c5cd3eec30f0dc7072e136556ec168c8652911af7 manager: conda name: jsonschema optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.20.0-pyhd8ed1ab_0.conda - version: 4.20.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.0-pyhd8ed1ab_0.conda + version: 4.21.0 - category: main dependencies: pathable: '>=0.4.1,<0.5.0' @@ -4979,34 +4971,34 @@ package: version: 1.26.0 - category: main dependencies: - alsa-lib: '>=1.2.9,<1.2.10.0a0' + alsa-lib: '>=1.2.10,<1.2.11.0a0' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' giflib: '>=5.2.1,<5.3.0a0' - harfbuzz: '>=7.3.0,<8.0a0' + harfbuzz: '>=8.2.1,<9.0a0' lcms2: '>=2.15,<3.0a0' libcups: '>=2.3.3,<2.4.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - xorg-libx11: '>=1.8.4,<2.0a0' + xorg-libx11: '>=1.8.7,<2.0a0' xorg-libxext: '>=1.3.4,<2.0a0' xorg-libxi: '' - xorg-libxrender: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' xorg-libxt: '>=1.3.0,<2.0a0' xorg-libxtst: '' hash: - md5: f71bdbfbe2a91520b9b488481f02237f - sha256: a5b3b870378c505427eb7da7fb61829ed1b4ca1579422f6a1aa9e310dca86bed + md5: 1fe8f87c19c388209f593377c6147684 + sha256: 44e0db14278301fa4ddcc63fae9bb21bbbc542402e7443098d1ea5af6830164d manager: conda name: openjdk optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-20.0.0-h8e330f5_0.conda - version: 20.0.0 + url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-21.0.1-haa376d0_0.conda + version: 21.0.1 - category: main dependencies: libgcc-ng: '>=12' @@ -5033,18 +5025,18 @@ package: fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' fribidi: '>=1.0.10,<2.0a0' - harfbuzz: '>=7.1.0,<8.0a0' + harfbuzz: '>=8.1.1,<9.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.1,<3.0a0' + libglib: '>=2.76.4,<3.0a0' libpng: '>=1.6.39,<1.7.0a0' hash: - md5: cde553e0e32389e26595db4eacf859eb - sha256: 3bb7cf6e826fa6d867318ba4866470b02d2efcc1dcd6b8b6307afaa8ac21aff4 + md5: 1a66c10f6a0da3dbd2f3a68127e7f6a0 + sha256: 6ecce306b7ac4acf1184eb5b045e57e613e19e99c27d57f33eb255f8a9120a93 manager: conda name: pango optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.14-heaa33ce_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.14-ha41ecd1_2.conda version: 1.50.14 - category: main dependencies: @@ -5196,29 +5188,29 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 602c85ef4db55f9b4b34c5bb6aaa2795 - sha256: 11a001f8ac7000eaaa9f5c3e6d9978abf263f5ad8487a15ef8676bdc1fc1a7e7 + md5: 8116d2c1293fa2350b42a55881d7647f + sha256: bef4f99cdf4d38ba818497256af7ddfa746114a2110a576986822beeb5f4047a manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.6-py39hf3d152e_0.conda - version: 2.15.6 + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.10-py39hf3d152e_0.conda + version: 2.15.10 - category: main dependencies: - botocore: '>=1.34.11,<1.35.0' + botocore: '>=1.34.21,<1.35.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.8' s3transfer: '>=0.10.0,<0.11.0' hash: - md5: b1256264fc531fca35aabab7d517438a - sha256: b4d3415b4beee1623c02b7ddc593ae7ca5c5843c943424a73b7648e05858e008 + md5: fed41d386df59c034d8c2e5b2d98e3c9 + sha256: e37da0a7d0d97a0c009d977a74f38d0b3d6a9c569ce94f2c9a46d0e63aa6b189 manager: conda name: boto3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.21-pyhd8ed1ab_0.conda + version: 1.34.21 - category: main dependencies: cachecontrol: 0.13.1 pyhd8ed1ab_0 @@ -5267,21 +5259,21 @@ package: version: 7.0.0 - category: main dependencies: - atk-1.0: '>=2.36.0' - cairo: '>=1.16.0,<2.0.0a0' - gdk-pixbuf: '>=2.42.6,<3.0a0' - gettext: '>=0.19.8.1,<1.0a0' - libgcc-ng: '>=9.4.0' - libglib: '>=2.70.2,<3.0a0' - pango: '>=1.50.3,<1.51.0a0' + atk-1.0: '>=2.38.0' + cairo: '>=1.18.0,<2.0a0' + gdk-pixbuf: '>=2.42.10,<3.0a0' + gettext: '>=0.21.1,<1.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.3,<3.0a0' + pango: '>=1.50.14,<2.0a0' hash: - md5: 957a0255ab58aaf394a91725d73ab422 - sha256: 66d189ec36d67309fa3eb52d14d77b82359c10303c400eecc14f8eaca5939b87 + md5: 0abfa7f9241a0f4fd732bc15773cfb0c + sha256: e659f5eca2a5f21d5fe859d8d1dae132a284800eb017b8b4e2286b252a230527 manager: conda name: gtk2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h90689f9_2.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h7f000aa_3.conda version: 2.24.33 - category: main dependencies: @@ -5317,22 +5309,22 @@ package: version: 24.3.0 - category: main dependencies: - cairo: '>=1.16.0,<2.0a0' + cairo: '>=1.18.0,<2.0a0' gdk-pixbuf: '>=2.42.10,<3.0a0' gettext: '>=0.21.1,<1.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.1,<3.0a0' - libxml2: '>=2.10.4,<2.11.0a0' + libglib: '>=2.78.1,<3.0a0' + libxml2: '>=2.12.1,<3.0.0a0' pango: '>=1.50.14,<2.0a0' hash: - md5: 1ec4fab6eb4af1db9056b94265fe19cf - sha256: 6449497e50d2343c6caf73ad9c74f82341e0c22aca3d6f333869e0a069d0c472 + md5: 03bd1ddcc942867a19528877143b9852 + sha256: b82d0c60376da88a2bf15d35d17c176aa923917ad7de4bc62ddef6d02f3518fb manager: conda name: librsvg optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.0-h5cef280_0.conda - version: 2.56.0 + url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.3-he3f83f7_1.conda + version: 2.56.3 - category: main dependencies: certifi: '>=2020.06.20' @@ -5426,16 +5418,16 @@ package: jsonschema: <5,>=3.2 pydantic: '>=1.8,<3' python: '>=3.7,<4.0' - typing-extensions: <5,>=4.4 + typing-extensions: '>=4.4' hash: - md5: 9fabf343ed3cdb5803480768e6338826 - sha256: 6cdad8582e270b88147295e9ec4817bdcda14212098efa77165a96870a31bbf4 + md5: cf935f13e0519eef2b83e63a4272ef2d + sha256: f588769f8ca933c3b22bc2fb2af55c2783bbe4e2615e9c38adc76163da670e27 manager: conda name: aws-sam-translator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.82.0-pyhd8ed1ab_0.conda - version: 1.82.0 + url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.83.0-pyhd8ed1ab_0.conda + version: 1.83.0 - category: main dependencies: azure-core: <2.0.0,>=1.23.0 @@ -5458,14 +5450,14 @@ package: python: '' typing_extensions: '' hash: - md5: 8e4b38b9dfc865ffb06a2bf2f3719d91 - sha256: e8d31daecb364f893495430612721bb7b8f240e0834be5d1226810ace22cde68 + md5: 6423c73c90578d41b3b4c378454d361d + sha256: d0f91526b9fefb1551bab59ccd7878d0501f9cb2e7f56b7bd60dbc9176880389 manager: conda name: boto3-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.19-pyhd8ed1ab_0.conda + version: 1.34.19 - category: main dependencies: archspec: '' @@ -5527,62 +5519,57 @@ package: version: 1.4.0 - category: main dependencies: - cairo: '>=1.16.0,<2.0a0' - expat: '' - fontconfig: '>=2.14.2,<3.0a0' + cairo: '>=1.18.0,<2.0a0' fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' gdk-pixbuf: '>=2.42.10,<3.0a0' gtk2: '' gts: '>=0.7.6,<0.8.0a0' libexpat: '>=2.5.0,<3.0a0' libgcc-ng: '>=12' libgd: '>=2.3.3,<2.4.0a0' - libglib: '>=2.76.2,<3.0a0' - librsvg: '>=2.56.0,<3.0a0' + libglib: '>=2.78.1,<3.0a0' + librsvg: '>=2.56.3,<3.0a0' libstdcxx-ng: '>=12' - libtool: '' - libwebp-base: '>=1.3.0,<2.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' pango: '>=1.50.14,<2.0a0' - zlib: '' hash: - md5: 597e2d0e1c6bc2e4457714ff479fe142 - sha256: 4bfb42de2d28406666ef6729169cae3f49c216c5ebd9f34afa40223755e2aaf8 + md5: a3f4cd4a512ec5db35ffbf25ba11f537 + sha256: 1813800d655c120a3941d543a6fc64e3c178c737f1c84f6b7ebe1f19f27fa4fb manager: conda name: graphviz optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/graphviz-8.0.5-h28d9a01_0.conda - version: 8.0.5 + url: https://conda.anaconda.org/conda-forge/linux-64/graphviz-9.0.0-h78e8752_1.conda + version: 9.0.0 - category: main dependencies: boto3: '' python: '>=3.6' typing-extensions: '' hash: - md5: 768ff0d711180b901b1490ebe7010ada - sha256: 9482dd403e24f5e5c155624de7d89f5521a97e8130f0a014899b12486a331a85 + md5: c594f646f5f92ae7f4ea68dc46ce633c + sha256: 60ac647a40388267eebdb8e7be63eeec791a8964ed597f1339be8a35d623cc31 manager: conda name: mypy-boto3-s3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.34.0-pyhd8ed1ab_0.conda - version: 1.34.0 + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.34.14-pyhd8ed1ab_0.conda + version: 1.34.14 - category: main dependencies: boto3: '' python: '>=3.6' typing-extensions: '' hash: - md5: a810296f4cdd969085c1c3d78c846588 - sha256: 3975c31a2c88ff9925922537bb653f84a1c91ed5152043788bc8cc49d541951d + md5: 0aedc754685324ef7f10093f83b79337 + sha256: da027403a9333979e734bec2d4089ec3f1a574de451bdc366cd3f9fb06551a1c manager: conda name: mypy_boto3_ec2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.34.4-pyhd8ed1ab_0.conda - version: 1.34.4 + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.34.17-pyhd8ed1ab_0.conda + version: 1.34.17 - category: main dependencies: importlib_resources: '>=5.8,<7.0' @@ -5616,7 +5603,7 @@ package: version: 0.4.2 - category: main dependencies: - aws-sam-translator: '>=1.82.0' + aws-sam-translator: '>=1.83.0' jschema-to-python: '>=1.2.3,<1.3.dev0' jsonpatch: '' jsonschema: '>=3.0,<5' @@ -5628,14 +5615,14 @@ package: sarif-om: '>=1.0.4,<1.1.dev0' sympy: '>=1.0.0' hash: - md5: 6bf6c385031287e86a5821f57544fc12 - sha256: deed7d4700694a25d440816d13de89468fe92dfc87ba506f3fee72b5d1131c75 + md5: c77ca2cb441d25ab24b73c1318facee1 + sha256: 6b0c1b6161052c7c2d15b32bc58267316cd5d983e701056fb9fe3e6ade903299 manager: conda name: cfn-lint optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.83.6-pyhd8ed1ab_0.conda - version: 0.83.6 + url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.84.0-pyhd8ed1ab_0.conda + version: 0.84.0 - category: main dependencies: colorama: '' @@ -5658,17 +5645,17 @@ package: conda-standalone: '' jinja2: '' pillow: '>=3.1' - python: '>=3.7' - ruamel.yaml: '>=0.11.14,<0.18' + python: '>=3.8' + ruamel.yaml: '>=0.11.14,<0.19' hash: - md5: bece1550cd8ce528b234f41c85786ef8 - sha256: a4304eff880a3150e027f8af8d158cc9bf6e6c8444d2affda4e2b17125f44a85 + md5: d8cb2dfbc95cd06af84d11bf16572270 + sha256: 78a2b1abf48bdb34a9902caa7bff273ed001758f0845ef0508b347d85c21ca2b manager: conda name: constructor optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.5.0-pyhe4f9e05_0.conda - version: 3.5.0 + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.6.0-pyh55f8243_0.conda + version: 3.6.0 - category: main dependencies: graphviz: '>=2.46.1' @@ -5711,14 +5698,14 @@ package: werkzeug: '>=0.5,!=2.2.0,!=2.2.1' xmltodict: '' hash: - md5: 9447c344fde58f458a55b05729ae74aa - sha256: f0586fd89bcc4e7df9cd12e66627473bed9b4bc33814b01f48e6059628af2f6b + md5: f7a4a329637c29a72236ab2f34225fcd + sha256: f6b71acc587d2eeafe926e750f3baa7d45ce406077aa514478b729edc8b82abc manager: conda name: moto optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.12-pyhd8ed1ab_0.conda - version: 4.2.12 + url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.13-pyhd8ed1ab_0.conda + version: 4.2.13 - category: main dependencies: livereload: '>=2.3.0' @@ -5738,40 +5725,40 @@ package: python: '>=3.9' sphinx: '>=5' hash: - md5: aebfabcb60c33a89c1f9290cab49bc93 - sha256: 67e2b386c7b3c858ead88fa71fe4fa5eb1f4f59d7994d167b3910a744db392d3 + md5: 611a35a27914fac3aa37611a6fe40bb5 + sha256: 710013443a063518d587d2af82299e92ab6d6695edf35a676ac3a0ccc9e3f8e6 manager: conda name: sphinxcontrib-applehelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.7-pyhd8ed1ab_0.conda - version: 1.0.7 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda + version: 1.0.8 - category: main dependencies: python: '>=3.9' sphinx: '>=5' hash: - md5: ebf08f5184d8eaa486697bc060031953 - sha256: 770e13ebfef321426c09ec51d95c57755512db160518b2922a4337546ee51672 + md5: d7e4954df0d3aea2eacc7835ad12671d + sha256: 63a6b60653ef13a6712848f4b3c4b713d4b564da1dae571893f1a3659cde85f3 manager: conda name: sphinxcontrib-devhelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.5-pyhd8ed1ab_0.conda - version: 1.0.5 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda + version: 1.0.6 - category: main dependencies: python: '>=3.9' sphinx: '>=5' hash: - md5: a9a89000dfd19656ad004b937eeb6828 - sha256: 5f09cd4a08a6c194c11999871a8c7cedc2cd7edd9ff7ceb6f0667b6698be4cc5 + md5: 7e1e7437273682ada2ed5e9e9714b140 + sha256: 512f393cfe34cb3de96ade7a7ad900d6278e2087a1f0e5732aa60fadee396d99 manager: conda name: sphinxcontrib-htmlhelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.4-pyhd8ed1ab_0.conda - version: 2.0.4 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda + version: 2.0.5 - category: main dependencies: python: '>=2.7' @@ -5805,14 +5792,14 @@ package: python: '>=3.9' sphinx: '>=5' hash: - md5: cf5c9649272c677a964a7313279e3a9b - sha256: 9ba5cea9cbab64106e8b5a9b19add855dcb52b8fbb1674398c715bccdbc04471 + md5: 26acae54b06f178681bfb551760f5dd1 + sha256: dd35b52f056c39081cd0ae01155174277af579b69e5d83798a33e9056ec78d63 manager: conda name: sphinxcontrib-qthelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.6-pyhd8ed1ab_0.conda - version: 1.0.6 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda + version: 1.0.7 - category: main dependencies: alabaster: '>=0.7,<0.8' @@ -5847,14 +5834,14 @@ package: python: '>=3.9' sphinx: '>=5' hash: - md5: 0612e497d7860728f2cda421ea2aec09 - sha256: c5710ae7bb7465f25a29cc845d9fb6ad0ea561972d796d379fcb48d801e96d6d + md5: e507335cb4ca9cff4c3d0fa9cdab255e + sha256: bf80e4c0ff97d5e8e5f6db0831ba60007e820a3a438e8f1afd868aa516d67d6f manager: conda name: sphinxcontrib-serializinghtml optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.9-pyhd8ed1ab_0.conda - version: 1.1.9 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda + version: 1.1.10 - category: main dependencies: {} hash: diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 61cc9654..0c884a68 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml -f /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,12 +21,13 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: ca6a27eca59955764c48c1f6e92b9c0d88ab3b0ce2cf79bc2b35e847e0aecff4 + linux-64: 8fd67723de354ff9321ddc6c1d37927add144bb0cd3e983b1bb3e486f31b98fb platforms: - linux-64 sources: - - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/chipyard.yaml - - /nscratch/jerryz/chipyard-proj/chipyard-master/conda-reqs/riscv-tools.yaml + - /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml + - /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml + - /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml package: - category: main dependencies: {} @@ -75,14 +76,14 @@ package: - category: main dependencies: {} hash: - md5: 9936f9d4393c27069e6ee70338f955a5 - sha256: 5098310ea9ec4dae611a658c1ea26436001b2d2a4ed3c8e9468881337e02682f + md5: fd2989188c0421b101b12c4ee91a8967 + sha256: f0cb3d37b2642bf982d497d63f351dcdcd03cea1b0b175d4d3c9d13b3c022d80 manager: conda name: conda-standalone optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.10.0-ha770c72_0.conda - version: 23.10.0 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.11.0-ha770c72_1.conda + version: 23.11.0 - category: main dependencies: {} hash: @@ -311,14 +312,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: a0c6f0e7e1a467f5678f94dea18c8aa7 - sha256: f177627acdfcead15a28f4a07fcda6a1e26b83f053eaa1efa7cce01c0a3b09a8 + md5: 75dae9a4201732aa78a530b826ee5fe0 + sha256: 51147922bad9d3176e780eb26f748f380cd3184896a9f9125d8ac64fe330158b manager: conda name: alsa-lib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.9-hd590300_0.conda - version: 1.2.9 + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.10-hd590300_0.conda + version: 1.2.10 - category: main dependencies: libgcc-ng: '>=12' @@ -371,14 +372,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: f5842b88e9cbfa177abfaeacd457a45d - sha256: b68b0611d1c9d0222b56d5fe3d634e7a26979c3aef30f5f48b1593e7249e8f7a + md5: 89e40af02dd3a0846c0c1131c5126706 + sha256: c4bbdafd6791583e3c77e8ed0e1df9e0021d542249c3543de3d72788f5c8a0c4 manager: conda name: c-ares optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.24.0-hd590300_0.conda - version: 1.24.0 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.25.0-hd590300_0.conda + version: 1.25.0 - category: main dependencies: libgcc-ng: '>=12' @@ -495,14 +496,14 @@ package: libgcc-ng: '>=12' libstdcxx-ng: '>=12' hash: - md5: 7c8d20d847bb45f56bd941578fcfa146 - sha256: e44cc00eec068e7f7a6dd117ba17bf5d57658729b7b841945546f82505138292 + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 manager: conda name: icu optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/icu-72.1-hcb278e6_0.conda - version: '72.1' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + version: '73.2' - category: main dependencies: libgcc-ng: '>=10.3.0' @@ -557,14 +558,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: 6aa9c9de5542ecb07fdda9ca626252d8 - sha256: 949d84ceea543802c1e085b2aa58f1d6cb5dd8cec5a9abaaf4e8ac65d6094b3a + md5: 1635570038840ee3f9c71d22aa5b8b6d + sha256: 985ad27aa0ba7aad82afa88a8ede6a1aacb0aaca950d710f15d85360451e72fd manager: conda name: libdeflate optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.18-h0b41bf4_0.conda - version: '1.18' + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.19-hd590300_0.conda + version: '1.19' - category: main dependencies: libgcc-ng: '>=12' @@ -641,14 +642,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: 323e90742f0f48fc22bea908735f55e6 - sha256: 0ef7378818c6d5b407692d02556c32e2f6af31c7542bca5160d0b92a59427fb5 + md5: ea25936bb4080d843790b586850f82b8 + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f manager: conda name: libjpeg-turbo optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-2.1.5.1-hd590300_1.conda - version: 2.1.5.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + version: 3.0.0 - category: main dependencies: libgcc-ng: '>=12' @@ -697,18 +698,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2 version: 4.19.0 -- category: main - dependencies: - libgcc-ng: '>=12' - hash: - md5: f204c8ba400ec475452737094fb81d52 - sha256: 345b3b580ef91557a82425ea3f432a70a8748c040deb14570b9f4dca4af3e3d1 - manager: conda - name: libtool - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtool-2.4.7-h27087fc_0.conda - version: 2.4.7 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -749,14 +738,14 @@ package: dependencies: libgcc-ng: '>=12' hash: - md5: 82bf6f63eb15ef719b556b63feec3a77 - sha256: 66658d5cdcf89169e284488d280b6ce693c98c0319d7eabebcedac0929140a73 + md5: 30de3fd9b3b602f7473f30e684eeea8c + sha256: 68764a760fa81ef35dacb067fe8ace452bbb41476536a4a147a1051df29525f0 manager: conda name: libwebp-base optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.1-hd590300_0.conda - version: 1.3.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.conda + version: 1.3.2 - category: main dependencies: libgcc-ng: '>=12' @@ -896,14 +885,14 @@ package: libgcc-ng: '>=12' libstdcxx-ng: '>=12' hash: - md5: 700edd63ccd5fc66b70b1c028cea9a68 - sha256: ae917851474eb3b08812b02c9e945d040808523ec53f828aa74a90b0cdf15f57 + md5: 6b4b43013628634b6cfdee6b74fd696b + sha256: 07a5ffcd34e241f900433af4c6d4904518aab76add4e1e40a2c4bad93ae43f2b manager: conda name: pixman optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.42.2-h59595ed_0.conda - version: 0.42.2 + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.0-h59595ed_0.conda + version: 0.43.0 - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -1426,20 +1415,20 @@ package: version: '1.15' - category: main dependencies: - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' libgcc-ng: '>=12' libiconv: '>=1.17,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' hash: - md5: 241845899caff54ac1d2b3102ad988cf - sha256: 624b6e29e23a51353cff2aff7364c42b831139afd131d239e79f60aea4dae887 + md5: 53e951fab78d7e3bab40745f7b3d1620 + sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 manager: conda name: libxml2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.10.4-hfdac1af_0.conda - version: 2.10.4 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda + version: 2.12.4 - category: main dependencies: libgcc-ng: '>=7.3.0' @@ -1825,7 +1814,7 @@ package: dependencies: bzip2: '>=1.0.8,<2.0a0' libgcc-ng: '>=12' - libxml2: '>=2.9.14,<2.11.0a0' + libxml2: '>=2.9.14,<3.0.0a0' libzlib: '>=1.2.12,<1.3.0a0' lz4-c: '>=1.9.3,<1.10.0a0' lzo: '>=2.10,<3.0a0' @@ -1863,18 +1852,18 @@ package: dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - libxml2: '>=2.10.4,<2.11.0a0' + libxml2: '>=2.12.1,<3.0.0a0' libzlib: '>=1.2.13,<1.3.0a0' - zstd: '>=1.5.2,<1.6.0a0' + zstd: '>=1.5.5,<1.6.0a0' hash: - md5: 3d942f062d7656168bb42b3439bdfede - sha256: c52c239b583a1b2d03bdc641afd8cbab0499b0a46ea55b40e1dbed112283a772 + md5: 94246254aa1699cc154ade6ffda128a4 + sha256: f0c46a724eeaaf5f45670b8344616e5a0397b7b7ae66ce01fc184fe80e37b0bc manager: conda - name: libllvm16 + name: libllvm17 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libllvm16-16.0.3-hbf9e925_1.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm17-17.0.6-hb3ce162_1.conda + version: 17.0.6 - category: main dependencies: libgcc-ng: '>=12' @@ -1892,23 +1881,23 @@ package: - category: main dependencies: lerc: '>=4.0.0,<5.0a0' - libdeflate: '>=1.18,<1.19.0a0' + libdeflate: '>=1.19,<1.20.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libstdcxx-ng: '>=12' - libwebp-base: '>=1.3.1,<2.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' xz: '>=5.2.6,<6.0a0' - zstd: '>=1.5.2,<1.6.0a0' + zstd: '>=1.5.5,<1.6.0a0' hash: - md5: 5b09e13d732dda1a2bc9adc711164f4d - sha256: 631ccfdd460eda9661b6371aa459fe5ce174816365873deb5af955c9e10bf8c2 + md5: 55ed21669b2015f77c180feb1dd41930 + sha256: 45158f5fbee7ee3e257e6b9f51b9f1c919ed5518a94a9973fe7fa4764330473e manager: conda name: libtiff optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.1-h8b53f26_1.conda - version: 4.5.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-ha9c0a0a_2.conda + version: 4.6.0 - category: main dependencies: libgcc-ng: '>=12' @@ -2036,16 +2025,16 @@ package: version: 1.8.7 - category: main dependencies: - python: '>=3.6' + python: '>=3.9' hash: - md5: 06006184e203b61d3525f90de394471e - sha256: b2d160a050996950434c6e87a174fc01c4a937cbeffbdd20d1b46126b4478a95 + md5: def531a3ac77b7fb8c21d17bb5d0badb + sha256: fd39ad2fabec1569bbb0dfdae34ab6ce7de6ec09dcec8638f83dad0373594069 manager: conda name: alabaster optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.13-pyhd8ed1ab_0.conda - version: 0.7.13 + url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda + version: 0.7.16 - category: main dependencies: python: '' @@ -2372,13 +2361,13 @@ package: dependencies: python: '>=3.7' hash: - md5: f6c211fee3c98229652b60a9a42ef363 - sha256: cf83dcaf9006015c8ccab3fc6770f478464a66a8769e1763ca5d7dff09d11d08 + md5: 8d652ea2ee8eaee02ed8dc820bc794aa + sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d manager: conda name: exceptiongroup optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda version: 1.2.0 - category: main dependencies: @@ -2437,19 +2426,19 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libglib: '>=2.74.1,<3.0a0' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libglib: '>=2.78.0,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.5.0,<4.6.0a0' + libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' hash: - md5: ee8220db21db8094998005990418fe5b - sha256: 7acc699871310e9a89aaa7e90de9ac949e2fa649232c8a8dfcafa67e8f36a266 + md5: 252a696860674caf7a855e16f680d63a + sha256: 884992d0665a0a5c728943d99b5fba30fd6911bb84eee622fa7ad8a4fa9f6cf7 manager: conda name: gdk-pixbuf optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h6b639ba_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h829c605_4.conda version: 2.42.10 - category: main dependencies: @@ -2497,16 +2486,16 @@ package: version: 11.4.0 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 hash: - md5: 2ed1fe4b9079da97c44cfe9c2e5078fd - sha256: cd93d5d4b1d98f7ce76a8658c35de9c63e17b3a40e52f40fa2f459e0da83d0b1 + md5: d8c02e0916d3894c9f8bbe26418c0488 + sha256: 995c56f883626a41bf9f7bb67c94f61103e8876546c2886925945a27a9b28eba manager: conda name: humanfriendly optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyhd8ed1ab_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/humanfriendly-10.0-py310hff52083_5.conda version: '10.0' - category: main dependencies: @@ -2637,17 +2626,17 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' - libtiff: '>=4.5.0,<4.6.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' hash: - md5: 980d8aca0bc23ca73fa8caa3e7c84c28 - sha256: 0d88e0e7f8dbf8f01788e21dd63dd49b89433ce7dfd10f53839441396f6481cd + md5: 51bb7010fc86f70eee639b4bb7a894f5 + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 manager: conda name: lcms2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.15-haa2dc70_1.conda - version: '2.15' + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + version: '2.16' - category: main dependencies: libopenblas: '>=0.3.25,<1.0a0' @@ -2663,31 +2652,31 @@ package: - category: main dependencies: libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: e3a70b7bde225412a04c681f5aa094f5 - sha256: 925c2e940a74cdda141b350ee6f6d7dfe5783c1f7575bd95649117c1841908e2 + md5: 2a85746a47b578eee4618642131345de + sha256: 713cad0dbb8530bc627042a01728f2479c4e73f69f440320a0ee421c12cd403c manager: conda - name: libclang-cpp16 + name: libclang-cpp17 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp16-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp17-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: 2dd726d3664b57ff32e4ef1965774c02 - sha256: b79181e5d1e3cd80ce5cbc0d0098621413e24c37437e8906b5bca1c398a5ce34 + md5: 93d59bd3649bba44d182dad3646db9e8 + sha256: 465504d1fd72a6f6d3c301862ed97bf3247234c7389bd82070bb50ce61c04c92 manager: conda name: libclang13 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-16.0.3-default_h4d60ac6_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-17.0.6-default_ha2b6cf4_2.conda + version: 17.0.6 - category: main dependencies: krb5: '>=1.20.1,<1.21.0a0' @@ -2750,19 +2739,19 @@ package: dependencies: giflib: '>=5.2.1,<5.3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.5.1,<4.6.0a0' - libwebp-base: '>=1.3.1,<2.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' hash: - md5: 4963f3f12db45a576f2b8fbe9a0b8569 - sha256: b0428f43bb3bc4544b997fcd9dfeb5593ee10701e8895cef22212105a8d8aa8d + md5: 0ebb65e8d86843865796c7c95a941f34 + sha256: cc5e55531d8067ea379b145861aea8c749a545912bc016372f5e3c69cc925efd manager: conda name: libwebp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.1-hbf2b3c1_0.conda - version: 1.3.1 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.2-h658648e_1.conda + version: 1.3.2 - category: main dependencies: libgcc-ng: '>=12' @@ -2781,14 +2770,14 @@ package: dependencies: python: '>=3.8' hash: - md5: 8549fafed0351bbfaa1ddaa15fdf9b4e - sha256: 07ce65497dec537e490992758934ddbc4fb5ed9285b41387a7cca966f1a98a0f + md5: d5c98e9706fdc5328d49a9bf2ce5fb42 + sha256: 9e49e9484ff279453f0b55323a3f0c7cb97440c74f69eecda1f4ad29fae5cd3c manager: conda name: more-itertools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.1.0-pyhd8ed1ab_0.conda - version: 10.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.2.0-pyhd8ed1ab_0.conda + version: 10.2.0 - category: main dependencies: python: '>=3.6' @@ -2871,16 +2860,16 @@ package: libgcc-ng: '>=12' libpng: '>=1.6.39,<1.7.0a0' libstdcxx-ng: '>=12' - libtiff: '>=4.5.0,<4.6.0a0' + libtiff: '>=4.6.0,<4.7.0a0' libzlib: '>=1.2.13,<1.3.0a0' hash: - md5: 5ce6a42505c6e9e6151c54c3ec8d68ea - sha256: 3cbfb1fe9bb492dcb672f98f0ddc7b4e029f51f77101d9c301caa3acaea8cba2 + md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 + sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a manager: conda name: openjpeg optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-hfec8fc6_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda version: 2.5.0 - category: main dependencies: @@ -3081,16 +3070,16 @@ package: version: 3.1.1 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 hash: - md5: 2a7de29fb590ca14b5243c4c812c8025 - sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + md5: 378f2260e871f3ea46c6fa58d9f05277 + sha256: cb6e4821234cee05acd1996cef88e40dfc2d5ab12cf12c5b1d6ed9118f7f41a7 manager: conda name: pysocks optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py310hff52083_5.tar.bz2 version: 1.7.1 - category: main dependencies: @@ -3183,14 +3172,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: 849507c9b0652ec09c110bcc5213f482 - sha256: ebd8fb3040ec0ba40fe72da8136b847edd6f878a8f6862e534165d721a8af0d8 + md5: 57f7538a66c2db6572d8ef7f0a103fc2 + sha256: c1ecf5a6746aadd2d3a7bbde172a6c822efa659eb158b9b406ebebb1bc7e4f75 manager: conda name: rpds-py optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.16.2-py310hcb5633a_0.conda - version: 0.16.2 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.17.1-py310hcb5633a_0.conda + version: 0.17.1 - category: main dependencies: libgcc-ng: '>=12' @@ -3209,14 +3198,14 @@ package: dependencies: python: '>=3.7' hash: - md5: fc2166155db840c634a1291a5c35a709 - sha256: 851901b1f8f2049edb36a675f0c3f9a98e1495ef4eb214761b048c6f696a06f7 + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 manager: conda name: setuptools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-68.2.2-pyhd8ed1ab_0.conda - version: 68.2.2 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + version: 69.0.3 - category: main dependencies: python: '' @@ -3424,14 +3413,14 @@ package: dependencies: python: '>=3.8' hash: - md5: bf4a1d1a97ca27b0b65bacd9e238b484 - sha256: ca757d0fc2dbd422af9d3238a8b4b630a6e11df3707a447bd89540656770d1d7 + md5: 68f0738df502a14213624b288c60c9ad + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 manager: conda name: wcwidth optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.12-pyhd8ed1ab_0.conda - version: 0.2.12 + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + version: 0.2.13 - category: main dependencies: python: '>=2.6' @@ -3629,28 +3618,29 @@ package: fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.2,<3.0a0' + libglib: '>=2.78.0,<3.0a0' libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' libxcb: '>=1.15,<1.16.0a0' libzlib: '>=1.2.13,<1.3.0a0' - pixman: '>=0.40.0,<1.0a0' - xorg-libice: '' - xorg-libsm: '' - xorg-libx11: '>=1.8.4,<2.0a0' + pixman: '>=0.42.2,<1.0a0' + xorg-libice: '>=1.1.1,<2.0a0' + xorg-libsm: '>=1.2.4,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' xorg-libxext: '>=1.3.4,<2.0a0' - xorg-libxrender: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' zlib: '' hash: - md5: c1dd96500b9b1a75e9e511931f415cbc - sha256: 1fffecc684c26e0f1aed6d9857ad0f2abfe3a849977f718ad82366c68c7a9a36 + md5: f907bb958910dc404647326ca80c263e + sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e manager: conda name: cairo optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.16.0-hbbf8b49_1016.conda - version: 1.16.0 + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + version: 1.18.0 - category: main dependencies: libffi: '>=3.4,<4.0a0' @@ -3669,19 +3659,19 @@ package: version: 1.16.0 - category: main dependencies: - libclang-cpp16: '>=16.0.3,<16.1.0a0' + libclang-cpp17: '>=17.0.6,<17.1.0a0' libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: 738a21e17b4d9d846cf96503810c9b45 - sha256: 2d0c4ecdf647bf0bf3602495f0a3b85aa1985d0027cc787aa43e0c810ebbc704 + md5: 714849d4f3034fff0663b005b9b657d8 + sha256: 8ad2310be45c84ab2fec72eb23d1a57d961770a803f44ff850c0b9f3c8c56b74 manager: conda - name: clang-format-16 + name: clang-format-17 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-16-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-17-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: click: '' @@ -3795,14 +3785,14 @@ package: python_abi: 3.10.* *_cp310 unicodedata2: '>=14.0.0' hash: - md5: 27df6604157a2a9e782cbe720f752cf5 - sha256: 468904105e134301032749de8bf613a5cbc61d4de51bce25524716b6386885a4 + md5: 0688fca50c84de6ff0df1c6440941e0e + sha256: ade32c4caa2453f9e60b8bc0f311b9a46e82a9f589b4ebcac2563b47803b2530 manager: conda name: fonttools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py310h2372a71_0.conda - version: 4.47.0 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.2-py310h2372a71_0.conda + version: 4.47.2 - category: main dependencies: python: '>=3.7' @@ -3887,14 +3877,14 @@ package: markupsafe: '>=2.0' python: '>=3.7' hash: - md5: c8490ed5c70966d232fdd389d0dbed37 - sha256: b045faba7130ab263db6a8fdc96b1a3de5fcf85c4a607c5f11a49e76851500b5 + md5: e7d8df6509ba635247ff9aea31134262 + sha256: fd517b7dd3a61eca34f8a6f9f92f306397149cae1204fce72ac3d227107dafdc manager: conda name: jinja2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2 - version: 3.1.2 + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda + version: 3.1.3 - category: main dependencies: jsonpointer: '>=1.9' @@ -3935,27 +3925,28 @@ package: version: 3.9.0 - category: main dependencies: - expat: '>=2.5.0,<3.0a0' + expat: '' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' + libexpat: '>=2.5.0,<3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' - libtiff: '>=4.5.0,<4.6.0a0' + libtiff: '>=4.6.0,<4.7.0a0' libwebp: '' - libwebp-base: '>=1.3.0,<2.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' zlib: '' hash: - md5: ef06bee47510a7f5db3c2297a51d6ce2 - sha256: 6335db21afc72f86cf4ee0298acde3af950087db2b24df3d28a81c7d24574244 + md5: cfebc557e54905dadc355c0e9f003004 + sha256: b74f95a6e1f3b31a74741b39cba83ed99fc82d17243c0fd3b5ab16ddd48ab89d manager: conda name: libgd optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hfa28ad5_6.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h119a65a_9.conda version: 2.3.3 - category: main dependencies: @@ -4018,26 +4009,26 @@ package: - category: main dependencies: freetype: '>=2.12.1,<3.0a0' - lcms2: '>=2.15,<3.0a0' + lcms2: '>=2.16,<3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' - libtiff: '>=4.5.1,<4.6.0a0' - libwebp-base: '>=1.3.1,<2.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libxcb: '>=1.15,<1.16.0a0' libzlib: '>=1.2.13,<1.3.0a0' openjpeg: '>=2.5.0,<3.0a0' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 - tk: '>=8.6.12,<8.7.0a0' + tk: '>=8.6.13,<8.7.0a0' hash: - md5: adcc7ea52e4d39d0a93f6a2ef36c7fd4 - sha256: 26d41f3e6278f42cc61499576e6f39a0bb84b5f21673250d89f8f958e9f6f4b0 + md5: 9ec32d0d90f7670eb29bbba18299cf29 + sha256: ddb300d69329606a9933717127880c2062e9d6539d8824b21a43ed63eb7dab4f manager: conda name: pillow optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.0.0-py310h582fbeb_0.conda - version: 10.0.0 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py310h01dd4db_0.conda + version: 10.2.0 - category: main dependencies: python: '>=3.7' @@ -4250,14 +4241,14 @@ package: xorg-libx11: '>=1.8.7,<2.0a0' xorg-libxt: '>=1.3.0,<2.0a0' hash: - md5: 554fab21708ab3d3c5a295c5206b5cbc - sha256: 624f3ada4f4cfcc5177a9d5a7ab1ec5f3fc11ef21737aa2d85888be761e5d166 + md5: 9bf8594682993f484f3b287e928e3b75 + sha256: c128cebfdedbddb878be4d7b87364eb9fdf7de4293d32d0c874956daa966a45a manager: conda name: vim optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.0.2059-py310pl5321he660f0e_1.conda - version: 9.0.2059 + url: https://conda.anaconda.org/conda-forge/linux-64/vim-9.1.0041-py310pl5321he660f0e_0.conda + version: 9.1.0041 - category: main dependencies: distlib: <1,>=0.3.7 @@ -4310,14 +4301,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: 10246f66639d9ca55e790410f0dbb465 - sha256: 159e9e292f841477dd1e4c897c055d364472720c79b16fa329faee1e7b878564 + md5: 4ad35c8f6a64a6ab708780dad603aef4 + sha256: 0851ac8c66e99faa9c885a2905c2b7b227a051c008cfaed97eeec0f82a9cdbcf manager: conda name: yarl optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.3-py310h2372a71_0.conda - version: 1.9.3 + url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.4-py310h2372a71_0.conda + version: 1.9.4 - category: main dependencies: python: '>=3.7' @@ -4370,30 +4361,30 @@ package: python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' hash: - md5: d6850c205e9f86502bd6a58e270e8fd5 - sha256: ad25216fd91ac9a624ffde69679c3d476c4091adad30b9169aa3486bd25e1e88 + md5: 99a0a30966b1f81e2d5ddc09a4f108b1 + sha256: c0c592170d69e464145bf2e49a798812f38d4db0391fbc87614a926c27077881 manager: conda name: botocore optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.21-pyhd8ed1ab_0.conda + version: 1.34.21 - category: main dependencies: - clang-format-16: 16.0.3 default_h1cdf331_2 - libclang-cpp16: '>=16.0.3,<16.1.0a0' + clang-format-17: 17.0.6 default_hb11cfb5_2 + libclang-cpp17: '>=17.0.6,<17.1.0a0' libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' hash: - md5: c15e6c12bbd093170f1dab9d1ee922a8 - sha256: fe8d04e73e28a844e3513b214ca83a218d6d7115b1a86d5dfe1eb4e80e4bd15a + md5: 494178765431e2992fe5619a57b39616 + sha256: 72a08b56741b14175ce8df86540237c61bf218f7c88b65564b261aa950c96701 manager: conda name: clang-format optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/clang-format-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: cffi: '>=1.12' @@ -4468,32 +4459,32 @@ package: python: '>=3.7' typing_extensions: '>=3.7.4.3' hash: - md5: 6bf74c3b7c13079a91d4bd3da51cefcf - sha256: 6b85809ffbfe5c1887b674bf0492cc4dd1ac8a25f4d9fa20ef404be92186259b + md5: 84874a90c312088f7b5e63402fc44a58 + sha256: cf3c45156feec1fe8adfd3552ed70f4218e9771643cca8dd2673bca9dea04c9c manager: conda name: gitpython optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.40-pyhd8ed1ab_0.conda - version: 3.1.40 + url: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.41-pyhd8ed1ab_0.conda + version: 3.1.41 - category: main dependencies: - cairo: '>=1.16.0,<2.0a0' + cairo: '>=1.18.0,<2.0a0' freetype: '>=2.12.1,<3.0a0' graphite2: '' - icu: '>=72.1,<73.0a0' + icu: '>=73.2,<74.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.2,<3.0a0' + libglib: '>=2.78.1,<3.0a0' libstdcxx-ng: '>=12' hash: - md5: 765bc76c0dfaf24ff9d8a2935b2510df - sha256: 9d99416e9d4a01ea0915f65ea7fac71dee11916de115fbd0325c0cb82e0b63f8 + md5: 5a6f6c00ef982a9bc83558d9ac8f64a0 + sha256: 4b55aea03b18a4084b750eee531ad978d4a3690f63019132c26c6ad26bbe3aed manager: conda name: harfbuzz optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-7.3.0-hdb3a94d_0.conda - version: 7.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda + version: 8.3.0 - category: main dependencies: importlib-metadata: '>=7.0.1,<7.0.2.0a0' @@ -4543,14 +4534,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: d3147cfbf72d6ae7bba10562208f6def - sha256: f5ea7769beb7827f4f5858d28bbdbc814c01649cb8cb81cccbba476ebe3798cd + md5: e5e9c6f112d581cdf465b8ca861cb14f + sha256: bd199b12daf8713d2975e9b940e913cbb25527e5502c98bbf7acf16f992f6e66 manager: conda name: numpy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.2-py310hb13e2d6_0.conda - version: 1.26.2 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.3-py310hb13e2d6_0.conda + version: 1.26.3 - category: main dependencies: pip: '' @@ -4772,33 +4763,33 @@ package: version: 0.19.19 - category: main dependencies: - python: '>=3.6' + python: '>=3.7' requests: '>=2.18.4' six: '>=1.11.0' - typing-extensions: '>=4.0.1' + typing-extensions: '>=4.6.0' hash: - md5: 6e97f7d5387626f896515442002ac920 - sha256: 3f3ec0617e825bcabb70722ace9153dfdc02895aebb2179fc20b82eb30f79ec8 + md5: ddd941af93e209e34bae519fcbeb9b5e + sha256: 87dc6e347cef964bb8725dc990ce0c4f7668fbb251b630af5001b16fb8a0df94 manager: conda name: azure-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.5-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.5-pyhd8ed1ab_1.conda version: 1.29.5 - category: main dependencies: - python: '>=3.7,<4.0' + python: '>=3.8,<4.0' types-awscrt: '' typing_extensions: '>=4.1.0' hash: - md5: 75715c2695eb5d1da023a79140e923cd - sha256: e539bb5b339fc2136b086ce084fbf7b8c8f694d0c6ac30db2565c426bcdf28da + md5: 9dafeab4f5e116f48d49ae5833913448 + sha256: 66fa23291d7b7fac66af3f8e1a7b33db08d488b4d00847b5920db53f06c2f434 manager: conda name: botocore-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.21-pyhd8ed1ab_0.conda + version: 1.34.21 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -4815,21 +4806,22 @@ package: version: 0.13.1 - category: main dependencies: - clang-format: 16.0.3 default_h1cdf331_2 - libclang-cpp16: '>=16.0.3,<16.1.0a0' - libclang13: '>=16.0.3' + clang-format: 17.0.6 default_hb11cfb5_2 + libclang-cpp17: '>=17.0.6,<17.1.0a0' + libclang13: '>=17.0.6' libgcc-ng: '>=12' - libllvm16: '>=16.0.3,<16.1.0a0' + libllvm17: '>=17.0.6,<17.1.0a0' libstdcxx-ng: '>=12' + libxml2: '>=2.12.3,<3.0.0a0' hash: - md5: 8910812419605001db20734aad191191 - sha256: 236cd870e4a155d323202961cbcf13b1de84a86dde4ef6bf160b7e05b699b9d8 + md5: 65fe0c9fbf75eef82b8a2bce629774ec + sha256: b9e2c06011261261d873c3d7033df0612a0f61d3a2e25e71323270ac23f79204 manager: conda name: clang-tools optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-16.0.3-default_h1cdf331_2.conda - version: 16.0.3 + url: https://conda.anaconda.org/conda-forge/linux-64/clang-tools-17.0.6-default_hb11cfb5_2.conda + version: 17.0.6 - category: main dependencies: python: '>=3.7' @@ -4925,14 +4917,14 @@ package: referencing: '>=0.28.4' rpds-py: '>=0.7.1' hash: - md5: 1116d79def5268414fb0917520b2bbf1 - sha256: 77aae609097d06deedb8ef8407a44b23d5fef95962ba6fe1c959ac7bd6195296 + md5: 63dd555524e29934d1d3c9f7001ec4bd + sha256: 3562f0b6abaab7547ac3d86c5cd3eec30f0dc7072e136556ec168c8652911af7 manager: conda name: jsonschema optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.20.0-pyhd8ed1ab_0.conda - version: 4.20.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.0-pyhd8ed1ab_0.conda + version: 4.21.0 - category: main dependencies: pathable: '>=0.4.1,<0.5.0' @@ -4980,34 +4972,34 @@ package: version: 1.26.0 - category: main dependencies: - alsa-lib: '>=1.2.9,<1.2.10.0a0' + alsa-lib: '>=1.2.10,<1.2.11.0a0' fontconfig: '>=2.14.2,<3.0a0' fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' giflib: '>=5.2.1,<5.3.0a0' - harfbuzz: '>=7.3.0,<8.0a0' + harfbuzz: '>=8.2.1,<9.0a0' lcms2: '>=2.15,<3.0a0' libcups: '>=2.3.3,<2.4.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.5.1,<3.0a0' + libjpeg-turbo: '>=3.0.0,<4.0a0' libpng: '>=1.6.39,<1.7.0a0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - xorg-libx11: '>=1.8.4,<2.0a0' + xorg-libx11: '>=1.8.7,<2.0a0' xorg-libxext: '>=1.3.4,<2.0a0' xorg-libxi: '' - xorg-libxrender: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' xorg-libxt: '>=1.3.0,<2.0a0' xorg-libxtst: '' hash: - md5: f71bdbfbe2a91520b9b488481f02237f - sha256: a5b3b870378c505427eb7da7fb61829ed1b4ca1579422f6a1aa9e310dca86bed + md5: 1fe8f87c19c388209f593377c6147684 + sha256: 44e0db14278301fa4ddcc63fae9bb21bbbc542402e7443098d1ea5af6830164d manager: conda name: openjdk optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-20.0.0-h8e330f5_0.conda - version: 20.0.0 + url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-21.0.1-haa376d0_0.conda + version: 21.0.1 - category: main dependencies: libgcc-ng: '>=12' @@ -5034,18 +5026,18 @@ package: fonts-conda-ecosystem: '' freetype: '>=2.12.1,<3.0a0' fribidi: '>=1.0.10,<2.0a0' - harfbuzz: '>=7.1.0,<8.0a0' + harfbuzz: '>=8.1.1,<9.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.1,<3.0a0' + libglib: '>=2.76.4,<3.0a0' libpng: '>=1.6.39,<1.7.0a0' hash: - md5: cde553e0e32389e26595db4eacf859eb - sha256: 3bb7cf6e826fa6d867318ba4866470b02d2efcc1dcd6b8b6307afaa8ac21aff4 + md5: 1a66c10f6a0da3dbd2f3a68127e7f6a0 + sha256: 6ecce306b7ac4acf1184eb5b045e57e613e19e99c27d57f33eb255f8a9120a93 manager: conda name: pango optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.14-heaa33ce_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.14-ha41ecd1_2.conda version: 1.50.14 - category: main dependencies: @@ -5197,29 +5189,29 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 80d2f2f27aafd39e4b8134e9ee9ab312 - sha256: 943e8710df413e02b1d017c462b1b5e976f44751f51e07851b30917d6b63b44f + md5: 743f835ef00d7bf2de5073f83942dfc6 + sha256: 74c8527ba8879a285b54b5b646122a646bbce0f25f6fb2bed1fb503a3ee292a2 manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.6-py310hff52083_0.conda - version: 2.15.6 + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.10-py310hff52083_0.conda + version: 2.15.10 - category: main dependencies: - botocore: '>=1.34.11,<1.35.0' + botocore: '>=1.34.21,<1.35.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.8' s3transfer: '>=0.10.0,<0.11.0' hash: - md5: b1256264fc531fca35aabab7d517438a - sha256: b4d3415b4beee1623c02b7ddc593ae7ca5c5843c943424a73b7648e05858e008 + md5: fed41d386df59c034d8c2e5b2d98e3c9 + sha256: e37da0a7d0d97a0c009d977a74f38d0b3d6a9c569ce94f2c9a46d0e63aa6b189 manager: conda name: boto3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.21-pyhd8ed1ab_0.conda + version: 1.34.21 - category: main dependencies: cachecontrol: 0.13.1 pyhd8ed1ab_0 @@ -5268,21 +5260,21 @@ package: version: 7.0.0 - category: main dependencies: - atk-1.0: '>=2.36.0' - cairo: '>=1.16.0,<2.0.0a0' - gdk-pixbuf: '>=2.42.6,<3.0a0' - gettext: '>=0.19.8.1,<1.0a0' - libgcc-ng: '>=9.4.0' - libglib: '>=2.70.2,<3.0a0' - pango: '>=1.50.3,<1.51.0a0' + atk-1.0: '>=2.38.0' + cairo: '>=1.18.0,<2.0a0' + gdk-pixbuf: '>=2.42.10,<3.0a0' + gettext: '>=0.21.1,<1.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.3,<3.0a0' + pango: '>=1.50.14,<2.0a0' hash: - md5: 957a0255ab58aaf394a91725d73ab422 - sha256: 66d189ec36d67309fa3eb52d14d77b82359c10303c400eecc14f8eaca5939b87 + md5: 0abfa7f9241a0f4fd732bc15773cfb0c + sha256: e659f5eca2a5f21d5fe859d8d1dae132a284800eb017b8b4e2286b252a230527 manager: conda name: gtk2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h90689f9_2.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h7f000aa_3.conda version: 2.24.33 - category: main dependencies: @@ -5318,22 +5310,22 @@ package: version: 24.3.0 - category: main dependencies: - cairo: '>=1.16.0,<2.0a0' + cairo: '>=1.18.0,<2.0a0' gdk-pixbuf: '>=2.42.10,<3.0a0' gettext: '>=0.21.1,<1.0a0' libgcc-ng: '>=12' - libglib: '>=2.76.1,<3.0a0' - libxml2: '>=2.10.4,<2.11.0a0' + libglib: '>=2.78.1,<3.0a0' + libxml2: '>=2.12.1,<3.0.0a0' pango: '>=1.50.14,<2.0a0' hash: - md5: 1ec4fab6eb4af1db9056b94265fe19cf - sha256: 6449497e50d2343c6caf73ad9c74f82341e0c22aca3d6f333869e0a069d0c472 + md5: 03bd1ddcc942867a19528877143b9852 + sha256: b82d0c60376da88a2bf15d35d17c176aa923917ad7de4bc62ddef6d02f3518fb manager: conda name: librsvg optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.0-h5cef280_0.conda - version: 2.56.0 + url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.3-he3f83f7_1.conda + version: 2.56.3 - category: main dependencies: certifi: '>=2020.06.20' @@ -5426,16 +5418,16 @@ package: jsonschema: <5,>=3.2 pydantic: '>=1.8,<3' python: '>=3.7,<4.0' - typing-extensions: <5,>=4.4 + typing-extensions: '>=4.4' hash: - md5: 9fabf343ed3cdb5803480768e6338826 - sha256: 6cdad8582e270b88147295e9ec4817bdcda14212098efa77165a96870a31bbf4 + md5: cf935f13e0519eef2b83e63a4272ef2d + sha256: f588769f8ca933c3b22bc2fb2af55c2783bbe4e2615e9c38adc76163da670e27 manager: conda name: aws-sam-translator optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.82.0-pyhd8ed1ab_0.conda - version: 1.82.0 + url: https://conda.anaconda.org/conda-forge/noarch/aws-sam-translator-1.83.0-pyhd8ed1ab_0.conda + version: 1.83.0 - category: main dependencies: azure-core: <2.0.0,>=1.23.0 @@ -5458,14 +5450,14 @@ package: python: '' typing_extensions: '' hash: - md5: 8e4b38b9dfc865ffb06a2bf2f3719d91 - sha256: e8d31daecb364f893495430612721bb7b8f240e0834be5d1226810ace22cde68 + md5: 6423c73c90578d41b3b4c378454d361d + sha256: d0f91526b9fefb1551bab59ccd7878d0501f9cb2e7f56b7bd60dbc9176880389 manager: conda name: boto3-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.11-pyhd8ed1ab_0.conda - version: 1.34.11 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.19-pyhd8ed1ab_0.conda + version: 1.34.19 - category: main dependencies: archspec: '' @@ -5528,62 +5520,57 @@ package: version: 1.4.0 - category: main dependencies: - cairo: '>=1.16.0,<2.0a0' - expat: '' - fontconfig: '>=2.14.2,<3.0a0' + cairo: '>=1.18.0,<2.0a0' fonts-conda-ecosystem: '' - freetype: '>=2.12.1,<3.0a0' gdk-pixbuf: '>=2.42.10,<3.0a0' gtk2: '' gts: '>=0.7.6,<0.8.0a0' libexpat: '>=2.5.0,<3.0a0' libgcc-ng: '>=12' libgd: '>=2.3.3,<2.4.0a0' - libglib: '>=2.76.2,<3.0a0' - librsvg: '>=2.56.0,<3.0a0' + libglib: '>=2.78.1,<3.0a0' + librsvg: '>=2.56.3,<3.0a0' libstdcxx-ng: '>=12' - libtool: '' - libwebp-base: '>=1.3.0,<2.0a0' + libwebp-base: '>=1.3.2,<2.0a0' libzlib: '>=1.2.13,<1.3.0a0' pango: '>=1.50.14,<2.0a0' - zlib: '' hash: - md5: 597e2d0e1c6bc2e4457714ff479fe142 - sha256: 4bfb42de2d28406666ef6729169cae3f49c216c5ebd9f34afa40223755e2aaf8 + md5: a3f4cd4a512ec5db35ffbf25ba11f537 + sha256: 1813800d655c120a3941d543a6fc64e3c178c737f1c84f6b7ebe1f19f27fa4fb manager: conda name: graphviz optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/graphviz-8.0.5-h28d9a01_0.conda - version: 8.0.5 + url: https://conda.anaconda.org/conda-forge/linux-64/graphviz-9.0.0-h78e8752_1.conda + version: 9.0.0 - category: main dependencies: boto3: '' python: '>=3.6' typing-extensions: '' hash: - md5: 768ff0d711180b901b1490ebe7010ada - sha256: 9482dd403e24f5e5c155624de7d89f5521a97e8130f0a014899b12486a331a85 + md5: c594f646f5f92ae7f4ea68dc46ce633c + sha256: 60ac647a40388267eebdb8e7be63eeec791a8964ed597f1339be8a35d623cc31 manager: conda name: mypy-boto3-s3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.34.0-pyhd8ed1ab_0.conda - version: 1.34.0 + url: https://conda.anaconda.org/conda-forge/noarch/mypy-boto3-s3-1.34.14-pyhd8ed1ab_0.conda + version: 1.34.14 - category: main dependencies: boto3: '' python: '>=3.6' typing-extensions: '' hash: - md5: a810296f4cdd969085c1c3d78c846588 - sha256: 3975c31a2c88ff9925922537bb653f84a1c91ed5152043788bc8cc49d541951d + md5: 0aedc754685324ef7f10093f83b79337 + sha256: da027403a9333979e734bec2d4089ec3f1a574de451bdc366cd3f9fb06551a1c manager: conda name: mypy_boto3_ec2 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.34.4-pyhd8ed1ab_0.conda - version: 1.34.4 + url: https://conda.anaconda.org/conda-forge/noarch/mypy_boto3_ec2-1.34.17-pyhd8ed1ab_0.conda + version: 1.34.17 - category: main dependencies: importlib_resources: '>=5.8,<7.0' @@ -5617,7 +5604,7 @@ package: version: 0.4.2 - category: main dependencies: - aws-sam-translator: '>=1.82.0' + aws-sam-translator: '>=1.83.0' jschema-to-python: '>=1.2.3,<1.3.dev0' jsonpatch: '' jsonschema: '>=3.0,<5' @@ -5629,14 +5616,14 @@ package: sarif-om: '>=1.0.4,<1.1.dev0' sympy: '>=1.0.0' hash: - md5: 6bf6c385031287e86a5821f57544fc12 - sha256: deed7d4700694a25d440816d13de89468fe92dfc87ba506f3fee72b5d1131c75 + md5: c77ca2cb441d25ab24b73c1318facee1 + sha256: 6b0c1b6161052c7c2d15b32bc58267316cd5d983e701056fb9fe3e6ade903299 manager: conda name: cfn-lint optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.83.6-pyhd8ed1ab_0.conda - version: 0.83.6 + url: https://conda.anaconda.org/conda-forge/noarch/cfn-lint-0.84.0-pyhd8ed1ab_0.conda + version: 0.84.0 - category: main dependencies: colorama: '' @@ -5659,17 +5646,17 @@ package: conda-standalone: '' jinja2: '' pillow: '>=3.1' - python: '>=3.7' - ruamel.yaml: '>=0.11.14,<0.18' + python: '>=3.8' + ruamel.yaml: '>=0.11.14,<0.19' hash: - md5: bece1550cd8ce528b234f41c85786ef8 - sha256: a4304eff880a3150e027f8af8d158cc9bf6e6c8444d2affda4e2b17125f44a85 + md5: d8cb2dfbc95cd06af84d11bf16572270 + sha256: 78a2b1abf48bdb34a9902caa7bff273ed001758f0845ef0508b347d85c21ca2b manager: conda name: constructor optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.5.0-pyhe4f9e05_0.conda - version: 3.5.0 + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.6.0-pyh55f8243_0.conda + version: 3.6.0 - category: main dependencies: graphviz: '>=2.46.1' @@ -5712,14 +5699,14 @@ package: werkzeug: '>=0.5,!=2.2.0,!=2.2.1' xmltodict: '' hash: - md5: 9447c344fde58f458a55b05729ae74aa - sha256: f0586fd89bcc4e7df9cd12e66627473bed9b4bc33814b01f48e6059628af2f6b + md5: f7a4a329637c29a72236ab2f34225fcd + sha256: f6b71acc587d2eeafe926e750f3baa7d45ce406077aa514478b729edc8b82abc manager: conda name: moto optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.12-pyhd8ed1ab_0.conda - version: 4.2.12 + url: https://conda.anaconda.org/conda-forge/noarch/moto-4.2.13-pyhd8ed1ab_0.conda + version: 4.2.13 - category: main dependencies: livereload: '>=2.3.0' @@ -5739,40 +5726,40 @@ package: python: '>=3.9' sphinx: '>=5' hash: - md5: aebfabcb60c33a89c1f9290cab49bc93 - sha256: 67e2b386c7b3c858ead88fa71fe4fa5eb1f4f59d7994d167b3910a744db392d3 + md5: 611a35a27914fac3aa37611a6fe40bb5 + sha256: 710013443a063518d587d2af82299e92ab6d6695edf35a676ac3a0ccc9e3f8e6 manager: conda name: sphinxcontrib-applehelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.7-pyhd8ed1ab_0.conda - version: 1.0.7 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda + version: 1.0.8 - category: main dependencies: python: '>=3.9' sphinx: '>=5' hash: - md5: ebf08f5184d8eaa486697bc060031953 - sha256: 770e13ebfef321426c09ec51d95c57755512db160518b2922a4337546ee51672 + md5: d7e4954df0d3aea2eacc7835ad12671d + sha256: 63a6b60653ef13a6712848f4b3c4b713d4b564da1dae571893f1a3659cde85f3 manager: conda name: sphinxcontrib-devhelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.5-pyhd8ed1ab_0.conda - version: 1.0.5 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda + version: 1.0.6 - category: main dependencies: python: '>=3.9' sphinx: '>=5' hash: - md5: a9a89000dfd19656ad004b937eeb6828 - sha256: 5f09cd4a08a6c194c11999871a8c7cedc2cd7edd9ff7ceb6f0667b6698be4cc5 + md5: 7e1e7437273682ada2ed5e9e9714b140 + sha256: 512f393cfe34cb3de96ade7a7ad900d6278e2087a1f0e5732aa60fadee396d99 manager: conda name: sphinxcontrib-htmlhelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.4-pyhd8ed1ab_0.conda - version: 2.0.4 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda + version: 2.0.5 - category: main dependencies: python: '>=2.7' @@ -5806,14 +5793,14 @@ package: python: '>=3.9' sphinx: '>=5' hash: - md5: cf5c9649272c677a964a7313279e3a9b - sha256: 9ba5cea9cbab64106e8b5a9b19add855dcb52b8fbb1674398c715bccdbc04471 + md5: 26acae54b06f178681bfb551760f5dd1 + sha256: dd35b52f056c39081cd0ae01155174277af579b69e5d83798a33e9056ec78d63 manager: conda name: sphinxcontrib-qthelp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.6-pyhd8ed1ab_0.conda - version: 1.0.6 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda + version: 1.0.7 - category: main dependencies: alabaster: '>=0.7,<0.8' @@ -5848,14 +5835,14 @@ package: python: '>=3.9' sphinx: '>=5' hash: - md5: 0612e497d7860728f2cda421ea2aec09 - sha256: c5710ae7bb7465f25a29cc845d9fb6ad0ea561972d796d379fcb48d801e96d6d + md5: e507335cb4ca9cff4c3d0fa9cdab255e + sha256: bf80e4c0ff97d5e8e5f6db0831ba60007e820a3a438e8f1afd868aa516d67d6f manager: conda name: sphinxcontrib-serializinghtml optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.9-pyhd8ed1ab_0.conda - version: 1.1.9 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda + version: 1.1.10 - category: main dependencies: {} hash: diff --git a/conda-reqs/docs.yaml b/conda-reqs/docs.yaml new file mode 100644 index 00000000..38356ad0 --- /dev/null +++ b/conda-reqs/docs.yaml @@ -0,0 +1,23 @@ +channels: + - ucb-bar + - conda-forge + - litex-hub + - nodefaults + +platforms: + - linux-64 + +dependencies: + # https://conda-forge.org/feedstock-outputs/ + # filterable list of all conda-forge packages + # https://conda-forge.org/#contribute + # instructions on adding a recipe + # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications + # documentation on package_spec syntax for constraining versions + + # doc requirements + - sphinx + - pygments + - sphinx-autobuild + - sphinx_rtd_theme + - docutils diff --git a/scripts/generate-conda-lockfiles.sh b/scripts/generate-conda-lockfiles.sh index 544a8281..40701580 100755 --- a/scripts/generate-conda-lockfiles.sh +++ b/scripts/generate-conda-lockfiles.sh @@ -19,6 +19,7 @@ for TOOLCHAIN_TYPE in riscv-tools esp-tools; do --no-mamba \ --no-micromamba \ -f "$REQS_DIR/chipyard.yaml" \ + -f "$REQS_DIR/docs.yaml" \ -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ -p linux-64 \ --lockfile $LOCKFILE From b50b83a7694ae1c5d28e030f17fa193ad26ee895 Mon Sep 17 00:00:00 2001 From: Tynan McAuley Date: Thu, 18 Jan 2024 13:53:18 -0800 Subject: [PATCH 063/105] Update deprecated/unused Chisel APIs These have been deprecated since Chisel 3.6.0. They are being removed in Chisel 6, and will become compile errors at that point. --- fpga/src/main/scala/arty100t/HarnessBinders.scala | 1 - fpga/src/main/scala/vcu118/bringup/IOBinders.scala | 2 +- generators/chipyard/src/main/scala/Subsystem.scala | 1 - .../chipyard/src/main/scala/example/FlatTestHarness.scala | 1 - .../chipyard/src/main/scala/harness/HarnessBinders.scala | 3 ++- .../chipyard/src/main/scala/harness/MultiHarnessBinders.scala | 1 - 6 files changed, 3 insertions(+), 6 deletions(-) diff --git a/fpga/src/main/scala/arty100t/HarnessBinders.scala b/fpga/src/main/scala/arty100t/HarnessBinders.scala index 7b1640ba..11a99421 100644 --- a/fpga/src/main/scala/arty100t/HarnessBinders.scala +++ b/fpga/src/main/scala/arty100t/HarnessBinders.scala @@ -1,7 +1,6 @@ package chipyard.fpga.arty100t import chisel3._ -import chisel3.experimental.{DataMirror, Direction} import freechips.rocketchip.jtag.{JTAGIO} import freechips.rocketchip.subsystem.{PeripheryBusKey} diff --git a/fpga/src/main/scala/vcu118/bringup/IOBinders.scala b/fpga/src/main/scala/vcu118/bringup/IOBinders.scala index 24b7aa9a..c80f828e 100644 --- a/fpga/src/main/scala/vcu118/bringup/IOBinders.scala +++ b/fpga/src/main/scala/vcu118/bringup/IOBinders.scala @@ -1,7 +1,7 @@ package chipyard.fpga.vcu118.bringup import chisel3._ -import chisel3.experimental.{IO, DataMirror} +import chisel3.reflect.DataMirror import freechips.rocketchip.util.{HeterogeneousBag} import freechips.rocketchip.tilelink.{TLBundle} diff --git a/generators/chipyard/src/main/scala/Subsystem.scala b/generators/chipyard/src/main/scala/Subsystem.scala index 993dad02..011a3c11 100644 --- a/generators/chipyard/src/main/scala/Subsystem.scala +++ b/generators/chipyard/src/main/scala/Subsystem.scala @@ -6,7 +6,6 @@ package chipyard import chisel3._ -import chisel3.internal.sourceinfo.{SourceInfo} import freechips.rocketchip.prci._ import org.chipsalliance.cde.config.{Field, Parameters} diff --git a/generators/chipyard/src/main/scala/example/FlatTestHarness.scala b/generators/chipyard/src/main/scala/example/FlatTestHarness.scala index 9eeabecf..8bbbb205 100644 --- a/generators/chipyard/src/main/scala/example/FlatTestHarness.scala +++ b/generators/chipyard/src/main/scala/example/FlatTestHarness.scala @@ -1,7 +1,6 @@ package chipyard.example import chisel3._ -import chisel3.experimental.{Analog, BaseModule, DataMirror, Direction} import scala.collection.mutable.{ArrayBuffer, LinkedHashMap} import org.chipsalliance.cde.config.{Field, Parameters} diff --git a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala index 59d4110d..909f1638 100644 --- a/generators/chipyard/src/main/scala/harness/HarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/HarnessBinders.scala @@ -2,7 +2,8 @@ package chipyard.harness import chisel3._ import chisel3.util._ -import chisel3.experimental.{Analog, BaseModule, DataMirror, Direction} +import chisel3.reflect.DataMirror +import chisel3.experimental.Direction import org.chipsalliance.cde.config.{Field, Config, Parameters} import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImpLike} diff --git a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala index 4f32880e..5da69fc7 100644 --- a/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala +++ b/generators/chipyard/src/main/scala/harness/MultiHarnessBinders.scala @@ -2,7 +2,6 @@ package chipyard.harness import chisel3._ import chisel3.util._ -import chisel3.experimental.{DataMirror, Direction} import org.chipsalliance.cde.config.{Field, Config, Parameters} import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImpLike} From 22ceb7401b8581439b21c8cbfe7e1410bfc37634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Fri, 19 Jan 2024 12:24:26 +0100 Subject: [PATCH 064/105] Makefile: add print-FOO utility target that prints the value of a make variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit useful for debugging/checking value of a variable Signed-off-by: Øyvind Harboe --- common.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common.mk b/common.mk index 3763584f..462f1945 100644 --- a/common.mk +++ b/common.mk @@ -469,3 +469,10 @@ check-submodule-status: # Disable all suffix rules to improve Make performance on systems running older # versions of Make .SUFFIXES: + +.PHONY: print-% +# Print any variable and it's origin. This helps figure out where the +# variable was defined and to distinguish between empty and undefined. +print-%: + @echo "$*=$($*)" + @echo "Origin is: $(origin $*)" From c6d39c14f86ed0fa8c9905d1ec7e08c62b921d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Fri, 19 Jan 2024 12:15:36 +0100 Subject: [PATCH 065/105] docs: correct to TOP_MACROCOMPILER_MODE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Øyvind Harboe --- docs/VLSI/Basic-Flow.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/VLSI/Basic-Flow.rst b/docs/VLSI/Basic-Flow.rst index cc200c44..10a7af2f 100644 --- a/docs/VLSI/Basic-Flow.rst +++ b/docs/VLSI/Basic-Flow.rst @@ -57,7 +57,7 @@ As in the rest of the Chipyard flows, we specify our SoC configuration using the However, unlike the rest of the Chipyard flows, in the case of physical design we might be interested in working in a hierarchical fashion and therefore we would like to work on a single module. Therefore, we can also specify a ``VLSI_TOP`` make variable with the same of a specific Verilog module (which should also match the name of the equivalent Chisel module) which we would like to work on. The makefile will automatically call tools such as Barstools and the MacroCompiler (:ref:`Tools/Barstools:barstools`) in order to make the generated Verilog more VLSI friendly. -By default, the MacroCompiler will attempt to map memories into the SRAM options within the Hammer technology plugin. However, if you are working with a new process technology and prefer to work with flip-flop arrays, you can configure the MacroCompiler using the ``TOP_MACROCOMPILER_MODE`` make variable. For example, if your technology plugin does not have an SRAM compiler ready, you can use the ``MACROCOMPILER_MODE='--mode synflops'`` option (Note that synthesizing a design with only flipflops is very slow and will often may not meet constraints). +By default, the MacroCompiler will attempt to map memories into the SRAM options within the Hammer technology plugin. However, if you are working with a new process technology and prefer to work with flip-flop arrays, you can configure the MacroCompiler using the ``TOP_MACROCOMPILER_MODE`` make variable. For example, if your technology plugin does not have an SRAM compiler ready, you can use the ``TOP_MACROCOMPILER_MODE='--mode synflops'`` option (Note that synthesizing a design with only flipflops is very slow and will often may not meet constraints). We call the ``make buildfile`` command while also specifying the name of the process technology we are working with (same ``tech_name`` for the configuration files and plugin name) and the configuration files we created. Note, in the ASAP7 tutorial ((:ref:`tutorial`)) these configuration files are merged into a single file called ``example-asap7.yml``. From 855a86b8877d58e880f4cb93135a7ea94f6bd014 Mon Sep 17 00:00:00 2001 From: joey0320 Date: Sat, 20 Jan 2024 13:58:17 -0800 Subject: [PATCH 066/105] Bump testchipip --- generators/testchipip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/testchipip b/generators/testchipip index 28a4d01b..edacb214 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit 28a4d01b1130b76ea725850fe8b600f9847b6cb8 +Subproject commit edacb214f081e5034f131af74efa0ac5f4452ee6 From 8491f3a7b9f507b39a1c7fe71c902312b13c6212 Mon Sep 17 00:00:00 2001 From: joey0320 Date: Sat, 20 Jan 2024 13:59:26 -0800 Subject: [PATCH 067/105] Bump barfetchers --- generators/bar-fetchers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/bar-fetchers b/generators/bar-fetchers index 12d1506f..45380026 160000 --- a/generators/bar-fetchers +++ b/generators/bar-fetchers @@ -1 +1 @@ -Subproject commit 12d1506f610048906d2407b40a706923cbe6571e +Subproject commit 45380026ff2918613849c18008d0d9315e060426 From 97463ad643453b1de88d895a7a99f2d4306e3171 Mon Sep 17 00:00:00 2001 From: joey0320 Date: Sat, 20 Jan 2024 14:01:01 -0800 Subject: [PATCH 068/105] Bump firemarshal --- software/firemarshal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/firemarshal b/software/firemarshal index 97826983..b014183a 160000 --- a/software/firemarshal +++ b/software/firemarshal @@ -1 +1 @@ -Subproject commit 97826983438427b8fc40d9b66af2674ce7046bac +Subproject commit b014183ac6afed7fe1aca89fa010be8d13ad4079 From 778e133842f9996c61b98ff3b10e6a87818b1406 Mon Sep 17 00:00:00 2001 From: joey0320 Date: Sat, 20 Jan 2024 14:05:14 -0800 Subject: [PATCH 069/105] Bump fsim --- sims/firesim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sims/firesim b/sims/firesim index d2501ec7..3dd83489 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit d2501ec790c3df9094cc729c33074b641c515b03 +Subproject commit 3dd83489d4943f37ee67cef36a2f7eba06ff1ce9 From c2f06e25829f472e51e9889497dbd1bcf72b4381 Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Sat, 20 Jan 2024 17:32:41 -0800 Subject: [PATCH 070/105] Bump requirements --- conda-reqs/chipyard.yaml | 2 +- ...irements-esp-tools-linux-64.conda-lock.yml | 110 +++++++++--------- ...ements-riscv-tools-linux-64.conda-lock.yml | 110 +++++++++--------- 3 files changed, 111 insertions(+), 111 deletions(-) diff --git a/conda-reqs/chipyard.yaml b/conda-reqs/chipyard.yaml index 32b9c765..0f1fb637 100644 --- a/conda-reqs/chipyard.yaml +++ b/conda-reqs/chipyard.yaml @@ -78,7 +78,7 @@ dependencies: - zlib - vim - git - - openjdk + - openjdk=20 - gengetopt - libffi - expat diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index 2083ce4d..b2e7cc5b 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -21,7 +21,7 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: dff1e57c6346a984141e6206e0fc0c8c13152f37ae38ad67d6e938937c5b061a + linux-64: 49806d76b27927ce173d3b40bc3cb7a27b124e37fca50b32d653588b3f5a2a9a platforms: - linux-64 sources: @@ -2775,14 +2775,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: ee2b4665b852ec6ff2758f3c1b91233d - sha256: 0fb7a5340855c0b3c7c9259eb57ff00abedf36530ba1daae3434016301b0fa36 + md5: 847ad1c2bcbef1e2febfdaa3b199c2a4 + sha256: e3019f819f354cc7ac080704ae9faa87618f5bbf536dc5b82f52296eb7f80459 manager: conda name: markupsafe optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.3-py39hd1e30aa_1.conda - version: 2.1.3 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py39hd1e30aa_0.conda + version: 2.1.4 - category: main dependencies: python: '>=3.8' @@ -2991,14 +2991,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: 34d2731732bc7de6269657d5d9fd6e79 - sha256: 1f5e5d4ce98df5dbfc8478a3339e3848891fed2f26405676ee39010777245894 + md5: ec86403fde8793ac1c36f8afa3d15902 + sha256: d0fa2b24b7245483208014e3567ef3aeeb3242b77ba1002c46923a60a3a05c3b manager: conda name: psutil optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.7-py39hd1e30aa_0.conda - version: 5.9.7 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.8-py39hd1e30aa_0.conda + version: 5.9.8 - category: main dependencies: python: '!=3.0,!=3.1,!=3.2,!=3.3,!=3.4,!=3.5' @@ -4347,14 +4347,14 @@ package: python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' hash: - md5: 99a0a30966b1f81e2d5ddc09a4f108b1 - sha256: c0c592170d69e464145bf2e49a798812f38d4db0391fbc87614a926c27077881 + md5: df438bbfe18de464fef2539fce7a9d50 + sha256: fa130d7718c7ac1184b2418ea228f67d3d13d22dbcc79c770d64f82e9167417e manager: conda name: botocore optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.21-pyhd8ed1ab_0.conda - version: 1.34.21 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: clang-format-17: 17.0.6 default_hb11cfb5_2 @@ -4411,14 +4411,14 @@ package: python: '>=3.8' werkzeug: '>=3.0.0' hash: - md5: d26105227a24c82fdf160f20ed379400 - sha256: 73dafd8c1ae9ee9e42e5fa78275c8dc3b456879d83dc6d6ed82d92bd498c9184 + md5: 49c5959bd6abaf3cdcb3668cebffd0d4 + sha256: faa22b909ee7d69514bda05ddb6fde39dae3c7a47e69d6ef9b6107c7c636ac1b manager: conda name: flask optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/flask-3.0.0-pyhd8ed1ab_0.conda - version: 3.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/flask-3.0.1-pyhd8ed1ab_0.conda + version: 3.0.1 - category: main dependencies: curl: '' @@ -4763,32 +4763,32 @@ package: - category: main dependencies: python: '>=3.7' - requests: '>=2.18.4' + requests: '>=2.21.0' six: '>=1.11.0' typing-extensions: '>=4.6.0' hash: - md5: ddd941af93e209e34bae519fcbeb9b5e - sha256: 87dc6e347cef964bb8725dc990ce0c4f7668fbb251b630af5001b16fb8a0df94 + md5: 64d436079b1422e0483b0fbb326622a2 + sha256: 9a9ea330870d2655348fcb8c87a5fa421f3b6c3e347653131d7104f04daad5b8 manager: conda name: azure-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.5-pyhd8ed1ab_1.conda - version: 1.29.5 + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.7-pyhd8ed1ab_0.conda + version: 1.29.7 - category: main dependencies: python: '>=3.8,<4.0' types-awscrt: '' typing_extensions: '>=4.1.0' hash: - md5: 9dafeab4f5e116f48d49ae5833913448 - sha256: 66fa23291d7b7fac66af3f8e1a7b33db08d488b4d00847b5920db53f06c2f434 + md5: 7122b5ba8371cf83cf9593b65b57e49d + sha256: 8b4cca90a4056f0d6e30e324468c21c2e43cb3ed9154f0b26e225b22654874b7 manager: conda name: botocore-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.21-pyhd8ed1ab_0.conda - version: 1.34.21 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -4916,14 +4916,14 @@ package: referencing: '>=0.28.4' rpds-py: '>=0.7.1' hash: - md5: 63dd555524e29934d1d3c9f7001ec4bd - sha256: 3562f0b6abaab7547ac3d86c5cd3eec30f0dc7072e136556ec168c8652911af7 + md5: 8a3a3d01629da20befa340919e3dd2c4 + sha256: c5c1b4e08e91fdd697289015be1a176409b4e63942899a43b276f1f250be8129 manager: conda name: jsonschema optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.0-pyhd8ed1ab_0.conda - version: 4.21.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda + version: 4.21.1 - category: main dependencies: pathable: '>=0.4.1,<0.5.0' @@ -4984,21 +4984,21 @@ package: libpng: '>=1.6.39,<1.7.0a0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - xorg-libx11: '>=1.8.7,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' xorg-libxext: '>=1.3.4,<2.0a0' xorg-libxi: '' xorg-libxrender: '>=0.9.11,<0.10.0a0' xorg-libxt: '>=1.3.0,<2.0a0' xorg-libxtst: '' hash: - md5: 1fe8f87c19c388209f593377c6147684 - sha256: 44e0db14278301fa4ddcc63fae9bb21bbbc542402e7443098d1ea5af6830164d + md5: 06cb6ddea2e4639d2d8d91626d0eba3b + sha256: 0a88fdee61322f37bae674222488fc1153f1211312028c624db3f08bfda30617 manager: conda name: openjdk optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-21.0.1-haa376d0_0.conda - version: 21.0.1 + url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-20.0.2-haa376d0_2.conda + version: 20.0.2 - category: main dependencies: libgcc-ng: '>=12' @@ -5010,14 +5010,14 @@ package: python_abi: 3.9.* *_cp39 pytz: '>=2020.1' hash: - md5: dcfd2f15c6f8f0bbf234412b18a2a5d0 - sha256: 3344059c6df1a07e9e5824990c53f8ac4ee7a19a209e33f0009b5af266844d2b + md5: 95aaa7baa61432a1ce85dedb7b86d2dd + sha256: d5f6266055a68907a5d5177f45b57321ff3b98e4f27e3e155ab9b27888c2991e manager: conda name: pandas optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py39hddac248_0.conda - version: 2.1.4 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.0-py39hddac248_0.conda + version: 2.2.0 - category: main dependencies: cairo: '>=1.16.0,<2.0a0' @@ -5188,29 +5188,29 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 8116d2c1293fa2350b42a55881d7647f - sha256: bef4f99cdf4d38ba818497256af7ddfa746114a2110a576986822beeb5f4047a + md5: 8376298ea81d582557485a166528a2e7 + sha256: ededf952f2bb95033fea0969e01e048675e0738a5277fb145810af859be05366 manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.10-py39hf3d152e_0.conda - version: 2.15.10 + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.12-py39hf3d152e_0.conda + version: 2.15.12 - category: main dependencies: - botocore: '>=1.34.21,<1.35.0' + botocore: '>=1.34.23,<1.35.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.8' s3transfer: '>=0.10.0,<0.11.0' hash: - md5: fed41d386df59c034d8c2e5b2d98e3c9 - sha256: e37da0a7d0d97a0c009d977a74f38d0b3d6a9c569ce94f2c9a46d0e63aa6b189 + md5: 49c89cef4cf380d165d479bf7f14ee0d + sha256: 2098c4255bf6b338c2bd757a53270e3454acd9846ec4c7d67dd9092a6c043cfa manager: conda name: boto3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.21-pyhd8ed1ab_0.conda - version: 1.34.21 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: cachecontrol: 0.13.1 pyhd8ed1ab_0 @@ -5450,14 +5450,14 @@ package: python: '' typing_extensions: '' hash: - md5: 6423c73c90578d41b3b4c378454d361d - sha256: d0f91526b9fefb1551bab59ccd7878d0501f9cb2e7f56b7bd60dbc9176880389 + md5: 42ee533bf20660a4132b7f3ce6b45ef9 + sha256: 72c4234eba8c6d5c125bb21dabc478feb97ab68295e06d1b9fa07a7ec26c6e68 manager: conda name: boto3-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.19-pyhd8ed1ab_0.conda - version: 1.34.19 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: archspec: '' @@ -5889,12 +5889,12 @@ package: - dependencies: typing-extensions: '>=4.2.0' hash: - sha256: 9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd + sha256: 646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7 manager: pip name: pydantic platform: linux-64 - url: https://files.pythonhosted.org/packages/18/57/11b1e218908aae98d7df4364accc5e5a69db0a9396c011f494c69947e1b9/pydantic-1.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - version: 1.10.13 + url: https://files.pythonhosted.org/packages/4f/cb/8313256cfb57f641fe6feb386b1433b61c7a10b5b0c8999807d3ee22d25f/pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + version: 1.10.14 - category: main dependencies: ruamel.yaml.clib: '>=0.2.7' diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 0c884a68..955734f9 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -21,7 +21,7 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: 8fd67723de354ff9321ddc6c1d37927add144bb0cd3e983b1bb3e486f31b98fb + linux-64: acaac148231e584874fde649a99f5d9224edcab7975a1aa028bfe6800fb61ec0 platforms: - linux-64 sources: @@ -2758,14 +2758,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: b74e07a054c479e45a83a83fc5be713c - sha256: ac46cc2f6d4bbeedcd2f508e43f43143a9286ced55730d8d97a3c91ceceb0d56 + md5: 76cd8db42baacfc94aa4d3a2b8e9e453 + sha256: 270d57657ff5cdc5bd8820ab1caf04ed4e7682605c85f4b7a4ff3f7b1c4beaef manager: conda name: markupsafe optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.3-py310h2372a71_1.conda - version: 2.1.3 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py310h2372a71_0.conda + version: 2.1.4 - category: main dependencies: python: '>=3.8' @@ -2974,14 +2974,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* *_cp310 hash: - md5: eb1f8f278d0b00c7b6d5c01a5b06609f - sha256: 82d01c09f10cdc0b9333c9478a05bfd55f9cf7b5a1db079938b46920fedd9f7b + md5: bd19b3096442ea342c4a5208379660b1 + sha256: f1866425aa67f3fe1e3f6e07562a4bc986fd487e01146a91eb1bdbe5ec16a836 manager: conda name: psutil optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.7-py310h2372a71_0.conda - version: 5.9.7 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.8-py310h2372a71_0.conda + version: 5.9.8 - category: main dependencies: python: '!=3.0,!=3.1,!=3.2,!=3.3,!=3.4,!=3.5' @@ -4361,14 +4361,14 @@ package: python-dateutil: '>=2.1,<3.0.0' urllib3: '>=1.25.4,<1.27' hash: - md5: 99a0a30966b1f81e2d5ddc09a4f108b1 - sha256: c0c592170d69e464145bf2e49a798812f38d4db0391fbc87614a926c27077881 + md5: df438bbfe18de464fef2539fce7a9d50 + sha256: fa130d7718c7ac1184b2418ea228f67d3d13d22dbcc79c770d64f82e9167417e manager: conda name: botocore optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.21-pyhd8ed1ab_0.conda - version: 1.34.21 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: clang-format-17: 17.0.6 default_hb11cfb5_2 @@ -4425,14 +4425,14 @@ package: python: '>=3.8' werkzeug: '>=3.0.0' hash: - md5: d26105227a24c82fdf160f20ed379400 - sha256: 73dafd8c1ae9ee9e42e5fa78275c8dc3b456879d83dc6d6ed82d92bd498c9184 + md5: 49c5959bd6abaf3cdcb3668cebffd0d4 + sha256: faa22b909ee7d69514bda05ddb6fde39dae3c7a47e69d6ef9b6107c7c636ac1b manager: conda name: flask optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/flask-3.0.0-pyhd8ed1ab_0.conda - version: 3.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/flask-3.0.1-pyhd8ed1ab_0.conda + version: 3.0.1 - category: main dependencies: curl: '' @@ -4764,32 +4764,32 @@ package: - category: main dependencies: python: '>=3.7' - requests: '>=2.18.4' + requests: '>=2.21.0' six: '>=1.11.0' typing-extensions: '>=4.6.0' hash: - md5: ddd941af93e209e34bae519fcbeb9b5e - sha256: 87dc6e347cef964bb8725dc990ce0c4f7668fbb251b630af5001b16fb8a0df94 + md5: 64d436079b1422e0483b0fbb326622a2 + sha256: 9a9ea330870d2655348fcb8c87a5fa421f3b6c3e347653131d7104f04daad5b8 manager: conda name: azure-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.5-pyhd8ed1ab_1.conda - version: 1.29.5 + url: https://conda.anaconda.org/conda-forge/noarch/azure-core-1.29.7-pyhd8ed1ab_0.conda + version: 1.29.7 - category: main dependencies: python: '>=3.8,<4.0' types-awscrt: '' typing_extensions: '>=4.1.0' hash: - md5: 9dafeab4f5e116f48d49ae5833913448 - sha256: 66fa23291d7b7fac66af3f8e1a7b33db08d488b4d00847b5920db53f06c2f434 + md5: 7122b5ba8371cf83cf9593b65b57e49d + sha256: 8b4cca90a4056f0d6e30e324468c21c2e43cb3ed9154f0b26e225b22654874b7 manager: conda name: botocore-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.21-pyhd8ed1ab_0.conda - version: 1.34.21 + url: https://conda.anaconda.org/conda-forge/noarch/botocore-stubs-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -4917,14 +4917,14 @@ package: referencing: '>=0.28.4' rpds-py: '>=0.7.1' hash: - md5: 63dd555524e29934d1d3c9f7001ec4bd - sha256: 3562f0b6abaab7547ac3d86c5cd3eec30f0dc7072e136556ec168c8652911af7 + md5: 8a3a3d01629da20befa340919e3dd2c4 + sha256: c5c1b4e08e91fdd697289015be1a176409b4e63942899a43b276f1f250be8129 manager: conda name: jsonschema optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.0-pyhd8ed1ab_0.conda - version: 4.21.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda + version: 4.21.1 - category: main dependencies: pathable: '>=0.4.1,<0.5.0' @@ -4985,21 +4985,21 @@ package: libpng: '>=1.6.39,<1.7.0a0' libstdcxx-ng: '>=12' libzlib: '>=1.2.13,<1.3.0a0' - xorg-libx11: '>=1.8.7,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' xorg-libxext: '>=1.3.4,<2.0a0' xorg-libxi: '' xorg-libxrender: '>=0.9.11,<0.10.0a0' xorg-libxt: '>=1.3.0,<2.0a0' xorg-libxtst: '' hash: - md5: 1fe8f87c19c388209f593377c6147684 - sha256: 44e0db14278301fa4ddcc63fae9bb21bbbc542402e7443098d1ea5af6830164d + md5: 06cb6ddea2e4639d2d8d91626d0eba3b + sha256: 0a88fdee61322f37bae674222488fc1153f1211312028c624db3f08bfda30617 manager: conda name: openjdk optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-21.0.1-haa376d0_0.conda - version: 21.0.1 + url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-20.0.2-haa376d0_2.conda + version: 20.0.2 - category: main dependencies: libgcc-ng: '>=12' @@ -5011,14 +5011,14 @@ package: python_abi: 3.10.* *_cp310 pytz: '>=2020.1' hash: - md5: 410f7e83992a591e492c25049a859254 - sha256: d0743541397140a25a89ab0686933005a4c104d95c23ff1c322f903a50b18099 + md5: 514c836161e8b2e43e7d8fb7a28a92c4 + sha256: 540cb88ff475938dc8fd0b55a911db5daf509603eca385d2bad55013bf17e453 manager: conda name: pandas optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py310hcc13569_0.conda - version: 2.1.4 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.0-py310hcc13569_0.conda + version: 2.2.0 - category: main dependencies: cairo: '>=1.16.0,<2.0a0' @@ -5189,29 +5189,29 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 743f835ef00d7bf2de5073f83942dfc6 - sha256: 74c8527ba8879a285b54b5b646122a646bbce0f25f6fb2bed1fb503a3ee292a2 + md5: 04ce380558b5922cd12afc44b98a4352 + sha256: 9daa78cbca08953aad8c8bb5d207b719fd7db7d75976facd6e2ec81dd0c4c1f1 manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.10-py310hff52083_0.conda - version: 2.15.10 + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.12-py310hff52083_0.conda + version: 2.15.12 - category: main dependencies: - botocore: '>=1.34.21,<1.35.0' + botocore: '>=1.34.23,<1.35.0' jmespath: '>=0.7.1,<2.0.0' python: '>=3.8' s3transfer: '>=0.10.0,<0.11.0' hash: - md5: fed41d386df59c034d8c2e5b2d98e3c9 - sha256: e37da0a7d0d97a0c009d977a74f38d0b3d6a9c569ce94f2c9a46d0e63aa6b189 + md5: 49c89cef4cf380d165d479bf7f14ee0d + sha256: 2098c4255bf6b338c2bd757a53270e3454acd9846ec4c7d67dd9092a6c043cfa manager: conda name: boto3 optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.21-pyhd8ed1ab_0.conda - version: 1.34.21 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: cachecontrol: 0.13.1 pyhd8ed1ab_0 @@ -5450,14 +5450,14 @@ package: python: '' typing_extensions: '' hash: - md5: 6423c73c90578d41b3b4c378454d361d - sha256: d0f91526b9fefb1551bab59ccd7878d0501f9cb2e7f56b7bd60dbc9176880389 + md5: 42ee533bf20660a4132b7f3ce6b45ef9 + sha256: 72c4234eba8c6d5c125bb21dabc478feb97ab68295e06d1b9fa07a7ec26c6e68 manager: conda name: boto3-stubs optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.19-pyhd8ed1ab_0.conda - version: 1.34.19 + url: https://conda.anaconda.org/conda-forge/noarch/boto3-stubs-1.34.23-pyhd8ed1ab_0.conda + version: 1.34.23 - category: main dependencies: archspec: '' @@ -5890,12 +5890,12 @@ package: - dependencies: typing-extensions: '>=4.2.0' hash: - sha256: 1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548 + sha256: 82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d manager: pip name: pydantic platform: linux-64 - url: https://files.pythonhosted.org/packages/e0/2f/d6f17f8385d718233bcae893d27525443d41201c938b68a4af3d591a33e4/pydantic-1.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - version: 1.10.13 + url: https://files.pythonhosted.org/packages/8b/ff/c6e3de00d83a607ba7fb81cee8ad72bbc722f15a57d18a815a1aa0e35793/pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + version: 1.10.14 - category: main dependencies: ruamel.yaml.clib: '>=0.2.7' From b5d7e2f6cb88402f1bf500c145586c7de780e7b9 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Sun, 21 Jan 2024 16:24:59 -0800 Subject: [PATCH 071/105] Remove skip-validate option --- scripts/build-setup.sh | 15 ++------ .../init-submodules-no-riscv-tools-nolog.sh | 34 +------------------ 2 files changed, 4 insertions(+), 45 deletions(-) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index a55b10fd..f9c11054 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -36,10 +36,7 @@ usage() { echo "" echo "Options" echo " --help -h : Display this message" - - echo " --force -f : Skip all prompts and checks" echo " --verbose -v : Verbose printout" - echo " --use-unpinned-deps -ud : Use unpinned conda environment" echo " --skip -s N : Skip step N in the list above. Use multiple times to skip multiple steps ('-s N -s M ...')." @@ -57,7 +54,6 @@ usage() { } TOOLCHAIN_TYPE="riscv-tools" -FORCE_FLAG="" VERBOSE=false VERBOSE_FLAG="" USE_UNPINNED_DEPS=false @@ -71,8 +67,6 @@ do usage 3 ;; riscv-tools | esp-tools) TOOLCHAIN_TYPE=$1 ;; - --force | -f | --skip-validate) - FORCE_FLAG=$1 ;; --verbose | -v) VERBOSE_FLAG=$1 set -x ;; @@ -201,17 +195,14 @@ source $CYDIR/scripts/fix-open-files.sh" fi -if [ -z "$FORCE_FLAG" ]; then - if [ -z ${CONDA_DEFAULT_ENV+x} ]; then - error "ERROR: No conda environment detected. Did you activate the conda environment (e.x. 'conda activate base')?" - exit 1 - fi +if [ -z ${CONDA_DEFAULT_ENV+x} ]; then + echo "!!!!! WARNING: No conda environment detected. Did you activate the conda environment (e.x. 'conda activate base')?" fi # initialize all submodules (without the toolchain submodules) if run_step "2"; then begin_step "2" "Initializing Chipyard submodules" - $CYDIR/scripts/init-submodules-no-riscv-tools.sh $FORCE_FLAG + $CYDIR/scripts/init-submodules-no-riscv-tools.sh exit_if_last_command_failed fi diff --git a/scripts/init-submodules-no-riscv-tools-nolog.sh b/scripts/init-submodules-no-riscv-tools-nolog.sh index aa921f0d..ec8489f6 100755 --- a/scripts/init-submodules-no-riscv-tools-nolog.sh +++ b/scripts/init-submodules-no-riscv-tools-nolog.sh @@ -13,20 +13,14 @@ common_setup function usage { - echo "Usage: $0 [--force]" + echo "Usage: $0" echo "Initialize Chipyard submodules and setup initial env.sh script." echo "" - echo " --force -f : Skip prompt checking for tagged release" - echo " --skip-validate : DEPRECATED: Same functionality as --force" } -FORCE=false while test $# -gt 0 do case "$1" in - --force | -f | --skip-validate) - FORCE=true; - ;; -h | -H | --help | help) usage exit 1 @@ -59,32 +53,6 @@ fi # before doing anything verify that you are on a release branch/tag save_bash_options set +e -git_tag=$(git describe --exact-match --tags) -git_tag_rc=$? -restore_bash_options -if [ "$git_tag_rc" -ne 0 ]; then - if [ "$FORCE" == false ]; then - while true; do - printf '\033[2J' - read -p "WARNING: You are not on an official release of Chipyard."$'\n'"Type \"y\" to continue if this is intended or \"n\" if not: " validate - case "$validate" in - y | Y) - echo "Continuing on to setting up non-official Chipyard release repository" - break - ;; - n | N) - error "See https://chipyard.readthedocs.io/en/stable/Chipyard-Basics/Initial-Repo-Setup.html#setting-up-the-chipyard-repo for setting up an official release of Chipyard. " - exit 3 - ;; - *) - error "Invalid response. Please type \"y\" or \"n\"" - ;; - esac - done - fi -else - echo "Setting up official Chipyard release: $git_tag" -fi cd "$RDIR" From be35a3fb14dd082ab21699785deb6de0d32b5722 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Sun, 21 Jan 2024 16:32:48 -0800 Subject: [PATCH 072/105] Remove flags from CI --- .github/actions/run-tests/action.yml | 2 +- .github/scripts/remote-do-rtl-build.sh | 2 +- .github/scripts/remote-run-firesim-scala-tests.sh | 2 +- .github/workflows/chipyard-full-flow.yml | 2 +- .github/workflows/chipyard-run-tests.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml index 1c554ac4..1dd0ce89 100644 --- a/.github/actions/run-tests/action.yml +++ b/.github/actions/run-tests/action.yml @@ -23,7 +23,7 @@ runs: - name: Init submodules (since only the RTL is cached) run: | conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-${{ inputs.toolchain }} - ./scripts/init-submodules-no-riscv-tools.sh --force + ./scripts/init-submodules-no-riscv-tools.sh shell: bash -leo pipefail {0} # Note: You shouldn't need the other inputs since it shouldn't build RTL from scratch diff --git a/.github/scripts/remote-do-rtl-build.sh b/.github/scripts/remote-do-rtl-build.sh index 06b47ba2..9cbc8531 100755 --- a/.github/scripts/remote-do-rtl-build.sh +++ b/.github/scripts/remote-do-rtl-build.sh @@ -15,7 +15,7 @@ SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" source $SCRIPT_DIR/defaults.sh cd $REMOTE_CHIPYARD_DIR -./scripts/init-submodules-no-riscv-tools.sh --force +./scripts/init-submodules-no-riscv-tools.sh # Constellation can run without espresso, but this improves # elaboration time drastically diff --git a/.github/scripts/remote-run-firesim-scala-tests.sh b/.github/scripts/remote-run-firesim-scala-tests.sh index 080f6d8c..5d9a970d 100755 --- a/.github/scripts/remote-run-firesim-scala-tests.sh +++ b/.github/scripts/remote-run-firesim-scala-tests.sh @@ -11,7 +11,7 @@ SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" source $SCRIPT_DIR/defaults.sh cd $REMOTE_CHIPYARD_DIR -./scripts/init-submodules-no-riscv-tools.sh --force +./scripts/init-submodules-no-riscv-tools.sh # Run Firesim Scala Tests export FIRESIM_ENV_SOURCED=1 diff --git a/.github/workflows/chipyard-full-flow.yml b/.github/workflows/chipyard-full-flow.yml index 3d4a9866..95463928 100644 --- a/.github/workflows/chipyard-full-flow.yml +++ b/.github/workflows/chipyard-full-flow.yml @@ -83,7 +83,7 @@ jobs: eval "$(conda shell.bash hook)" mkdir ${{ env.JAVA_TMP_DIR }} export MAKEFLAGS="-j32" - ./build-setup.sh -f -v + ./build-setup.sh -v run-cfg-finder: name: run-cfg-finder diff --git a/.github/workflows/chipyard-run-tests.yml b/.github/workflows/chipyard-run-tests.yml index b524ae37..f56f279d 100644 --- a/.github/workflows/chipyard-run-tests.yml +++ b/.github/workflows/chipyard-run-tests.yml @@ -377,7 +377,7 @@ jobs: - name: Build Gemmini FireMarshal run: | conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools - cd ${{ github.workspace }} && ./scripts/init-submodules-no-riscv-tools.sh --force + cd ${{ github.workspace }} && ./scripts/init-submodules-no-riscv-tools.sh cd ${{ github.workspace }} && source ./scripts/fix-open-files.sh git submodule update --init software/firemarshal && cd software/firemarshal && ./init-submodules.sh cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d build gemmini-smoke.json From df2ed07b25a2ec5337f74c6cf84245965b531469 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sun, 21 Jan 2024 23:29:48 -0800 Subject: [PATCH 073/105] Add parsing for deprecated flags to avoid breaking user flows --- scripts/build-setup.sh | 2 ++ scripts/init-submodules-no-riscv-tools-nolog.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index f9c11054..79b0bb2f 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -93,6 +93,8 @@ do SKIP_LIST+=(10) ;; --skip-clean) SKIP_LIST+=(11) ;; + --force | -f | --skip-validate) # Deprecated flags + ;; * ) error "invalid option $1" usage 1 ;; diff --git a/scripts/init-submodules-no-riscv-tools-nolog.sh b/scripts/init-submodules-no-riscv-tools-nolog.sh index ec8489f6..4283e892 100755 --- a/scripts/init-submodules-no-riscv-tools-nolog.sh +++ b/scripts/init-submodules-no-riscv-tools-nolog.sh @@ -25,6 +25,8 @@ do usage exit 1 ;; + --force | -f | --skip-validate) # Deprecated flags + ;; *) echo "ERROR: bad argument $1" usage From 16eeeae8fcf25fc7114b2a8965866adfeb4b9dcc Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 01:55:28 -0800 Subject: [PATCH 074/105] Use lean conda for faster initial setup --- conda-reqs/chipyard-lean.yaml | 48 + ...s-riscv-tools-linux-64-lean.conda-lock.yml | 3183 +++++++++++++++++ scripts/build-setup.sh | 16 +- scripts/generate-conda-lockfiles.sh | 23 +- 4 files changed, 3262 insertions(+), 8 deletions(-) create mode 100644 conda-reqs/chipyard-lean.yaml create mode 100644 conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml diff --git a/conda-reqs/chipyard-lean.yaml b/conda-reqs/chipyard-lean.yaml new file mode 100644 index 00000000..caa9d17f --- /dev/null +++ b/conda-reqs/chipyard-lean.yaml @@ -0,0 +1,48 @@ +channels: + - ucb-bar + - conda-forge + - litex-hub + - nodefaults + +platforms: + - linux-64 + +dependencies: + # https://conda-forge.org/feedstock-outputs/ + # filterable list of all conda-forge packages + # https://conda-forge.org/#contribute + # instructions on adding a recipe + # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications + # documentation on package_spec syntax for constraining versions + + + # handy tool for introspecting package relationships and file ownership + # see https://github.com/rvalieris/conda-tree + - conda-tree + + # bundle FireSim driver with deps into installer shell-script + - constructor + + - gcc<12 + - gxx<12 + - sysroot_linux-64=2.17 # needed to match pre-built CI XRT glibc version + - conda-gcc-specs + - binutils + + # misc + - autoconf + - pre-commit + - readline + - coreutils + - jq + - pip + + # firemarshal deps + - sbt + - openjdk=20 + - dtc + - verilator==5.020 + - screen + - elfutils + - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock + - conda-lock=1.4 diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml new file mode 100644 index 00000000..0e9458ce --- /dev/null +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -0,0 +1,3183 @@ +# This lock file was generated by conda-lock (https://github.com/conda-incubator/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV --file conda-requirements-riscv-tools-linux-64-lean.conda-lock.yaml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64-lean.conda-lock.yaml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-lean.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64-lean.conda-lock.yaml +metadata: + channels: + - url: ucb-bar + used_env_vars: [] + - url: conda-forge + used_env_vars: [] + - url: litex-hub + used_env_vars: [] + - url: nodefaults + used_env_vars: [] + content_hash: + linux-64: 044545ea58c6808658782a00d19615da9cb13e4dabf477a7fe1a688ddfeaf8b7 + platforms: + - linux-64 + sources: + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-lean.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml +package: +- category: main + dependencies: {} + hash: + md5: d7c89558ba9fa0495403155b64376d81 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + manager: conda + name: _libgcc_mutex + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + version: '0.1' +- category: main + dependencies: {} + hash: + md5: f6ce7955b53ae1ca83144adb3be9c600 + sha256: 546e4eb1cbd822a66b363ec3fbdcc4fcc53853bcab57674cb46b8f3209b856f2 + manager: conda + name: _sysroot_linux-64_curr_repodata_hack + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_13.conda + version: '3' +- category: main + dependencies: {} + hash: + md5: 01ffc8d36f9eba0ce0b3c1955fa780ee + sha256: fb4b9f4b7d885002db0b93e22f44b5b03791ef3d4efdc9d0662185a0faafd6b6 + manager: conda + name: ca-certificates + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda + version: 2023.11.17 +- category: main + dependencies: {} + hash: + md5: fd2989188c0421b101b12c4ee91a8967 + sha256: f0cb3d37b2642bf982d497d63f351dcdcd03cea1b0b175d4d3c9d13b3c022d80 + manager: conda + name: conda-standalone + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.11.0-ha770c72_1.conda + version: 23.11.0 +- category: main + dependencies: {} + hash: + md5: 0c96522c6bdaed4b1566d11387caaf45 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + manager: conda + name: font-ttf-dejavu-sans-mono + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + version: '2.37' +- category: main + dependencies: {} + hash: + md5: 34893075a5c9e55cdafac56607368fc6 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + manager: conda + name: font-ttf-inconsolata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + version: '3.000' +- category: main + dependencies: {} + hash: + md5: 4d59c254e01d9cde7957100457e2d5fb + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + manager: conda + name: font-ttf-source-code-pro + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + version: '2.038' +- category: main + dependencies: {} + hash: + md5: 6185f640c43843e5ad6fd1c5372c3f80 + sha256: 056c85b482d58faab5fd4670b6c1f5df0986314cca3bc831d458b22e4ef2c792 + manager: conda + name: font-ttf-ubuntu + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda + version: '0.83' +- category: main + dependencies: {} + hash: + md5: 7aca3059a1729aa76c597603f10b0dd3 + sha256: f6cc89d887555912d6c61b295d398cff9ec982a3417d38025c45d5dd9b9e79cd + manager: conda + name: ld_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + version: '2.40' +- category: main + dependencies: {} + hash: + md5: 2390dcf3fd78c2c426f1c5b6664fa4b7 + sha256: 12904b795e5cb877ce6a7bb30feba9bfbe1dd38bd5f520e6af8d89a51bb6b6a6 + manager: conda + name: libgcc-devel_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 +- category: main + dependencies: {} + hash: + md5: be10a739476d68c464101836773463f1 + sha256: 4957848888d7a8cdc77c605357e759f0c9b08c18510f08a205f567666602ca2b + manager: conda + name: libstdcxx-devel_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 +- category: main + dependencies: {} + hash: + md5: 937eaed008f6bf2191c5fe76f87755e9 + sha256: 6c6c49efedcc5709a66f19fb6b26b69c6a5245310fd1d9a901fd5e38aaf7f882 + manager: conda + name: libstdcxx-ng + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_3.conda + version: 13.2.0 +- category: main + dependencies: {} + hash: + md5: 26322ec5d7712c3ded99dd656142b8ce + sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec + manager: conda + name: python_abi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda + version: '3.10' +- category: main + dependencies: {} + hash: + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + manager: conda + name: tzdata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + version: 2023d +- category: main + dependencies: + font-ttf-dejavu-sans-mono: '' + font-ttf-inconsolata: '' + font-ttf-source-code-pro: '' + font-ttf-ubuntu: '' + hash: + md5: f766549260d6815b0c52253f1fb1bb29 + sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38 + manager: conda + name: fonts-conda-forge + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 + version: '1' +- category: main + dependencies: + _sysroot_linux-64_curr_repodata_hack: 3.* + hash: + md5: 523bc836a954faf0cca94831971bb85a + sha256: 67a3caa56e2a59f407f3d290437b865aaf996873006e2fcfca6295d0f0be8db9 + manager: conda + name: kernel-headers_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-h4a8ded7_13.tar.bz2 + version: 3.10.0 +- category: main + dependencies: + _libgcc_mutex: 0.1 conda_forge + hash: + md5: 7124cbb46b13d395bdde68f2d215c989 + sha256: 6ebedee39b6bbbc969715d0d7fa4b381cce67e1139862604ffa393f821c08e81 + manager: conda + name: libgomp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_3.conda + version: 13.2.0 +- category: main + dependencies: + _libgcc_mutex: 0.1 conda_forge + libgomp: '>=7.5.0' + hash: + md5: 73aaf86a425cc6e73fcf236a5a46396d + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + manager: conda + name: _openmp_mutex + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + version: '4.5' +- category: main + dependencies: + fonts-conda-forge: '' + hash: + md5: fee5683a3f04bd15cbd8318b096a27ab + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + manager: conda + name: fonts-conda-ecosystem + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + version: '1' +- category: main + dependencies: + _sysroot_linux-64_curr_repodata_hack: 3.* + kernel-headers_linux-64: 3.10.0 h4a8ded7_13 + hash: + md5: 57e5a5191ffe999b9f4dfdbcd0ddcba4 + sha256: f09f2fea4b571dcd225f1e35bd3c851e809cd4c2f5f151438133969ab28478e5 + manager: conda + name: sysroot_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_13.tar.bz2 + version: '2.17' +- category: main + dependencies: + ld_impl_linux-64: 2.40 h41732ed_0 + sysroot_linux-64: '' + hash: + md5: 33084421a8c0af6aef1b439707f7662a + sha256: a7e0ea2b71a5b03d82e5a58fb6b612ab1c44d72ce161f9aa441f7ba467cd4c8d + manager: conda + name: binutils_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-hf600244_0.conda + version: '2.40' +- category: main + dependencies: + _libgcc_mutex: 0.1 conda_forge + _openmp_mutex: '>=4.5' + hash: + md5: 23fdf1fef05baeb7eadc2aed5fb0011f + sha256: 5e88f658e07a30ab41b154b42c59f079b168acfa9551a75bdc972099453f4105 + manager: conda + name: libgcc-ng + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_3.conda + version: 13.2.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 75dae9a4201732aa78a530b826ee5fe0 + sha256: 51147922bad9d3176e780eb26f748f380cd3184896a9f9125d8ac64fe330158b + manager: conda + name: alsa-lib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.10-hd590300_0.conda + version: 1.2.10 +- category: main + dependencies: + binutils_impl_linux-64: '>=2.40,<2.41.0a0' + hash: + md5: ccc940fddbc3fcd3d79cd4c654c4b5c4 + sha256: 35f3b042f295fd7387de11cf426ca8ee5257e5c98b88560c6c5ad4ef3c85d38c + manager: conda + name: binutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.40-hdd6e379_0.conda + version: '2.40' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 69b8b6202a07720f448be700e300ccf4 + sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 + manager: conda + name: bzip2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + version: 1.0.8 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 89e40af02dd3a0846c0c1131c5126706 + sha256: c4bbdafd6791583e3c77e8ed0e1df9e0021d542249c3543de3d72788f5c8a0c4 + manager: conda + name: c-ares + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.25.0-hd590300_0.conda + version: 1.25.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: ff6707b0adc04518a452a0340db13a07 + sha256: 5f5400cb5a27389f78422c9864fa948734989568a3fcfdde8bbee0f92077d056 + manager: conda + name: coreutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.4-hd590300_0.conda + version: '9.4' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 14947d8770185e5153fdd04d4673ed37 + sha256: 4fcfedc44e4c9a053f0416f9fc6ab6ed50644fca3a761126dbd00d09db1f546a + manager: conda + name: gettext + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2 + version: 0.21.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 96f3b11872ef6fad973eac856cd2624f + sha256: 41ec165704ccce2faa0437f4f53c03c06261a2cc9ff7614828e51427d9261f4b + manager: conda + name: giflib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.1-h0b41bf4_3.conda + version: 5.2.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 0e33ef437202db431aa5a928248cf2e8 + sha256: 2a50495b6bbbacb03107ea0b752d8358d4a40b572d124a8cade068c147f344f5 + manager: conda + name: gmp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-h59595ed_0.conda + version: 6.3.0 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + libstdcxx-ng: '>=7.5.0' + hash: + md5: 8c54672728e8ec6aa6db90cf2806d220 + sha256: 65da967f3101b737b08222de6a6a14e20e480e7d523a5d1e19ace7b960b5d6b1 + manager: conda + name: graphite2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h58526e2_1001.tar.bz2 + version: 1.3.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + manager: conda + name: icu + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + version: '73.2' +- category: main + dependencies: + libgcc-ng: '>=10.3.0' + hash: + md5: 30186d27e2c9fa62b45fb1476b7200e3 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + manager: conda + name: keyutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + version: 1.6.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 76bbff344f0134279f225174e9064c8f + sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12 + manager: conda + name: lerc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 + version: 4.0.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 1635570038840ee3f9c71d22aa5b8b6d + sha256: 985ad27aa0ba7aad82afa88a8ede6a1aacb0aaca950d710f15d85360451e72fd + manager: conda + name: libdeflate + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.19-hd590300_0.conda + version: '1.19' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + manager: conda + name: libev + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + version: '4.33' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 6305a3dd2752c76335295da4e581f2fd + sha256: 74c98a563777ae2ad71f1f74d458a8ab043cee4a513467c159ccf159d0e461f3 + manager: conda + name: libexpat + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + version: 2.5.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: b479e94095fbb82702d736b1c100c0e8 + sha256: a4490042212d56d6a0f13ebd172f6be7524a9229a94820cd7d12c57d95b3f8cd + manager: conda + name: libfdt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.6.1-h166bdaf_2.tar.bz2 + version: 1.6.1 +- category: main + dependencies: + libgcc-ng: '>=9.4.0' + hash: + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + manager: conda + name: libffi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + version: 3.4.2 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + manager: conda + name: libiconv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + version: '1.17' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: ea25936bb4080d843790b586850f82b8 + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + manager: conda + name: libjpeg-turbo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + version: 3.0.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + manager: conda + name: libnsl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + version: 2.0.1 +- category: main + dependencies: + libgcc-ng: '>=11.4.0' + hash: + md5: e6f89a7be0ec320c1b1746971045b0e7 + sha256: c4c5c87f5c717e83299740f6a20393f9a131f05e2e9df63faafd6bb71dc58346 + manager: conda + name: libsanitizer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-11.4.0-h4dcbe23_3.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 93840744a8552e9ebf6bb1a5dffc125a + sha256: 5bfeada0e1c6ec2574afe2d17cdbc39994d693a41431338a6cb9dfa7c4d7bfc8 + manager: conda + name: libtasn1 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2 + version: 4.19.0 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 7245a044b4a1980ed83196176b78b73a + sha256: e88c45505921db29c08df3439ddb7f771bbff35f95e7d3103bf365d5d6ce2a6d + manager: conda + name: libunistring + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2 + version: 0.9.10 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + manager: conda + name: libuuid + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + version: 2.38.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 30de3fd9b3b602f7473f30e684eeea8c + sha256: 68764a760fa81ef35dacb067fe8ace452bbb41476536a4a147a1051df29525f0 + manager: conda + name: libwebp-base + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.conda + version: 1.3.2 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + manager: conda + name: libxcrypt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + version: 4.4.36 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: f36c115f1ee199da648e0597ec2047ad + sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 + manager: conda + name: libzlib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda + version: 1.2.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 318b08df404f9c9be5712aaa5a6f0bb0 + sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f + manager: conda + name: lz4-c + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda + version: 1.9.4 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: bb14fcb13341b81d5eb386423b9d2bac + sha256: 25d16e6aaa3d0b450e61d0c4fadd7c9fd17f16e2fef09b34507209342d63c9f6 + manager: conda + name: lzo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2 + version: '2.10' +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: 4abb931c0d08a41583fc637c663e45e2 + sha256: b8e37b92caab5a64a9e344f3d497b9d3e215d1e6211f6dc7c51b70799aab1da1 + manager: conda + name: m4 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/m4-1.4.18-h516909a_1001.tar.bz2 + version: 1.4.18 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: 4049ebfd3190b580dffe76daed26155a + sha256: 4a5fe7c80bb0de0015328e2d3fc8db1736f528cb1fd53cd0d5527e24269a4f7c + manager: conda + name: make + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/make-4.3-hd18ef5c_1.tar.bz2 + version: '4.3' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 7dbaa197d7ba6032caf7ae7f32c1efa0 + sha256: 91cc03f14caf96243cead96c76fe91ab5925a695d892e83285461fb927dece5e + manager: conda + name: ncurses + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda + version: '6.4' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 2bf1915cc107738811368afcb0993a59 + sha256: 1ef1b7efa69c7fb4e2a36a88316f307c115713698d1c12e19f55ae57c0482995 + manager: conda + name: nettle + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda + version: 3.9.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 77dab674d16c1525ebe65e67de30de0d + sha256: dec1c78df7670d34880f71f75ac716f082d087494b4a2c6a90d5d75a82c933ed + manager: conda + name: oniguruma + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.9-hd590300_0.conda + version: 6.9.9 +- category: main + dependencies: + ca-certificates: '' + libgcc-ng: '>=12' + hash: + md5: 603827b39ea2b835268adb8c821b8570 + sha256: 80efc6f429bd8e622d999652e5cba2ca56fcdb9c16a439d2ce9b4313116e4a87 + manager: conda + name: openssl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda + version: 3.2.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 6b4b43013628634b6cfdee6b74fd696b + sha256: 07a5ffcd34e241f900433af4c6d4904518aab76add4e1e40a2c4bad93ae43f2b + manager: conda + name: pixman + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.0-h59595ed_0.conda + version: 0.43.0 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: 22dad4df6e8630e8dff2428f6f6a7036 + sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff + manager: conda + name: pthread-stubs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + version: '0.4' +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: bcd1b3396ec6960cbc1d2855a9e60b2b + sha256: 6c8c2803de0f643f8bad16ece3f9a7259e4a49247543239c182d66d5e3a129a7 + manager: conda + name: xorg-inputproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2 + version: 2.3.2 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 4b230e8381279d76131116660f5a241a + sha256: e90b0a6a5d41776f11add74aa030f789faf4efd3875c31964d6f9cfa63a10dd1 + manager: conda + name: xorg-kbproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 + version: 1.0.7 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: b462a33c0be1421532f28bfe8f4a7514 + sha256: 5aa9b3682285bb2bf1a8adc064cb63aff76ef9178769740d855abb42b0d24236 + manager: conda + name: xorg-libice + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda + version: 1.1.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 2c80dc38fface310c9bd81b17037fee5 + sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4 + manager: conda + name: xorg-libxau + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda + version: 1.0.11 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: be93aabceefa2fac576e971aef407908 + sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77 + manager: conda + name: xorg-libxdmcp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 + version: 1.1.3 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 2f835e6c386e73c6faaddfe9eda67e98 + sha256: 4b91d48fed368c83eafd03891ebfd5bae0a03adc087ebea8a680ae22da99a85f + manager: conda + name: xorg-recordproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-h7f98852_1002.tar.bz2 + version: 1.14.2 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 06feff3d2634e3097ce2fe681474b534 + sha256: 38942930f233d1898594dd9edf4b0c0786f3dbc12065a0c308634c37fd936034 + manager: conda + name: xorg-renderproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 + version: 0.11.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: bce9f945da8ad2ae9b1d7165a64d0f87 + sha256: b8dda3b560e8a7830fe23be1c58cc41f407b2e20ae2f3b6901eb5842ba62b743 + manager: conda + name: xorg-xextproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda + version: 7.3.0 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: b4a4381d54784606820704f7b5f05a15 + sha256: f197bb742a17c78234c24605ad1fe2d88b1d25f332b75d73e5ba8cf8fbc2a10d + manager: conda + name: xorg-xproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 + version: 7.0.31 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 2161070d867d1b1204ea749c8eec4ef0 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + manager: conda + name: xz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + version: 5.2.6 +- category: main + dependencies: + libgcc-ng: '>=9.4.0' + hash: + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + manager: conda + name: yaml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + version: 0.2.5 +- category: main + dependencies: + libfdt: '>=1.6.1,<1.7.0a0' + libgcc-ng: '>=12' + yaml: '>=0.2.5,<0.3.0a0' + hash: + md5: 22b23b5006eb63ed81af6a84569c930e + sha256: 5a056172bd4fee3f6dd21441bfdd3c9960d3a637f48e8dfe16d3a7aa56e883a5 + manager: conda + name: dtc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.6.1-h166bdaf_2.tar.bz2 + version: 1.6.1 +- category: main + dependencies: + libexpat: 2.5.0 hcb278e6_1 + libgcc-ng: '>=12' + hash: + md5: 8b9b5aca60558d02ddaa09d599e55920 + sha256: 36dfeb4375059b3bba75ce9b38c29c69fd257342a79e6cf20e9f25c1523f785f + manager: conda + name: expat + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda + version: 2.5.0 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + libstdcxx-ng: '>=7.5.0' + m4: '' + hash: + md5: b1029ec81c7e0969e84a8179d039a9ce + sha256: 5a6dba5af1127e859eefd68e77b7af062b42f85401efbb43a970da977ba3e344 + manager: conda + name: flex + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/flex-2.6.4-h58526e2_1004.tar.bz2 + version: 2.6.4 +- category: main + dependencies: + binutils_impl_linux-64: '>=2.39' + libgcc-devel_linux-64: 11.4.0 h922705a_103 + libgcc-ng: '>=11.4.0' + libgomp: '>=11.4.0' + libsanitizer: 11.4.0 h4dcbe23_3 + libstdcxx-ng: '>=11.4.0' + sysroot_linux-64: '' + hash: + md5: b17749a6ae62cf9a5eafd96a6bcaad0e + sha256: 24d34853611b8758c40fa9d6a0d0b738312f51af9fed8fa6c6422f15ec475763 + manager: conda + name: gcc_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + oniguruma: '>=6.9.9,<6.10.0a0' + hash: + md5: 80814f94713e35df60aad6c4b235de87 + sha256: a04a1603e405ea9ae5c4a492a8e361086cb441a91ef7299bd4bf3eca0b485b6d + manager: conda + name: jq + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + version: 1.7.1 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + hash: + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + manager: conda + name: libedit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + version: 3.1.20191231 +- category: main + dependencies: + gettext: '>=0.21.1,<1.0a0' + libgcc-ng: '>=12' + libunistring: '>=0,<1.0a0' + hash: + md5: 7440fbafd870b8bab68f83a064875d34 + sha256: 888848ae85be9df86f56407639c63bdce8e7651f0b2517be9bc0ac6e38b2d21d + manager: conda + name: libidn2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.4-h166bdaf_0.tar.bz2 + version: 2.3.4 +- category: main + dependencies: + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + hash: + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + manager: conda + name: libnghttp2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + version: 1.58.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: e1c890aebdebbfbf87e2c917187b4416 + sha256: a32b36d34e4f2490b99bddbc77d01a674d304f667f0e62c89e02c961addef462 + manager: conda + name: libpng + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda + version: 1.6.39 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 3b6a9f225c3dbe0d24f4fedd4625c5bf + sha256: ee2c4d724a3ed60d5b458864d66122fb84c6ce1df62f735f90d8db17b66cd88a + manager: conda + name: libsqlite + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.44.2-h2797004_0.conda + version: 3.44.2 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + hash: + md5: 1f5a58e686b13bcfde88b93f547d23fe + sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + manager: conda + name: libssh2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + version: 1.11.0 +- category: main + dependencies: + libgcc-ng: '>=12' + pthread-stubs: '' + xorg-libxau: '' + xorg-libxdmcp: '' + hash: + md5: 33277193f5b92bad9fdd230eb700929c + sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485 + manager: conda + name: libxcb + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda + version: '1.15' +- category: main + dependencies: + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + xz: '>=5.2.6,<6.0a0' + hash: + md5: 53e951fab78d7e3bab40745f7b3d1620 + sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 + manager: conda + name: libxml2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda + version: 2.12.4 +- category: main + dependencies: + gmp: '>=6.2.1,<7.0a0' + libgcc-ng: '>=12' + hash: + md5: 4c28f3210b30250037a4a627eeee9e0f + sha256: 008230a53ff15cf61966476b44f7ba2c779826825b9ca639a0a2b44d8f7aa6cb + manager: conda + name: mpfr + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h9458935_0.conda + version: 4.2.1 +- category: main + dependencies: + libffi: '>=3.4.2,<3.5.0a0' + libgcc-ng: '>=12' + libtasn1: '>=4.18.0,<5.0a0' + hash: + md5: 56ee94e34b71742bbdfa832c974e47a8 + sha256: aa8d3887b36557ad0c839e4876c0496e0d670afe843bf5bba4a87764b868196d + manager: conda + name: p11-kit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2 + version: 0.24.1 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 679c8961826aa4b50653bce17ee52abe + sha256: 3ca54ff0abcda964af7d4724d389ae20d931159ae1881cfe57ad4b0ab9e6a380 + manager: conda + name: pcre2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.42-hcad00b1_0.conda + version: '10.42' +- category: main + dependencies: + libgcc-ng: '>=12' + libxcrypt: '>=4.4.36' + hash: + md5: f2cfec9406850991f4e3d960cc9e3321 + sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 + manager: conda + name: perl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda + version: 5.32.1 +- category: main + dependencies: + libgcc-ng: '>=12' + ncurses: '>=6.3,<7.0a0' + hash: + md5: 47d31b792659ce70f470b5c82fdfb7a4 + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + manager: conda + name: readline + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + version: '8.2' +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + hash: + md5: 3b67f325fac07461f193e27a9d9c5a65 + sha256: 3c7020802fb52b946fe37a2180a6cad298f65b7a3e861c2616b6ffd4165ec22f + manager: conda + name: screen + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/screen-4.8.0-he28a2e2_0.tar.bz2 + version: 4.8.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: d453b98d9c83e71da0741bb0ff4d76bc + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + manager: conda + name: tk + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + version: 8.6.13 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-xextproto: '' + hash: + md5: 65ad6e1eb4aed2b0611855aff05e04f6 + sha256: 5d2af1b40f82128221bace9466565eca87c97726bb80bbfcd03871813f3e1876 + manager: conda + name: xorg-fixesproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2 + version: '5.0' +- category: main + dependencies: + libgcc-ng: '>=12' + libuuid: '>=2.38.1,<3.0a0' + xorg-libice: '>=1.1.1,<2.0a0' + hash: + md5: 93ee23f12bc2e684548181256edd2cf6 + sha256: 089ad5f0453c604e18985480218a84b27009e9e6de9a0fa5f4a20b8778ede1f1 + manager: conda + name: xorg-libsm + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda + version: 1.2.4 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: 1.2.13 hd590300_5 + hash: + md5: 68c34ec6149623be41a1933ab996a209 + sha256: 9887a04d7e7cb14bd2b52fa01858f05a6d7f002c890f618d9fcd864adbfecb1b + manager: conda + name: zlib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda + version: 1.2.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 04b88013080254850d6c01ed54810589 + sha256: 607cbeb1a533be98ba96cf5cdf0ddbb101c78019f1fda063261871dad6248609 + manager: conda + name: zstd + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda + version: 1.5.5 +- category: main + dependencies: + libgcc-ng: '>=12' + m4: '' + perl: 5.* + hash: + md5: 50cabb1aee157a18082c7c92cc4b3143 + sha256: 04868bf7a2737af8c8a828b2c4b59653180a91da9c3ece77bae4e429a1b84cc1 + manager: conda + name: autoconf + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/autoconf-2.71-pl5321h2b4cb7a_1.conda + version: '2.71' +- category: main + dependencies: + gcc_impl_linux-64: '>=11.4.0,<11.4.1.0a0' + hash: + md5: 42003d7074d4daaf287d19987cd927bf + sha256: 2c30ddc6cb51a03fb5f671f55eaabcb9208d6ce701e6de2234518eec43a6f2d1 + manager: conda + name: conda-gcc-specs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-11.4.0-h240829a_3.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libpng: '>=1.6.39,<1.7.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 9ae35c3d96db2c94ce0cef86efdfa2cb + sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + manager: conda + name: freetype + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + version: 2.12.1 +- category: main + dependencies: + gcc_impl_linux-64: 11.4.0.* + hash: + md5: 0c8d100583c5fd6d20cd5307aaedaf0d + sha256: b515e9222a8af974024b02c7265bed8e4edf912707a5a8fc207cbc8bc2ac0bff + manager: conda + name: gcc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-11.4.0-h7baecda_2.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libidn2: '>=2,<3.0a0' + libstdcxx-ng: '>=12' + libtasn1: '>=4.19.0,<5.0a0' + nettle: '>=3.9.1,<3.10.0a0' + p11-kit: '>=0.24.1,<0.25.0a0' + hash: + md5: 33eded89024f21659b1975886a4acf70 + sha256: 52d824a5d2b8a5566cd469cae6ad6920469b5a15b3e0ddc609dd29151be71be2 + manager: conda + name: gnutls + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda + version: 3.7.9 +- category: main + dependencies: + gcc_impl_linux-64: 11.4.0 h7aa1c59_3 + libstdcxx-devel_linux-64: 11.4.0 h922705a_103 + sysroot_linux-64: '' + hash: + md5: dbee4be21eb6dbf596afddf60ff120bf + sha256: 424d9989ea82e6777e569de6873cc56229a8982e274409c344473ad89bb7bbb7 + manager: conda + name: gxx_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 +- category: main + dependencies: + keyutils: '>=1.6.1,<2.0a0' + libedit: '>=3.1.20191231,<4.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + openssl: '>=3.1.2,<4.0a0' + hash: + md5: cd95826dbd331ed1be26bdf401432844 + sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 + manager: conda + name: krb5 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda + version: 1.21.2 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc-ng: '>=12' + libxml2: '>=2.9.14,<3.0.0a0' + libzlib: '>=1.2.12,<1.3.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + lzo: '>=2.10,<3.0a0' + openssl: '>=3.0.3,<4.0a0' + xz: '>=5.2.5,<6.0.0a0' + zstd: '>=1.5.2,<1.6.0a0' + hash: + md5: c0c3973a9f2df3e1a408e3205d86a88d + sha256: b67ff7262422ef04bfa1056c5ef10eba4d64773f40bb34314e0d492f58e726e7 + manager: conda + name: libarchive + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.5.2-hada088e_3.tar.bz2 + version: 3.5.2 +- category: main + dependencies: + gettext: '>=0.21.1,<1.0a0' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + pcre2: '>=10.42,<10.43.0a0' + hash: + md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 + sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 + manager: conda + name: libglib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda + version: 2.78.3 +- category: main + dependencies: + lerc: '>=4.0.0,<5.0a0' + libdeflate: '>=1.19,<1.20.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libstdcxx-ng: '>=12' + libwebp-base: '>=1.3.2,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + xz: '>=5.2.6,<6.0a0' + zstd: '>=1.5.5,<1.6.0a0' + hash: + md5: 55ed21669b2015f77c180feb1dd41930 + sha256: 45158f5fbee7ee3e257e6b9f51b9f1c919ed5518a94a9973fe7fa4764330473e + manager: conda + name: libtiff + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-ha9c0a0a_2.conda + version: 4.6.0 +- category: main + dependencies: + gmp: '>=6.2.1,<7.0a0' + libgcc-ng: '>=12' + mpfr: '>=4.1.0,<5.0a0' + hash: + md5: 289c71e83dc0daa7d4c81f04180778ca + sha256: 2f88965949ba7b4b21e7e5facd62285f7c6efdb17359d1b365c3bb4ecc968d29 + manager: conda + name: mpc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.3.1-hfe3b2da_0.conda + version: 1.3.1 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-64: '>=2.36.1' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.44.2,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + openssl: '>=3.2.0,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.13,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + hash: + md5: ed38140af93f81319ebc472fbcf16cca + sha256: 4234c8e301737aa245d12c8fb44a4128005795e42883977c29cca3f34c71a1eb + manager: conda + name: python + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_1_cpython.conda + version: 3.10.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libsqlite: 3.44.2 h2797004_0 + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + readline: '>=8.2,<9.0a0' + hash: + md5: 4f2892c672829693fd978d065db4e8be + sha256: bae479520fe770fe11996b4c240923ed097f851fbd2401d55540e551c9dbbef7 + manager: conda + name: sqlite + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.44.2-h2c6b66d_0.conda + version: 3.44.2 +- category: main + dependencies: + libgcc-ng: '>=12' + libxcb: '>=1.15,<1.16.0a0' + xorg-kbproto: '' + xorg-xextproto: '>=7.3.0,<8.0a0' + xorg-xproto: '' + hash: + md5: 49e482d882669206653b095f5206c05b + sha256: 7a02a7beac472ae2759498550b5fc5261bf5be7a9a2b4648a3f67818a7bfefcf + manager: conda + name: xorg-libx11 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.7-h8ee46fc_0.conda + version: 1.8.7 +- category: main + dependencies: + python: '>=3.9' + hash: + md5: def531a3ac77b7fb8c21d17bb5d0badb + sha256: fd39ad2fabec1569bbb0dfdae34ab6ce7de6ec09dcec8638f83dad0373594069 + manager: conda + name: alabaster + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda + version: 0.7.16 +- category: main + dependencies: + python: '' + hash: + md5: 5f095bc6454094e96f146491fd03633b + sha256: ae9fb8f68281f84482f2c234379aa12405a9e365151d43af20b3ae1f17312111 + manager: conda + name: appdirs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 + version: 1.4.4 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: 0dc2fce00a160271714647c019e3a8a8 + sha256: e030c0993ef56def50fb3b0262a98ba17295c83b6c696748add22aee406b7bd9 + manager: conda + name: archspec + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.2-pyhd8ed1ab_0.conda + version: 0.2.2 +- category: main + dependencies: + python: ==2.7.*|>=3.7 + hash: + md5: 56febe65315cc388a5d20adf2b39a74d + sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 + manager: conda + name: boltons + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.1.1-pyhd8ed1ab_0.conda + version: 23.1.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 1f95722c94f00b69af69a066c7433714 + sha256: e22268d81905338570786921b3def88e55f9ed6d0ccdd17d9fbae31a02fbef69 + manager: conda + name: brotli-python + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda + version: 1.1.0 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: 5dfee17f24e2dfd18d7392b48c9351e2 + sha256: 9b193a4e483c4d0004bc5b88fac7a02516b6311137ab61b8db85aa9741422e35 + manager: conda + name: cachy + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_1.tar.bz2 + version: 0.3.0 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 2011bcf45376341dd1d690263fdbc789 + sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + manager: conda + name: certifi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + version: 2023.11.17 +- category: main + dependencies: + python: '>=3.6.1' + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + manager: conda + name: cfgv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + version: 3.3.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 7f4a9e3fcff3f6356ae99244a014da6a + sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9 + manager: conda + name: charset-normalizer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + version: 3.3.2 +- category: main + dependencies: + __unix: '' + python: '>=3.8' + hash: + md5: f3ad426304898027fc619827ff428eca + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + manager: conda + name: click + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + version: 8.1.7 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + manager: conda + name: colorama + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + version: 0.4.6 +- category: main + dependencies: + python: '>=3.6,<4.0' + hash: + md5: 709a2295dd907bb34afb57d54320642f + sha256: 2f05954a3faf0700c14c1deddc085385160ee32abe111699c78d9cb277e915cc + manager: conda + name: crashtest + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2 + version: 0.4.1 +- category: main + dependencies: + expat: '>=2.4.2,<3.0a0' + libgcc-ng: '>=9.4.0' + libglib: '>=2.70.2,<3.0a0' + hash: + md5: ecfff944ba3960ecb334b9a2663d708d + sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + manager: conda + name: dbus + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + version: 1.13.6 +- category: main + dependencies: + python: 2.7|>=3.6 + hash: + md5: db16c66b759a64dc5183d69cc3745a52 + sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e + manager: conda + name: distlib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + version: 0.3.8 +- category: main + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: c159dcd29bbd80b187b1c5d5f73cc971 + sha256: 85669183fc376d4f7f8293474bc41bf9def0a9761282d6cc79ae98011e997ae2 + manager: conda + name: docutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py310hff52083_3.conda + version: 0.20.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 0c1729b74a8152fde6a38ba0a2ab9f45 + sha256: 4d742d91412d1f163e5399d2b50c5d479694ebcd309127abb549ca3977f89d2b + manager: conda + name: filelock + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.13.1-pyhd8ed1ab_0.conda + version: 3.13.1 +- category: main + dependencies: + expat: '>=2.5.0,<3.0a0' + freetype: '>=2.12.1,<3.0a0' + libgcc-ng: '>=12' + libuuid: '>=2.32.1,<3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 0f69b688f52ff6da70bccb7ff7001d1d + sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 + manager: conda + name: fontconfig + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + version: 2.14.2 +- category: main + dependencies: + gcc: 11.4.0.* + gxx_impl_linux-64: 11.4.0.* + hash: + md5: 4821dd86fa505a0d5b6aacd28ed8291f + sha256: e07c2da262b374fc9aad422a4927660ef96aec6d1445c7673a6ba58a445523a5 + manager: conda + name: gxx + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-11.4.0-h7baecda_2.conda + version: 11.4.0 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: 1a76f09108576397c41c0b0c5bd84134 + sha256: 6ee4c986d69ce61e60a20b2459b6f2027baeba153f0a64995fd3cb47c2cc7e07 + manager: conda + name: idna + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.6-pyhd8ed1ab_0.conda + version: '3.6' +- category: main + dependencies: + python: '>=3.4' + hash: + md5: 7de5386c8fea29e76b303f37dde4c352 + sha256: c2bfd7043e0c4c12d8b5593de666c1e81d67b83c474a0a79282cc5c4ef845460 + manager: conda + name: imagesize + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 + version: 1.4.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 9800ad1699b42612478755a2d26c722d + sha256: 16639759b811866d63315fe1391f6fb45f5478b823972f4d3d9f0392b7dd80b8 + manager: conda + name: jeepney + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + version: 0.8.0 +- category: main + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 08ec1463dbc5c806a32fc431874032ca + sha256: 316db08863469a56cdbfd030de5a2cc11ec7649ed7c50eff507e9caa0070ccaa + manager: conda + name: jsonpointer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-2.4-py310hff52083_3.conda + version: '2.4' +- category: main + dependencies: + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + hash: + md5: 51bb7010fc86f70eee639b4bb7a894f5 + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + manager: conda + name: lcms2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + version: '2.16' +- category: main + dependencies: + krb5: '>=1.21.1,<1.22.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: d4529f4dff3057982a7617c7ac58fde3 + sha256: bc67b9b21078c99c6bd8595fe7e1ed6da1f721007726e717f0449de7032798c4 + manager: conda + name: libcups + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda + version: 2.3.3 +- category: main + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libgcc-ng: '>=12' + libnghttp2: '>=1.58.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' + hash: + md5: 7144d5a828e2cae218e0e3c98d8a0aeb + sha256: 00a6bea5ff90ca58eeb15ebc98e08ffb88bddaff27396bb62640064f59d29cf0 + manager: conda + name: libcurl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.5.0-hca28451_0.conda + version: 8.5.0 +- category: main + dependencies: + gnutls: '>=3.7.8,<3.8.0a0' + libgcc-ng: '>=12' + hash: + md5: 20e3667699ceaae97d6ba110a098e8f8 + sha256: 8530794bb59332eefea6af1e7e3e7289a5fe40d2c4d265357af72b67ff6ee38e + manager: conda + name: libmicrohttpd + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-0.9.77-h97afed2_0.conda + version: 0.9.77 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 76cd8db42baacfc94aa4d3a2b8e9e453 + sha256: 270d57657ff5cdc5bd8820ab1caf04ed4e7682605c85f4b7a4ff3f7b1c4beaef + manager: conda + name: markupsafe + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py310h2372a71_0.conda + version: 2.1.4 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: d5c98e9706fdc5328d49a9bf2ce5fb42 + sha256: 9e49e9484ff279453f0b55323a3f0c7cb97440c74f69eecda1f4ad29fae5cd3c + manager: conda + name: more-itertools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.2.0-pyhd8ed1ab_0.conda + version: 10.2.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: dc5263dcaa1347e5a456ead3537be27d + sha256: a5c7612029e3871b0af0bd69e8ee1545d3deb93b5bec29cf1bf72522375fda31 + manager: conda + name: msgpack-python + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.7-py310hd41b1e2_0.conda + version: 1.0.7 +- category: main + dependencies: + python: '>=3.9' + hash: + md5: 425fce3b531bed6ec3c74fab3e5f0a1c + sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d + manager: conda + name: networkx + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda + version: 3.2.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libtiff: '>=4.6.0,<4.7.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 + sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a + manager: conda + name: openjpeg + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda + version: 2.5.0 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + manager: conda + name: packaging + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + version: '23.2' +- category: main + dependencies: + python: '>=2.7' + hash: + md5: a4eea5bff523f26442405bc5d1f52adb + sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd + manager: conda + name: pastel + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 + version: 0.2.1 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: be1e9f1c65a1ed0f2ae9352fec99db64 + sha256: 7ea5a5af62a15376d9f4f9f3c134874d0b0710f39be719e849b7fa9ca8870502 + manager: conda + name: pkginfo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda + version: 1.9.6 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + manager: conda + name: platformdirs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + version: 4.1.0 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + manager: conda + name: pluggy + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + version: 1.3.0 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 0adaac9a86d59adae2bc86b3cdef2df1 + sha256: ea7faba72a38b1d9e799294ea270916d2ea3f4a491df06a4d5a55347f3a036ce + manager: conda + name: pycosat + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h2372a71_0.conda + version: 0.6.6 +- category: main + dependencies: + python: ==2.7.*|>=3.4 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + manager: conda + name: pycparser + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + version: '2.21' +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 140a7f159396547e9799aa98f9f0742e + sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 + manager: conda + name: pygments + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.17.2-pyhd8ed1ab_0.conda + version: 2.17.2 +- category: main + dependencies: + python: '>=3.3' + hash: + md5: edf8651c4379d9d1495ad6229622d150 + sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f + manager: conda + name: pylev + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 + version: 1.4.0 +- category: main + dependencies: + __unix: '' + python: '>=3.8' + hash: + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + manager: conda + name: pysocks + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + version: 1.7.1 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + manager: conda + name: pytz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + version: 2023.3.post1 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + yaml: '>=0.2.5,<0.3.0a0' + hash: + md5: bb010e368de4940771368bc3dc4c63e7 + sha256: aa78ccddb0a75fa722f0f0eb3537c73ee1219c9dd46cea99d6b9eebfdd780f3d + manager: conda + name: pyyaml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda + version: 6.0.1 +- category: main + dependencies: + __glibc: '>=2.17,<3.0.a0' + expat: '>=2.5.0,<3.0a0' + gmp: '>=6.2.1,<7.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + mpc: '>=1.3.1,<2.0a0' + mpfr: '>=4.1.0,<5.0a0' + ncurses: '>=6.3,<7.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 85c9a0d9dd5311aaa2c5064f2c87b496 + sha256: 8716699011df2900f8f20abcec16a0c08e821cfbe7fc2dad4fc369e483d8ed49 + manager: conda + name: riscv-tools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.3-0_h1234567_ga1b1b14.conda + version: 1.0.3 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 7c9da9721ee545d57ad759f020172853 + sha256: 00c76baad0a896f6f259093ec5328ac06cf422e6528745b28ee7e5057f54668f + manager: conda + name: ruamel.yaml.clib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py310h2372a71_2.conda + version: 0.2.7 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + manager: conda + name: setuptools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + version: 69.0.3 +- category: main + dependencies: + python: '' + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + manager: conda + name: six + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + version: 1.16.0 +- category: main + dependencies: + python: '>=2' + hash: + md5: 4d22a9315e78c6827f806065957d566e + sha256: a0fd916633252d99efb6223b1050202841fa8d2d53dacca564b0ed77249d3228 + manager: conda + name: snowballstemmer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2 + version: 2.2.0 +- category: main + dependencies: + python: '>=3.5' + hash: + md5: da1d979339e2714c30a8e806a33ec087 + sha256: d4337d83b8edba688547766fc80f1ac86d6ec86ceeeda93f376acc04079c5ce2 + manager: conda + name: sphinxcontrib-jsmath + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_0.conda + version: 1.0.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + manager: conda + name: tomli + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + version: 2.0.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 074d0ce7a6261ab8b497c3518796ef3e + sha256: 53cc436ab92d38683df1320e4468a8b978428e800195bf1c8c2460e90b0bc117 + manager: conda + name: tomlkit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.3-pyha770c72_0.conda + version: 0.12.3 +- category: main + dependencies: + python: '>=3.5' + hash: + md5: 92facfec94bc02d6ccf42e7173831a36 + sha256: 90229da7665175b0185183ab7b53f50af487c7f9b0f47cf09c184cbc139fd24b + manager: conda + name: toolz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2 + version: 0.12.0 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: b23e0147fa5f7a9380e06334c7266ad5 + sha256: 209b6788b81739d3cdc2f04ad3f6f323efd85b1a30f2edce98ab76d98079fac8 + manager: conda + name: tornado + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py310h2372a71_1.conda + version: 6.3.3 +- category: main + dependencies: + python: '>=3.10' + hash: + md5: 08316d001eca8854392cf2837828ea11 + sha256: ba49bed74ca170c5a3bf995c33a6179fd74b33abb2444f511862e7f9f57f9149 + manager: conda + name: truststore + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.8.0-pyhd8ed1ab_0.conda + version: 0.8.0 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + manager: conda + name: typing_extensions + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + version: 4.9.0 +- category: main + dependencies: + flex: '>=2.6.4,<3.0a0' + gxx_impl_linux-64: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + make: '' + perl: '' + python: '' + hash: + md5: 0b2929f84fe7d3a6117439507d5d50d9 + sha256: 1d6af07d2d19be7adc296e8b6c43bd3eb12b48d8ab8e0cec566e8f9872661813 + manager: conda + name: verilator + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.020-h7cd9344_0.conda + version: '5.020' +- category: main + dependencies: + python: '>=2.6' + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + manager: conda + name: webencodings + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + version: 0.5.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 1cdea58981c5cbc17b51973bcaddcea7 + sha256: 80be0ccc815ce22f80c141013302839b0ed938a2edb50b846cf48d8a8c1cfa01 + manager: conda + name: wheel + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.42.0-pyhd8ed1ab_0.conda + version: 0.42.0 +- category: main + dependencies: + libgcc-ng: '>=12' + xorg-libx11: '>=1.7.2,<2.0a0' + xorg-xextproto: '' + hash: + md5: 82b6df12252e6f32402b96dacc656fec + sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 + manager: conda + name: xorg-libxext + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda + version: 1.3.4 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-fixesproto: '' + xorg-libx11: '>=1.7.0,<2.0a0' + hash: + md5: e9a21aa4d5e3e5f1aed71e8cefd46b6a + sha256: 1e426a1abb774ef1dcf741945ed5c42ad12ea2dc7aeed7682d293879c3e1e4c3 + manager: conda + name: xorg-libxfixes + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2 + version: 5.0.3 +- category: main + dependencies: + libgcc-ng: '>=12' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-renderproto: '' + hash: + md5: ed67c36f215b310412b2af935bf3e530 + sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 + manager: conda + name: xorg-libxrender + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda + version: 0.9.11 +- category: main + dependencies: + libgcc-ng: '>=12' + xorg-kbproto: '' + xorg-libice: '>=1.1.1,<2.0a0' + xorg-libsm: '>=1.2.4,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-xproto: '' + hash: + md5: ae92aab42726eb29d16488924f7312cb + sha256: e7648d1efe2e858c4bc63ccf4a637c841dc971b37ded85a01be97a5e240fecfa + manager: conda + name: xorg-libxt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda + version: 1.3.0 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + manager: conda + name: zipp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + version: 3.17.0 +- category: main + dependencies: + python: '>=3.7' + pytz: '' + setuptools: '' + hash: + md5: 9669586875baeced8fc30c0826c3270e + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 + manager: conda + name: babel + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda + version: 2.14.0 +- category: main + dependencies: + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.0,<3.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libxcb: '>=1.15,<1.16.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + pixman: '>=0.42.2,<1.0a0' + xorg-libice: '>=1.1.1,<2.0a0' + xorg-libsm: '>=1.2.4,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + zlib: '' + hash: + md5: f907bb958910dc404647326ca80c263e + sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e + manager: conda + name: cairo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + version: 1.18.0 +- category: main + dependencies: + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 45846a970e71ac98fd327da5d40a0a2c + sha256: 007e7f69ab45553b7bf11f2c1b8d3f3a13fd42997266a0d57795f41c7d38df36 + manager: conda + name: cffi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda + version: 1.16.0 +- category: main + dependencies: + click: '' + python: '>=2.7' + hash: + md5: 7c2b6931f9b3548ed78478332095c3e9 + sha256: b36e35d735ddd29d7c592eb3de4b3979e13a9f76f1b4bc939f2cb4402758d6d0 + manager: conda + name: click-default-group + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda + version: 1.2.4 +- category: main + dependencies: + pastel: '>=0.2.0,<0.3.0' + pylev: '>=1.3,<2.0' + python: '>=3.7' + hash: + md5: 02abb7b66b02e8b9f5a9b05454400087 + sha256: 2d582bc15d9116ec5467b565fb87d9034c8b56f60943e8eb69407f55f1ab5a78 + manager: conda + name: clikit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_2.conda + version: 0.6.2 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libarchive: '>=3.5.2,<3.6.0a0' + libcurl: '>=7.82.0,<9.0a0' + libgcc-ng: '>=10.3.0' + libmicrohttpd: '>=0.9.75,<0.10.0a0' + libstdcxx-ng: '>=10.3.0' + libzlib: '>=1.2.11,<1.3.0a0' + sqlite: '>=3.38.2,<4.0a0' + xz: '>=5.2.5,<6.0.0a0' + zstd: '>=1.5.2,<1.6.0a0' + hash: + md5: 2e9ec0e21d51118b004f1f98e4fbf598 + sha256: bee5b4a723472cc844775a36dbdca35ecb24f40fbb162924bd8536b05930c3dc + manager: conda + name: elfutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.187-h989201e_0.tar.bz2 + version: '0.187' +- category: main + dependencies: + python: '' + six: '>=1.9' + webencodings: '' + hash: + md5: b2355343d6315c892543200231d7154a + sha256: 9ad06446fe9847e86cb20d220bf11614afcd2cbe9f58096f08d5d4018877bee4 + manager: conda + name: html5lib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyh9f0ad1d_0.tar.bz2 + version: '1.1' +- category: main + dependencies: + python: '>=3.8' + zipp: '>=0.5' + hash: + md5: 746623a787e06191d80a2133e5daff17 + sha256: e72d05f171f4567004c9360a838e9d5df21e23dcfeb945066b53a6e5f754b861 + manager: conda + name: importlib-metadata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda + version: 7.0.1 +- category: main + dependencies: + more-itertools: '' + python: '>=3.7' + hash: + md5: e9f79248d30e942f7c358ff21a1790f5 + sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + manager: conda + name: jaraco.classes + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + version: 3.3.0 +- category: main + dependencies: + markupsafe: '>=2.0' + python: '>=3.7' + hash: + md5: e7d8df6509ba635247ff9aea31134262 + sha256: fd517b7dd3a61eca34f8a6f9f92f306397149cae1204fce72ac3d227107dafdc + manager: conda + name: jinja2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda + version: 3.1.3 +- category: main + dependencies: + jsonpointer: '>=1.9' + python: '>=3.8' + hash: + md5: bfdb7c5c6ad1077c82a69a8642c87aff + sha256: fbb17e33ace3225c6416d1604637c1058906b8223da968cc015128985336b2b4 + manager: conda + name: jsonpatch + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda + version: '1.33' +- category: main + dependencies: + python: '' + setuptools: '' + six: '' + tornado: '' + hash: + md5: b7190e3ec3eff52839434bf4698e2d62 + sha256: 0e88f8f8abc0a641c2f3b1b306258fab87c39a95f3495e53e6b3873107da1765 + manager: conda + name: livereload + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2 + version: 2.6.3 +- category: main + dependencies: + python: 2.7|>=3.7 + setuptools: '' + hash: + md5: 2a75b296096adabbabadd5e9782e5fcc + sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd + manager: conda + name: nodeenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda + version: 1.8.0 +- category: main + dependencies: + freetype: '>=2.12.1,<3.0a0' + lcms2: '>=2.16,<3.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' + libxcb: '>=1.15,<1.16.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openjpeg: '>=2.5.0,<3.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + tk: '>=8.6.13,<8.7.0a0' + hash: + md5: 9ec32d0d90f7670eb29bbba18299cf29 + sha256: ddb300d69329606a9933717127880c2062e9d6539d8824b21a43ed63eb7dab4f + manager: conda + name: pillow + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py310h01dd4db_0.conda + version: 10.2.0 +- category: main + dependencies: + python: '>=3.7' + setuptools: '' + wheel: '' + hash: + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + manager: conda + name: pip + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + version: 23.3.2 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + ruamel.yaml.clib: '>=0.1.2' + setuptools: '' + hash: + md5: eb53a079577938f68e65c5f04b8ff1d1 + sha256: b9179de5e519cf83b9bbb99bdf3ca372281b213169c5d36e4a6d1de8b8d3ba05 + manager: conda + name: ruamel.yaml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.40-py310h2372a71_0.conda + version: 0.17.40 +- category: main + dependencies: + colorama: '' + python: '>=3.7' + hash: + md5: 03c97908b976498dcae97eb4e4f3149c + sha256: b61c9222af05e8c5ff27e4a4d2eb81870c21ffd7478346be3ef644b7a3759cc4 + manager: conda + name: tqdm + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda + version: 4.66.1 +- category: main + dependencies: + typing_extensions: 4.9.0 pyha770c72_0 + hash: + md5: c16524c1b7227dc80b36b4fa6f77cc86 + sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c + manager: conda + name: typing-extensions + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + version: 4.9.0 +- category: main + dependencies: + brotli-python: '>=1.0.9' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + python: '>=3.7' + hash: + md5: bf61cfd2a7f212efba378167a07d4a6a + sha256: 1cc0bab65a6ad0f5a8bd7657760a4fb4e670d30377f9dab88b792977cb3687e7 + manager: conda + name: urllib3 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda + version: 1.26.18 +- category: main + dependencies: + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <5,>=3.9.1 + python: '>=3.8' + hash: + md5: c119653cba436d8183c27bf6d190e587 + sha256: 50827c3721a9dbf973b568709d4381add2a6552fa562f26a385c5edc16a534af + manager: conda + name: virtualenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.0-pyhd8ed1ab_0.conda + version: 20.25.0 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-inputproto: '' + xorg-libx11: '>=1.7.0,<2.0a0' + xorg-libxext: 1.3.* + xorg-libxfixes: 5.0.* + hash: + md5: e77615e5141cad5a2acaa043d1cf0ca5 + sha256: 745c1284a96b4282fe6fe122b2643e1e8c26a7ff40b733a8f4b61357238c4e68 + manager: conda + name: xorg-libxi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2 + version: 1.7.10 +- category: main + dependencies: + python: '>=3.7' + typing-extensions: '>=4.0.0' + hash: + md5: 997c29372bdbe2afee073dff71f35923 + sha256: 3a2c98154d95cfd54daba6b7d507d31f5ba07ac2ad955c44eb041b66563193cd + manager: conda + name: annotated-types + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.6.0-pyhd8ed1ab_0.conda + version: 0.6.0 +- category: main + dependencies: + cffi: '>=1.12' + libgcc-ng: '>=12' + openssl: '>=3.1.4,<4.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 8a84d96d106767c08d6154ed5c8aae2c + sha256: 493feafc2492e841d361affb0bba2e29ab41d73b8db2d58c5abdfd4ccf1d29ad + manager: conda + name: cryptography + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py310hb8475ec_1.conda + version: 41.0.7 +- category: main + dependencies: + cairo: '>=1.18.0,<2.0a0' + freetype: '>=2.12.1,<3.0a0' + graphite2: '' + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.1,<3.0a0' + libstdcxx-ng: '>=12' + hash: + md5: 5a6f6c00ef982a9bc83558d9ac8f64a0 + sha256: 4b55aea03b18a4084b750eee531ad978d4a3690f63019132c26c6ad26bbe3aed + manager: conda + name: harfbuzz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda + version: 8.3.0 +- category: main + dependencies: + importlib-metadata: '>=7.0.1,<7.0.2.0a0' + hash: + md5: 4a2f43a20fa404b998859c6a470ba316 + sha256: bc362df1d4f5a04c38dff29cd9c2d0ac584f9c4b45d3e4683ee090944a38fba4 + manager: conda + name: importlib_metadata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.1-hd8ed1ab_0.conda + version: 7.0.1 +- category: main + dependencies: + elfutils: '>=0.187,<0.188.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.12,<1.3.0a0' + hash: + md5: 5b3ed39ee3809d63d347b649de0a45f8 + manager: conda + name: libdwarf + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 + version: 0.0.0.20190110_28_ga81397fc4 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + typing-extensions: '>=4.6.0,!=4.7.0' + hash: + md5: f0f6b7e4b3d134f070288963ed4fbeee + sha256: 3bdc1ef89f9e431392aec8ed5695d8aefc7b65a014cc46934f75e87779f89745 + manager: conda + name: pydantic-core + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py310hcb5633a_1.conda + version: 2.14.6 +- category: main + dependencies: + certifi: '>=2017.4.17' + charset-normalizer: '>=2,<4' + idna: '>=2.5,<4' + python: '>=3.7' + urllib3: '>=1.21.1,<3' + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + manager: conda + name: requests + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + version: 2.31.0 +- category: main + dependencies: + cffi: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 35e87277fba9944b8a975113538bb5df + sha256: 7bcb662f8d8181d77d77605c6e176a5bc6a421025a8969c6d793fe47134285bd + manager: conda + name: ukkonen + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda + version: 1.0.1 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-inputproto: '' + xorg-libx11: '>=1.7.1,<2.0a0' + xorg-libxext: 1.3.* + xorg-libxi: 1.7.* + xorg-recordproto: '' + hash: + md5: a220b1a513e19d5cb56c1311d44f12e6 + sha256: 9a51ae2869b9a47735539dada9d85534418a765d1461c9f91fe7564f3ee75e87 + manager: conda + name: xorg-libxtst + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2 + version: 1.2.3 +- category: main + dependencies: + cffi: '>=1.11' + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + zstd: '>=1.5.5,<1.6.0a0' + hash: + md5: 54698ba13cd3494547b289cd86a2176a + sha256: 1c1b91e5c5246b13ca25728ea6200dfd230d8ce8ca6910cd0b70fc5e43065a04 + manager: conda + name: zstandard + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py310h1275a96_0.conda + version: 0.22.0 +- category: main + dependencies: + msgpack-python: '>=0.5.2' + python: '>=3.7' + requests: '>=2.16.0' + hash: + md5: 174bd699bb5aa9e2622eb4b288276ff8 + sha256: aae7ab3a54989f9bf9273e4a17c911ba339a8b9354250bc11fb8eff2e3f4be60 + manager: conda + name: cachecontrol + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda + version: 0.13.1 +- category: main + dependencies: + python: '>=3.7' + zstandard: '>=0.15' + hash: + md5: 38253361efb303deead3eab39ae9269b + sha256: 654a2488f77bf43555787d952dbffdc5d97956ff4aa9e0414a7131bb741dcf4c + manager: conda + name: conda-package-streaming + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.9.0-pyhd8ed1ab_0.conda + version: 0.9.0 +- category: main + dependencies: + appdirs: '' + click: '>=5.1' + filelock: '' + python: '>=3.7' + requests: '>=2' + hash: + md5: c99ae3abf501990769047b4b40a98f17 + sha256: b71784b6c24d2320b2f796d074e75e7dd1be7b7fc0f719c5cf3a582270b368d6 + manager: conda + name: ensureconda + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 + version: 1.4.3 +- category: main + dependencies: + python: '>=3.6' + ukkonen: '' + hash: + md5: 93c8f8ceb83827d88deeba796f07fba7 + sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f + manager: conda + name: identify + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda + version: 2.5.33 +- category: main + dependencies: + elfutils: '>=0.187,<0.188.0a0' + libdwarf: 0.0.0.20190110_28_ga81397fc4 h753d276_0 + libgcc-ng: '>=12' + libzlib: '>=1.2.12,<1.3.0a0' + hash: + md5: 899c511688e6c41cb51c2921a8d25e63 + manager: conda + name: libdwarf-dev + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-dev-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 + version: 0.0.0.20190110_28_ga81397fc4 +- category: main + dependencies: + alsa-lib: '>=1.2.10,<1.2.11.0a0' + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' + giflib: '>=5.2.1,<5.3.0a0' + harfbuzz: '>=8.2.1,<9.0a0' + lcms2: '>=2.15,<3.0a0' + libcups: '>=2.3.3,<2.4.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxi: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + xorg-libxt: '>=1.3.0,<2.0a0' + xorg-libxtst: '' + hash: + md5: 06cb6ddea2e4639d2d8d91626d0eba3b + sha256: 0a88fdee61322f37bae674222488fc1153f1211312028c624db3f08bfda30617 + manager: conda + name: openjdk + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-20.0.2-haa376d0_2.conda + version: 20.0.2 +- category: main + dependencies: + annotated-types: '>=0.4.0' + pydantic-core: 2.14.6 + python: '>=3.7' + typing-extensions: '>=4.6.1' + hash: + md5: 3569001fd8b37e542aaefdf5de124e19 + sha256: 07ec778cbf17737b740f0547fb5cba91a7bff52945fe637287458e4119c58ffe + manager: conda + name: pydantic + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda + version: 2.5.3 +- category: main + dependencies: + cryptography: '>=41.0.5,<42' + python: '>=3.7' + hash: + md5: 7819533e674dbbc51468f3228b9b1bb6 + sha256: f7e04c4a49b1593140231d70801e2204e314e26d7141bfbdc8089d04114c0010 + manager: conda + name: pyopenssl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.3.0-pyhd8ed1ab_0.conda + version: 23.3.0 +- category: main + dependencies: + cryptography: '' + dbus: '' + jeepney: '>=0.6' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 4ccc40bc490af727cfbf3e7f0289d9bd + sha256: a2b7f56b07b6e95bd05fd47ebe5b2cfc8af70ccd04994623f6508e90d3b5f857 + manager: conda + name: secretstorage + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py310hff52083_2.conda + version: 3.3.3 +- category: main + dependencies: + cachecontrol: 0.13.1 pyhd8ed1ab_0 + filelock: '>=3.8.0' + python: '>=3.7' + hash: + md5: 8c4781ca0893cff3a64423954ce234a1 + sha256: 7fd3cd4a667da284ae3aad9b8cb4d592099bc02ed6566cbae00bd8c0b0604e85 + manager: conda + name: cachecontrol-with-filecache + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda + version: 0.13.1 +- category: main + dependencies: + conda-package-streaming: '>=0.9.0' + python: '>=3.7' + zstandard: '>=0.15' + hash: + md5: 8a3ae7f6318376aa08ea753367bb7dd6 + sha256: 9a221808405d813d8c555efce6944379b907d36d79e77d526d573efa6b996d26 + manager: conda + name: conda-package-handling + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.2.0-pyh38be061_0.conda + version: 2.2.0 +- category: main + dependencies: + importlib_metadata: '>=4.11.4' + jaraco.classes: '' + jeepney: '>=0.4.2' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + secretstorage: '>=3.2' + hash: + md5: e710fd8e57356a64cace034413da9cb3 + sha256: 886a764e4bc2cfaabf2ea0a98461fbd526affd99c984a2789770eca43dd17c9b + manager: conda + name: keyring + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.0-py310hff52083_0.conda + version: 24.3.0 +- category: main + dependencies: + cfgv: '>=2.0.0' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + python: '>=3.9' + pyyaml: '>=5.1' + virtualenv: '>=20.10.0' + hash: + md5: 473a7cfca197da0a10cff3f6dded7d4b + sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 + manager: conda + name: pre-commit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda + version: 3.6.0 +- category: main + dependencies: + __unix: '' + openjdk: '>=8' + hash: + md5: b6f6329c1a8a1efaaf16024e545335f5 + sha256: f5588175723814ad220d6dad75771d7139c293df802ce871ab2b89a629250013 + manager: conda + name: sbt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sbt-1.9.7-hd8ed1ab_0.conda + version: 1.9.7 +- category: main + dependencies: + archspec: '' + boltons: '>=23.0.0' + conda-package-handling: '>=2.2.0' + jsonpatch: '>=1.32' + packaging: '>=23.0' + pluggy: '>=1.0.0' + pycosat: '>=0.6.3' + pyopenssl: '>=16.2.0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + requests: '>=2.27.0,<3' + ruamel.yaml: '>=0.11.14,<0.18' + setuptools: '>=60.0.0' + tqdm: '>=4' + truststore: '>=0.8.0' + hash: + md5: 43a598dea1812d249e2d6b8c12e8634f + sha256: 7c9916213879ded1142f95f058ec52da512bae7994105a35470aea66204c1683 + manager: conda + name: conda + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-23.9.0-py310hff52083_2.conda + version: 23.9.0 +- category: main + dependencies: + cachecontrol-with-filecache: '>=0.12.9' + cachy: '>=0.3.0' + click: '>=8.0' + click-default-group: '' + clikit: '>=0.6.2' + crashtest: '>=0.3.0' + ensureconda: '>=1.3' + html5lib: '>=1.0' + importlib-metadata: '>=1.7.0' + jinja2: '' + keyring: '>=21.2.0' + packaging: '>=20.4' + pkginfo: '>=1.4' + pydantic: '>=1.8.1' + python: '>=3.6' + pyyaml: '>=5.1' + requests: '>=2.18' + ruamel.yaml: '' + tomli: '' + tomlkit: '>=0.7.0' + toolz: '>=0.12.0,<1.0.0' + typing_extensions: '' + virtualenv: '>=20.0.26' + hash: + md5: e9ecdfe3e7d4f76d67afd65b02a621a0 + sha256: fe66e9970d9ad03e215430f700af994e3ed67d301cd7cf9281f3b8114f50eccc + manager: conda + name: conda-lock + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-1.4.0-pyhd8ed1ab_2.conda + version: 1.4.0 +- category: main + dependencies: + colorama: '' + conda: '' + networkx: '' + python: '>=3.6' + hash: + md5: 184216409957e082712d750862782903 + sha256: 54e9cf114ca4eaeda91b5bb11a09d4391ba4be8a4fb2911259fc7dc2ec636054 + manager: conda + name: conda-tree + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.1.0-pyhd8ed1ab_2.conda + version: 1.1.0 +- category: main + dependencies: + __unix: '' + conda: '>=4.6' + conda-standalone: '' + jinja2: '' + pillow: '>=3.1' + python: '>=3.8' + ruamel.yaml: '>=0.11.14,<0.19' + hash: + md5: d8cb2dfbc95cd06af84d11bf16572270 + sha256: 78a2b1abf48bdb34a9902caa7bff273ed001758f0845ef0508b347d85c21ca2b + manager: conda + name: constructor + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.6.0-pyh55f8243_0.conda + version: 3.6.0 +- category: main + dependencies: + livereload: '>=2.3.0' + python: '>=3.6' + sphinx: '' + hash: + md5: 1909f784dc37b4ab97afe2c95aeeabaa + sha256: 1c07ab809254c2454c5417c5be01af2dc8bcaae2f3315a0a9d8812997ede8297 + manager: conda + name: sphinx-autobuild + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-autobuild-2021.3.14-pyhd8ed1ab_0.tar.bz2 + version: 2021.3.14 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: 611a35a27914fac3aa37611a6fe40bb5 + sha256: 710013443a063518d587d2af82299e92ab6d6695edf35a676ac3a0ccc9e3f8e6 + manager: conda + name: sphinxcontrib-applehelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda + version: 1.0.8 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: d7e4954df0d3aea2eacc7835ad12671d + sha256: 63a6b60653ef13a6712848f4b3c4b713d4b564da1dae571893f1a3659cde85f3 + manager: conda + name: sphinxcontrib-devhelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda + version: 1.0.6 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: 7e1e7437273682ada2ed5e9e9714b140 + sha256: 512f393cfe34cb3de96ade7a7ad900d6278e2087a1f0e5732aa60fadee396d99 + manager: conda + name: sphinxcontrib-htmlhelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda + version: 2.0.5 +- category: main + dependencies: + python: '>=2.7' + sphinx: '>=1.8' + hash: + md5: 914897066d5873acfb13e75705276ad1 + sha256: 2e5f16a2d58f9a31443ffbb8ce3852cfccf533a6349045828cd2e994ef0679ca + manager: conda + name: sphinxcontrib-jquery + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_0.conda + version: '4.1' +- category: main + dependencies: + docutils: <0.21 + python: '>=3.6' + sphinx: '>=5,<8' + sphinxcontrib-jquery: '>=4,<5' + hash: + md5: baf6d9a33df1a789ca55e3b404c7ea28 + sha256: 8545c806d03092fd0236db6663c88036eab2dc99e34c91cd36c0704db03b148a + manager: conda + name: sphinx_rtd_theme + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-2.0.0-pyha770c72_0.conda + version: 2.0.0 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: 26acae54b06f178681bfb551760f5dd1 + sha256: dd35b52f056c39081cd0ae01155174277af579b69e5d83798a33e9056ec78d63 + manager: conda + name: sphinxcontrib-qthelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda + version: 1.0.7 +- category: main + dependencies: + alabaster: '>=0.7,<0.8' + babel: '>=2.9' + colorama: '>=0.4.5' + docutils: '>=0.18.1,<0.21' + imagesize: '>=1.3' + importlib-metadata: '>=4.8' + jinja2: '>=3.0' + packaging: '>=21.0' + pygments: '>=2.14' + python: '>=3.9' + requests: '>=2.25.0' + snowballstemmer: '>=2.0' + sphinxcontrib-applehelp: '' + sphinxcontrib-devhelp: '' + sphinxcontrib-htmlhelp: '>=2.0.0' + sphinxcontrib-jsmath: '' + sphinxcontrib-qthelp: '' + sphinxcontrib-serializinghtml: '>=1.1.9' + hash: + md5: bbfd1120d1824d2d073bc65935f0e4c0 + sha256: 665d1fe6d20c6cc672ff20e6ebb405860f878b487d3d8d86a5952733fb7bbc42 + manager: conda + name: sphinx + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-7.2.6-pyhd8ed1ab_0.conda + version: 7.2.6 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: e507335cb4ca9cff4c3d0fa9cdab255e + sha256: bf80e4c0ff97d5e8e5f6db0831ba60007e820a3a438e8f1afd868aa516d67d6f + manager: conda + name: sphinxcontrib-serializinghtml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda + version: 1.1.10 +version: 1 diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 79b0bb2f..185c0229 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -38,6 +38,7 @@ usage() { echo " --help -h : Display this message" echo " --verbose -v : Verbose printout" echo " --use-unpinned-deps -ud : Use unpinned conda environment" + echo " --use-lean-conda : Install a leaner version of conda (no firesim && no marshal)" echo " --skip -s N : Skip step N in the list above. Use multiple times to skip multiple steps ('-s N -s M ...')." echo " --skip-conda : Skip Conda initialization (step 1)" @@ -57,6 +58,7 @@ TOOLCHAIN_TYPE="riscv-tools" VERBOSE=false VERBOSE_FLAG="" USE_UNPINNED_DEPS=false +USE_LEAN_CONDA=false SKIP_LIST=() # getopts does not support long options, and is inflexible @@ -70,6 +72,9 @@ do --verbose | -v) VERBOSE_FLAG=$1 set -x ;; + --use-lean-conda) + USE_LEAN_CONDA=true + SKIP_LIST+=(4 6 7 8 9) ;; -ud | --use-unpinned-deps ) USE_UNPINNED_DEPS=true ;; --skip | -s) @@ -161,13 +166,22 @@ if run_step "1"; then CONDA_REQS=$CYDIR/conda-reqs CONDA_LOCK_REQS=$CONDA_REQS/conda-lock-reqs # must match with the file generated by generate-conda-lockfile.sh - LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml + if [ "$USE_LEAN_CONDA" = false ]; then + LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml + else + if [ "$TOOLCHAIN_TYPE" != "riscv-tools" ]; then + echo "::ERROR:: Lean conda env is not supported for esp-tools" + exit 1 + fi + LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64-lean.conda-lock.yml + fi if [ "$USE_UNPINNED_DEPS" = true ]; then # auto-gen the lockfiles $CYDIR/scripts/generate-conda-lockfiles.sh exit_if_last_command_failed fi + echo "lockfile $LOCKFILE" # use conda-lock to create env conda-lock install --conda $(which conda) -p $CYDIR/.conda-env $LOCKFILE && diff --git a/scripts/generate-conda-lockfiles.sh b/scripts/generate-conda-lockfiles.sh index 40701580..c5e07434 100755 --- a/scripts/generate-conda-lockfiles.sh +++ b/scripts/generate-conda-lockfiles.sh @@ -16,11 +16,20 @@ for TOOLCHAIN_TYPE in riscv-tools esp-tools; do rm -rf $LOCKFILE conda-lock \ - --no-mamba \ - --no-micromamba \ - -f "$REQS_DIR/chipyard.yaml" \ - -f "$REQS_DIR/docs.yaml" \ - -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ - -p linux-64 \ - --lockfile $LOCKFILE + --no-mamba \ + --no-micromamba \ + -f "$REQS_DIR/chipyard.yaml" \ + -f "$REQS_DIR/docs.yaml" \ + -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ + -p linux-64 \ + --lockfile $LOCKFILE done + +conda-lock \ + --no-mamba \ + --no-micromamba \ + -f "$REQS_DIR/chipyard-lean.yaml" \ + -f "$REQS_DIR/docs.yaml" \ + -f "$REQS_DIR/riscv-tools.yaml" \ + -p linux-64 \ + --lockfile $REQS_DIR/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml From b4d56b6a4fe16fc78beede39f9b8428990e4ecda Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 11:17:29 -0800 Subject: [PATCH 075/105] Dedup chipyard conda lock file, add esp-tools to lean conda-lock --- ...{chipyard-lean.yaml => chipyard-base.yaml} | 0 ...nts-esp-tools-linux-64-lean.conda-lock.yml | 3183 +++++++++++++++++ ...irements-esp-tools-linux-64.conda-lock.yml | 49 +- ...s-riscv-tools-linux-64-lean.conda-lock.yml | 8 +- ...ements-riscv-tools-linux-64.conda-lock.yml | 49 +- .../{chipyard.yaml => fsim-marshal.yaml} | 39 - scripts/build-setup.sh | 6 +- scripts/generate-conda-lockfiles.sh | 24 +- 8 files changed, 3252 insertions(+), 106 deletions(-) rename conda-reqs/{chipyard-lean.yaml => chipyard-base.yaml} (100%) create mode 100644 conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml rename conda-reqs/{chipyard.yaml => fsim-marshal.yaml} (63%) diff --git a/conda-reqs/chipyard-lean.yaml b/conda-reqs/chipyard-base.yaml similarity index 100% rename from conda-reqs/chipyard-lean.yaml rename to conda-reqs/chipyard-base.yaml diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml new file mode 100644 index 00000000..74bb6ac6 --- /dev/null +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml @@ -0,0 +1,3183 @@ +# This lock file was generated by conda-lock (https://github.com/conda-incubator/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV --file conda-requirements-esp-tools-linux-64-lean.conda-lock.yml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile conda-requirements-esp-tools-linux-64-lean.conda-lock.yml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-esp-tools-linux-64-lean.conda-lock.yml +metadata: + channels: + - url: ucb-bar + used_env_vars: [] + - url: conda-forge + used_env_vars: [] + - url: litex-hub + used_env_vars: [] + - url: nodefaults + used_env_vars: [] + content_hash: + linux-64: 044545ea58c6808658782a00d19615da9cb13e4dabf477a7fe1a688ddfeaf8b7 + platforms: + - linux-64 + sources: + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml +package: +- category: main + dependencies: {} + hash: + md5: d7c89558ba9fa0495403155b64376d81 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + manager: conda + name: _libgcc_mutex + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + version: '0.1' +- category: main + dependencies: {} + hash: + md5: f6ce7955b53ae1ca83144adb3be9c600 + sha256: 546e4eb1cbd822a66b363ec3fbdcc4fcc53853bcab57674cb46b8f3209b856f2 + manager: conda + name: _sysroot_linux-64_curr_repodata_hack + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/_sysroot_linux-64_curr_repodata_hack-3-h69a702a_13.conda + version: '3' +- category: main + dependencies: {} + hash: + md5: 01ffc8d36f9eba0ce0b3c1955fa780ee + sha256: fb4b9f4b7d885002db0b93e22f44b5b03791ef3d4efdc9d0662185a0faafd6b6 + manager: conda + name: ca-certificates + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda + version: 2023.11.17 +- category: main + dependencies: {} + hash: + md5: fd2989188c0421b101b12c4ee91a8967 + sha256: f0cb3d37b2642bf982d497d63f351dcdcd03cea1b0b175d4d3c9d13b3c022d80 + manager: conda + name: conda-standalone + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.11.0-ha770c72_1.conda + version: 23.11.0 +- category: main + dependencies: {} + hash: + md5: 0c96522c6bdaed4b1566d11387caaf45 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + manager: conda + name: font-ttf-dejavu-sans-mono + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + version: '2.37' +- category: main + dependencies: {} + hash: + md5: 34893075a5c9e55cdafac56607368fc6 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + manager: conda + name: font-ttf-inconsolata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + version: '3.000' +- category: main + dependencies: {} + hash: + md5: 4d59c254e01d9cde7957100457e2d5fb + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + manager: conda + name: font-ttf-source-code-pro + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + version: '2.038' +- category: main + dependencies: {} + hash: + md5: 6185f640c43843e5ad6fd1c5372c3f80 + sha256: 056c85b482d58faab5fd4670b6c1f5df0986314cca3bc831d458b22e4ef2c792 + manager: conda + name: font-ttf-ubuntu + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda + version: '0.83' +- category: main + dependencies: {} + hash: + md5: 7aca3059a1729aa76c597603f10b0dd3 + sha256: f6cc89d887555912d6c61b295d398cff9ec982a3417d38025c45d5dd9b9e79cd + manager: conda + name: ld_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + version: '2.40' +- category: main + dependencies: {} + hash: + md5: 2390dcf3fd78c2c426f1c5b6664fa4b7 + sha256: 12904b795e5cb877ce6a7bb30feba9bfbe1dd38bd5f520e6af8d89a51bb6b6a6 + manager: conda + name: libgcc-devel_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 +- category: main + dependencies: {} + hash: + md5: be10a739476d68c464101836773463f1 + sha256: 4957848888d7a8cdc77c605357e759f0c9b08c18510f08a205f567666602ca2b + manager: conda + name: libstdcxx-devel_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-11.4.0-h922705a_103.conda + version: 11.4.0 +- category: main + dependencies: {} + hash: + md5: 937eaed008f6bf2191c5fe76f87755e9 + sha256: 6c6c49efedcc5709a66f19fb6b26b69c6a5245310fd1d9a901fd5e38aaf7f882 + manager: conda + name: libstdcxx-ng + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_3.conda + version: 13.2.0 +- category: main + dependencies: {} + hash: + md5: 26322ec5d7712c3ded99dd656142b8ce + sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec + manager: conda + name: python_abi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda + version: '3.10' +- category: main + dependencies: {} + hash: + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + manager: conda + name: tzdata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + version: 2023d +- category: main + dependencies: + font-ttf-dejavu-sans-mono: '' + font-ttf-inconsolata: '' + font-ttf-source-code-pro: '' + font-ttf-ubuntu: '' + hash: + md5: f766549260d6815b0c52253f1fb1bb29 + sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38 + manager: conda + name: fonts-conda-forge + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 + version: '1' +- category: main + dependencies: + _sysroot_linux-64_curr_repodata_hack: 3.* + hash: + md5: 523bc836a954faf0cca94831971bb85a + sha256: 67a3caa56e2a59f407f3d290437b865aaf996873006e2fcfca6295d0f0be8db9 + manager: conda + name: kernel-headers_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-h4a8ded7_13.tar.bz2 + version: 3.10.0 +- category: main + dependencies: + _libgcc_mutex: 0.1 conda_forge + hash: + md5: 7124cbb46b13d395bdde68f2d215c989 + sha256: 6ebedee39b6bbbc969715d0d7fa4b381cce67e1139862604ffa393f821c08e81 + manager: conda + name: libgomp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_3.conda + version: 13.2.0 +- category: main + dependencies: + _libgcc_mutex: 0.1 conda_forge + libgomp: '>=7.5.0' + hash: + md5: 73aaf86a425cc6e73fcf236a5a46396d + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + manager: conda + name: _openmp_mutex + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + version: '4.5' +- category: main + dependencies: + fonts-conda-forge: '' + hash: + md5: fee5683a3f04bd15cbd8318b096a27ab + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + manager: conda + name: fonts-conda-ecosystem + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + version: '1' +- category: main + dependencies: + _sysroot_linux-64_curr_repodata_hack: 3.* + kernel-headers_linux-64: 3.10.0 h4a8ded7_13 + hash: + md5: 57e5a5191ffe999b9f4dfdbcd0ddcba4 + sha256: f09f2fea4b571dcd225f1e35bd3c851e809cd4c2f5f151438133969ab28478e5 + manager: conda + name: sysroot_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h4a8ded7_13.tar.bz2 + version: '2.17' +- category: main + dependencies: + ld_impl_linux-64: 2.40 h41732ed_0 + sysroot_linux-64: '' + hash: + md5: 33084421a8c0af6aef1b439707f7662a + sha256: a7e0ea2b71a5b03d82e5a58fb6b612ab1c44d72ce161f9aa441f7ba467cd4c8d + manager: conda + name: binutils_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-hf600244_0.conda + version: '2.40' +- category: main + dependencies: + _libgcc_mutex: 0.1 conda_forge + _openmp_mutex: '>=4.5' + hash: + md5: 23fdf1fef05baeb7eadc2aed5fb0011f + sha256: 5e88f658e07a30ab41b154b42c59f079b168acfa9551a75bdc972099453f4105 + manager: conda + name: libgcc-ng + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_3.conda + version: 13.2.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 75dae9a4201732aa78a530b826ee5fe0 + sha256: 51147922bad9d3176e780eb26f748f380cd3184896a9f9125d8ac64fe330158b + manager: conda + name: alsa-lib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.10-hd590300_0.conda + version: 1.2.10 +- category: main + dependencies: + binutils_impl_linux-64: '>=2.40,<2.41.0a0' + hash: + md5: ccc940fddbc3fcd3d79cd4c654c4b5c4 + sha256: 35f3b042f295fd7387de11cf426ca8ee5257e5c98b88560c6c5ad4ef3c85d38c + manager: conda + name: binutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.40-hdd6e379_0.conda + version: '2.40' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 69b8b6202a07720f448be700e300ccf4 + sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 + manager: conda + name: bzip2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + version: 1.0.8 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 89e40af02dd3a0846c0c1131c5126706 + sha256: c4bbdafd6791583e3c77e8ed0e1df9e0021d542249c3543de3d72788f5c8a0c4 + manager: conda + name: c-ares + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.25.0-hd590300_0.conda + version: 1.25.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: ff6707b0adc04518a452a0340db13a07 + sha256: 5f5400cb5a27389f78422c9864fa948734989568a3fcfdde8bbee0f92077d056 + manager: conda + name: coreutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/coreutils-9.4-hd590300_0.conda + version: '9.4' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 14947d8770185e5153fdd04d4673ed37 + sha256: 4fcfedc44e4c9a053f0416f9fc6ab6ed50644fca3a761126dbd00d09db1f546a + manager: conda + name: gettext + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2 + version: 0.21.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 96f3b11872ef6fad973eac856cd2624f + sha256: 41ec165704ccce2faa0437f4f53c03c06261a2cc9ff7614828e51427d9261f4b + manager: conda + name: giflib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.1-h0b41bf4_3.conda + version: 5.2.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 0e33ef437202db431aa5a928248cf2e8 + sha256: 2a50495b6bbbacb03107ea0b752d8358d4a40b572d124a8cade068c147f344f5 + manager: conda + name: gmp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-h59595ed_0.conda + version: 6.3.0 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + libstdcxx-ng: '>=7.5.0' + hash: + md5: 8c54672728e8ec6aa6db90cf2806d220 + sha256: 65da967f3101b737b08222de6a6a14e20e480e7d523a5d1e19ace7b960b5d6b1 + manager: conda + name: graphite2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h58526e2_1001.tar.bz2 + version: 1.3.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + manager: conda + name: icu + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + version: '73.2' +- category: main + dependencies: + libgcc-ng: '>=10.3.0' + hash: + md5: 30186d27e2c9fa62b45fb1476b7200e3 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + manager: conda + name: keyutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + version: 1.6.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 76bbff344f0134279f225174e9064c8f + sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12 + manager: conda + name: lerc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 + version: 4.0.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 1635570038840ee3f9c71d22aa5b8b6d + sha256: 985ad27aa0ba7aad82afa88a8ede6a1aacb0aaca950d710f15d85360451e72fd + manager: conda + name: libdeflate + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.19-hd590300_0.conda + version: '1.19' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + manager: conda + name: libev + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + version: '4.33' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 6305a3dd2752c76335295da4e581f2fd + sha256: 74c98a563777ae2ad71f1f74d458a8ab043cee4a513467c159ccf159d0e461f3 + manager: conda + name: libexpat + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + version: 2.5.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: b479e94095fbb82702d736b1c100c0e8 + sha256: a4490042212d56d6a0f13ebd172f6be7524a9229a94820cd7d12c57d95b3f8cd + manager: conda + name: libfdt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libfdt-1.6.1-h166bdaf_2.tar.bz2 + version: 1.6.1 +- category: main + dependencies: + libgcc-ng: '>=9.4.0' + hash: + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + manager: conda + name: libffi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + version: 3.4.2 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + manager: conda + name: libiconv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + version: '1.17' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: ea25936bb4080d843790b586850f82b8 + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + manager: conda + name: libjpeg-turbo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + version: 3.0.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + manager: conda + name: libnsl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + version: 2.0.1 +- category: main + dependencies: + libgcc-ng: '>=11.4.0' + hash: + md5: e6f89a7be0ec320c1b1746971045b0e7 + sha256: c4c5c87f5c717e83299740f6a20393f9a131f05e2e9df63faafd6bb71dc58346 + manager: conda + name: libsanitizer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-11.4.0-h4dcbe23_3.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 93840744a8552e9ebf6bb1a5dffc125a + sha256: 5bfeada0e1c6ec2574afe2d17cdbc39994d693a41431338a6cb9dfa7c4d7bfc8 + manager: conda + name: libtasn1 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2 + version: 4.19.0 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 7245a044b4a1980ed83196176b78b73a + sha256: e88c45505921db29c08df3439ddb7f771bbff35f95e7d3103bf365d5d6ce2a6d + manager: conda + name: libunistring + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2 + version: 0.9.10 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + manager: conda + name: libuuid + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + version: 2.38.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 30de3fd9b3b602f7473f30e684eeea8c + sha256: 68764a760fa81ef35dacb067fe8ace452bbb41476536a4a147a1051df29525f0 + manager: conda + name: libwebp-base + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.conda + version: 1.3.2 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + manager: conda + name: libxcrypt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + version: 4.4.36 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: f36c115f1ee199da648e0597ec2047ad + sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 + manager: conda + name: libzlib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda + version: 1.2.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 318b08df404f9c9be5712aaa5a6f0bb0 + sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f + manager: conda + name: lz4-c + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda + version: 1.9.4 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: bb14fcb13341b81d5eb386423b9d2bac + sha256: 25d16e6aaa3d0b450e61d0c4fadd7c9fd17f16e2fef09b34507209342d63c9f6 + manager: conda + name: lzo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2 + version: '2.10' +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: 4abb931c0d08a41583fc637c663e45e2 + sha256: b8e37b92caab5a64a9e344f3d497b9d3e215d1e6211f6dc7c51b70799aab1da1 + manager: conda + name: m4 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/m4-1.4.18-h516909a_1001.tar.bz2 + version: 1.4.18 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: 4049ebfd3190b580dffe76daed26155a + sha256: 4a5fe7c80bb0de0015328e2d3fc8db1736f528cb1fd53cd0d5527e24269a4f7c + manager: conda + name: make + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/make-4.3-hd18ef5c_1.tar.bz2 + version: '4.3' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 7dbaa197d7ba6032caf7ae7f32c1efa0 + sha256: 91cc03f14caf96243cead96c76fe91ab5925a695d892e83285461fb927dece5e + manager: conda + name: ncurses + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda + version: '6.4' +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 2bf1915cc107738811368afcb0993a59 + sha256: 1ef1b7efa69c7fb4e2a36a88316f307c115713698d1c12e19f55ae57c0482995 + manager: conda + name: nettle + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda + version: 3.9.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 77dab674d16c1525ebe65e67de30de0d + sha256: dec1c78df7670d34880f71f75ac716f082d087494b4a2c6a90d5d75a82c933ed + manager: conda + name: oniguruma + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.9-hd590300_0.conda + version: 6.9.9 +- category: main + dependencies: + ca-certificates: '' + libgcc-ng: '>=12' + hash: + md5: 603827b39ea2b835268adb8c821b8570 + sha256: 80efc6f429bd8e622d999652e5cba2ca56fcdb9c16a439d2ce9b4313116e4a87 + manager: conda + name: openssl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda + version: 3.2.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + hash: + md5: 6b4b43013628634b6cfdee6b74fd696b + sha256: 07a5ffcd34e241f900433af4c6d4904518aab76add4e1e40a2c4bad93ae43f2b + manager: conda + name: pixman + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.0-h59595ed_0.conda + version: 0.43.0 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + hash: + md5: 22dad4df6e8630e8dff2428f6f6a7036 + sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff + manager: conda + name: pthread-stubs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + version: '0.4' +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: bcd1b3396ec6960cbc1d2855a9e60b2b + sha256: 6c8c2803de0f643f8bad16ece3f9a7259e4a49247543239c182d66d5e3a129a7 + manager: conda + name: xorg-inputproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2 + version: 2.3.2 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 4b230e8381279d76131116660f5a241a + sha256: e90b0a6a5d41776f11add74aa030f789faf4efd3875c31964d6f9cfa63a10dd1 + manager: conda + name: xorg-kbproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 + version: 1.0.7 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: b462a33c0be1421532f28bfe8f4a7514 + sha256: 5aa9b3682285bb2bf1a8adc064cb63aff76ef9178769740d855abb42b0d24236 + manager: conda + name: xorg-libice + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda + version: 1.1.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 2c80dc38fface310c9bd81b17037fee5 + sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4 + manager: conda + name: xorg-libxau + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda + version: 1.0.11 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: be93aabceefa2fac576e971aef407908 + sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77 + manager: conda + name: xorg-libxdmcp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 + version: 1.1.3 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 2f835e6c386e73c6faaddfe9eda67e98 + sha256: 4b91d48fed368c83eafd03891ebfd5bae0a03adc087ebea8a680ae22da99a85f + manager: conda + name: xorg-recordproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-h7f98852_1002.tar.bz2 + version: 1.14.2 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: 06feff3d2634e3097ce2fe681474b534 + sha256: 38942930f233d1898594dd9edf4b0c0786f3dbc12065a0c308634c37fd936034 + manager: conda + name: xorg-renderproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 + version: 0.11.1 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: bce9f945da8ad2ae9b1d7165a64d0f87 + sha256: b8dda3b560e8a7830fe23be1c58cc41f407b2e20ae2f3b6901eb5842ba62b743 + manager: conda + name: xorg-xextproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda + version: 7.3.0 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + hash: + md5: b4a4381d54784606820704f7b5f05a15 + sha256: f197bb742a17c78234c24605ad1fe2d88b1d25f332b75d73e5ba8cf8fbc2a10d + manager: conda + name: xorg-xproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 + version: 7.0.31 +- category: main + dependencies: + libgcc-ng: '>=12' + hash: + md5: 2161070d867d1b1204ea749c8eec4ef0 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + manager: conda + name: xz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + version: 5.2.6 +- category: main + dependencies: + libgcc-ng: '>=9.4.0' + hash: + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + manager: conda + name: yaml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + version: 0.2.5 +- category: main + dependencies: + libfdt: '>=1.6.1,<1.7.0a0' + libgcc-ng: '>=12' + yaml: '>=0.2.5,<0.3.0a0' + hash: + md5: 22b23b5006eb63ed81af6a84569c930e + sha256: 5a056172bd4fee3f6dd21441bfdd3c9960d3a637f48e8dfe16d3a7aa56e883a5 + manager: conda + name: dtc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/dtc-1.6.1-h166bdaf_2.tar.bz2 + version: 1.6.1 +- category: main + dependencies: + libexpat: 2.5.0 hcb278e6_1 + libgcc-ng: '>=12' + hash: + md5: 8b9b5aca60558d02ddaa09d599e55920 + sha256: 36dfeb4375059b3bba75ce9b38c29c69fd257342a79e6cf20e9f25c1523f785f + manager: conda + name: expat + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda + version: 2.5.0 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + libstdcxx-ng: '>=7.5.0' + m4: '' + hash: + md5: b1029ec81c7e0969e84a8179d039a9ce + sha256: 5a6dba5af1127e859eefd68e77b7af062b42f85401efbb43a970da977ba3e344 + manager: conda + name: flex + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/flex-2.6.4-h58526e2_1004.tar.bz2 + version: 2.6.4 +- category: main + dependencies: + binutils_impl_linux-64: '>=2.39' + libgcc-devel_linux-64: 11.4.0 h922705a_103 + libgcc-ng: '>=11.4.0' + libgomp: '>=11.4.0' + libsanitizer: 11.4.0 h4dcbe23_3 + libstdcxx-ng: '>=11.4.0' + sysroot_linux-64: '' + hash: + md5: b17749a6ae62cf9a5eafd96a6bcaad0e + sha256: 24d34853611b8758c40fa9d6a0d0b738312f51af9fed8fa6c6422f15ec475763 + manager: conda + name: gcc_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + oniguruma: '>=6.9.9,<6.10.0a0' + hash: + md5: 80814f94713e35df60aad6c4b235de87 + sha256: a04a1603e405ea9ae5c4a492a8e361086cb441a91ef7299bd4bf3eca0b485b6d + manager: conda + name: jq + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + version: 1.7.1 +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + hash: + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + manager: conda + name: libedit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + version: 3.1.20191231 +- category: main + dependencies: + gettext: '>=0.21.1,<1.0a0' + libgcc-ng: '>=12' + libunistring: '>=0,<1.0a0' + hash: + md5: 7440fbafd870b8bab68f83a064875d34 + sha256: 888848ae85be9df86f56407639c63bdce8e7651f0b2517be9bc0ac6e38b2d21d + manager: conda + name: libidn2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.4-h166bdaf_0.tar.bz2 + version: 2.3.4 +- category: main + dependencies: + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + hash: + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + manager: conda + name: libnghttp2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + version: 1.58.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: e1c890aebdebbfbf87e2c917187b4416 + sha256: a32b36d34e4f2490b99bddbc77d01a674d304f667f0e62c89e02c961addef462 + manager: conda + name: libpng + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda + version: 1.6.39 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 3b6a9f225c3dbe0d24f4fedd4625c5bf + sha256: ee2c4d724a3ed60d5b458864d66122fb84c6ce1df62f735f90d8db17b66cd88a + manager: conda + name: libsqlite + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.44.2-h2797004_0.conda + version: 3.44.2 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.1.1,<4.0a0' + hash: + md5: 1f5a58e686b13bcfde88b93f547d23fe + sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + manager: conda + name: libssh2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + version: 1.11.0 +- category: main + dependencies: + libgcc-ng: '>=12' + pthread-stubs: '' + xorg-libxau: '' + xorg-libxdmcp: '' + hash: + md5: 33277193f5b92bad9fdd230eb700929c + sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485 + manager: conda + name: libxcb + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda + version: '1.15' +- category: main + dependencies: + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + xz: '>=5.2.6,<6.0a0' + hash: + md5: 53e951fab78d7e3bab40745f7b3d1620 + sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 + manager: conda + name: libxml2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda + version: 2.12.4 +- category: main + dependencies: + gmp: '>=6.2.1,<7.0a0' + libgcc-ng: '>=12' + hash: + md5: 4c28f3210b30250037a4a627eeee9e0f + sha256: 008230a53ff15cf61966476b44f7ba2c779826825b9ca639a0a2b44d8f7aa6cb + manager: conda + name: mpfr + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h9458935_0.conda + version: 4.2.1 +- category: main + dependencies: + libffi: '>=3.4.2,<3.5.0a0' + libgcc-ng: '>=12' + libtasn1: '>=4.18.0,<5.0a0' + hash: + md5: 56ee94e34b71742bbdfa832c974e47a8 + sha256: aa8d3887b36557ad0c839e4876c0496e0d670afe843bf5bba4a87764b868196d + manager: conda + name: p11-kit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2 + version: 0.24.1 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 679c8961826aa4b50653bce17ee52abe + sha256: 3ca54ff0abcda964af7d4724d389ae20d931159ae1881cfe57ad4b0ab9e6a380 + manager: conda + name: pcre2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.42-hcad00b1_0.conda + version: '10.42' +- category: main + dependencies: + libgcc-ng: '>=12' + libxcrypt: '>=4.4.36' + hash: + md5: f2cfec9406850991f4e3d960cc9e3321 + sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 + manager: conda + name: perl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda + version: 5.32.1 +- category: main + dependencies: + libgcc-ng: '>=12' + ncurses: '>=6.3,<7.0a0' + hash: + md5: 47d31b792659ce70f470b5c82fdfb7a4 + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + manager: conda + name: readline + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + version: '8.2' +- category: main + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + hash: + md5: 3b67f325fac07461f193e27a9d9c5a65 + sha256: 3c7020802fb52b946fe37a2180a6cad298f65b7a3e861c2616b6ffd4165ec22f + manager: conda + name: screen + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/screen-4.8.0-he28a2e2_0.tar.bz2 + version: 4.8.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: d453b98d9c83e71da0741bb0ff4d76bc + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + manager: conda + name: tk + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + version: 8.6.13 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-xextproto: '' + hash: + md5: 65ad6e1eb4aed2b0611855aff05e04f6 + sha256: 5d2af1b40f82128221bace9466565eca87c97726bb80bbfcd03871813f3e1876 + manager: conda + name: xorg-fixesproto + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2 + version: '5.0' +- category: main + dependencies: + libgcc-ng: '>=12' + libuuid: '>=2.38.1,<3.0a0' + xorg-libice: '>=1.1.1,<2.0a0' + hash: + md5: 93ee23f12bc2e684548181256edd2cf6 + sha256: 089ad5f0453c604e18985480218a84b27009e9e6de9a0fa5f4a20b8778ede1f1 + manager: conda + name: xorg-libsm + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda + version: 1.2.4 +- category: main + dependencies: + libgcc-ng: '>=12' + libzlib: 1.2.13 hd590300_5 + hash: + md5: 68c34ec6149623be41a1933ab996a209 + sha256: 9887a04d7e7cb14bd2b52fa01858f05a6d7f002c890f618d9fcd864adbfecb1b + manager: conda + name: zlib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda + version: 1.2.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 04b88013080254850d6c01ed54810589 + sha256: 607cbeb1a533be98ba96cf5cdf0ddbb101c78019f1fda063261871dad6248609 + manager: conda + name: zstd + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda + version: 1.5.5 +- category: main + dependencies: + libgcc-ng: '>=12' + m4: '' + perl: 5.* + hash: + md5: 50cabb1aee157a18082c7c92cc4b3143 + sha256: 04868bf7a2737af8c8a828b2c4b59653180a91da9c3ece77bae4e429a1b84cc1 + manager: conda + name: autoconf + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/autoconf-2.71-pl5321h2b4cb7a_1.conda + version: '2.71' +- category: main + dependencies: + gcc_impl_linux-64: '>=11.4.0,<11.4.1.0a0' + hash: + md5: 42003d7074d4daaf287d19987cd927bf + sha256: 2c30ddc6cb51a03fb5f671f55eaabcb9208d6ce701e6de2234518eec43a6f2d1 + manager: conda + name: conda-gcc-specs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-11.4.0-h240829a_3.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libpng: '>=1.6.39,<1.7.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 9ae35c3d96db2c94ce0cef86efdfa2cb + sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + manager: conda + name: freetype + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + version: 2.12.1 +- category: main + dependencies: + gcc_impl_linux-64: 11.4.0.* + hash: + md5: 0c8d100583c5fd6d20cd5307aaedaf0d + sha256: b515e9222a8af974024b02c7265bed8e4edf912707a5a8fc207cbc8bc2ac0bff + manager: conda + name: gcc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-11.4.0-h7baecda_2.conda + version: 11.4.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libidn2: '>=2,<3.0a0' + libstdcxx-ng: '>=12' + libtasn1: '>=4.19.0,<5.0a0' + nettle: '>=3.9.1,<3.10.0a0' + p11-kit: '>=0.24.1,<0.25.0a0' + hash: + md5: 33eded89024f21659b1975886a4acf70 + sha256: 52d824a5d2b8a5566cd469cae6ad6920469b5a15b3e0ddc609dd29151be71be2 + manager: conda + name: gnutls + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda + version: 3.7.9 +- category: main + dependencies: + gcc_impl_linux-64: 11.4.0 h7aa1c59_3 + libstdcxx-devel_linux-64: 11.4.0 h922705a_103 + sysroot_linux-64: '' + hash: + md5: dbee4be21eb6dbf596afddf60ff120bf + sha256: 424d9989ea82e6777e569de6873cc56229a8982e274409c344473ad89bb7bbb7 + manager: conda + name: gxx_impl_linux-64 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-11.4.0-h7aa1c59_3.conda + version: 11.4.0 +- category: main + dependencies: + keyutils: '>=1.6.1,<2.0a0' + libedit: '>=3.1.20191231,<4.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + openssl: '>=3.1.2,<4.0a0' + hash: + md5: cd95826dbd331ed1be26bdf401432844 + sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 + manager: conda + name: krb5 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda + version: 1.21.2 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libgcc-ng: '>=12' + libxml2: '>=2.9.14,<3.0.0a0' + libzlib: '>=1.2.12,<1.3.0a0' + lz4-c: '>=1.9.3,<1.10.0a0' + lzo: '>=2.10,<3.0a0' + openssl: '>=3.0.3,<4.0a0' + xz: '>=5.2.5,<6.0.0a0' + zstd: '>=1.5.2,<1.6.0a0' + hash: + md5: c0c3973a9f2df3e1a408e3205d86a88d + sha256: b67ff7262422ef04bfa1056c5ef10eba4d64773f40bb34314e0d492f58e726e7 + manager: conda + name: libarchive + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.5.2-hada088e_3.tar.bz2 + version: 3.5.2 +- category: main + dependencies: + gettext: '>=0.21.1,<1.0a0' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + pcre2: '>=10.42,<10.43.0a0' + hash: + md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 + sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 + manager: conda + name: libglib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda + version: 2.78.3 +- category: main + dependencies: + lerc: '>=4.0.0,<5.0a0' + libdeflate: '>=1.19,<1.20.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libstdcxx-ng: '>=12' + libwebp-base: '>=1.3.2,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + xz: '>=5.2.6,<6.0a0' + zstd: '>=1.5.5,<1.6.0a0' + hash: + md5: 55ed21669b2015f77c180feb1dd41930 + sha256: 45158f5fbee7ee3e257e6b9f51b9f1c919ed5518a94a9973fe7fa4764330473e + manager: conda + name: libtiff + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-ha9c0a0a_2.conda + version: 4.6.0 +- category: main + dependencies: + gmp: '>=6.2.1,<7.0a0' + libgcc-ng: '>=12' + mpfr: '>=4.1.0,<5.0a0' + hash: + md5: 289c71e83dc0daa7d4c81f04180778ca + sha256: 2f88965949ba7b4b21e7e5facd62285f7c6efdb17359d1b365c3bb4ecc968d29 + manager: conda + name: mpc + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.3.1-hfe3b2da_0.conda + version: 1.3.1 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-64: '>=2.36.1' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.44.2,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + openssl: '>=3.2.0,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.13,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + hash: + md5: ed38140af93f81319ebc472fbcf16cca + sha256: 4234c8e301737aa245d12c8fb44a4128005795e42883977c29cca3f34c71a1eb + manager: conda + name: python + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_1_cpython.conda + version: 3.10.13 +- category: main + dependencies: + libgcc-ng: '>=12' + libsqlite: 3.44.2 h2797004_0 + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + readline: '>=8.2,<9.0a0' + hash: + md5: 4f2892c672829693fd978d065db4e8be + sha256: bae479520fe770fe11996b4c240923ed097f851fbd2401d55540e551c9dbbef7 + manager: conda + name: sqlite + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.44.2-h2c6b66d_0.conda + version: 3.44.2 +- category: main + dependencies: + libgcc-ng: '>=12' + libxcb: '>=1.15,<1.16.0a0' + xorg-kbproto: '' + xorg-xextproto: '>=7.3.0,<8.0a0' + xorg-xproto: '' + hash: + md5: 49e482d882669206653b095f5206c05b + sha256: 7a02a7beac472ae2759498550b5fc5261bf5be7a9a2b4648a3f67818a7bfefcf + manager: conda + name: xorg-libx11 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.7-h8ee46fc_0.conda + version: 1.8.7 +- category: main + dependencies: + python: '>=3.9' + hash: + md5: def531a3ac77b7fb8c21d17bb5d0badb + sha256: fd39ad2fabec1569bbb0dfdae34ab6ce7de6ec09dcec8638f83dad0373594069 + manager: conda + name: alabaster + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda + version: 0.7.16 +- category: main + dependencies: + python: '' + hash: + md5: 5f095bc6454094e96f146491fd03633b + sha256: ae9fb8f68281f84482f2c234379aa12405a9e365151d43af20b3ae1f17312111 + manager: conda + name: appdirs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 + version: 1.4.4 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: 0dc2fce00a160271714647c019e3a8a8 + sha256: e030c0993ef56def50fb3b0262a98ba17295c83b6c696748add22aee406b7bd9 + manager: conda + name: archspec + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.2-pyhd8ed1ab_0.conda + version: 0.2.2 +- category: main + dependencies: + python: ==2.7.*|>=3.7 + hash: + md5: 56febe65315cc388a5d20adf2b39a74d + sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 + manager: conda + name: boltons + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.1.1-pyhd8ed1ab_0.conda + version: 23.1.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 1f95722c94f00b69af69a066c7433714 + sha256: e22268d81905338570786921b3def88e55f9ed6d0ccdd17d9fbae31a02fbef69 + manager: conda + name: brotli-python + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda + version: 1.1.0 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: 5dfee17f24e2dfd18d7392b48c9351e2 + sha256: 9b193a4e483c4d0004bc5b88fac7a02516b6311137ab61b8db85aa9741422e35 + manager: conda + name: cachy + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cachy-0.3.0-pyhd8ed1ab_1.tar.bz2 + version: 0.3.0 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 2011bcf45376341dd1d690263fdbc789 + sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + manager: conda + name: certifi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + version: 2023.11.17 +- category: main + dependencies: + python: '>=3.6.1' + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + manager: conda + name: cfgv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + version: 3.3.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 7f4a9e3fcff3f6356ae99244a014da6a + sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9 + manager: conda + name: charset-normalizer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + version: 3.3.2 +- category: main + dependencies: + __unix: '' + python: '>=3.8' + hash: + md5: f3ad426304898027fc619827ff428eca + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + manager: conda + name: click + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + version: 8.1.7 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + manager: conda + name: colorama + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + version: 0.4.6 +- category: main + dependencies: + python: '>=3.6,<4.0' + hash: + md5: 709a2295dd907bb34afb57d54320642f + sha256: 2f05954a3faf0700c14c1deddc085385160ee32abe111699c78d9cb277e915cc + manager: conda + name: crashtest + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/crashtest-0.4.1-pyhd8ed1ab_0.tar.bz2 + version: 0.4.1 +- category: main + dependencies: + expat: '>=2.4.2,<3.0a0' + libgcc-ng: '>=9.4.0' + libglib: '>=2.70.2,<3.0a0' + hash: + md5: ecfff944ba3960ecb334b9a2663d708d + sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + manager: conda + name: dbus + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + version: 1.13.6 +- category: main + dependencies: + python: 2.7|>=3.6 + hash: + md5: db16c66b759a64dc5183d69cc3745a52 + sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e + manager: conda + name: distlib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda + version: 0.3.8 +- category: main + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: c159dcd29bbd80b187b1c5d5f73cc971 + sha256: 85669183fc376d4f7f8293474bc41bf9def0a9761282d6cc79ae98011e997ae2 + manager: conda + name: docutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py310hff52083_3.conda + version: 0.20.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 0c1729b74a8152fde6a38ba0a2ab9f45 + sha256: 4d742d91412d1f163e5399d2b50c5d479694ebcd309127abb549ca3977f89d2b + manager: conda + name: filelock + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.13.1-pyhd8ed1ab_0.conda + version: 3.13.1 +- category: main + dependencies: + expat: '>=2.5.0,<3.0a0' + freetype: '>=2.12.1,<3.0a0' + libgcc-ng: '>=12' + libuuid: '>=2.32.1,<3.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 0f69b688f52ff6da70bccb7ff7001d1d + sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 + manager: conda + name: fontconfig + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + version: 2.14.2 +- category: main + dependencies: + gcc: 11.4.0.* + gxx_impl_linux-64: 11.4.0.* + hash: + md5: 4821dd86fa505a0d5b6aacd28ed8291f + sha256: e07c2da262b374fc9aad422a4927660ef96aec6d1445c7673a6ba58a445523a5 + manager: conda + name: gxx + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-11.4.0-h7baecda_2.conda + version: 11.4.0 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: 1a76f09108576397c41c0b0c5bd84134 + sha256: 6ee4c986d69ce61e60a20b2459b6f2027baeba153f0a64995fd3cb47c2cc7e07 + manager: conda + name: idna + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.6-pyhd8ed1ab_0.conda + version: '3.6' +- category: main + dependencies: + python: '>=3.4' + hash: + md5: 7de5386c8fea29e76b303f37dde4c352 + sha256: c2bfd7043e0c4c12d8b5593de666c1e81d67b83c474a0a79282cc5c4ef845460 + manager: conda + name: imagesize + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 + version: 1.4.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 9800ad1699b42612478755a2d26c722d + sha256: 16639759b811866d63315fe1391f6fb45f5478b823972f4d3d9f0392b7dd80b8 + manager: conda + name: jeepney + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + version: 0.8.0 +- category: main + dependencies: + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 08ec1463dbc5c806a32fc431874032ca + sha256: 316db08863469a56cdbfd030de5a2cc11ec7649ed7c50eff507e9caa0070ccaa + manager: conda + name: jsonpointer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-2.4-py310hff52083_3.conda + version: '2.4' +- category: main + dependencies: + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + hash: + md5: 51bb7010fc86f70eee639b4bb7a894f5 + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + manager: conda + name: lcms2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + version: '2.16' +- category: main + dependencies: + krb5: '>=1.21.1,<1.22.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: d4529f4dff3057982a7617c7ac58fde3 + sha256: bc67b9b21078c99c6bd8595fe7e1ed6da1f721007726e717f0449de7032798c4 + manager: conda + name: libcups + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda + version: 2.3.3 +- category: main + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libgcc-ng: '>=12' + libnghttp2: '>=1.58.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' + hash: + md5: 7144d5a828e2cae218e0e3c98d8a0aeb + sha256: 00a6bea5ff90ca58eeb15ebc98e08ffb88bddaff27396bb62640064f59d29cf0 + manager: conda + name: libcurl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.5.0-hca28451_0.conda + version: 8.5.0 +- category: main + dependencies: + gnutls: '>=3.7.8,<3.8.0a0' + libgcc-ng: '>=12' + hash: + md5: 20e3667699ceaae97d6ba110a098e8f8 + sha256: 8530794bb59332eefea6af1e7e3e7289a5fe40d2c4d265357af72b67ff6ee38e + manager: conda + name: libmicrohttpd + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-0.9.77-h97afed2_0.conda + version: 0.9.77 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 76cd8db42baacfc94aa4d3a2b8e9e453 + sha256: 270d57657ff5cdc5bd8820ab1caf04ed4e7682605c85f4b7a4ff3f7b1c4beaef + manager: conda + name: markupsafe + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py310h2372a71_0.conda + version: 2.1.4 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: d5c98e9706fdc5328d49a9bf2ce5fb42 + sha256: 9e49e9484ff279453f0b55323a3f0c7cb97440c74f69eecda1f4ad29fae5cd3c + manager: conda + name: more-itertools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.2.0-pyhd8ed1ab_0.conda + version: 10.2.0 +- category: main + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: dc5263dcaa1347e5a456ead3537be27d + sha256: a5c7612029e3871b0af0bd69e8ee1545d3deb93b5bec29cf1bf72522375fda31 + manager: conda + name: msgpack-python + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.7-py310hd41b1e2_0.conda + version: 1.0.7 +- category: main + dependencies: + python: '>=3.9' + hash: + md5: 425fce3b531bed6ec3c74fab3e5f0a1c + sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d + manager: conda + name: networkx + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda + version: 3.2.1 +- category: main + dependencies: + libgcc-ng: '>=12' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libtiff: '>=4.6.0,<4.7.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + hash: + md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 + sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a + manager: conda + name: openjpeg + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda + version: 2.5.0 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + manager: conda + name: packaging + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + version: '23.2' +- category: main + dependencies: + python: '>=2.7' + hash: + md5: a4eea5bff523f26442405bc5d1f52adb + sha256: 9153f0f38c76a09da7688a61fdbf8f3d7504e2326bef53e4ec20d994311b15bd + manager: conda + name: pastel + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pastel-0.2.1-pyhd8ed1ab_0.tar.bz2 + version: 0.2.1 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: be1e9f1c65a1ed0f2ae9352fec99db64 + sha256: 7ea5a5af62a15376d9f4f9f3c134874d0b0710f39be719e849b7fa9ca8870502 + manager: conda + name: pkginfo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.9.6-pyhd8ed1ab_0.conda + version: 1.9.6 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + manager: conda + name: platformdirs + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + version: 4.1.0 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + manager: conda + name: pluggy + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + version: 1.3.0 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 0adaac9a86d59adae2bc86b3cdef2df1 + sha256: ea7faba72a38b1d9e799294ea270916d2ea3f4a491df06a4d5a55347f3a036ce + manager: conda + name: pycosat + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h2372a71_0.conda + version: 0.6.6 +- category: main + dependencies: + python: ==2.7.*|>=3.4 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + manager: conda + name: pycparser + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + version: '2.21' +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 140a7f159396547e9799aa98f9f0742e + sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 + manager: conda + name: pygments + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.17.2-pyhd8ed1ab_0.conda + version: 2.17.2 +- category: main + dependencies: + python: '>=3.3' + hash: + md5: edf8651c4379d9d1495ad6229622d150 + sha256: 50bd91767686bfe769e50a5a1b883e238d944a6163fea43e7c0beaac54ca674f + manager: conda + name: pylev + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pylev-1.4.0-pyhd8ed1ab_0.tar.bz2 + version: 1.4.0 +- category: main + dependencies: + __unix: '' + python: '>=3.8' + hash: + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + manager: conda + name: pysocks + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + version: 1.7.1 +- category: main + dependencies: + python: '>=3.6' + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + manager: conda + name: pytz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + version: 2023.3.post1 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + yaml: '>=0.2.5,<0.3.0a0' + hash: + md5: bb010e368de4940771368bc3dc4c63e7 + sha256: aa78ccddb0a75fa722f0f0eb3537c73ee1219c9dd46cea99d6b9eebfdd780f3d + manager: conda + name: pyyaml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda + version: 6.0.1 +- category: main + dependencies: + __glibc: '>=2.17,<3.0.a0' + expat: '>=2.5.0,<3.0a0' + gmp: '>=6.2.1,<7.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + mpc: '>=1.3.1,<2.0a0' + mpfr: '>=4.1.0,<5.0a0' + ncurses: '>=6.3,<7.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 85c9a0d9dd5311aaa2c5064f2c87b496 + sha256: 8716699011df2900f8f20abcec16a0c08e821cfbe7fc2dad4fc369e483d8ed49 + manager: conda + name: riscv-tools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.3-0_h1234567_ga1b1b14.conda + version: 1.0.3 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 7c9da9721ee545d57ad759f020172853 + sha256: 00c76baad0a896f6f259093ec5328ac06cf422e6528745b28ee7e5057f54668f + manager: conda + name: ruamel.yaml.clib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py310h2372a71_2.conda + version: 0.2.7 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + manager: conda + name: setuptools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + version: 69.0.3 +- category: main + dependencies: + python: '' + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + manager: conda + name: six + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + version: 1.16.0 +- category: main + dependencies: + python: '>=2' + hash: + md5: 4d22a9315e78c6827f806065957d566e + sha256: a0fd916633252d99efb6223b1050202841fa8d2d53dacca564b0ed77249d3228 + manager: conda + name: snowballstemmer + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2 + version: 2.2.0 +- category: main + dependencies: + python: '>=3.5' + hash: + md5: da1d979339e2714c30a8e806a33ec087 + sha256: d4337d83b8edba688547766fc80f1ac86d6ec86ceeeda93f376acc04079c5ce2 + manager: conda + name: sphinxcontrib-jsmath + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_0.conda + version: 1.0.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + manager: conda + name: tomli + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + version: 2.0.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 074d0ce7a6261ab8b497c3518796ef3e + sha256: 53cc436ab92d38683df1320e4468a8b978428e800195bf1c8c2460e90b0bc117 + manager: conda + name: tomlkit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.3-pyha770c72_0.conda + version: 0.12.3 +- category: main + dependencies: + python: '>=3.5' + hash: + md5: 92facfec94bc02d6ccf42e7173831a36 + sha256: 90229da7665175b0185183ab7b53f50af487c7f9b0f47cf09c184cbc139fd24b + manager: conda + name: toolz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2 + version: 0.12.0 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: b23e0147fa5f7a9380e06334c7266ad5 + sha256: 209b6788b81739d3cdc2f04ad3f6f323efd85b1a30f2edce98ab76d98079fac8 + manager: conda + name: tornado + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py310h2372a71_1.conda + version: 6.3.3 +- category: main + dependencies: + python: '>=3.10' + hash: + md5: 08316d001eca8854392cf2837828ea11 + sha256: ba49bed74ca170c5a3bf995c33a6179fd74b33abb2444f511862e7f9f57f9149 + manager: conda + name: truststore + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.8.0-pyhd8ed1ab_0.conda + version: 0.8.0 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + manager: conda + name: typing_extensions + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + version: 4.9.0 +- category: main + dependencies: + flex: '>=2.6.4,<3.0a0' + gxx_impl_linux-64: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + make: '' + perl: '' + python: '' + hash: + md5: 0b2929f84fe7d3a6117439507d5d50d9 + sha256: 1d6af07d2d19be7adc296e8b6c43bd3eb12b48d8ab8e0cec566e8f9872661813 + manager: conda + name: verilator + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/verilator-5.020-h7cd9344_0.conda + version: '5.020' +- category: main + dependencies: + python: '>=2.6' + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + manager: conda + name: webencodings + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + version: 0.5.1 +- category: main + dependencies: + python: '>=3.7' + hash: + md5: 1cdea58981c5cbc17b51973bcaddcea7 + sha256: 80be0ccc815ce22f80c141013302839b0ed938a2edb50b846cf48d8a8c1cfa01 + manager: conda + name: wheel + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.42.0-pyhd8ed1ab_0.conda + version: 0.42.0 +- category: main + dependencies: + libgcc-ng: '>=12' + xorg-libx11: '>=1.7.2,<2.0a0' + xorg-xextproto: '' + hash: + md5: 82b6df12252e6f32402b96dacc656fec + sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 + manager: conda + name: xorg-libxext + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda + version: 1.3.4 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-fixesproto: '' + xorg-libx11: '>=1.7.0,<2.0a0' + hash: + md5: e9a21aa4d5e3e5f1aed71e8cefd46b6a + sha256: 1e426a1abb774ef1dcf741945ed5c42ad12ea2dc7aeed7682d293879c3e1e4c3 + manager: conda + name: xorg-libxfixes + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2 + version: 5.0.3 +- category: main + dependencies: + libgcc-ng: '>=12' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-renderproto: '' + hash: + md5: ed67c36f215b310412b2af935bf3e530 + sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 + manager: conda + name: xorg-libxrender + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda + version: 0.9.11 +- category: main + dependencies: + libgcc-ng: '>=12' + xorg-kbproto: '' + xorg-libice: '>=1.1.1,<2.0a0' + xorg-libsm: '>=1.2.4,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-xproto: '' + hash: + md5: ae92aab42726eb29d16488924f7312cb + sha256: e7648d1efe2e858c4bc63ccf4a637c841dc971b37ded85a01be97a5e240fecfa + manager: conda + name: xorg-libxt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda + version: 1.3.0 +- category: main + dependencies: + python: '>=3.8' + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + manager: conda + name: zipp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + version: 3.17.0 +- category: main + dependencies: + python: '>=3.7' + pytz: '' + setuptools: '' + hash: + md5: 9669586875baeced8fc30c0826c3270e + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 + manager: conda + name: babel + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda + version: 2.14.0 +- category: main + dependencies: + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.0,<3.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libxcb: '>=1.15,<1.16.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + pixman: '>=0.42.2,<1.0a0' + xorg-libice: '>=1.1.1,<2.0a0' + xorg-libsm: '>=1.2.4,<2.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + zlib: '' + hash: + md5: f907bb958910dc404647326ca80c263e + sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e + manager: conda + name: cairo + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + version: 1.18.0 +- category: main + dependencies: + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + pycparser: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 45846a970e71ac98fd327da5d40a0a2c + sha256: 007e7f69ab45553b7bf11f2c1b8d3f3a13fd42997266a0d57795f41c7d38df36 + manager: conda + name: cffi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda + version: 1.16.0 +- category: main + dependencies: + click: '' + python: '>=2.7' + hash: + md5: 7c2b6931f9b3548ed78478332095c3e9 + sha256: b36e35d735ddd29d7c592eb3de4b3979e13a9f76f1b4bc939f2cb4402758d6d0 + manager: conda + name: click-default-group + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_0.conda + version: 1.2.4 +- category: main + dependencies: + pastel: '>=0.2.0,<0.3.0' + pylev: '>=1.3,<2.0' + python: '>=3.7' + hash: + md5: 02abb7b66b02e8b9f5a9b05454400087 + sha256: 2d582bc15d9116ec5467b565fb87d9034c8b56f60943e8eb69407f55f1ab5a78 + manager: conda + name: clikit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/clikit-0.6.2-pyhd8ed1ab_2.conda + version: 0.6.2 +- category: main + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libarchive: '>=3.5.2,<3.6.0a0' + libcurl: '>=7.82.0,<9.0a0' + libgcc-ng: '>=10.3.0' + libmicrohttpd: '>=0.9.75,<0.10.0a0' + libstdcxx-ng: '>=10.3.0' + libzlib: '>=1.2.11,<1.3.0a0' + sqlite: '>=3.38.2,<4.0a0' + xz: '>=5.2.5,<6.0.0a0' + zstd: '>=1.5.2,<1.6.0a0' + hash: + md5: 2e9ec0e21d51118b004f1f98e4fbf598 + sha256: bee5b4a723472cc844775a36dbdca35ecb24f40fbb162924bd8536b05930c3dc + manager: conda + name: elfutils + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.187-h989201e_0.tar.bz2 + version: '0.187' +- category: main + dependencies: + python: '' + six: '>=1.9' + webencodings: '' + hash: + md5: b2355343d6315c892543200231d7154a + sha256: 9ad06446fe9847e86cb20d220bf11614afcd2cbe9f58096f08d5d4018877bee4 + manager: conda + name: html5lib + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyh9f0ad1d_0.tar.bz2 + version: '1.1' +- category: main + dependencies: + python: '>=3.8' + zipp: '>=0.5' + hash: + md5: 746623a787e06191d80a2133e5daff17 + sha256: e72d05f171f4567004c9360a838e9d5df21e23dcfeb945066b53a6e5f754b861 + manager: conda + name: importlib-metadata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda + version: 7.0.1 +- category: main + dependencies: + more-itertools: '' + python: '>=3.7' + hash: + md5: e9f79248d30e942f7c358ff21a1790f5 + sha256: 14f5240c3834e1b784dd41a5a14392d9150dff62a74ae851f73e65d2e2bbd891 + manager: conda + name: jaraco.classes + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.3.0-pyhd8ed1ab_0.conda + version: 3.3.0 +- category: main + dependencies: + markupsafe: '>=2.0' + python: '>=3.7' + hash: + md5: e7d8df6509ba635247ff9aea31134262 + sha256: fd517b7dd3a61eca34f8a6f9f92f306397149cae1204fce72ac3d227107dafdc + manager: conda + name: jinja2 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda + version: 3.1.3 +- category: main + dependencies: + jsonpointer: '>=1.9' + python: '>=3.8' + hash: + md5: bfdb7c5c6ad1077c82a69a8642c87aff + sha256: fbb17e33ace3225c6416d1604637c1058906b8223da968cc015128985336b2b4 + manager: conda + name: jsonpatch + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda + version: '1.33' +- category: main + dependencies: + python: '' + setuptools: '' + six: '' + tornado: '' + hash: + md5: b7190e3ec3eff52839434bf4698e2d62 + sha256: 0e88f8f8abc0a641c2f3b1b306258fab87c39a95f3495e53e6b3873107da1765 + manager: conda + name: livereload + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2 + version: 2.6.3 +- category: main + dependencies: + python: 2.7|>=3.7 + setuptools: '' + hash: + md5: 2a75b296096adabbabadd5e9782e5fcc + sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd + manager: conda + name: nodeenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda + version: 1.8.0 +- category: main + dependencies: + freetype: '>=2.12.1,<3.0a0' + lcms2: '>=2.16,<3.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libtiff: '>=4.6.0,<4.7.0a0' + libwebp-base: '>=1.3.2,<2.0a0' + libxcb: '>=1.15,<1.16.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openjpeg: '>=2.5.0,<3.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + tk: '>=8.6.13,<8.7.0a0' + hash: + md5: 9ec32d0d90f7670eb29bbba18299cf29 + sha256: ddb300d69329606a9933717127880c2062e9d6539d8824b21a43ed63eb7dab4f + manager: conda + name: pillow + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py310h01dd4db_0.conda + version: 10.2.0 +- category: main + dependencies: + python: '>=3.7' + setuptools: '' + wheel: '' + hash: + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + manager: conda + name: pip + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + version: 23.3.2 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + ruamel.yaml.clib: '>=0.1.2' + setuptools: '' + hash: + md5: eb53a079577938f68e65c5f04b8ff1d1 + sha256: b9179de5e519cf83b9bbb99bdf3ca372281b213169c5d36e4a6d1de8b8d3ba05 + manager: conda + name: ruamel.yaml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.40-py310h2372a71_0.conda + version: 0.17.40 +- category: main + dependencies: + colorama: '' + python: '>=3.7' + hash: + md5: 03c97908b976498dcae97eb4e4f3149c + sha256: b61c9222af05e8c5ff27e4a4d2eb81870c21ffd7478346be3ef644b7a3759cc4 + manager: conda + name: tqdm + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda + version: 4.66.1 +- category: main + dependencies: + typing_extensions: 4.9.0 pyha770c72_0 + hash: + md5: c16524c1b7227dc80b36b4fa6f77cc86 + sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c + manager: conda + name: typing-extensions + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + version: 4.9.0 +- category: main + dependencies: + brotli-python: '>=1.0.9' + pysocks: '>=1.5.6,<2.0,!=1.5.7' + python: '>=3.7' + hash: + md5: bf61cfd2a7f212efba378167a07d4a6a + sha256: 1cc0bab65a6ad0f5a8bd7657760a4fb4e670d30377f9dab88b792977cb3687e7 + manager: conda + name: urllib3 + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda + version: 1.26.18 +- category: main + dependencies: + distlib: <1,>=0.3.7 + filelock: <4,>=3.12.2 + platformdirs: <5,>=3.9.1 + python: '>=3.8' + hash: + md5: c119653cba436d8183c27bf6d190e587 + sha256: 50827c3721a9dbf973b568709d4381add2a6552fa562f26a385c5edc16a534af + manager: conda + name: virtualenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.0-pyhd8ed1ab_0.conda + version: 20.25.0 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-inputproto: '' + xorg-libx11: '>=1.7.0,<2.0a0' + xorg-libxext: 1.3.* + xorg-libxfixes: 5.0.* + hash: + md5: e77615e5141cad5a2acaa043d1cf0ca5 + sha256: 745c1284a96b4282fe6fe122b2643e1e8c26a7ff40b733a8f4b61357238c4e68 + manager: conda + name: xorg-libxi + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2 + version: 1.7.10 +- category: main + dependencies: + python: '>=3.7' + typing-extensions: '>=4.0.0' + hash: + md5: 997c29372bdbe2afee073dff71f35923 + sha256: 3a2c98154d95cfd54daba6b7d507d31f5ba07ac2ad955c44eb041b66563193cd + manager: conda + name: annotated-types + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.6.0-pyhd8ed1ab_0.conda + version: 0.6.0 +- category: main + dependencies: + cffi: '>=1.12' + libgcc-ng: '>=12' + openssl: '>=3.1.4,<4.0a0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 8a84d96d106767c08d6154ed5c8aae2c + sha256: 493feafc2492e841d361affb0bba2e29ab41d73b8db2d58c5abdfd4ccf1d29ad + manager: conda + name: cryptography + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py310hb8475ec_1.conda + version: 41.0.7 +- category: main + dependencies: + cairo: '>=1.18.0,<2.0a0' + freetype: '>=2.12.1,<3.0a0' + graphite2: '' + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libglib: '>=2.78.1,<3.0a0' + libstdcxx-ng: '>=12' + hash: + md5: 5a6f6c00ef982a9bc83558d9ac8f64a0 + sha256: 4b55aea03b18a4084b750eee531ad978d4a3690f63019132c26c6ad26bbe3aed + manager: conda + name: harfbuzz + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda + version: 8.3.0 +- category: main + dependencies: + importlib-metadata: '>=7.0.1,<7.0.2.0a0' + hash: + md5: 4a2f43a20fa404b998859c6a470ba316 + sha256: bc362df1d4f5a04c38dff29cd9c2d0ac584f9c4b45d3e4683ee090944a38fba4 + manager: conda + name: importlib_metadata + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.1-hd8ed1ab_0.conda + version: 7.0.1 +- category: main + dependencies: + elfutils: '>=0.187,<0.188.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.12,<1.3.0a0' + hash: + md5: 5b3ed39ee3809d63d347b649de0a45f8 + manager: conda + name: libdwarf + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 + version: 0.0.0.20190110_28_ga81397fc4 +- category: main + dependencies: + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + typing-extensions: '>=4.6.0,!=4.7.0' + hash: + md5: f0f6b7e4b3d134f070288963ed4fbeee + sha256: 3bdc1ef89f9e431392aec8ed5695d8aefc7b65a014cc46934f75e87779f89745 + manager: conda + name: pydantic-core + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py310hcb5633a_1.conda + version: 2.14.6 +- category: main + dependencies: + certifi: '>=2017.4.17' + charset-normalizer: '>=2,<4' + idna: '>=2.5,<4' + python: '>=3.7' + urllib3: '>=1.21.1,<3' + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + manager: conda + name: requests + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + version: 2.31.0 +- category: main + dependencies: + cffi: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 35e87277fba9944b8a975113538bb5df + sha256: 7bcb662f8d8181d77d77605c6e176a5bc6a421025a8969c6d793fe47134285bd + manager: conda + name: ukkonen + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda + version: 1.0.1 +- category: main + dependencies: + libgcc-ng: '>=9.3.0' + xorg-inputproto: '' + xorg-libx11: '>=1.7.1,<2.0a0' + xorg-libxext: 1.3.* + xorg-libxi: 1.7.* + xorg-recordproto: '' + hash: + md5: a220b1a513e19d5cb56c1311d44f12e6 + sha256: 9a51ae2869b9a47735539dada9d85534418a765d1461c9f91fe7564f3ee75e87 + manager: conda + name: xorg-libxtst + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2 + version: 1.2.3 +- category: main + dependencies: + cffi: '>=1.11' + libgcc-ng: '>=12' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + zstd: '>=1.5.5,<1.6.0a0' + hash: + md5: 54698ba13cd3494547b289cd86a2176a + sha256: 1c1b91e5c5246b13ca25728ea6200dfd230d8ce8ca6910cd0b70fc5e43065a04 + manager: conda + name: zstandard + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py310h1275a96_0.conda + version: 0.22.0 +- category: main + dependencies: + msgpack-python: '>=0.5.2' + python: '>=3.7' + requests: '>=2.16.0' + hash: + md5: 174bd699bb5aa9e2622eb4b288276ff8 + sha256: aae7ab3a54989f9bf9273e4a17c911ba339a8b9354250bc11fb8eff2e3f4be60 + manager: conda + name: cachecontrol + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda + version: 0.13.1 +- category: main + dependencies: + python: '>=3.7' + zstandard: '>=0.15' + hash: + md5: 38253361efb303deead3eab39ae9269b + sha256: 654a2488f77bf43555787d952dbffdc5d97956ff4aa9e0414a7131bb741dcf4c + manager: conda + name: conda-package-streaming + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.9.0-pyhd8ed1ab_0.conda + version: 0.9.0 +- category: main + dependencies: + appdirs: '' + click: '>=5.1' + filelock: '' + python: '>=3.7' + requests: '>=2' + hash: + md5: c99ae3abf501990769047b4b40a98f17 + sha256: b71784b6c24d2320b2f796d074e75e7dd1be7b7fc0f719c5cf3a582270b368d6 + manager: conda + name: ensureconda + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 + version: 1.4.3 +- category: main + dependencies: + python: '>=3.6' + ukkonen: '' + hash: + md5: 93c8f8ceb83827d88deeba796f07fba7 + sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f + manager: conda + name: identify + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda + version: 2.5.33 +- category: main + dependencies: + elfutils: '>=0.187,<0.188.0a0' + libdwarf: 0.0.0.20190110_28_ga81397fc4 h753d276_0 + libgcc-ng: '>=12' + libzlib: '>=1.2.12,<1.3.0a0' + hash: + md5: 899c511688e6c41cb51c2921a8d25e63 + manager: conda + name: libdwarf-dev + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-dev-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 + version: 0.0.0.20190110_28_ga81397fc4 +- category: main + dependencies: + alsa-lib: '>=1.2.10,<1.2.11.0a0' + fontconfig: '>=2.14.2,<3.0a0' + fonts-conda-ecosystem: '' + freetype: '>=2.12.1,<3.0a0' + giflib: '>=5.2.1,<5.3.0a0' + harfbuzz: '>=8.2.1,<9.0a0' + lcms2: '>=2.15,<3.0a0' + libcups: '>=2.3.3,<2.4.0a0' + libgcc-ng: '>=12' + libjpeg-turbo: '>=3.0.0,<4.0a0' + libpng: '>=1.6.39,<1.7.0a0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + xorg-libx11: '>=1.8.6,<2.0a0' + xorg-libxext: '>=1.3.4,<2.0a0' + xorg-libxi: '' + xorg-libxrender: '>=0.9.11,<0.10.0a0' + xorg-libxt: '>=1.3.0,<2.0a0' + xorg-libxtst: '' + hash: + md5: 06cb6ddea2e4639d2d8d91626d0eba3b + sha256: 0a88fdee61322f37bae674222488fc1153f1211312028c624db3f08bfda30617 + manager: conda + name: openjdk + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-20.0.2-haa376d0_2.conda + version: 20.0.2 +- category: main + dependencies: + annotated-types: '>=0.4.0' + pydantic-core: 2.14.6 + python: '>=3.7' + typing-extensions: '>=4.6.1' + hash: + md5: 3569001fd8b37e542aaefdf5de124e19 + sha256: 07ec778cbf17737b740f0547fb5cba91a7bff52945fe637287458e4119c58ffe + manager: conda + name: pydantic + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda + version: 2.5.3 +- category: main + dependencies: + cryptography: '>=41.0.5,<42' + python: '>=3.7' + hash: + md5: 7819533e674dbbc51468f3228b9b1bb6 + sha256: f7e04c4a49b1593140231d70801e2204e314e26d7141bfbdc8089d04114c0010 + manager: conda + name: pyopenssl + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.3.0-pyhd8ed1ab_0.conda + version: 23.3.0 +- category: main + dependencies: + cryptography: '' + dbus: '' + jeepney: '>=0.6' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + hash: + md5: 4ccc40bc490af727cfbf3e7f0289d9bd + sha256: a2b7f56b07b6e95bd05fd47ebe5b2cfc8af70ccd04994623f6508e90d3b5f857 + manager: conda + name: secretstorage + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py310hff52083_2.conda + version: 3.3.3 +- category: main + dependencies: + cachecontrol: 0.13.1 pyhd8ed1ab_0 + filelock: '>=3.8.0' + python: '>=3.7' + hash: + md5: 8c4781ca0893cff3a64423954ce234a1 + sha256: 7fd3cd4a667da284ae3aad9b8cb4d592099bc02ed6566cbae00bd8c0b0604e85 + manager: conda + name: cachecontrol-with-filecache + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda + version: 0.13.1 +- category: main + dependencies: + conda-package-streaming: '>=0.9.0' + python: '>=3.7' + zstandard: '>=0.15' + hash: + md5: 8a3ae7f6318376aa08ea753367bb7dd6 + sha256: 9a221808405d813d8c555efce6944379b907d36d79e77d526d573efa6b996d26 + manager: conda + name: conda-package-handling + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.2.0-pyh38be061_0.conda + version: 2.2.0 +- category: main + dependencies: + importlib_metadata: '>=4.11.4' + jaraco.classes: '' + jeepney: '>=0.4.2' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + secretstorage: '>=3.2' + hash: + md5: e710fd8e57356a64cace034413da9cb3 + sha256: 886a764e4bc2cfaabf2ea0a98461fbd526affd99c984a2789770eca43dd17c9b + manager: conda + name: keyring + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.0-py310hff52083_0.conda + version: 24.3.0 +- category: main + dependencies: + cfgv: '>=2.0.0' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + python: '>=3.9' + pyyaml: '>=5.1' + virtualenv: '>=20.10.0' + hash: + md5: 473a7cfca197da0a10cff3f6dded7d4b + sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 + manager: conda + name: pre-commit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda + version: 3.6.0 +- category: main + dependencies: + __unix: '' + openjdk: '>=8' + hash: + md5: b6f6329c1a8a1efaaf16024e545335f5 + sha256: f5588175723814ad220d6dad75771d7139c293df802ce871ab2b89a629250013 + manager: conda + name: sbt + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sbt-1.9.7-hd8ed1ab_0.conda + version: 1.9.7 +- category: main + dependencies: + archspec: '' + boltons: '>=23.0.0' + conda-package-handling: '>=2.2.0' + jsonpatch: '>=1.32' + packaging: '>=23.0' + pluggy: '>=1.0.0' + pycosat: '>=0.6.3' + pyopenssl: '>=16.2.0' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* *_cp310 + requests: '>=2.27.0,<3' + ruamel.yaml: '>=0.11.14,<0.18' + setuptools: '>=60.0.0' + tqdm: '>=4' + truststore: '>=0.8.0' + hash: + md5: 43a598dea1812d249e2d6b8c12e8634f + sha256: 7c9916213879ded1142f95f058ec52da512bae7994105a35470aea66204c1683 + manager: conda + name: conda + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/conda-23.9.0-py310hff52083_2.conda + version: 23.9.0 +- category: main + dependencies: + cachecontrol-with-filecache: '>=0.12.9' + cachy: '>=0.3.0' + click: '>=8.0' + click-default-group: '' + clikit: '>=0.6.2' + crashtest: '>=0.3.0' + ensureconda: '>=1.3' + html5lib: '>=1.0' + importlib-metadata: '>=1.7.0' + jinja2: '' + keyring: '>=21.2.0' + packaging: '>=20.4' + pkginfo: '>=1.4' + pydantic: '>=1.8.1' + python: '>=3.6' + pyyaml: '>=5.1' + requests: '>=2.18' + ruamel.yaml: '' + tomli: '' + tomlkit: '>=0.7.0' + toolz: '>=0.12.0,<1.0.0' + typing_extensions: '' + virtualenv: '>=20.0.26' + hash: + md5: e9ecdfe3e7d4f76d67afd65b02a621a0 + sha256: fe66e9970d9ad03e215430f700af994e3ed67d301cd7cf9281f3b8114f50eccc + manager: conda + name: conda-lock + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-1.4.0-pyhd8ed1ab_2.conda + version: 1.4.0 +- category: main + dependencies: + colorama: '' + conda: '' + networkx: '' + python: '>=3.6' + hash: + md5: 184216409957e082712d750862782903 + sha256: 54e9cf114ca4eaeda91b5bb11a09d4391ba4be8a4fb2911259fc7dc2ec636054 + manager: conda + name: conda-tree + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.1.0-pyhd8ed1ab_2.conda + version: 1.1.0 +- category: main + dependencies: + __unix: '' + conda: '>=4.6' + conda-standalone: '' + jinja2: '' + pillow: '>=3.1' + python: '>=3.8' + ruamel.yaml: '>=0.11.14,<0.19' + hash: + md5: d8cb2dfbc95cd06af84d11bf16572270 + sha256: 78a2b1abf48bdb34a9902caa7bff273ed001758f0845ef0508b347d85c21ca2b + manager: conda + name: constructor + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.6.0-pyh55f8243_0.conda + version: 3.6.0 +- category: main + dependencies: + livereload: '>=2.3.0' + python: '>=3.6' + sphinx: '' + hash: + md5: 1909f784dc37b4ab97afe2c95aeeabaa + sha256: 1c07ab809254c2454c5417c5be01af2dc8bcaae2f3315a0a9d8812997ede8297 + manager: conda + name: sphinx-autobuild + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-autobuild-2021.3.14-pyhd8ed1ab_0.tar.bz2 + version: 2021.3.14 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: 611a35a27914fac3aa37611a6fe40bb5 + sha256: 710013443a063518d587d2af82299e92ab6d6695edf35a676ac3a0ccc9e3f8e6 + manager: conda + name: sphinxcontrib-applehelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda + version: 1.0.8 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: d7e4954df0d3aea2eacc7835ad12671d + sha256: 63a6b60653ef13a6712848f4b3c4b713d4b564da1dae571893f1a3659cde85f3 + manager: conda + name: sphinxcontrib-devhelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda + version: 1.0.6 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: 7e1e7437273682ada2ed5e9e9714b140 + sha256: 512f393cfe34cb3de96ade7a7ad900d6278e2087a1f0e5732aa60fadee396d99 + manager: conda + name: sphinxcontrib-htmlhelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda + version: 2.0.5 +- category: main + dependencies: + python: '>=2.7' + sphinx: '>=1.8' + hash: + md5: 914897066d5873acfb13e75705276ad1 + sha256: 2e5f16a2d58f9a31443ffbb8ce3852cfccf533a6349045828cd2e994ef0679ca + manager: conda + name: sphinxcontrib-jquery + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_0.conda + version: '4.1' +- category: main + dependencies: + docutils: <0.21 + python: '>=3.6' + sphinx: '>=5,<8' + sphinxcontrib-jquery: '>=4,<5' + hash: + md5: baf6d9a33df1a789ca55e3b404c7ea28 + sha256: 8545c806d03092fd0236db6663c88036eab2dc99e34c91cd36c0704db03b148a + manager: conda + name: sphinx_rtd_theme + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-2.0.0-pyha770c72_0.conda + version: 2.0.0 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: 26acae54b06f178681bfb551760f5dd1 + sha256: dd35b52f056c39081cd0ae01155174277af579b69e5d83798a33e9056ec78d63 + manager: conda + name: sphinxcontrib-qthelp + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda + version: 1.0.7 +- category: main + dependencies: + alabaster: '>=0.7,<0.8' + babel: '>=2.9' + colorama: '>=0.4.5' + docutils: '>=0.18.1,<0.21' + imagesize: '>=1.3' + importlib-metadata: '>=4.8' + jinja2: '>=3.0' + packaging: '>=21.0' + pygments: '>=2.14' + python: '>=3.9' + requests: '>=2.25.0' + snowballstemmer: '>=2.0' + sphinxcontrib-applehelp: '' + sphinxcontrib-devhelp: '' + sphinxcontrib-htmlhelp: '>=2.0.0' + sphinxcontrib-jsmath: '' + sphinxcontrib-qthelp: '' + sphinxcontrib-serializinghtml: '>=1.1.9' + hash: + md5: bbfd1120d1824d2d073bc65935f0e4c0 + sha256: 665d1fe6d20c6cc672ff20e6ebb405860f878b487d3d8d86a5952733fb7bbc42 + manager: conda + name: sphinx + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinx-7.2.6-pyhd8ed1ab_0.conda + version: 7.2.6 +- category: main + dependencies: + python: '>=3.9' + sphinx: '>=5' + hash: + md5: e507335cb4ca9cff4c3d0fa9cdab255e + sha256: bf80e4c0ff97d5e8e5f6db0831ba60007e820a3a438e8f1afd868aa516d67d6f + manager: conda + name: sphinxcontrib-serializinghtml + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda + version: 1.1.10 +version: 1 diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index b2e7cc5b..8a594569 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,13 +21,14 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: 49806d76b27927ce173d3b40bc3cb7a27b124e37fca50b32d653588b3f5a2a9a + linux-64: e6f7ea5e7ade6d5e422a65ad3ec62aabcadde05413e29340a1a234e7806c2764 platforms: - linux-64 sources: - - /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml - - /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml - - /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml package: - category: main dependencies: {} @@ -2157,7 +2158,7 @@ package: version: 1.7.0 - category: main dependencies: - python: 2.7.*|>=3.7 + python: ==2.7.*|>=3.7 hash: md5: 56febe65315cc388a5d20adf2b39a74d sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 @@ -2503,16 +2504,16 @@ package: version: 11.4.0 - category: main dependencies: - python: '>=3.9,<3.10.0a0' - python_abi: 3.9.* *_cp39 + __unix: '' + python: '>=3.8' hash: - md5: d4b34ce06e172f5f18c39be4aed98fd8 - sha256: d259113b1a2eeea896ea3062cea1325fd5ab979a1186b209b7bdb8e066b09156 + md5: 2ed1fe4b9079da97c44cfe9c2e5078fd + sha256: cd93d5d4b1d98f7ce76a8658c35de9c63e17b3a40e52f40fa2f459e0da83d0b1 manager: conda name: humanfriendly optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/humanfriendly-10.0-py39hf3d152e_5.conda + url: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyhd8ed1ab_6.conda version: '10.0' - category: main dependencies: @@ -3027,7 +3028,7 @@ package: version: 0.6.6 - category: main dependencies: - python: 2.7.*|>=3.4 + python: ==2.7.*|>=3.4 hash: md5: 076becd9e05608f8dc72757d5f3a91ff sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc @@ -3087,16 +3088,16 @@ package: version: 3.1.1 - category: main dependencies: - python: '>=3.9,<3.10.0a0' - python_abi: 3.9.* *_cp39 + __unix: '' + python: '>=3.8' hash: - md5: d34b97a2386932b97c7cb80916a673e7 - sha256: 42d46baeab725d3c70d22a4258549e9f0f1a72b740166cd9c3b394c4369cb306 + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b manager: conda name: pysocks optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_5.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 version: 1.7.1 - category: main dependencies: @@ -4645,14 +4646,14 @@ package: pip: '' python: '>=3.7,<4.0' hash: - md5: aaafd70a6934549210865f558a0eee96 - sha256: 4e695e4d83cfc4ffd557cc2bdbecc0cedb9df8831d1a415b8e8c0e5f96bc6b5f + md5: a699f404daa279b4cb41a047cf70c94a + sha256: 8cf9f34336ef7af3479a03682e171c6a2c5837cb86bf9e4c2582b75cf3a27ab9 manager: conda name: types-awscrt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.20.0-pyhd8ed1ab_0.conda - version: 0.20.0 + url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.20.2-pyhd8ed1ab_0.conda + version: 0.20.2 - category: main dependencies: cffi: '' @@ -5188,13 +5189,13 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 8376298ea81d582557485a166528a2e7 - sha256: ededf952f2bb95033fea0969e01e048675e0738a5277fb145810af859be05366 + md5: 42415f0a777728616a1014d6c2d03570 + sha256: 94a448e74b118c6cfa22fb2ed950dd5810612ccd76626a8471b0e74595a5c221 manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.12-py39hf3d152e_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.12-py39hf3d152e_1.conda version: 2.15.12 - category: main dependencies: diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index 0e9458ce..fdb4f677 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -5,11 +5,11 @@ # available, unless you explicitly update the lock file. # # Install this environment as "YOURENV" with: -# conda-lock install -n YOURENV --file conda-requirements-riscv-tools-linux-64-lean.conda-lock.yaml +# conda-lock install -n YOURENV --file conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml # To update a single package to the latest version compatible with the version constraints in the source: -# conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64-lean.conda-lock.yaml --update PACKAGE +# conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-lean.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64-lean.conda-lock.yaml +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml metadata: channels: - url: ucb-bar @@ -25,7 +25,7 @@ metadata: platforms: - linux-64 sources: - - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-lean.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml package: diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 955734f9..bf73b156 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,13 +21,14 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: acaac148231e584874fde649a99f5d9224edcab7975a1aa028bfe6800fb61ec0 + linux-64: eb07751579f0515bcd5e4dfff7131bf35f78430a1281125bb17f2a1c52684521 platforms: - linux-64 sources: - - /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml - - /scratch/abejgonza/cy-circt/conda-reqs/docs.yaml - - /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml package: - category: main dependencies: {} @@ -2157,7 +2158,7 @@ package: version: 1.7.0 - category: main dependencies: - python: 2.7.*|>=3.7 + python: ==2.7.*|>=3.7 hash: md5: 56febe65315cc388a5d20adf2b39a74d sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 @@ -2486,16 +2487,16 @@ package: version: 11.4.0 - category: main dependencies: - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + __unix: '' + python: '>=3.8' hash: - md5: d8c02e0916d3894c9f8bbe26418c0488 - sha256: 995c56f883626a41bf9f7bb67c94f61103e8876546c2886925945a27a9b28eba + md5: 2ed1fe4b9079da97c44cfe9c2e5078fd + sha256: cd93d5d4b1d98f7ce76a8658c35de9c63e17b3a40e52f40fa2f459e0da83d0b1 manager: conda name: humanfriendly optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/humanfriendly-10.0-py310hff52083_5.conda + url: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyhd8ed1ab_6.conda version: '10.0' - category: main dependencies: @@ -3010,7 +3011,7 @@ package: version: 0.6.6 - category: main dependencies: - python: 2.7.*|>=3.4 + python: ==2.7.*|>=3.4 hash: md5: 076becd9e05608f8dc72757d5f3a91ff sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc @@ -3070,16 +3071,16 @@ package: version: 3.1.1 - category: main dependencies: - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + __unix: '' + python: '>=3.8' hash: - md5: 378f2260e871f3ea46c6fa58d9f05277 - sha256: cb6e4821234cee05acd1996cef88e40dfc2d5ab12cf12c5b1d6ed9118f7f41a7 + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b manager: conda name: pysocks optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py310hff52083_5.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 version: 1.7.1 - category: main dependencies: @@ -4646,14 +4647,14 @@ package: pip: '' python: '>=3.7,<4.0' hash: - md5: aaafd70a6934549210865f558a0eee96 - sha256: 4e695e4d83cfc4ffd557cc2bdbecc0cedb9df8831d1a415b8e8c0e5f96bc6b5f + md5: a699f404daa279b4cb41a047cf70c94a + sha256: 8cf9f34336ef7af3479a03682e171c6a2c5837cb86bf9e4c2582b75cf3a27ab9 manager: conda name: types-awscrt optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.20.0-pyhd8ed1ab_0.conda - version: 0.20.0 + url: https://conda.anaconda.org/conda-forge/noarch/types-awscrt-0.20.2-pyhd8ed1ab_0.conda + version: 0.20.2 - category: main dependencies: cffi: '' @@ -5189,13 +5190,13 @@ package: ruamel.yaml.clib: '>=0.2.0,<=0.2.7' urllib3: '>=1.25.4,<1.27' hash: - md5: 04ce380558b5922cd12afc44b98a4352 - sha256: 9daa78cbca08953aad8c8bb5d207b719fd7db7d75976facd6e2ec81dd0c4c1f1 + md5: 5ef7b8dcc094f40102601e5e2e145da1 + sha256: dce1ad33a64336a692bd6230becb27fb1d282bb8903e82c2dad1056858c69f63 manager: conda name: awscli optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.12-py310hff52083_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.12-py310hff52083_1.conda version: 2.15.12 - category: main dependencies: diff --git a/conda-reqs/chipyard.yaml b/conda-reqs/fsim-marshal.yaml similarity index 63% rename from conda-reqs/chipyard.yaml rename to conda-reqs/fsim-marshal.yaml index 0f1fb637..ade9f9f9 100644 --- a/conda-reqs/chipyard.yaml +++ b/conda-reqs/fsim-marshal.yaml @@ -8,37 +8,6 @@ platforms: - linux-64 dependencies: - # https://conda-forge.org/feedstock-outputs/ - # filterable list of all conda-forge packages - # https://conda-forge.org/#contribute - # instructions on adding a recipe - # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications - # documentation on package_spec syntax for constraining versions - - - # handy tool for introspecting package relationships and file ownership - # see https://github.com/rvalieris/conda-tree - - conda-tree - - # bundle FireSim driver with deps into installer shell-script - - constructor - - - gcc<12 - - gxx<12 - - sysroot_linux-64=2.17 # needed to match pre-built CI XRT glibc version - - conda-gcc-specs - - binutils - - # firtool handled outside of conda - - # misc - - autoconf - - pre-commit - - readline - - coreutils - - jq - - pip - # firemarshal deps - qemu # from ucb-bar channel - https://github.com/ucb-bar/qemu-feedstock - rsync @@ -69,7 +38,6 @@ dependencies: - make - bash-completion - - sbt - ca-certificates - mosh - gmp @@ -78,7 +46,6 @@ dependencies: - zlib - vim - git - - openjdk=20 - gengetopt - libffi - expat @@ -87,12 +54,6 @@ dependencies: - cmake - graphviz - expect - - dtc - - verilator==5.020 - - screen - - elfutils - - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock - - conda-lock=1.4 # clang-format for driver coding style enforcement. - clang-format diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 185c0229..62b1c870 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -169,10 +169,6 @@ if run_step "1"; then if [ "$USE_LEAN_CONDA" = false ]; then LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64.conda-lock.yml else - if [ "$TOOLCHAIN_TYPE" != "riscv-tools" ]; then - echo "::ERROR:: Lean conda env is not supported for esp-tools" - exit 1 - fi LOCKFILE=$CONDA_LOCK_REQS/conda-requirements-$TOOLCHAIN_TYPE-linux-64-lean.conda-lock.yml fi @@ -181,7 +177,7 @@ if run_step "1"; then $CYDIR/scripts/generate-conda-lockfiles.sh exit_if_last_command_failed fi - echo "lockfile $LOCKFILE" + echo "Using lockfile: $LOCKFILE" # use conda-lock to create env conda-lock install --conda $(which conda) -p $CYDIR/.conda-env $LOCKFILE && diff --git a/scripts/generate-conda-lockfiles.sh b/scripts/generate-conda-lockfiles.sh index c5e07434..988ed1dd 100755 --- a/scripts/generate-conda-lockfiles.sh +++ b/scripts/generate-conda-lockfiles.sh @@ -18,18 +18,22 @@ for TOOLCHAIN_TYPE in riscv-tools esp-tools; do conda-lock \ --no-mamba \ --no-micromamba \ - -f "$REQS_DIR/chipyard.yaml" \ + -f "$REQS_DIR/chipyard-base.yaml" \ + -f "$REQS_DIR/fsim-marshal.yaml" \ -f "$REQS_DIR/docs.yaml" \ -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ -p linux-64 \ --lockfile $LOCKFILE -done -conda-lock \ - --no-mamba \ - --no-micromamba \ - -f "$REQS_DIR/chipyard-lean.yaml" \ - -f "$REQS_DIR/docs.yaml" \ - -f "$REQS_DIR/riscv-tools.yaml" \ - -p linux-64 \ - --lockfile $REQS_DIR/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml + LOCKFILE=$REQS_DIR/conda-lock-reqs/conda-requirements-$TOOLCHAIN_TYPE-linux-64-lean.conda-lock.yml + rm -rf $LOCKFILE + + conda-lock \ + --no-mamba \ + --no-micromamba \ + -f "$REQS_DIR/chipyard-base.yaml" \ + -f "$REQS_DIR/docs.yaml" \ + -f "$REQS_DIR/riscv-tools.yaml" \ + -p linux-64 \ + --lockfile $LOCKFILE +done From 87a45a059c1b246cb8b84fd9dc95bf2bd1338aef Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 13:23:14 -0800 Subject: [PATCH 076/105] Fix file names, move packages btw base & extended, generate lock files --- conda-reqs/chipyard-base.yaml | 17 +- ...im-marshal.yaml => chipyard-extended.yaml} | 16 +- ...nts-esp-tools-linux-64-lean.conda-lock.yml | 797 +++--------------- ...irements-esp-tools-linux-64.conda-lock.yml | 4 +- ...s-riscv-tools-linux-64-lean.conda-lock.yml | 617 +------------- ...ements-riscv-tools-linux-64.conda-lock.yml | 4 +- scripts/generate-conda-lockfiles.sh | 4 +- 7 files changed, 185 insertions(+), 1274 deletions(-) rename conda-reqs/{fsim-marshal.yaml => chipyard-extended.yaml} (82%) diff --git a/conda-reqs/chipyard-base.yaml b/conda-reqs/chipyard-base.yaml index caa9d17f..59b02ef8 100644 --- a/conda-reqs/chipyard-base.yaml +++ b/conda-reqs/chipyard-base.yaml @@ -14,15 +14,6 @@ dependencies: # instructions on adding a recipe # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications # documentation on package_spec syntax for constraining versions - - - # handy tool for introspecting package relationships and file ownership - # see https://github.com/rvalieris/conda-tree - - conda-tree - - # bundle FireSim driver with deps into installer shell-script - - constructor - - gcc<12 - gxx<12 - sysroot_linux-64=2.17 # needed to match pre-built CI XRT glibc version @@ -31,18 +22,14 @@ dependencies: # misc - autoconf - - pre-commit - - readline - coreutils - jq - pip + - make + - git - # firemarshal deps - sbt - openjdk=20 - dtc - verilator==5.020 - - screen - - elfutils - - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock - conda-lock=1.4 diff --git a/conda-reqs/fsim-marshal.yaml b/conda-reqs/chipyard-extended.yaml similarity index 82% rename from conda-reqs/fsim-marshal.yaml rename to conda-reqs/chipyard-extended.yaml index ade9f9f9..a1e87d4b 100644 --- a/conda-reqs/fsim-marshal.yaml +++ b/conda-reqs/chipyard-extended.yaml @@ -8,6 +8,17 @@ platforms: - linux-64 dependencies: + # handy tool for introspecting package relationships and file ownership + # see https://github.com/rvalieris/conda-tree + - conda-tree + + # bundle FireSim driver with deps into installer shell-script + - constructor + + # misc + - pre-commit + - readline + # firemarshal deps - qemu # from ucb-bar channel - https://github.com/ucb-bar/qemu-feedstock - rsync @@ -36,7 +47,6 @@ dependencies: - findutils - lzop - - make - bash-completion - ca-certificates - mosh @@ -45,7 +55,6 @@ dependencies: - mpc - zlib - vim - - git - gengetopt - libffi - expat @@ -70,6 +79,9 @@ dependencies: # conda environment, pip's dependency resolution can conflict with # conda and create broken environments. It's best to use the conda # packages so that the environment is consistent + - screen + - elfutils + - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock - colorama - argcomplete - python-graphviz diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml index 74bb6ac6..32407bfb 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64-lean.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-esp-tools-linux-64-lean.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-esp-tools-linux-64-lean.conda-lock.yml +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64-lean.conda-lock.yml metadata: channels: - url: ucb-bar @@ -21,13 +21,13 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: 044545ea58c6808658782a00d19615da9cb13e4dabf477a7fe1a688ddfeaf8b7 + linux-64: b3d6181ced7140e828bceb01703958b116fa5c544d3f5a8ce512f808f5ed3c35 platforms: - linux-64 sources: - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml - - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml package: - category: main dependencies: {} @@ -62,17 +62,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda version: 2023.11.17 -- category: main - dependencies: {} - hash: - md5: fd2989188c0421b101b12c4ee91a8967 - sha256: f0cb3d37b2642bf982d497d63f351dcdcd03cea1b0b175d4d3c9d13b3c022d80 - manager: conda - name: conda-standalone - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.11.0-ha770c72_1.conda - version: 23.11.0 - category: main dependencies: {} hash: @@ -164,14 +153,14 @@ package: - category: main dependencies: {} hash: - md5: 26322ec5d7712c3ded99dd656142b8ce - sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec + md5: bfe4b3259a8ac6cdf0037752904da6a7 + sha256: 7e0157e35929711e1a986c18a8bfb7a38a2209cfada16b541ebb0481f74376d6 manager: conda name: python_abi optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda - version: '3.10' + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-4_cp39.conda + version: '3.9' - category: main dependencies: {} hash: @@ -542,30 +531,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-11.4.0-h4dcbe23_3.conda version: 11.4.0 -- category: main - dependencies: - libgcc-ng: '>=12' - hash: - md5: 93840744a8552e9ebf6bb1a5dffc125a - sha256: 5bfeada0e1c6ec2574afe2d17cdbc39994d693a41431338a6cb9dfa7c4d7bfc8 - manager: conda - name: libtasn1 - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2 - version: 4.19.0 -- category: main - dependencies: - libgcc-ng: '>=9.3.0' - hash: - md5: 7245a044b4a1980ed83196176b78b73a - sha256: e88c45505921db29c08df3439ddb7f771bbff35f95e7d3103bf365d5d6ce2a6d - manager: conda - name: libunistring - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2 - version: 0.9.10 - category: main dependencies: libgcc-ng: '>=12' @@ -614,31 +579,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda version: 1.2.13 -- category: main - dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - hash: - md5: 318b08df404f9c9be5712aaa5a6f0bb0 - sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f - manager: conda - name: lz4-c - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - version: 1.9.4 -- category: main - dependencies: - libgcc-ng: '>=7.5.0' - hash: - md5: bb14fcb13341b81d5eb386423b9d2bac - sha256: 25d16e6aaa3d0b450e61d0c4fadd7c9fd17f16e2fef09b34507209342d63c9f6 - manager: conda - name: lzo - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2 - version: '2.10' - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -675,18 +615,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda version: '6.4' -- category: main - dependencies: - libgcc-ng: '>=12' - hash: - md5: 2bf1915cc107738811368afcb0993a59 - sha256: 1ef1b7efa69c7fb4e2a36a88316f307c115713698d1c12e19f55ae57c0482995 - manager: conda - name: nettle - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda - version: 3.9.1 - category: main dependencies: libgcc-ng: '>=12' @@ -954,20 +882,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 version: 3.1.20191231 -- category: main - dependencies: - gettext: '>=0.21.1,<1.0a0' - libgcc-ng: '>=12' - libunistring: '>=0,<1.0a0' - hash: - md5: 7440fbafd870b8bab68f83a064875d34 - sha256: 888848ae85be9df86f56407639c63bdce8e7651f0b2517be9bc0ac6e38b2d21d - manager: conda - name: libidn2 - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.4-h166bdaf_0.tar.bz2 - version: 2.3.4 - category: main dependencies: c-ares: '>=1.23.0,<2.0a0' @@ -1040,22 +954,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda version: '1.15' -- category: main - dependencies: - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - xz: '>=5.2.6,<6.0a0' - hash: - md5: 53e951fab78d7e3bab40745f7b3d1620 - sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 - manager: conda - name: libxml2 - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda - version: 2.12.4 - category: main dependencies: gmp: '>=6.2.1,<7.0a0' @@ -1069,20 +967,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h9458935_0.conda version: 4.2.1 -- category: main - dependencies: - libffi: '>=3.4.2,<3.5.0a0' - libgcc-ng: '>=12' - libtasn1: '>=4.18.0,<5.0a0' - hash: - md5: 56ee94e34b71742bbdfa832c974e47a8 - sha256: aa8d3887b36557ad0c839e4876c0496e0d670afe843bf5bba4a87764b868196d - manager: conda - name: p11-kit - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2 - version: 0.24.1 - category: main dependencies: bzip2: '>=1.0.8,<2.0a0' @@ -1123,19 +1007,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda version: '8.2' -- category: main - dependencies: - libgcc-ng: '>=7.5.0' - ncurses: '>=6.2,<7.0.0a0' - hash: - md5: 3b67f325fac07461f193e27a9d9c5a65 - sha256: 3c7020802fb52b946fe37a2180a6cad298f65b7a3e861c2616b6ffd4165ec22f - manager: conda - name: screen - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/screen-4.8.0-he28a2e2_0.tar.bz2 - version: 4.8.0 - category: main dependencies: libgcc-ng: '>=12' @@ -1255,23 +1126,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/gcc-11.4.0-h7baecda_2.conda version: 11.4.0 -- category: main - dependencies: - libgcc-ng: '>=12' - libidn2: '>=2,<3.0a0' - libstdcxx-ng: '>=12' - libtasn1: '>=4.19.0,<5.0a0' - nettle: '>=3.9.1,<3.10.0a0' - p11-kit: '>=0.24.1,<0.25.0a0' - hash: - md5: 33eded89024f21659b1975886a4acf70 - sha256: 52d824a5d2b8a5566cd469cae6ad6920469b5a15b3e0ddc609dd29151be71be2 - manager: conda - name: gnutls - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda - version: 3.7.9 - category: main dependencies: gcc_impl_linux-64: 11.4.0 h7aa1c59_3 @@ -1302,26 +1156,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda version: 1.21.2 -- category: main - dependencies: - bzip2: '>=1.0.8,<2.0a0' - libgcc-ng: '>=12' - libxml2: '>=2.9.14,<3.0.0a0' - libzlib: '>=1.2.12,<1.3.0a0' - lz4-c: '>=1.9.3,<1.10.0a0' - lzo: '>=2.10,<3.0a0' - openssl: '>=3.0.3,<4.0a0' - xz: '>=5.2.5,<6.0.0a0' - zstd: '>=1.5.2,<1.6.0a0' - hash: - md5: c0c3973a9f2df3e1a408e3205d86a88d - sha256: b67ff7262422ef04bfa1056c5ef10eba4d64773f40bb34314e0d492f58e726e7 - manager: conda - name: libarchive - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.5.2-hada088e_3.tar.bz2 - version: 3.5.2 - category: main dependencies: gettext: '>=0.21.1,<1.0a0' @@ -1392,30 +1226,14 @@ package: tzdata: '' xz: '>=5.2.6,<6.0a0' hash: - md5: ed38140af93f81319ebc472fbcf16cca - sha256: 4234c8e301737aa245d12c8fb44a4128005795e42883977c29cca3f34c71a1eb + md5: 255a7002aeec7a067ff19b545aca6328 + sha256: c0e800d255a771926007043d2859cbbbdb1387477ec813f085640c8887b391a2 manager: conda name: python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_1_cpython.conda - version: 3.10.13 -- category: main - dependencies: - libgcc-ng: '>=12' - libsqlite: 3.44.2 h2797004_0 - libzlib: '>=1.2.13,<1.3.0a0' - ncurses: '>=6.4,<7.0a0' - readline: '>=8.2,<9.0a0' - hash: - md5: 4f2892c672829693fd978d065db4e8be - sha256: bae479520fe770fe11996b4c240923ed097f851fbd2401d55540e551c9dbbef7 - manager: conda - name: sqlite - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.44.2-h2c6b66d_0.conda - version: 3.44.2 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.18-h0755675_1_cpython.conda + version: 3.9.18 - category: main dependencies: libgcc-ng: '>=12' @@ -1456,44 +1274,20 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 version: 1.4.4 -- category: main - dependencies: - python: '>=3.6' - hash: - md5: 0dc2fce00a160271714647c019e3a8a8 - sha256: e030c0993ef56def50fb3b0262a98ba17295c83b6c696748add22aee406b7bd9 - manager: conda - name: archspec - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.2-pyhd8ed1ab_0.conda - version: 0.2.2 -- category: main - dependencies: - python: ==2.7.*|>=3.7 - hash: - md5: 56febe65315cc388a5d20adf2b39a74d - sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 - manager: conda - name: boltons - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.1.1-pyhd8ed1ab_0.conda - version: 23.1.1 - category: main dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 1f95722c94f00b69af69a066c7433714 - sha256: e22268d81905338570786921b3def88e55f9ed6d0ccdd17d9fbae31a02fbef69 + md5: c48418c8b35f1d59ae9ae1174812b40a + sha256: e22afb19527a93da24c1108c3e91532811f9c3df64a9473989faf332c98af082 manager: conda name: brotli-python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py310hc6cd4ac_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py39h3d6467e_1.conda version: 1.1.0 - category: main dependencies: @@ -1519,18 +1313,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda version: 2023.11.17 -- category: main - dependencies: - python: '>=3.6.1' - hash: - md5: ebb5f5f7dc4f1a3780ef7ea7738db08c - sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c - manager: conda - name: cfgv - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - version: 3.3.1 - category: main dependencies: python: '>=3.7' @@ -1608,17 +1390,34 @@ package: version: 0.3.8 - category: main dependencies: - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: c159dcd29bbd80b187b1c5d5f73cc971 - sha256: 85669183fc376d4f7f8293474bc41bf9def0a9761282d6cc79ae98011e997ae2 + md5: 09a48956e1c155907fd0d626f3e80f2e + sha256: fe2b7316146a73a33fd16c637e6e82c2638e91d1b8c95560b9c477a6f3082b6d manager: conda name: docutils optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py310hff52083_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py39hf3d152e_3.conda version: 0.20.1 +- category: main + dependencies: + expat: '>=2.4.8,<3.0a0' + gmp: '>=6.2.1,<7.0a0' + libzlib: '>=1.2.12,<1.3.0a0' + mpc: '>=1.2.1,<2.0a0' + mpfr: '>=4.1.0,<5.0a0' + ncurses: '>=6.3,<7.0a0' + python_abi: 3.9.* *_cp39 + hash: + md5: ae197de48b202c65efd7a61135ac0ae5 + manager: conda + name: esp-tools + optional: false + platform: linux-64 + url: https://conda.anaconda.org/ucb-bar/linux-64/esp-tools-1.0.1-0_h1234567_g8925bf5.tar.bz2 + version: 1.0.1 - category: main dependencies: python: '>=3.7' @@ -1696,19 +1495,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 version: 0.8.0 -- category: main - dependencies: - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 08ec1463dbc5c806a32fc431874032ca - sha256: 316db08863469a56cdbfd030de5a2cc11ec7649ed7c50eff507e9caa0070ccaa - manager: conda - name: jsonpointer - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-2.4-py310hff52083_3.conda - version: '2.4' - category: main dependencies: libgcc-ng: '>=12' @@ -1758,30 +1544,17 @@ package: version: 8.5.0 - category: main dependencies: - gnutls: '>=3.7.8,<3.8.0a0' libgcc-ng: '>=12' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 20e3667699ceaae97d6ba110a098e8f8 - sha256: 8530794bb59332eefea6af1e7e3e7289a5fe40d2c4d265357af72b67ff6ee38e - manager: conda - name: libmicrohttpd - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-0.9.77-h97afed2_0.conda - version: 0.9.77 -- category: main - dependencies: - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 76cd8db42baacfc94aa4d3a2b8e9e453 - sha256: 270d57657ff5cdc5bd8820ab1caf04ed4e7682605c85f4b7a4ff3f7b1c4beaef + md5: 847ad1c2bcbef1e2febfdaa3b199c2a4 + sha256: e3019f819f354cc7ac080704ae9faa87618f5bbf536dc5b82f52296eb7f80459 manager: conda name: markupsafe optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py310h2372a71_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.4-py39hd1e30aa_0.conda version: 2.1.4 - category: main dependencies: @@ -1799,45 +1572,17 @@ package: dependencies: libgcc-ng: '>=12' libstdcxx-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: dc5263dcaa1347e5a456ead3537be27d - sha256: a5c7612029e3871b0af0bd69e8ee1545d3deb93b5bec29cf1bf72522375fda31 + md5: f668e146a2ed03a4e62ffbb98b3115fb + sha256: a47f46861f206043602b5f8b176e3957dd4a59876b819a2e089d63d52e312412 manager: conda name: msgpack-python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.7-py310hd41b1e2_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.7-py39h7633fee_0.conda version: 1.0.7 -- category: main - dependencies: - python: '>=3.9' - hash: - md5: 425fce3b531bed6ec3c74fab3e5f0a1c - sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d - manager: conda - name: networkx - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda - version: 3.2.1 -- category: main - dependencies: - libgcc-ng: '>=12' - libpng: '>=1.6.39,<1.7.0a0' - libstdcxx-ng: '>=12' - libtiff: '>=4.6.0,<4.7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - hash: - md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 - sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a - manager: conda - name: openjpeg - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda - version: 2.5.0 - category: main dependencies: python: '>=3.7' @@ -1886,32 +1631,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda version: 4.1.0 -- category: main - dependencies: - python: '>=3.8' - hash: - md5: 2390bd10bed1f3fdc7a537fb5a447d8d - sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 - manager: conda - name: pluggy - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda - version: 1.3.0 -- category: main - dependencies: - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 0adaac9a86d59adae2bc86b3cdef2df1 - sha256: ea7faba72a38b1d9e799294ea270916d2ea3f4a491df06a4d5a55347f3a036ce - manager: conda - name: pycosat - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h2372a71_0.conda - version: 0.6.6 - category: main dependencies: python: ==2.7.*|>=3.4 @@ -1976,50 +1695,31 @@ package: - category: main dependencies: libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 yaml: '>=0.2.5,<0.3.0a0' hash: - md5: bb010e368de4940771368bc3dc4c63e7 - sha256: aa78ccddb0a75fa722f0f0eb3537c73ee1219c9dd46cea99d6b9eebfdd780f3d + md5: 37218233bcdc310e4fde6453bc1b40d8 + sha256: 28b147c50ad48215f9427a52811848223ac0371be7caae88522e661a3bfb1448 manager: conda name: pyyaml optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py310h2372a71_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py39hd1e30aa_1.conda version: 6.0.1 -- category: main - dependencies: - __glibc: '>=2.17,<3.0.a0' - expat: '>=2.5.0,<3.0a0' - gmp: '>=6.2.1,<7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - mpc: '>=1.3.1,<2.0a0' - mpfr: '>=4.1.0,<5.0a0' - ncurses: '>=6.3,<7.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 85c9a0d9dd5311aaa2c5064f2c87b496 - sha256: 8716699011df2900f8f20abcec16a0c08e821cfbe7fc2dad4fc369e483d8ed49 - manager: conda - name: riscv-tools - optional: false - platform: linux-64 - url: https://conda.anaconda.org/ucb-bar/linux-64/riscv-tools-1.0.3-0_h1234567_ga1b1b14.conda - version: 1.0.3 - category: main dependencies: libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 7c9da9721ee545d57ad759f020172853 - sha256: 00c76baad0a896f6f259093ec5328ac06cf422e6528745b28ee7e5057f54668f + md5: 743d996a1af8502f27770fadfd418434 + sha256: 06b089d59ffebef9c9171a8a3480adcb6e7f112caef9f8b87591207427cb1cf1 manager: conda name: ruamel.yaml.clib optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py310h2372a71_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py39hd1e30aa_2.conda version: 0.2.7 - category: main dependencies: @@ -2108,29 +1808,17 @@ package: - category: main dependencies: libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: b23e0147fa5f7a9380e06334c7266ad5 - sha256: 209b6788b81739d3cdc2f04ad3f6f323efd85b1a30f2edce98ab76d98079fac8 + md5: cbe186eefb0bcd91e8f47c3908489874 + sha256: dc0df742be0e83a4286137d21f60ca829632c2ffd66d3bebb603afe5ce74cc68 manager: conda name: tornado optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py310h2372a71_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py39hd1e30aa_1.conda version: 6.3.3 -- category: main - dependencies: - python: '>=3.10' - hash: - md5: 08316d001eca8854392cf2837828ea11 - sha256: ba49bed74ca170c5a3bf995c33a6179fd74b33abb2444f511862e7f9f57f9149 - manager: conda - name: truststore - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.8.0-pyhd8ed1ab_0.conda - version: 0.8.0 - category: main dependencies: python: '>=3.8' @@ -2304,16 +1992,16 @@ package: libffi: '>=3.4,<4.0a0' libgcc-ng: '>=12' pycparser: '' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 45846a970e71ac98fd327da5d40a0a2c - sha256: 007e7f69ab45553b7bf11f2c1b8d3f3a13fd42997266a0d57795f41c7d38df36 + md5: ac992767d7f8ed2cb27e71e78f0fb2d7 + sha256: 1536a2ca65caaf568bbdfe75aff8e12cb0e0507587b25af3b532a8bd22cb3ddb manager: conda name: cffi optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py310h2fee648_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py39h7a31438_0.conda version: 1.16.0 - category: main dependencies: @@ -2344,25 +2032,22 @@ package: version: 0.6.2 - category: main dependencies: - bzip2: '>=1.0.8,<2.0a0' - libarchive: '>=3.5.2,<3.6.0a0' - libcurl: '>=7.82.0,<9.0a0' - libgcc-ng: '>=10.3.0' - libmicrohttpd: '>=0.9.75,<0.10.0a0' - libstdcxx-ng: '>=10.3.0' - libzlib: '>=1.2.11,<1.3.0a0' - sqlite: '>=3.38.2,<4.0a0' - xz: '>=5.2.5,<6.0.0a0' - zstd: '>=1.5.2,<1.6.0a0' + krb5: '>=1.21.2,<1.22.0a0' + libcurl: 8.5.0 hca28451_0 + libgcc-ng: '>=12' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' hash: - md5: 2e9ec0e21d51118b004f1f98e4fbf598 - sha256: bee5b4a723472cc844775a36dbdca35ecb24f40fbb162924bd8536b05930c3dc + md5: e5e83fb15e752dbc8f54c4ac7da7d0f1 + sha256: febf098d6ca901b589d02c58eedcf5cb77d8fa4bfe35a52109f5909980b426db manager: conda - name: elfutils + name: curl optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.187-h989201e_0.tar.bz2 - version: '0.187' + url: https://conda.anaconda.org/conda-forge/linux-64/curl-8.5.0-hca28451_0.conda + version: 8.5.0 - category: main dependencies: python: '' @@ -2416,19 +2101,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda version: 3.1.3 -- category: main - dependencies: - jsonpointer: '>=1.9' - python: '>=3.8' - hash: - md5: bfdb7c5c6ad1077c82a69a8642c87aff - sha256: fbb17e33ace3225c6416d1604637c1058906b8223da968cc015128985336b2b4 - manager: conda - name: jsonpatch - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - version: '1.33' - category: main dependencies: python: '' @@ -2444,42 +2116,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2 version: 2.6.3 -- category: main - dependencies: - python: 2.7|>=3.7 - setuptools: '' - hash: - md5: 2a75b296096adabbabadd5e9782e5fcc - sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd - manager: conda - name: nodeenv - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda - version: 1.8.0 -- category: main - dependencies: - freetype: '>=2.12.1,<3.0a0' - lcms2: '>=2.16,<3.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libtiff: '>=4.6.0,<4.7.0a0' - libwebp-base: '>=1.3.2,<2.0a0' - libxcb: '>=1.15,<1.16.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - openjpeg: '>=2.5.0,<3.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - tk: '>=8.6.13,<8.7.0a0' - hash: - md5: 9ec32d0d90f7670eb29bbba18299cf29 - sha256: ddb300d69329606a9933717127880c2062e9d6539d8824b21a43ed63eb7dab4f - manager: conda - name: pillow - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py310h01dd4db_0.conda - version: 10.2.0 - category: main dependencies: python: '>=3.7' @@ -2497,32 +2133,19 @@ package: - category: main dependencies: libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 ruamel.yaml.clib: '>=0.1.2' setuptools: '' hash: - md5: eb53a079577938f68e65c5f04b8ff1d1 - sha256: b9179de5e519cf83b9bbb99bdf3ca372281b213169c5d36e4a6d1de8b8d3ba05 + md5: 2b447c949fba3e4c95e7f7dae77f5ebd + sha256: 78638b0ef756443722f91a3bc0225b1ac79757be3d1f313a754c49cd3a3e2227 manager: conda name: ruamel.yaml optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.40-py310h2372a71_0.conda - version: 0.17.40 -- category: main - dependencies: - colorama: '' - python: '>=3.7' - hash: - md5: 03c97908b976498dcae97eb4e4f3149c - sha256: b61c9222af05e8c5ff27e4a4d2eb81870c21ffd7478346be3ef644b7a3759cc4 - manager: conda - name: tqdm - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda - version: 4.66.1 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.5-py39hd1e30aa_0.conda + version: 0.18.5 - category: main dependencies: typing_extensions: 4.9.0 pyha770c72_0 @@ -2598,17 +2221,37 @@ package: cffi: '>=1.12' libgcc-ng: '>=12' openssl: '>=3.1.4,<4.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 8a84d96d106767c08d6154ed5c8aae2c - sha256: 493feafc2492e841d361affb0bba2e29ab41d73b8db2d58c5abdfd4ccf1d29ad + md5: c2503c6b2505714dd30d50717efe1826 + sha256: 704b189699c8eae0dff8b3d0886fb3ef5316b221676ee5d79d44575073bc9296 manager: conda name: cryptography optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py310hb8475ec_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py39he6105cc_1.conda version: 41.0.7 +- category: main + dependencies: + curl: '' + gettext: '' + libexpat: '>=2.5.0,<3.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + pcre2: '>=10.42,<10.43.0a0' + perl: 5.* + hash: + md5: 851970792301b407ba4c35e75e796791 + sha256: 73a065e160d759e8fb0b169e615955a8fe0c148ed00c7f6ddf076f2e4adfd765 + manager: conda + name: git + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/git-2.43.0-pl5321h7bc287a_0.conda + version: 2.43.0 - category: main dependencies: cairo: '>=1.18.0,<2.0a0' @@ -2641,31 +2284,18 @@ package: version: 7.0.1 - category: main dependencies: - elfutils: '>=0.187,<0.188.0a0' libgcc-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - hash: - md5: 5b3ed39ee3809d63d347b649de0a45f8 - manager: conda - name: libdwarf - optional: false - platform: linux-64 - url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 - version: 0.0.0.20190110_28_ga81397fc4 -- category: main - dependencies: - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 typing-extensions: '>=4.6.0,!=4.7.0' hash: - md5: f0f6b7e4b3d134f070288963ed4fbeee - sha256: 3bdc1ef89f9e431392aec8ed5695d8aefc7b65a014cc46934f75e87779f89745 + md5: 26910c0ed0b85e87d5c1dd19723b2996 + sha256: 3770a69799d1366629a9944fb2eef9c15ecfd4c0d00cabee8b264d23bebf3726 manager: conda name: pydantic-core optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py310hcb5633a_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.14.6-py39h9fdd4d6_1.conda version: 2.14.6 - category: main dependencies: @@ -2683,22 +2313,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda version: 2.31.0 -- category: main - dependencies: - cffi: '' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 35e87277fba9944b8a975113538bb5df - sha256: 7bcb662f8d8181d77d77605c6e176a5bc6a421025a8969c6d793fe47134285bd - manager: conda - name: ukkonen - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda - version: 1.0.1 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -2716,22 +2330,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2 version: 1.2.3 -- category: main - dependencies: - cffi: '>=1.11' - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - zstd: '>=1.5.5,<1.6.0a0' - hash: - md5: 54698ba13cd3494547b289cd86a2176a - sha256: 1c1b91e5c5246b13ca25728ea6200dfd230d8ce8ca6910cd0b70fc5e43065a04 - manager: conda - name: zstandard - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py310h1275a96_0.conda - version: 0.22.0 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -2746,19 +2344,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda version: 0.13.1 -- category: main - dependencies: - python: '>=3.7' - zstandard: '>=0.15' - hash: - md5: 38253361efb303deead3eab39ae9269b - sha256: 654a2488f77bf43555787d952dbffdc5d97956ff4aa9e0414a7131bb741dcf4c - manager: conda - name: conda-package-streaming - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.9.0-pyhd8ed1ab_0.conda - version: 0.9.0 - category: main dependencies: appdirs: '' @@ -2775,33 +2360,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 version: 1.4.3 -- category: main - dependencies: - python: '>=3.6' - ukkonen: '' - hash: - md5: 93c8f8ceb83827d88deeba796f07fba7 - sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f - manager: conda - name: identify - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda - version: 2.5.33 -- category: main - dependencies: - elfutils: '>=0.187,<0.188.0a0' - libdwarf: 0.0.0.20190110_28_ga81397fc4 h753d276_0 - libgcc-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - hash: - md5: 899c511688e6c41cb51c2921a8d25e63 - manager: conda - name: libdwarf-dev - optional: false - platform: linux-64 - url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-dev-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 - version: 0.0.0.20190110_28_ga81397fc4 - category: main dependencies: alsa-lib: '>=1.2.10,<1.2.11.0a0' @@ -2847,34 +2405,21 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda version: 2.5.3 -- category: main - dependencies: - cryptography: '>=41.0.5,<42' - python: '>=3.7' - hash: - md5: 7819533e674dbbc51468f3228b9b1bb6 - sha256: f7e04c4a49b1593140231d70801e2204e314e26d7141bfbdc8089d04114c0010 - manager: conda - name: pyopenssl - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.3.0-pyhd8ed1ab_0.conda - version: 23.3.0 - category: main dependencies: cryptography: '' dbus: '' jeepney: '>=0.6' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 4ccc40bc490af727cfbf3e7f0289d9bd - sha256: a2b7f56b07b6e95bd05fd47ebe5b2cfc8af70ccd04994623f6508e90d3b5f857 + md5: 0e6f3ef2dd562ed33d2a18d9c6f78d88 + sha256: efff009fd24eca4cf1ecdb5010d605db11078f08be7d046d8d23a2e0e63e5015 manager: conda name: secretstorage optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py310hff52083_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py39hf3d152e_2.conda version: 3.3.3 - category: main dependencies: @@ -2890,54 +2435,23 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda version: 0.13.1 -- category: main - dependencies: - conda-package-streaming: '>=0.9.0' - python: '>=3.7' - zstandard: '>=0.15' - hash: - md5: 8a3ae7f6318376aa08ea753367bb7dd6 - sha256: 9a221808405d813d8c555efce6944379b907d36d79e77d526d573efa6b996d26 - manager: conda - name: conda-package-handling - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.2.0-pyh38be061_0.conda - version: 2.2.0 - category: main dependencies: importlib_metadata: '>=4.11.4' jaraco.classes: '' jeepney: '>=0.4.2' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 secretstorage: '>=3.2' hash: - md5: e710fd8e57356a64cace034413da9cb3 - sha256: 886a764e4bc2cfaabf2ea0a98461fbd526affd99c984a2789770eca43dd17c9b + md5: 1426c4f9994cb7e55859b44b98bc7b3e + sha256: a7538a914feb54dc3e7ee46431af5f0a40e668b29224998e6d3be044a1a7606e manager: conda name: keyring optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.0-py310hff52083_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.0-py39hf3d152e_0.conda version: 24.3.0 -- category: main - dependencies: - cfgv: '>=2.0.0' - identify: '>=1.0.0' - nodeenv: '>=0.11.1' - python: '>=3.9' - pyyaml: '>=5.1' - virtualenv: '>=20.10.0' - hash: - md5: 473a7cfca197da0a10cff3f6dded7d4b - sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 - manager: conda - name: pre-commit - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda - version: 3.6.0 - category: main dependencies: __unix: '' @@ -2951,32 +2465,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/sbt-1.9.7-hd8ed1ab_0.conda version: 1.9.7 -- category: main - dependencies: - archspec: '' - boltons: '>=23.0.0' - conda-package-handling: '>=2.2.0' - jsonpatch: '>=1.32' - packaging: '>=23.0' - pluggy: '>=1.0.0' - pycosat: '>=0.6.3' - pyopenssl: '>=16.2.0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - requests: '>=2.27.0,<3' - ruamel.yaml: '>=0.11.14,<0.18' - setuptools: '>=60.0.0' - tqdm: '>=4' - truststore: '>=0.8.0' - hash: - md5: 43a598dea1812d249e2d6b8c12e8634f - sha256: 7c9916213879ded1142f95f058ec52da512bae7994105a35470aea66204c1683 - manager: conda - name: conda - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-23.9.0-py310hff52083_2.conda - version: 23.9.0 - category: main dependencies: cachecontrol-with-filecache: '>=0.12.9' @@ -3011,39 +2499,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-1.4.0-pyhd8ed1ab_2.conda version: 1.4.0 -- category: main - dependencies: - colorama: '' - conda: '' - networkx: '' - python: '>=3.6' - hash: - md5: 184216409957e082712d750862782903 - sha256: 54e9cf114ca4eaeda91b5bb11a09d4391ba4be8a4fb2911259fc7dc2ec636054 - manager: conda - name: conda-tree - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.1.0-pyhd8ed1ab_2.conda - version: 1.1.0 -- category: main - dependencies: - __unix: '' - conda: '>=4.6' - conda-standalone: '' - jinja2: '' - pillow: '>=3.1' - python: '>=3.8' - ruamel.yaml: '>=0.11.14,<0.19' - hash: - md5: d8cb2dfbc95cd06af84d11bf16572270 - sha256: 78a2b1abf48bdb34a9902caa7bff273ed001758f0845ef0508b347d85c21ca2b - manager: conda - name: constructor - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.6.0-pyh55f8243_0.conda - version: 3.6.0 - category: main dependencies: livereload: '>=2.3.0' diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index 8a594569..e5935143 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-extended.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -26,7 +26,7 @@ metadata: - linux-64 sources: - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml - - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-extended.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/esp-tools.yaml package: diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml index fdb4f677..9094a807 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64-lean.conda-lock.yml @@ -21,7 +21,7 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: 044545ea58c6808658782a00d19615da9cb13e4dabf477a7fe1a688ddfeaf8b7 + linux-64: 992d6d7f85dd948e8f14b610157acfaad2453e8a2cd692e30ad1a3c340fdbd88 platforms: - linux-64 sources: @@ -62,17 +62,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda version: 2023.11.17 -- category: main - dependencies: {} - hash: - md5: fd2989188c0421b101b12c4ee91a8967 - sha256: f0cb3d37b2642bf982d497d63f351dcdcd03cea1b0b175d4d3c9d13b3c022d80 - manager: conda - name: conda-standalone - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-standalone-23.11.0-ha770c72_1.conda - version: 23.11.0 - category: main dependencies: {} hash: @@ -542,30 +531,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-11.4.0-h4dcbe23_3.conda version: 11.4.0 -- category: main - dependencies: - libgcc-ng: '>=12' - hash: - md5: 93840744a8552e9ebf6bb1a5dffc125a - sha256: 5bfeada0e1c6ec2574afe2d17cdbc39994d693a41431338a6cb9dfa7c4d7bfc8 - manager: conda - name: libtasn1 - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2 - version: 4.19.0 -- category: main - dependencies: - libgcc-ng: '>=9.3.0' - hash: - md5: 7245a044b4a1980ed83196176b78b73a - sha256: e88c45505921db29c08df3439ddb7f771bbff35f95e7d3103bf365d5d6ce2a6d - manager: conda - name: libunistring - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2 - version: 0.9.10 - category: main dependencies: libgcc-ng: '>=12' @@ -614,31 +579,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda version: 1.2.13 -- category: main - dependencies: - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - hash: - md5: 318b08df404f9c9be5712aaa5a6f0bb0 - sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f - manager: conda - name: lz4-c - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda - version: 1.9.4 -- category: main - dependencies: - libgcc-ng: '>=7.5.0' - hash: - md5: bb14fcb13341b81d5eb386423b9d2bac - sha256: 25d16e6aaa3d0b450e61d0c4fadd7c9fd17f16e2fef09b34507209342d63c9f6 - manager: conda - name: lzo - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2 - version: '2.10' - category: main dependencies: libgcc-ng: '>=7.5.0' @@ -675,18 +615,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda version: '6.4' -- category: main - dependencies: - libgcc-ng: '>=12' - hash: - md5: 2bf1915cc107738811368afcb0993a59 - sha256: 1ef1b7efa69c7fb4e2a36a88316f307c115713698d1c12e19f55ae57c0482995 - manager: conda - name: nettle - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nettle-3.9.1-h7ab15ed_0.conda - version: 3.9.1 - category: main dependencies: libgcc-ng: '>=12' @@ -954,20 +882,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 version: 3.1.20191231 -- category: main - dependencies: - gettext: '>=0.21.1,<1.0a0' - libgcc-ng: '>=12' - libunistring: '>=0,<1.0a0' - hash: - md5: 7440fbafd870b8bab68f83a064875d34 - sha256: 888848ae85be9df86f56407639c63bdce8e7651f0b2517be9bc0ac6e38b2d21d - manager: conda - name: libidn2 - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.4-h166bdaf_0.tar.bz2 - version: 2.3.4 - category: main dependencies: c-ares: '>=1.23.0,<2.0a0' @@ -1040,22 +954,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda version: '1.15' -- category: main - dependencies: - icu: '>=73.2,<74.0a0' - libgcc-ng: '>=12' - libiconv: '>=1.17,<2.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - xz: '>=5.2.6,<6.0a0' - hash: - md5: 53e951fab78d7e3bab40745f7b3d1620 - sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 - manager: conda - name: libxml2 - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda - version: 2.12.4 - category: main dependencies: gmp: '>=6.2.1,<7.0a0' @@ -1069,20 +967,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h9458935_0.conda version: 4.2.1 -- category: main - dependencies: - libffi: '>=3.4.2,<3.5.0a0' - libgcc-ng: '>=12' - libtasn1: '>=4.18.0,<5.0a0' - hash: - md5: 56ee94e34b71742bbdfa832c974e47a8 - sha256: aa8d3887b36557ad0c839e4876c0496e0d670afe843bf5bba4a87764b868196d - manager: conda - name: p11-kit - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2 - version: 0.24.1 - category: main dependencies: bzip2: '>=1.0.8,<2.0a0' @@ -1123,19 +1007,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda version: '8.2' -- category: main - dependencies: - libgcc-ng: '>=7.5.0' - ncurses: '>=6.2,<7.0.0a0' - hash: - md5: 3b67f325fac07461f193e27a9d9c5a65 - sha256: 3c7020802fb52b946fe37a2180a6cad298f65b7a3e861c2616b6ffd4165ec22f - manager: conda - name: screen - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/screen-4.8.0-he28a2e2_0.tar.bz2 - version: 4.8.0 - category: main dependencies: libgcc-ng: '>=12' @@ -1255,23 +1126,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/gcc-11.4.0-h7baecda_2.conda version: 11.4.0 -- category: main - dependencies: - libgcc-ng: '>=12' - libidn2: '>=2,<3.0a0' - libstdcxx-ng: '>=12' - libtasn1: '>=4.19.0,<5.0a0' - nettle: '>=3.9.1,<3.10.0a0' - p11-kit: '>=0.24.1,<0.25.0a0' - hash: - md5: 33eded89024f21659b1975886a4acf70 - sha256: 52d824a5d2b8a5566cd469cae6ad6920469b5a15b3e0ddc609dd29151be71be2 - manager: conda - name: gnutls - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.9-hb077bed_0.conda - version: 3.7.9 - category: main dependencies: gcc_impl_linux-64: 11.4.0 h7aa1c59_3 @@ -1302,26 +1156,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda version: 1.21.2 -- category: main - dependencies: - bzip2: '>=1.0.8,<2.0a0' - libgcc-ng: '>=12' - libxml2: '>=2.9.14,<3.0.0a0' - libzlib: '>=1.2.12,<1.3.0a0' - lz4-c: '>=1.9.3,<1.10.0a0' - lzo: '>=2.10,<3.0a0' - openssl: '>=3.0.3,<4.0a0' - xz: '>=5.2.5,<6.0.0a0' - zstd: '>=1.5.2,<1.6.0a0' - hash: - md5: c0c3973a9f2df3e1a408e3205d86a88d - sha256: b67ff7262422ef04bfa1056c5ef10eba4d64773f40bb34314e0d492f58e726e7 - manager: conda - name: libarchive - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.5.2-hada088e_3.tar.bz2 - version: 3.5.2 - category: main dependencies: gettext: '>=0.21.1,<1.0a0' @@ -1400,22 +1234,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_1_cpython.conda version: 3.10.13 -- category: main - dependencies: - libgcc-ng: '>=12' - libsqlite: 3.44.2 h2797004_0 - libzlib: '>=1.2.13,<1.3.0a0' - ncurses: '>=6.4,<7.0a0' - readline: '>=8.2,<9.0a0' - hash: - md5: 4f2892c672829693fd978d065db4e8be - sha256: bae479520fe770fe11996b4c240923ed097f851fbd2401d55540e551c9dbbef7 - manager: conda - name: sqlite - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.44.2-h2c6b66d_0.conda - version: 3.44.2 - category: main dependencies: libgcc-ng: '>=12' @@ -1456,30 +1274,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2 version: 1.4.4 -- category: main - dependencies: - python: '>=3.6' - hash: - md5: 0dc2fce00a160271714647c019e3a8a8 - sha256: e030c0993ef56def50fb3b0262a98ba17295c83b6c696748add22aee406b7bd9 - manager: conda - name: archspec - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/archspec-0.2.2-pyhd8ed1ab_0.conda - version: 0.2.2 -- category: main - dependencies: - python: ==2.7.*|>=3.7 - hash: - md5: 56febe65315cc388a5d20adf2b39a74d - sha256: 0ff5173f6b20a5c95401aa52d10dbdc05c322fc568dc7417c6f76cf68e706d16 - manager: conda - name: boltons - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/boltons-23.1.1-pyhd8ed1ab_0.conda - version: 23.1.1 - category: main dependencies: libgcc-ng: '>=12' @@ -1519,18 +1313,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda version: 2023.11.17 -- category: main - dependencies: - python: '>=3.6.1' - hash: - md5: ebb5f5f7dc4f1a3780ef7ea7738db08c - sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c - manager: conda - name: cfgv - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - version: 3.3.1 - category: main dependencies: python: '>=3.7' @@ -1696,19 +1478,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 version: 0.8.0 -- category: main - dependencies: - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 08ec1463dbc5c806a32fc431874032ca - sha256: 316db08863469a56cdbfd030de5a2cc11ec7649ed7c50eff507e9caa0070ccaa - manager: conda - name: jsonpointer - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-2.4-py310hff52083_3.conda - version: '2.4' - category: main dependencies: libgcc-ng: '>=12' @@ -1756,19 +1525,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.5.0-hca28451_0.conda version: 8.5.0 -- category: main - dependencies: - gnutls: '>=3.7.8,<3.8.0a0' - libgcc-ng: '>=12' - hash: - md5: 20e3667699ceaae97d6ba110a098e8f8 - sha256: 8530794bb59332eefea6af1e7e3e7289a5fe40d2c4d265357af72b67ff6ee38e - manager: conda - name: libmicrohttpd - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libmicrohttpd-0.9.77-h97afed2_0.conda - version: 0.9.77 - category: main dependencies: libgcc-ng: '>=12' @@ -1810,34 +1566,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.7-py310hd41b1e2_0.conda version: 1.0.7 -- category: main - dependencies: - python: '>=3.9' - hash: - md5: 425fce3b531bed6ec3c74fab3e5f0a1c - sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d - manager: conda - name: networkx - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda - version: 3.2.1 -- category: main - dependencies: - libgcc-ng: '>=12' - libpng: '>=1.6.39,<1.7.0a0' - libstdcxx-ng: '>=12' - libtiff: '>=4.6.0,<4.7.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - hash: - md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 - sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a - manager: conda - name: openjpeg - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda - version: 2.5.0 - category: main dependencies: python: '>=3.7' @@ -1886,32 +1614,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda version: 4.1.0 -- category: main - dependencies: - python: '>=3.8' - hash: - md5: 2390bd10bed1f3fdc7a537fb5a447d8d - sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 - manager: conda - name: pluggy - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda - version: 1.3.0 -- category: main - dependencies: - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 0adaac9a86d59adae2bc86b3cdef2df1 - sha256: ea7faba72a38b1d9e799294ea270916d2ea3f4a491df06a4d5a55347f3a036ce - manager: conda - name: pycosat - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.6-py310h2372a71_0.conda - version: 0.6.6 - category: main dependencies: python: ==2.7.*|>=3.4 @@ -2119,18 +1821,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py310h2372a71_1.conda version: 6.3.3 -- category: main - dependencies: - python: '>=3.10' - hash: - md5: 08316d001eca8854392cf2837828ea11 - sha256: ba49bed74ca170c5a3bf995c33a6179fd74b33abb2444f511862e7f9f57f9149 - manager: conda - name: truststore - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/truststore-0.8.0-pyhd8ed1ab_0.conda - version: 0.8.0 - category: main dependencies: python: '>=3.8' @@ -2344,25 +2034,22 @@ package: version: 0.6.2 - category: main dependencies: - bzip2: '>=1.0.8,<2.0a0' - libarchive: '>=3.5.2,<3.6.0a0' - libcurl: '>=7.82.0,<9.0a0' - libgcc-ng: '>=10.3.0' - libmicrohttpd: '>=0.9.75,<0.10.0a0' - libstdcxx-ng: '>=10.3.0' - libzlib: '>=1.2.11,<1.3.0a0' - sqlite: '>=3.38.2,<4.0a0' - xz: '>=5.2.5,<6.0.0a0' - zstd: '>=1.5.2,<1.6.0a0' + krb5: '>=1.21.2,<1.22.0a0' + libcurl: 8.5.0 hca28451_0 + libgcc-ng: '>=12' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + zstd: '>=1.5.5,<1.6.0a0' hash: - md5: 2e9ec0e21d51118b004f1f98e4fbf598 - sha256: bee5b4a723472cc844775a36dbdca35ecb24f40fbb162924bd8536b05930c3dc + md5: e5e83fb15e752dbc8f54c4ac7da7d0f1 + sha256: febf098d6ca901b589d02c58eedcf5cb77d8fa4bfe35a52109f5909980b426db manager: conda - name: elfutils + name: curl optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/elfutils-0.187-h989201e_0.tar.bz2 - version: '0.187' + url: https://conda.anaconda.org/conda-forge/linux-64/curl-8.5.0-hca28451_0.conda + version: 8.5.0 - category: main dependencies: python: '' @@ -2416,19 +2103,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda version: 3.1.3 -- category: main - dependencies: - jsonpointer: '>=1.9' - python: '>=3.8' - hash: - md5: bfdb7c5c6ad1077c82a69a8642c87aff - sha256: fbb17e33ace3225c6416d1604637c1058906b8223da968cc015128985336b2b4 - manager: conda - name: jsonpatch - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.33-pyhd8ed1ab_0.conda - version: '1.33' - category: main dependencies: python: '' @@ -2444,42 +2118,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2 version: 2.6.3 -- category: main - dependencies: - python: 2.7|>=3.7 - setuptools: '' - hash: - md5: 2a75b296096adabbabadd5e9782e5fcc - sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd - manager: conda - name: nodeenv - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda - version: 1.8.0 -- category: main - dependencies: - freetype: '>=2.12.1,<3.0a0' - lcms2: '>=2.16,<3.0a0' - libgcc-ng: '>=12' - libjpeg-turbo: '>=3.0.0,<4.0a0' - libtiff: '>=4.6.0,<4.7.0a0' - libwebp-base: '>=1.3.2,<2.0a0' - libxcb: '>=1.15,<1.16.0a0' - libzlib: '>=1.2.13,<1.3.0a0' - openjpeg: '>=2.5.0,<3.0a0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - tk: '>=8.6.13,<8.7.0a0' - hash: - md5: 9ec32d0d90f7670eb29bbba18299cf29 - sha256: ddb300d69329606a9933717127880c2062e9d6539d8824b21a43ed63eb7dab4f - manager: conda - name: pillow - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py310h01dd4db_0.conda - version: 10.2.0 - category: main dependencies: python: '>=3.7' @@ -2502,27 +2140,14 @@ package: ruamel.yaml.clib: '>=0.1.2' setuptools: '' hash: - md5: eb53a079577938f68e65c5f04b8ff1d1 - sha256: b9179de5e519cf83b9bbb99bdf3ca372281b213169c5d36e4a6d1de8b8d3ba05 + md5: 14fd49048b91c96a8fbf1113a8cc4f49 + sha256: b31d4eb844d1b667a9cddf63eafa2c303049ae559098f88e403c2ab5ebdd274e manager: conda name: ruamel.yaml optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.40-py310h2372a71_0.conda - version: 0.17.40 -- category: main - dependencies: - colorama: '' - python: '>=3.7' - hash: - md5: 03c97908b976498dcae97eb4e4f3149c - sha256: b61c9222af05e8c5ff27e4a4d2eb81870c21ffd7478346be3ef644b7a3759cc4 - manager: conda - name: tqdm - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda - version: 4.66.1 + url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.5-py310h2372a71_0.conda + version: 0.18.5 - category: main dependencies: typing_extensions: 4.9.0 pyha770c72_0 @@ -2609,6 +2234,26 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.7-py310hb8475ec_1.conda version: 41.0.7 +- category: main + dependencies: + curl: '' + gettext: '' + libexpat: '>=2.5.0,<3.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<1.3.0a0' + openssl: '>=3.2.0,<4.0a0' + pcre2: '>=10.42,<10.43.0a0' + perl: 5.* + hash: + md5: 851970792301b407ba4c35e75e796791 + sha256: 73a065e160d759e8fb0b169e615955a8fe0c148ed00c7f6ddf076f2e4adfd765 + manager: conda + name: git + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/git-2.43.0-pl5321h7bc287a_0.conda + version: 2.43.0 - category: main dependencies: cairo: '>=1.18.0,<2.0a0' @@ -2639,19 +2284,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.1-hd8ed1ab_0.conda version: 7.0.1 -- category: main - dependencies: - elfutils: '>=0.187,<0.188.0a0' - libgcc-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - hash: - md5: 5b3ed39ee3809d63d347b649de0a45f8 - manager: conda - name: libdwarf - optional: false - platform: linux-64 - url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 - version: 0.0.0.20190110_28_ga81397fc4 - category: main dependencies: libgcc-ng: '>=12' @@ -2683,22 +2315,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda version: 2.31.0 -- category: main - dependencies: - cffi: '' - libgcc-ng: '>=12' - libstdcxx-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - hash: - md5: 35e87277fba9944b8a975113538bb5df - sha256: 7bcb662f8d8181d77d77605c6e176a5bc6a421025a8969c6d793fe47134285bd - manager: conda - name: ukkonen - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py310hd41b1e2_4.conda - version: 1.0.1 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -2716,22 +2332,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2 version: 1.2.3 -- category: main - dependencies: - cffi: '>=1.11' - libgcc-ng: '>=12' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - zstd: '>=1.5.5,<1.6.0a0' - hash: - md5: 54698ba13cd3494547b289cd86a2176a - sha256: 1c1b91e5c5246b13ca25728ea6200dfd230d8ce8ca6910cd0b70fc5e43065a04 - manager: conda - name: zstandard - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py310h1275a96_0.conda - version: 0.22.0 - category: main dependencies: msgpack-python: '>=0.5.2' @@ -2746,19 +2346,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.13.1-pyhd8ed1ab_0.conda version: 0.13.1 -- category: main - dependencies: - python: '>=3.7' - zstandard: '>=0.15' - hash: - md5: 38253361efb303deead3eab39ae9269b - sha256: 654a2488f77bf43555787d952dbffdc5d97956ff4aa9e0414a7131bb741dcf4c - manager: conda - name: conda-package-streaming - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.9.0-pyhd8ed1ab_0.conda - version: 0.9.0 - category: main dependencies: appdirs: '' @@ -2775,33 +2362,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.4.3-pyhd8ed1ab_0.tar.bz2 version: 1.4.3 -- category: main - dependencies: - python: '>=3.6' - ukkonen: '' - hash: - md5: 93c8f8ceb83827d88deeba796f07fba7 - sha256: ce2a64c18221af96226be23278d81f22ff9f64b3c047d8865590f6718915303f - manager: conda - name: identify - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.33-pyhd8ed1ab_0.conda - version: 2.5.33 -- category: main - dependencies: - elfutils: '>=0.187,<0.188.0a0' - libdwarf: 0.0.0.20190110_28_ga81397fc4 h753d276_0 - libgcc-ng: '>=12' - libzlib: '>=1.2.12,<1.3.0a0' - hash: - md5: 899c511688e6c41cb51c2921a8d25e63 - manager: conda - name: libdwarf-dev - optional: false - platform: linux-64 - url: https://conda.anaconda.org/ucb-bar/linux-64/libdwarf-dev-0.0.0.20190110_28_ga81397fc4-h753d276_0.tar.bz2 - version: 0.0.0.20190110_28_ga81397fc4 - category: main dependencies: alsa-lib: '>=1.2.10,<1.2.11.0a0' @@ -2847,19 +2407,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.5.3-pyhd8ed1ab_0.conda version: 2.5.3 -- category: main - dependencies: - cryptography: '>=41.0.5,<42' - python: '>=3.7' - hash: - md5: 7819533e674dbbc51468f3228b9b1bb6 - sha256: f7e04c4a49b1593140231d70801e2204e314e26d7141bfbdc8089d04114c0010 - manager: conda - name: pyopenssl - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.3.0-pyhd8ed1ab_0.conda - version: 23.3.0 - category: main dependencies: cryptography: '' @@ -2890,20 +2437,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-with-filecache-0.13.1-pyhd8ed1ab_0.conda version: 0.13.1 -- category: main - dependencies: - conda-package-streaming: '>=0.9.0' - python: '>=3.7' - zstandard: '>=0.15' - hash: - md5: 8a3ae7f6318376aa08ea753367bb7dd6 - sha256: 9a221808405d813d8c555efce6944379b907d36d79e77d526d573efa6b996d26 - manager: conda - name: conda-package-handling - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.2.0-pyh38be061_0.conda - version: 2.2.0 - category: main dependencies: importlib_metadata: '>=4.11.4' @@ -2921,23 +2454,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/keyring-24.3.0-py310hff52083_0.conda version: 24.3.0 -- category: main - dependencies: - cfgv: '>=2.0.0' - identify: '>=1.0.0' - nodeenv: '>=0.11.1' - python: '>=3.9' - pyyaml: '>=5.1' - virtualenv: '>=20.10.0' - hash: - md5: 473a7cfca197da0a10cff3f6dded7d4b - sha256: 7d1f4b4a2eb4946b5808769642c5f643788c3a9e090f1c02a6c63f8794fb3d54 - manager: conda - name: pre-commit - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.6.0-pyha770c72_0.conda - version: 3.6.0 - category: main dependencies: __unix: '' @@ -2951,32 +2467,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/sbt-1.9.7-hd8ed1ab_0.conda version: 1.9.7 -- category: main - dependencies: - archspec: '' - boltons: '>=23.0.0' - conda-package-handling: '>=2.2.0' - jsonpatch: '>=1.32' - packaging: '>=23.0' - pluggy: '>=1.0.0' - pycosat: '>=0.6.3' - pyopenssl: '>=16.2.0' - python: '>=3.10,<3.11.0a0' - python_abi: 3.10.* *_cp310 - requests: '>=2.27.0,<3' - ruamel.yaml: '>=0.11.14,<0.18' - setuptools: '>=60.0.0' - tqdm: '>=4' - truststore: '>=0.8.0' - hash: - md5: 43a598dea1812d249e2d6b8c12e8634f - sha256: 7c9916213879ded1142f95f058ec52da512bae7994105a35470aea66204c1683 - manager: conda - name: conda - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/conda-23.9.0-py310hff52083_2.conda - version: 23.9.0 - category: main dependencies: cachecontrol-with-filecache: '>=0.12.9' @@ -3011,39 +2501,6 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/conda-lock-1.4.0-pyhd8ed1ab_2.conda version: 1.4.0 -- category: main - dependencies: - colorama: '' - conda: '' - networkx: '' - python: '>=3.6' - hash: - md5: 184216409957e082712d750862782903 - sha256: 54e9cf114ca4eaeda91b5bb11a09d4391ba4be8a4fb2911259fc7dc2ec636054 - manager: conda - name: conda-tree - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/conda-tree-1.1.0-pyhd8ed1ab_2.conda - version: 1.1.0 -- category: main - dependencies: - __unix: '' - conda: '>=4.6' - conda-standalone: '' - jinja2: '' - pillow: '>=3.1' - python: '>=3.8' - ruamel.yaml: '>=0.11.14,<0.19' - hash: - md5: d8cb2dfbc95cd06af84d11bf16572270 - sha256: 78a2b1abf48bdb34a9902caa7bff273ed001758f0845ef0508b347d85c21ca2b - manager: conda - name: constructor - optional: false - platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/constructor-3.6.0-pyh55f8243_0.conda - version: 3.6.0 - category: main dependencies: livereload: '>=2.3.0' diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index bf73b156..0841d7c5 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-extended.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml -f /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -26,7 +26,7 @@ metadata: - linux-64 sources: - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-base.yaml - - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/fsim-marshal.yaml + - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/chipyard-extended.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/docs.yaml - /scratch/joonho.whangbo/coding/chipyard-release-118/conda-reqs/riscv-tools.yaml package: diff --git a/scripts/generate-conda-lockfiles.sh b/scripts/generate-conda-lockfiles.sh index 988ed1dd..b0a8983f 100755 --- a/scripts/generate-conda-lockfiles.sh +++ b/scripts/generate-conda-lockfiles.sh @@ -19,7 +19,7 @@ for TOOLCHAIN_TYPE in riscv-tools esp-tools; do --no-mamba \ --no-micromamba \ -f "$REQS_DIR/chipyard-base.yaml" \ - -f "$REQS_DIR/fsim-marshal.yaml" \ + -f "$REQS_DIR/chipyard-extended.yaml" \ -f "$REQS_DIR/docs.yaml" \ -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ -p linux-64 \ @@ -33,7 +33,7 @@ for TOOLCHAIN_TYPE in riscv-tools esp-tools; do --no-micromamba \ -f "$REQS_DIR/chipyard-base.yaml" \ -f "$REQS_DIR/docs.yaml" \ - -f "$REQS_DIR/riscv-tools.yaml" \ + -f "$REQS_DIR/$TOOLCHAIN_TYPE.yaml" \ -p linux-64 \ --lockfile $LOCKFILE done From 0bc098496cf85ac4d9d090055d2e3b5b9f831138 Mon Sep 17 00:00:00 2001 From: joonho hwangbo Date: Mon, 22 Jan 2024 13:25:16 -0800 Subject: [PATCH 077/105] Update scripts/build-setup.sh Co-authored-by: Abraham Gonzalez --- scripts/build-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 62b1c870..28ec4f3d 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -38,7 +38,7 @@ usage() { echo " --help -h : Display this message" echo " --verbose -v : Verbose printout" echo " --use-unpinned-deps -ud : Use unpinned conda environment" - echo " --use-lean-conda : Install a leaner version of conda (no firesim && no marshal)" + echo " --use-lean-conda : Install a leaner version of the repository (Smaller conda env, no FireSim, no FireMarshal)" echo " --skip -s N : Skip step N in the list above. Use multiple times to skip multiple steps ('-s N -s M ...')." echo " --skip-conda : Skip Conda initialization (step 1)" From e7eda21a1c26ed0e64a34fcd3f6dd300efa6f16c Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 13:41:41 -0800 Subject: [PATCH 078/105] Make no tlmonitor the default config, add explicit example on how to add tlmonitors --- docs/Simulation/Software-RTL-Simulation.rst | 26 +++++++++++++++++++ .../main/scala/config/AbstractConfig.scala | 1 + .../src/main/scala/config/RocketConfigs.scala | 4 +++ .../config/fragments/SubsystemFragments.scala | 6 ++++- 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/Simulation/Software-RTL-Simulation.rst b/docs/Simulation/Software-RTL-Simulation.rst index 8c87cc80..adeeea1f 100644 --- a/docs/Simulation/Software-RTL-Simulation.rst +++ b/docs/Simulation/Software-RTL-Simulation.rst @@ -223,3 +223,29 @@ The ``VERILATOR_THREADS=`` option enables the compiled Verilator simulator On a multi-socket machine, you will want to make sure all threads are on the same socket by using ``NUMACTL=1`` to enable ``numactl``. By enabling this, you will use Chipyard's ``numa_prefix`` wrapper, which is a simple wrapper around ``numactl`` that runs your verilated simulator like this: ``$(numa_prefix) ./simulator- ``. Note that both these flags are mutually exclusive, you can use either independently (though it makes sense to use ``NUMACTL`` just with ``VERILATOR_THREADS=8`` during a Verilator simulation). + + +When the SoC Hangs Due to Bad Tilelink Messages +----------------------------------------------- + +There are many cases when your custom module interfaces with Tilelink (e.g., when you write a custom accelerator). +Wrong interfaces with Tilelink can cause the SoC to hang and can be tricky to debug. +To help deal with these situations, you can add hardware modules called Tilelink monitors into +your SoC that will fire assertions when wrong Tilelink messages are sent. + +You can simply add these modules into your SoC by adding the below line into your config. + +.. code-block:: scala + + new chipyard.config.WithTLMonitors ++ + + +For instance: + +.. code-block:: scala + + class TLMonitorRocketConfig extends Config( + new chipyard.config.WithTLMonitors ++ + new chipyard.RocketConfig) + +One caveat is that adding these modules can slow down your RTL simulation by around 2x. diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index 8a328daf..f5f55f53 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -81,6 +81,7 @@ class AbstractConfig extends Config( new chipyard.config.WithL2TLBs(1024) ++ // use L2 TLBs new chipyard.config.WithNoSubsystemClockIO ++ // drive the subsystem diplomatic clocks from ChipTop instead of using implicit clocks new chipyard.config.WithInheritBusFrequencyAssignments ++ // Unspecified clocks within a bus will receive the bus frequency if set + new freechips.rocketchip.subsystem.WithoutTLMonitors ++ // Don't add TL Monitors in the default configuration new freechips.rocketchip.subsystem.WithNMemoryChannels(1) ++ // Default 1 memory channels new freechips.rocketchip.subsystem.WithClockGateModel ++ // add default EICG_wrapper clock gate model new freechips.rocketchip.subsystem.WithJtagDTM ++ // set the debug module to expose a JTAG port diff --git a/generators/chipyard/src/main/scala/config/RocketConfigs.scala b/generators/chipyard/src/main/scala/config/RocketConfigs.scala index 0ddb3737..c8e8679e 100644 --- a/generators/chipyard/src/main/scala/config/RocketConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RocketConfigs.scala @@ -96,3 +96,7 @@ class ClusteredRocketConfig extends Config( new freechips.rocketchip.subsystem.WithCluster(1) ++ new freechips.rocketchip.subsystem.WithCluster(0) ++ new chipyard.config.AbstractConfig) + +class TLMonitorRocketConfig extends Config( + new chipyard.config.WithTLMonitors ++ + new chipyard.RocketConfig) diff --git a/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala b/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala index b4971cba..0a35d192 100644 --- a/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala @@ -2,7 +2,7 @@ package chipyard.config import org.chipsalliance.cde.config.{Config} import freechips.rocketchip.subsystem._ -import freechips.rocketchip.diplomacy.{DTSTimebase} +import freechips.rocketchip.diplomacy.{DTSTimebase, MonitorsEnabled} import sifive.blocks.inclusivecache.{InclusiveCachePortParameters} // Replaces the L2 with a broadcast manager for maintaining coherence @@ -31,3 +31,7 @@ class WithInclusiveCacheInteriorBuffer(buffer: InclusiveCachePortParameters = In class WithInclusiveCacheExteriorBuffer(buffer: InclusiveCachePortParameters = InclusiveCachePortParameters.full) extends Config((site, here, up) => { case InclusiveCacheKey => up(InclusiveCacheKey).copy(bufInnerExterior=buffer, bufOuterExterior=buffer) }) + +class WithTLMonitors extends Config((site, here, up) => { + case MonitorsEnabled => true +}) From da8a1b50d01f3c649a4021a3ad92ff0ef093ab52 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 13:58:46 -0800 Subject: [PATCH 079/105] Fast rocket config --- docs/Simulation/Software-RTL-Simulation.rst | 13 ++++++------- .../src/main/scala/config/AbstractConfig.scala | 1 - .../src/main/scala/config/RocketConfigs.scala | 4 ++-- .../scala/config/fragments/SubsystemFragments.scala | 6 +----- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/docs/Simulation/Software-RTL-Simulation.rst b/docs/Simulation/Software-RTL-Simulation.rst index adeeea1f..fc97d959 100644 --- a/docs/Simulation/Software-RTL-Simulation.rst +++ b/docs/Simulation/Software-RTL-Simulation.rst @@ -225,27 +225,26 @@ By enabling this, you will use Chipyard's ``numa_prefix`` wrapper, which is a si Note that both these flags are mutually exclusive, you can use either independently (though it makes sense to use ``NUMACTL`` just with ``VERILATOR_THREADS=8`` during a Verilator simulation). -When the SoC Hangs Due to Bad Tilelink Messages +Speeding up your RTL Simulation by 2x! ----------------------------------------------- There are many cases when your custom module interfaces with Tilelink (e.g., when you write a custom accelerator). Wrong interfaces with Tilelink can cause the SoC to hang and can be tricky to debug. To help deal with these situations, you can add hardware modules called Tilelink monitors into your SoC that will fire assertions when wrong Tilelink messages are sent. +However, these modules can significantly slow down the speed of your RTL simulation. -You can simply add these modules into your SoC by adding the below line into your config. +You can simply remove these modules by adding the below line into your config. .. code-block:: scala - new chipyard.config.WithTLMonitors ++ + new freechips.rocketchip.subsystem.WithoutTLMonitors ++ For instance: .. code-block:: scala - class TLMonitorRocketConfig extends Config( - new chipyard.config.WithTLMonitors ++ + class FastRTLSimRocketConfig extends Config( + new freechips.rocketchip.subsystem.WithoutTLMonitors ++ new chipyard.RocketConfig) - -One caveat is that adding these modules can slow down your RTL simulation by around 2x. diff --git a/generators/chipyard/src/main/scala/config/AbstractConfig.scala b/generators/chipyard/src/main/scala/config/AbstractConfig.scala index f5f55f53..8a328daf 100644 --- a/generators/chipyard/src/main/scala/config/AbstractConfig.scala +++ b/generators/chipyard/src/main/scala/config/AbstractConfig.scala @@ -81,7 +81,6 @@ class AbstractConfig extends Config( new chipyard.config.WithL2TLBs(1024) ++ // use L2 TLBs new chipyard.config.WithNoSubsystemClockIO ++ // drive the subsystem diplomatic clocks from ChipTop instead of using implicit clocks new chipyard.config.WithInheritBusFrequencyAssignments ++ // Unspecified clocks within a bus will receive the bus frequency if set - new freechips.rocketchip.subsystem.WithoutTLMonitors ++ // Don't add TL Monitors in the default configuration new freechips.rocketchip.subsystem.WithNMemoryChannels(1) ++ // Default 1 memory channels new freechips.rocketchip.subsystem.WithClockGateModel ++ // add default EICG_wrapper clock gate model new freechips.rocketchip.subsystem.WithJtagDTM ++ // set the debug module to expose a JTAG port diff --git a/generators/chipyard/src/main/scala/config/RocketConfigs.scala b/generators/chipyard/src/main/scala/config/RocketConfigs.scala index c8e8679e..d3f21584 100644 --- a/generators/chipyard/src/main/scala/config/RocketConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RocketConfigs.scala @@ -97,6 +97,6 @@ class ClusteredRocketConfig extends Config( new freechips.rocketchip.subsystem.WithCluster(0) ++ new chipyard.config.AbstractConfig) -class TLMonitorRocketConfig extends Config( - new chipyard.config.WithTLMonitors ++ +class FastRTLSimRocketConfig extends Config( + new freechips.rocketchip.subsystem.WithoutTLMonitors ++ new chipyard.RocketConfig) diff --git a/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala b/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala index 0a35d192..b4971cba 100644 --- a/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/SubsystemFragments.scala @@ -2,7 +2,7 @@ package chipyard.config import org.chipsalliance.cde.config.{Config} import freechips.rocketchip.subsystem._ -import freechips.rocketchip.diplomacy.{DTSTimebase, MonitorsEnabled} +import freechips.rocketchip.diplomacy.{DTSTimebase} import sifive.blocks.inclusivecache.{InclusiveCachePortParameters} // Replaces the L2 with a broadcast manager for maintaining coherence @@ -31,7 +31,3 @@ class WithInclusiveCacheInteriorBuffer(buffer: InclusiveCachePortParameters = In class WithInclusiveCacheExteriorBuffer(buffer: InclusiveCachePortParameters = InclusiveCachePortParameters.full) extends Config((site, here, up) => { case InclusiveCacheKey => up(InclusiveCacheKey).copy(bufInnerExterior=buffer, bufOuterExterior=buffer) }) - -class WithTLMonitors extends Config((site, here, up) => { - case MonitorsEnabled => true -}) From b848e23d0871dbeaedaf74fa5096555513361aba Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 14:14:59 -0800 Subject: [PATCH 080/105] Update TLMonitor documentation --- docs/Simulation/Software-RTL-Simulation.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Simulation/Software-RTL-Simulation.rst b/docs/Simulation/Software-RTL-Simulation.rst index fc97d959..c84673b9 100644 --- a/docs/Simulation/Software-RTL-Simulation.rst +++ b/docs/Simulation/Software-RTL-Simulation.rst @@ -234,7 +234,8 @@ To help deal with these situations, you can add hardware modules called Tilelink your SoC that will fire assertions when wrong Tilelink messages are sent. However, these modules can significantly slow down the speed of your RTL simulation. -You can simply remove these modules by adding the below line into your config. +These modules are added to the SoC as a default and users have to manually +remove these modules by adding the below line into your config. .. code-block:: scala From 53eea73acb666d9ef7f84c5045c2dddb450850b9 Mon Sep 17 00:00:00 2001 From: Vighnesh Iyer Date: Mon, 22 Jan 2024 15:06:24 -0800 Subject: [PATCH 081/105] add .gitignore for embench build folder --- software/embench/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 software/embench/.gitignore diff --git a/software/embench/.gitignore b/software/embench/.gitignore new file mode 100644 index 00000000..378eac25 --- /dev/null +++ b/software/embench/.gitignore @@ -0,0 +1 @@ +build From fb28227e28de4d16f4c617cb765299e90133ca18 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 22 Jan 2024 16:23:36 -0800 Subject: [PATCH 082/105] Add BroadcastCoherence rocket config For minimal-area experiments --- .../chipyard/src/main/scala/config/MemorySystemConfigs.scala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/generators/chipyard/src/main/scala/config/MemorySystemConfigs.scala b/generators/chipyard/src/main/scala/config/MemorySystemConfigs.scala index c49f85ee..1b351266 100644 --- a/generators/chipyard/src/main/scala/config/MemorySystemConfigs.scala +++ b/generators/chipyard/src/main/scala/config/MemorySystemConfigs.scala @@ -39,3 +39,8 @@ class QuadChannelRocketConfig extends Config( new freechips.rocketchip.subsystem.WithNMemoryChannels(4) ++ // 4 AXI4 channels new freechips.rocketchip.subsystem.WithNBigCores(1) ++ new chipyard.config.AbstractConfig) + +class BroadcastCoherenceRocketConfig extends Config( + new chipyard.config.WithBroadcastManager ++ // Use broadcast-based coherence hub + new freechips.rocketchip.subsystem.WithNBigCores(1) ++ + new chipyard.config.AbstractConfig) From 5788579b1b32068b2418001d3402e4ad6d3c81bc Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 22 Jan 2024 14:30:48 -0800 Subject: [PATCH 083/105] Fix broken GCD example --- docs/Customization/Keys-Traits-Configs.rst | 4 +- docs/Customization/MMIO-Peripherals.rst | 8 +--- .../chipyard/src/main/scala/DigitalTop.scala | 1 - .../chipyard/src/main/scala/example/GCD.scala | 39 ++++++++----------- 4 files changed, 20 insertions(+), 32 deletions(-) diff --git a/docs/Customization/Keys-Traits-Configs.rst b/docs/Customization/Keys-Traits-Configs.rst index 7b6d565b..b91e4748 100644 --- a/docs/Customization/Keys-Traits-Configs.rst +++ b/docs/Customization/Keys-Traits-Configs.rst @@ -40,12 +40,12 @@ Top-level traits specify that the ``DigitalTop`` has been parameterized to read Top-level traits should be defined and documented in subprojects, alongside their corresponding keys. The traits should then be added to the ``DigitalTop`` being used by Chipyard. -Below we see the traits for the GCD example. The Lazy trait connects the GCD module to the Diplomacy graph, while the Implementation trait causes the ``DigitalTop`` to instantiate an additional port and concretely connect it to the GCD module. +Below we see the traits for the GCD example. The Lazy trait connects the GCD module to the Diplomacy graph. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala :start-after: DOC include start: GCD lazy trait - :end-before: DOC include end: GCD imp trait + :end-before: DOC include end: GCD lazy trait These traits are added to the default ``DigitalTop`` in Chipyard. diff --git a/docs/Customization/MMIO-Peripherals.rst b/docs/Customization/MMIO-Peripherals.rst index 4d0ba16a..f3f2bc8d 100644 --- a/docs/Customization/MMIO-Peripherals.rst +++ b/docs/Customization/MMIO-Peripherals.rst @@ -79,13 +79,7 @@ Register routers have a TileLink node simply named "node", which we can hook up This will automatically add address map and device tree entries for the peripheral. Also observe how we have to place additional AXI4 buffers and converters for the AXI4 version of this peripheral. -For peripherals which instantiate a concrete module, or which need to be connected to concrete IOs or wires, a matching concrete trait is necessary. We will make our GCD example output a ``gcd_busy`` signal as a top-level port to demonstrate. In the concrete module implementation trait, we instantiate the top level IO (a concrete object) and wire it to the IO of our lazy module. - - -.. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala - :language: scala - :start-after: DOC include start: GCD imp trait - :end-before: DOC include end: GCD imp trait +Peripherals which expose I/O can use `InModuleBody` to punch their I/O to the `DigitalTop` module. Constructing the DigitalTop and Config -------------------------------------- diff --git a/generators/chipyard/src/main/scala/DigitalTop.scala b/generators/chipyard/src/main/scala/DigitalTop.scala index 3a0e2fa9..ec8ffd99 100644 --- a/generators/chipyard/src/main/scala/DigitalTop.scala +++ b/generators/chipyard/src/main/scala/DigitalTop.scala @@ -48,6 +48,5 @@ class DigitalTopModule[+L <: DigitalTop](l: L) extends ChipyardSystemModule(l) with sifive.blocks.devices.gpio.HasPeripheryGPIOModuleImp with sifive.blocks.devices.spi.HasPeripherySPIFlashModuleImp with sifive.blocks.devices.spi.HasPeripherySPIModuleImp - with chipyard.example.CanHavePeripheryGCDModuleImp with freechips.rocketchip.util.DontTouch // DOC include end: DigitalTop diff --git a/generators/chipyard/src/main/scala/example/GCD.scala b/generators/chipyard/src/main/scala/example/GCD.scala index 1c1d2e2f..24c99187 100644 --- a/generators/chipyard/src/main/scala/example/GCD.scala +++ b/generators/chipyard/src/main/scala/example/GCD.scala @@ -161,10 +161,10 @@ trait CanHavePeripheryGCD { this: BaseSubsystem => private val portName = "gcd" // Only build if we are using the TL (nonAXI4) version - val gcd = p(GCDKey) match { + val gcd_busy = p(GCDKey) match { case Some(params) => { - if (params.useAXI4) { - val gcd = LazyModule(new GCDAXI4(params, pbus.beatBytes)(p)) + val gcd = if (params.useAXI4) { + val gcd = pbus { LazyModule(new GCDAXI4(params, pbus.beatBytes)(p)) } pbus.coupleTo(portName) { gcd.node := AXI4Buffer () := @@ -172,34 +172,29 @@ trait CanHavePeripheryGCD { this: BaseSubsystem => // toVariableWidthSlave doesn't use holdFirstDeny, which TLToAXI4() needsx TLFragmenter(pbus.beatBytes, pbus.blockBytes, holdFirstDeny = true) := _ } - Some(gcd) + gcd } else { - val gcd = LazyModule(new GCDTL(params, pbus.beatBytes)(p)) + val gcd = pbus { LazyModule(new GCDTL(params, pbus.beatBytes)(p)) } pbus.coupleTo(portName) { gcd.node := TLFragmenter(pbus.beatBytes, pbus.blockBytes) := _ } - Some(gcd) + gcd } + val pbus_io = pbus { InModuleBody { + val busy = IO(Output(Bool())) + busy := gcd.module.io.gcd_busy + busy + }} + val gcd_busy = InModuleBody { + val busy = IO(Output(Bool())).suggestName("gcd_busy") + busy := pbus_io + busy + } + Some(gcd_busy) } case None => None } } // DOC include end: GCD lazy trait -// DOC include start: GCD imp trait -trait CanHavePeripheryGCDModuleImp extends LazyRawModuleImp { - val outer: CanHavePeripheryGCD - val gcd_busy = outer.gcd match { - case Some(gcd) => { - val busy = IO(Output(Bool())) - busy := gcd.module.io.gcd_busy - Some(busy) - } - case None => None - } -} - -// DOC include end: GCD imp trait - - // DOC include start: GCD config fragment class WithGCD(useAXI4: Boolean = false, useBlackBox: Boolean = false) extends Config((site, here, up) => { case GCDKey => Some(GCDParams(useAXI4 = useAXI4, useBlackBox = useBlackBox)) From 71da0c36f7860ff7b59cbbd401162a47ec01485e Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 18:03:03 -0800 Subject: [PATCH 084/105] Bump fsim --- sims/firesim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sims/firesim b/sims/firesim index 3dd83489..535dcdc2 160000 --- a/sims/firesim +++ b/sims/firesim @@ -1 +1 @@ -Subproject commit 3dd83489d4943f37ee67cef36a2f7eba06ff1ce9 +Subproject commit 535dcdc29a930525e771f083f2b1c688884c6871 From 4b072fe03d622fa7232d8edcd95765dfea6e8715 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 18:08:58 -0800 Subject: [PATCH 085/105] [skip ci] changelog add --- CHANGELOG.md | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 233ddbce..ddf3b7a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,101 @@ This changelog follows the format defined here: https://keepachangelog.com/en/1.0.0/ +## [1.11.0] - 2024-1-22 + +Adds Ubuntu support for firemarshal, multi-chiptop configuration for chiplets, caliptra accelerator, spike-cosim. + +## Added +- Provide example of tethered-config simulation with MultiHarnessBinders (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1484) +- Add release note automation (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1548) +- Improve peripheral config binders (Reapply #1511) (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1527) +- UPF Generation (by @sriramsridhar23 in https://github.com/ucb-bar/chipyard/pull/1347) +- Improve: SiFive peripheral device doumentation (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1578) +- Bump to latest rocket-chip | integrated fixed-point | pull in stage/phase (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1577) +- Enable precommit | Format files (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1585) +- KLayout section of Sky130+OpenROAD tutorial (by @nayiri-k in https://github.com/ucb-bar/chipyard/pull/1514) +- Added useful "Build script exited at step X" errors for each step in build-setup.sh (by @JL102 in https://github.com/ucb-bar/chipyard/pull/1614) +- Adds support for Digilent Nexys Video FPGA board. (by @milovanovic in https://github.com/ucb-bar/chipyard/pull/1616) +- Add NarrowRocketCache config fragment (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1603) +- Add Caliptra AES256 ECB engine as RoCC accelerator (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1642) +- Support using HarnessBinders without IOBinders (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1636) +- Add Bringup on Arty100T config, using PMOD-gpio for ser-tl (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1657) +- Install uart_tsi utility as part of build-toolchain-extra (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1670) +- Add spike devices (by @joey0320 in https://github.com/ucb-bar/chipyard/pull/1692) +- Bump testchipip to support multi-serial-tl (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1630) +- ADD: bump fpga-shell (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1703) +- Add UART device/JTAG to Arty100T default design (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1712) +- Add generators/ submodule status check to all Make targets (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1718) +- Add clearer --skip flags to build-setup (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1724) +- Add Baremetal IDE support (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1534) +- ADD: add information on Baremetal-IDE in docs (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1730) +- Support clustered-cores (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1629) +- Add debug clock tap port to all default designs (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1697) +- Add support for symmetric serial-tilelink (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1716) +- Add Chip ID Pin and Port (by @schwarz-em in https://github.com/ucb-bar/chipyard/pull/1721) +- FastSimRocketConfig with no TLMonitors (by @joey0320 in https://github.com/ucb-bar/chipyard/pull/1752) +- Use lean conda for faster initial setup (by @joey0320 in https://github.com/ucb-bar/chipyard/pull/1750) +- Add BroadcastCoherence rocket config (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1755) + +## Changed +- Bump FireMarshal (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1556) +- Bump spike | support M-mode only cosim (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1530) +- Bump to chisel3.6 (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1531) +- Replace Dromajo FireSim bridge with Cospike (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1588) +- Add PortAPI between IO and Harness blocks (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1610) +- REFACTOR: change bootaddr register address and PC reset vector address (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1605) +- REFACTOR: rename arty35t explicitly (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1682) +- Add HasHarnessInstantiators into MultiHarnessBinder (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1674) +- Install CIRCT out of Conda (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1675) +- [cd] Bump CIRCT from firtool-1.58.0 to firtool-1.60.0 (copy #1688) (by @mergify[bot] in https://github.com/ucb-bar/chipyard/pull/1689) +- Bump constellation with improved TL-noc (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1633) +- Update testchipip imports with new testchipip organization (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1710) +- CHANGE: Set scratchpad as default config (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1719) +- Rename blocks/cache submodules to match new chipsalliance ownership (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1726) +- Rename timeout_cycles to TIMEOUT_CYCLES to match convention (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1706) +- [cd] Bump CIRCT from firtool-1.60.0 to firtool-1.61.0 (copy #1691) (by @mergify[bot] in https://github.com/ucb-bar/chipyard/pull/1699) +- Bump tcip/barf/marshal/fsim (by @joey0320 in https://github.com/ucb-bar/chipyard/pull/1748) +- Remove skip-validate option (by @joey0320 in https://github.com/ucb-bar/chipyard/pull/1749) +- Add .gitignore for Embench Build Folder (by @vighneshiyer in https://github.com/ucb-bar/chipyard/pull/1754) + +## Fixed +- Bump lockfiles | Force user-installed conda during conda-lock (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1555) +- Fix FIFO-fixing for PRCI bus (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1563) +- Fix VCU118 freq adjustment configs (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1597) +- Fix Arty100T verilog build (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1608) +- Make scripts/insert-includes.py use Python from conda env (by @hansungk in https://github.com/ucb-bar/chipyard/pull/1615) +- Fix icenet-loopback clock and reset domain (by @joey0320 in https://github.com/ucb-bar/chipyard/pull/1612) +- Bump FireMarshal for linux rng init fix (by @raghav-g13 in https://github.com/ucb-bar/chipyard/pull/1620) +- Bump barstools (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1625) +- [vlsi][ci skip] Fix tutorial.mk so that INPUT_CONFS override only affects tutorials (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1631) +- Fix regex for similar module names that are uniquified (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1640) +- Rebuild `jar`s when `sv`/`v` files are changed + Add documentation on blackboxes (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1639) +- Use TARGET instead of PREFIX in /tests Makefile(s) (by @raghav-g13 in https://github.com/ucb-bar/chipyard/pull/1647) +- Fix IO direction for host Serial-TL port (by @ethanwu10 in https://github.com/ucb-bar/chipyard/pull/1654) +- More robust env.sh | Fix conda activate if in subshell (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1653) +- Always generate MFC Blackbox filelist (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1668) +- Remove references to ENABLE_YOSYS (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1695) +- FIX: fix vcu118 sd card frequency (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1685) +- FIX: fix conda-lock version, >1.4.0 does not work! (by @T-K-233 in https://github.com/ucb-bar/chipyard/pull/1714) +- docs: correct to TOP_MACROCOMPILER_MODE (by @oharboe in https://github.com/ucb-bar/chipyard/pull/1744) +- Use non-lock-file conda requirements in RTD (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1742) +- Fix GCD MMIO example (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1753) + +## Removed +- Remove pre-commit from env.sh (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1587) +- Remove Dromajo (by @abejgonzalez in https://github.com/ucb-bar/chipyard/pull/1598) +- Remove MultiClockHarnessAXIMem (by @jerryz123 in https://github.com/ucb-bar/chipyard/pull/1601) + +## Uncategorized +- Documentation: Change "don't use Windows" to "if using Windows, use WSL" (by @JL102 in https://github.com/ucb-bar/chipyard/pull/1572) +- docs: Add info on chipyard's tests directory and how to do multithreading in RTL simulations (by @JL102 in https://github.com/ucb-bar/chipyard/pull/1646) +- Reduce CDE lookups for IOBinders (by @tymcauley in https://github.com/ucb-bar/chipyard/pull/1720) +- Update deprecated APIs to prepare for Chisel 5 (by @tymcauley in https://github.com/ucb-bar/chipyard/pull/1723) +- Allow sed override in uniquify-module-names.py (by @tymcauley in https://github.com/ucb-bar/chipyard/pull/1729) +- Update deprecated/unused Chisel APIs (by @tymcauley in https://github.com/ucb-bar/chipyard/pull/1743) + +**Full Changelog:** https://github.com/ucb-bar/chipyard/compare/1.10.0...main + ## [1.10.0] - 2023-6-16 Adds superscalar in-order core, prefetchers, architectural checkpointing, examples for custom-chiptop/tapeout-chip/flat-chiptop. FireSim bumped with new local FPGA support: Xilinx VCU118 (w/XDMA), Xilinx Alveo U250/U280 (w/XDMA, in addition to previous Vitis support), RHSResearch NiteFury II (w/XDMA). FireSim now also supports Xcelium for metasims. From 5a553741f03ce78fba68e8e88d0d35f4214a9ac2 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 22 Jan 2024 18:32:48 -0800 Subject: [PATCH 086/105] Improve GCD example --- .../chipyard/src/main/scala/example/GCD.scala | 196 +++++++++++------- 1 file changed, 116 insertions(+), 80 deletions(-) diff --git a/generators/chipyard/src/main/scala/example/GCD.scala b/generators/chipyard/src/main/scala/example/GCD.scala index 24c99187..3ed202ac 100644 --- a/generators/chipyard/src/main/scala/example/GCD.scala +++ b/generators/chipyard/src/main/scala/example/GCD.scala @@ -4,6 +4,7 @@ import chisel3._ import chisel3.util._ import chisel3.experimental.{IntParam, BaseModule} import freechips.rocketchip.amba.axi4._ +import freechips.rocketchip.prci._ import freechips.rocketchip.subsystem.BaseSubsystem import org.chipsalliance.cde.config.{Parameters, Field, Config} import freechips.rocketchip.diplomacy._ @@ -36,27 +37,24 @@ class GCDIO(val w: Int) extends Bundle { val busy = Output(Bool()) } -trait GCDTopIO extends Bundle { +class GCDTopIO extends Bundle { val gcd_busy = Output(Bool()) } -trait HasGCDIO extends BaseModule { - val w: Int - val io = IO(new GCDIO(w)) +trait HasGCDTopIO { + def io: GCDTopIO } // DOC include start: GCD blackbox -class GCDMMIOBlackBox(val w: Int) extends BlackBox(Map("WIDTH" -> IntParam(w))) with HasBlackBoxResource - with HasGCDIO -{ +class GCDMMIOBlackBox(val w: Int) extends BlackBox(Map("WIDTH" -> IntParam(w))) with HasBlackBoxResource { + val io = IO(new GCDIO(w)) addResource("/vsrc/GCDMMIOBlackBox.v") } // DOC include end: GCD blackbox // DOC include start: GCD chisel -class GCDMMIOChiselModule(val w: Int) extends Module - with HasGCDIO -{ +class GCDMMIOChiselModule(val w: Int) extends Module { + val io = IO(new GCDIO(w)) val s_idle :: s_run :: s_done :: Nil = Enum(3) val state = RegInit(s_idle) @@ -90,70 +88,111 @@ class GCDMMIOChiselModule(val w: Int) extends Module } // DOC include end: GCD chisel -// DOC include start: GCD instance regmap - -trait GCDModule extends HasRegMap { - val io: GCDTopIO - - implicit val p: Parameters - def params: GCDParams - val clock: Clock - val reset: Reset - - - // How many clock cycles in a PWM cycle? - val x = Reg(UInt(params.width.W)) - val y = Wire(new DecoupledIO(UInt(params.width.W))) - val gcd = Wire(new DecoupledIO(UInt(params.width.W))) - val status = Wire(UInt(2.W)) - - val impl = if (params.useBlackBox) { - Module(new GCDMMIOBlackBox(params.width)) - } else { - Module(new GCDMMIOChiselModule(params.width)) - } - - impl.io.clock := clock - impl.io.reset := reset.asBool - - impl.io.x := x - impl.io.y := y.bits - impl.io.input_valid := y.valid - y.ready := impl.io.input_ready - - gcd.bits := impl.io.gcd - gcd.valid := impl.io.output_valid - impl.io.output_ready := gcd.ready - - status := Cat(impl.io.input_ready, impl.io.output_valid) - io.gcd_busy := impl.io.busy - - regmap( - 0x00 -> Seq( - RegField.r(2, status)), // a read-only register capturing current status - 0x04 -> Seq( - RegField.w(params.width, x)), // a plain, write-only register - 0x08 -> Seq( - RegField.w(params.width, y)), // write-only, y.valid is set on write - 0x0C -> Seq( - RegField.r(params.width, gcd))) // read-only, gcd.ready is set on read -} -// DOC include end: GCD instance regmap - // DOC include start: GCD router -class GCDTL(params: GCDParams, beatBytes: Int)(implicit p: Parameters) - extends TLRegisterRouter( - params.address, "gcd", Seq("ucbbar,gcd"), - beatBytes = beatBytes)( - new TLRegBundle(params, _) with GCDTopIO)( - new TLRegModule(params, _, _) with GCDModule) +class GCDTL(params: GCDParams, beatBytes: Int)(implicit p: Parameters) extends ClockSinkDomain(ClockSinkParameters())(p) { + val device = new SimpleDevice("gcd", Seq("ucbbar,gcd")) { + override def describe(resources: ResourceBindings): Description = { + val Description(name, mapping) = super.describe(resources) + Description(name, mapping) + } + } + val node = TLRegisterNode(Seq(AddressSet(params.address, 4096-1)), device, "reg/control", beatBytes=beatBytes) -class GCDAXI4(params: GCDParams, beatBytes: Int)(implicit p: Parameters) - extends AXI4RegisterRouter( - params.address, - beatBytes=beatBytes)( - new AXI4RegBundle(params, _) with GCDTopIO)( - new AXI4RegModule(params, _, _) with GCDModule) + override lazy val module = new GCDImpl + class GCDImpl extends Impl with HasGCDTopIO { + val io = IO(new GCDTopIO) + withClockAndReset(clock, reset) { + // How many clock cycles in a PWM cycle? + val x = Reg(UInt(params.width.W)) + val y = Wire(new DecoupledIO(UInt(params.width.W))) + val gcd = Wire(new DecoupledIO(UInt(params.width.W))) + val status = Wire(UInt(2.W)) + + val impl_io = if (params.useBlackBox) { + val impl = Module(new GCDMMIOBlackBox(params.width)) + impl.io + } else { + val impl = Module(new GCDMMIOChiselModule(params.width)) + impl.io + } + + impl_io.clock := clock + impl_io.reset := reset.asBool + + impl_io.x := x + impl_io.y := y.bits + impl_io.input_valid := y.valid + y.ready := impl_io.input_ready + + gcd.bits := impl_io.gcd + gcd.valid := impl_io.output_valid + impl_io.output_ready := gcd.ready + + status := Cat(impl_io.input_ready, impl_io.output_valid) + io.gcd_busy := impl_io.busy + +// DOC include start: GCD instance regmap + node.regmap( + 0x00 -> Seq( + RegField.r(2, status)), // a read-only register capturing current status + 0x04 -> Seq( + RegField.w(params.width, x)), // a plain, write-only register + 0x08 -> Seq( + RegField.w(params.width, y)), // write-only, y.valid is set on write + 0x0C -> Seq( + RegField.r(params.width, gcd))) // read-only, gcd.ready is set on read +// DOC include end: GCD instance regmap + } + } +} + +class GCDAXI4(params: GCDParams, beatBytes: Int)(implicit p: Parameters) extends ClockSinkDomain(ClockSinkParameters())(p) { + val node = AXI4RegisterNode(AddressSet(params.address, 4096-1), beatBytes=beatBytes) + override lazy val module = new GCDImpl + class GCDImpl extends Impl with HasGCDTopIO { + val io = IO(new GCDTopIO) + withClockAndReset(clock, reset) { + // How many clock cycles in a PWM cycle? + val x = Reg(UInt(params.width.W)) + val y = Wire(new DecoupledIO(UInt(params.width.W))) + val gcd = Wire(new DecoupledIO(UInt(params.width.W))) + val status = Wire(UInt(2.W)) + + val impl_io = if (params.useBlackBox) { + val impl = Module(new GCDMMIOBlackBox(params.width)) + impl.io + } else { + val impl = Module(new GCDMMIOChiselModule(params.width)) + impl.io + } + + impl_io.clock := clock + impl_io.reset := reset.asBool + + impl_io.x := x + impl_io.y := y.bits + impl_io.input_valid := y.valid + y.ready := impl_io.input_ready + + gcd.bits := impl_io.gcd + gcd.valid := impl_io.output_valid + impl_io.output_ready := gcd.ready + + status := Cat(impl_io.input_ready, impl_io.output_valid) + io.gcd_busy := impl_io.busy + + node.regmap( + 0x00 -> Seq( + RegField.r(2, status)), // a read-only register capturing current status + 0x04 -> Seq( + RegField.w(params.width, x)), // a plain, write-only register + 0x08 -> Seq( + RegField.w(params.width, y)), // write-only, y.valid is set on write + 0x0C -> Seq( + RegField.r(params.width, gcd))) // read-only, gcd.ready is set on read + } + } +} // DOC include end: GCD router // DOC include start: GCD lazy trait @@ -164,7 +203,8 @@ trait CanHavePeripheryGCD { this: BaseSubsystem => val gcd_busy = p(GCDKey) match { case Some(params) => { val gcd = if (params.useAXI4) { - val gcd = pbus { LazyModule(new GCDAXI4(params, pbus.beatBytes)(p)) } + val gcd = LazyModule(new GCDAXI4(params, pbus.beatBytes)(p)) + gcd.clockNode := pbus.fixedClockNode pbus.coupleTo(portName) { gcd.node := AXI4Buffer () := @@ -174,18 +214,14 @@ trait CanHavePeripheryGCD { this: BaseSubsystem => } gcd } else { - val gcd = pbus { LazyModule(new GCDTL(params, pbus.beatBytes)(p)) } + val gcd = LazyModule(new GCDTL(params, pbus.beatBytes)(p)) + gcd.clockNode := pbus.fixedClockNode pbus.coupleTo(portName) { gcd.node := TLFragmenter(pbus.beatBytes, pbus.blockBytes) := _ } gcd } - val pbus_io = pbus { InModuleBody { - val busy = IO(Output(Bool())) - busy := gcd.module.io.gcd_busy - busy - }} val gcd_busy = InModuleBody { val busy = IO(Output(Bool())).suggestName("gcd_busy") - busy := pbus_io + busy := gcd.module.io.gcd_busy busy } Some(gcd_busy) From 4fc090844d30c802d2a0d9024de7654387cb8161 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 22 Jan 2024 19:27:33 -0800 Subject: [PATCH 087/105] Split-mems-conf should always touch the output files --- scripts/split-mems-conf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/split-mems-conf.py b/scripts/split-mems-conf.py index f772060e..351bb7b2 100755 --- a/scripts/split-mems-conf.py +++ b/scripts/split-mems-conf.py @@ -77,6 +77,8 @@ if __name__ == "__main__": with open(args.out_dut_smems_conf, "w") as odsc, \ open(args.out_model_smems_conf, "w") as otsc: + os.utime(args.out_dut_smems_conf) + os.utime(args.out_model_smems_conf) for l in isc: sl = l.split() From 3ddef0ded169a9860af03c0031c9eb0d2eb6da9d Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 22 Jan 2024 19:29:22 -0800 Subject: [PATCH 088/105] Macrocompiler should always touch the output files --- common.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common.mk b/common.mk index 462f1945..26b488f5 100644 --- a/common.mk +++ b/common.mk @@ -298,10 +298,12 @@ $(TOP_SMEMS_CONF) $(MODEL_SMEMS_CONF) &: $(MFC_SMEMS_CONF) $(MFC_MODEL_HRCHY_JS TOP_MACROCOMPILER_MODE ?= --mode synflops $(TOP_SMEMS_FILE) $(TOP_SMEMS_FIR) &: $(TAPEOUT_CLASSPATH_TARGETS) $(TOP_SMEMS_CONF) $(call run_jar_scala_main,$(TAPEOUT_CLASSPATH),barstools.macros.MacroCompiler,-n $(TOP_SMEMS_CONF) -v $(TOP_SMEMS_FILE) -f $(TOP_SMEMS_FIR) $(TOP_MACROCOMPILER_MODE)) + touch $(TOP_SMEMS_FILE) $(TOP_SMEMS_FIR) MODEL_MACROCOMPILER_MODE = --mode synflops -$(MODEL_SMEMS_FILE) $(MODEL_SMEMS_FIR) &: $(TAPEOUT_CLASSPATH_TARGETS) $(MODEL_SMEMS_CONF) | $(TOP_SMEMS_FILE) +$(MODEL_SMEMS_FILE) $(MODEL_SMEMS_FIR) &: $(TAPEOUT_CLASSPATH_TARGETS) $(MODEL_SMEMS_CONF) $(call run_jar_scala_main,$(TAPEOUT_CLASSPATH),barstools.macros.MacroCompiler, -n $(MODEL_SMEMS_CONF) -v $(MODEL_SMEMS_FILE) -f $(MODEL_SMEMS_FIR) $(MODEL_MACROCOMPILER_MODE)) + touch $(MODEL_SMEMS_FILE) $(MODEL_SMEMS_FIR) ######################################################################################## # remove duplicate files and headers in list of simulation file inputs From d70bd55a160169adb1c29533b70b9609d6aba694 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 22 Jan 2024 21:33:31 -0800 Subject: [PATCH 089/105] Remove useless conda env sourcing --- scripts/build-setup.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 28ec4f3d..2dbf1f22 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -181,7 +181,6 @@ if run_step "1"; then # use conda-lock to create env conda-lock install --conda $(which conda) -p $CYDIR/.conda-env $LOCKFILE && - source $CYDIR/.conda-env/etc/profile.d/conda.sh && conda activate $CYDIR/.conda-env exit_if_last_command_failed From 5aee69c17a4e1b9288bcee9a5a239d9549f7be9c Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 22 Jan 2024 22:24:48 -0800 Subject: [PATCH 090/105] update docs on GCD MMIO --- docs/Customization/MMIO-Peripherals.rst | 31 ++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/Customization/MMIO-Peripherals.rst b/docs/Customization/MMIO-Peripherals.rst index f3f2bc8d..82a9f27b 100644 --- a/docs/Customization/MMIO-Peripherals.rst +++ b/docs/Customization/MMIO-Peripherals.rst @@ -10,7 +10,8 @@ To create a RegisterRouter-based peripheral, you will need to specify a paramete For this example, we will show how to connect a MMIO peripheral which computes the GCD. The full code can be found in ``generators/chipyard/src/main/scala/example/GCD.scala``. -In this case we use a submodule ``GCDMMIOChiselModule`` to actually perform the GCD. The ``GCDModule`` class only creates the registers and hooks them up using ``regmap``. +In this case we use a submodule ``GCDMMIOChiselModule`` to actually perform the GCD. The ``GCDTL`` and ``GCDAXI4`` classes are the ``LazyModule`` classes which construct the TileLink or AXI4 ports, wrapping the inner ``GCDMMIOChiselModule``. +The ``node`` object is a Diplomacy node, which connects the peripheral to the Diplomacy interconnect graph. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala @@ -19,8 +20,9 @@ In this case we use a submodule ``GCDMMIOChiselModule`` to actually perform the .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala - :start-after: DOC include start: GCD instance regmap - :end-before: DOC include end: GCD instance regmap + :start-after: DOC include start: GCD router + :end-before: DOC include end: GCD router + Advanced Features of RegField Entries ------------------------------------- @@ -41,15 +43,21 @@ triggering the GCD algorithm when ``y`` is written. Therefore, the algorithm is set up by first writing ``x`` and then performing a triggering write to ``y``. Polling can be used for status checks. +.. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala + :language: scala + :start-after: DOC include start: GCD instance regmap + :end-before: DOC include end: GCD instance regmap + Connecting by TileLink ---------------------- -Once you have these classes, you can construct the final peripheral by extending the ``TLRegisterRouter`` and passing the proper arguments. -The first set of arguments determines where the register router will be placed in the global address map and what information will be put in its device tree entry. -The second set of arguments is the IO bundle constructor, which we create by extending ``TLRegBundle`` with our bundle trait. -The final set of arguments is the module constructor, which we create by extends ``TLRegModule`` with our module trait. -Notice how we can create an analogous AXI4 version of our peripheral. +The key to connecting to the TileLink Diplomatic graph is the construction of the TileLink node for this peripheral. +In this case, since the peripheral acts as a manager of some register-mapped address space, it uses the ``TLRegisterNode`` object. +The parameters to the ``TLRegisterNode`` object specify the size of the managed space, the base address, and the port width. + +Within the register-mapped peripheral, the control registers can be mapped using the ``node.regmap`` function, as described above. +A similar procedure is followed for both AXI4 and TileLin peripherals. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala @@ -62,12 +70,8 @@ Top-level Traits ---------------- After creating the module, we need to hook it up to our SoC. -Rocket Chip accomplishes this using the cake pattern. -This basically involves placing code inside traits. -In the Rocket Chip cake, there are two kinds of traits: a ``LazyModule`` trait and a module implementation trait. - The ``LazyModule`` trait runs setup code that must execute before all the hardware gets elaborated. -For a simple memory-mapped peripheral, this just involves connecting the peripheral's TileLink node to the MMIO crossbar. +For a simple memory-mapped peripheral, this just involves connecting the peripheral's TileLink node to the relevant bus. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala @@ -80,6 +84,7 @@ This will automatically add address map and device tree entries for the peripher Also observe how we have to place additional AXI4 buffers and converters for the AXI4 version of this peripheral. Peripherals which expose I/O can use `InModuleBody` to punch their I/O to the `DigitalTop` module. +In this example, the GCD module's ``gcd_busy`` signal is exposed as a I/O of DigitalTop. Constructing the DigitalTop and Config -------------------------------------- From 4aaffd53aed217d23ed6e7df01431e069fc9a252 Mon Sep 17 00:00:00 2001 From: Vighnesh Iyer Date: Mon, 22 Jan 2024 23:40:18 -0800 Subject: [PATCH 091/105] source conda.sh from conda base environment rather than the chipyard conda env (which does not have conda in lean lockfile) --- scripts/build-setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 2dbf1f22..0ba8eb1c 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -181,6 +181,7 @@ if run_step "1"; then # use conda-lock to create env conda-lock install --conda $(which conda) -p $CYDIR/.conda-env $LOCKFILE && + source $(conda info --base)/etc/profile.d/conda.sh && conda activate $CYDIR/.conda-env exit_if_last_command_failed From 77f5752ae48e7ce7a3800a9c2e6ae43eab1cdd38 Mon Sep 17 00:00:00 2001 From: joshua you Date: Tue, 23 Jan 2024 21:42:12 -0800 Subject: [PATCH 092/105] fix typo in build-setup.sh --- scripts/build-setup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build-setup.sh b/scripts/build-setup.sh index 0ba8eb1c..ffcee96b 100755 --- a/scripts/build-setup.sh +++ b/scripts/build-setup.sh @@ -294,6 +294,7 @@ if run_step "8"; then fi if run_step "10"; then + begin_step "10" "Installing CIRCT" # install circt into conda if run_step "1"; then PREFIX=$CONDA_PREFIX/$TOOLCHAIN_TYPE @@ -318,7 +319,7 @@ fi # do misc. cleanup for a "clean" git status if run_step "11"; then - begin_step "10" "Cleaning up repository" + begin_step "11" "Cleaning up repository" $CYDIR/scripts/repo-clean.sh exit_if_last_command_failed fi From aef7cda172874b758bd906e85a001b62c66525d5 Mon Sep 17 00:00:00 2001 From: Lux Date: Wed, 24 Jan 2024 17:24:59 -0800 Subject: [PATCH 093/105] removing seemingly useless override --- generators/chipyard/src/main/scala/example/GCD.scala | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/generators/chipyard/src/main/scala/example/GCD.scala b/generators/chipyard/src/main/scala/example/GCD.scala index 3ed202ac..ef3edc1f 100644 --- a/generators/chipyard/src/main/scala/example/GCD.scala +++ b/generators/chipyard/src/main/scala/example/GCD.scala @@ -90,12 +90,7 @@ class GCDMMIOChiselModule(val w: Int) extends Module { // DOC include start: GCD router class GCDTL(params: GCDParams, beatBytes: Int)(implicit p: Parameters) extends ClockSinkDomain(ClockSinkParameters())(p) { - val device = new SimpleDevice("gcd", Seq("ucbbar,gcd")) { - override def describe(resources: ResourceBindings): Description = { - val Description(name, mapping) = super.describe(resources) - Description(name, mapping) - } - } + val device = new SimpleDevice("gcd", Seq("ucbbar,gcd")) val node = TLRegisterNode(Seq(AddressSet(params.address, 4096-1)), device, "reg/control", beatBytes=beatBytes) override lazy val module = new GCDImpl From 1f9cf94afc3899d543e237e712f41fe6228e6703 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 26 Jan 2024 00:51:56 -0800 Subject: [PATCH 094/105] Don't recursively clone nvdla/cva6 --- scripts/init-submodules-no-riscv-tools-nolog.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/init-submodules-no-riscv-tools-nolog.sh b/scripts/init-submodules-no-riscv-tools-nolog.sh index 4283e892..9ee4c4a0 100755 --- a/scripts/init-submodules-no-riscv-tools-nolog.sh +++ b/scripts/init-submodules-no-riscv-tools-nolog.sh @@ -69,6 +69,8 @@ cd "$RDIR" # path to temporarily exclude during the recursive update for name in \ toolchains/*-tools/* \ + generators/cva6 \ + generators/nvdla \ toolchains/libgloss \ generators/sha3 \ generators/gemmini \ @@ -101,6 +103,14 @@ cd "$RDIR" # Non-recursive clone to exclude riscv-linux git submodule update --init generators/sha3 + # Non-recursive clone to exclude cva6 submods + git submodule update --init generators/cva6 + git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 + + # Non-recursive clone to exclude nvdla submods + git submodule update --init generators/nvdla + git -C generators/nvdla submodule update --init src/main/resources/hw + # Non-recursive clone to exclude gemmini-software git submodule update --init generators/gemmini git -C generators/gemmini/ submodule update --init --recursive software/gemmini-rocc-tests From 32d343943f6e3751d5ed29880f6b505ef77f233d Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 26 Jan 2024 00:52:42 -0800 Subject: [PATCH 095/105] Fix submodule names in .gitmodules --- .gitmodules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 86f29d8a..4f21369e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,10 +1,10 @@ -[submodule "rocket-chip"] +[submodule "generators/rocket-chip"] path = generators/rocket-chip url = https://github.com/chipsalliance/rocket-chip.git -[submodule "testchipip"] +[submodule "generators/testchipip"] path = generators/testchipip url = https://github.com/ucb-bar/testchipip.git -[submodule "barstools"] +[submodule "tools/barstools"] path = tools/barstools url = https://github.com/ucb-bar/barstools.git [submodule "tools/torture"] From 89914e4cd57f531de2d1418fa86c7333e2eb63d4 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Fri, 26 Jan 2024 01:28:13 -0800 Subject: [PATCH 096/105] Add missing cva6 submods --- scripts/init-submodules-no-riscv-tools-nolog.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/init-submodules-no-riscv-tools-nolog.sh b/scripts/init-submodules-no-riscv-tools-nolog.sh index 9ee4c4a0..1779b8d8 100755 --- a/scripts/init-submodules-no-riscv-tools-nolog.sh +++ b/scripts/init-submodules-no-riscv-tools-nolog.sh @@ -106,7 +106,13 @@ cd "$RDIR" # Non-recursive clone to exclude cva6 submods git submodule update --init generators/cva6 git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 - + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi_riscv_atomics + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/common_cells + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/fpga-support + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/riscv-dbg + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/register_interface + git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init --recursive src/fpu # Non-recursive clone to exclude nvdla submods git submodule update --init generators/nvdla git -C generators/nvdla submodule update --init src/main/resources/hw From d8e44d2b5e1baa7ff1cea89dff855e2b21d21e75 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sun, 28 Jan 2024 23:48:08 -0800 Subject: [PATCH 097/105] Bump to latest rocket-chip --- generators/icenet | 2 +- generators/rocket-chip | 2 +- generators/rocket-chip-blocks | 2 +- generators/testchipip | 2 +- tools/rocket-dsp-utils | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/generators/icenet b/generators/icenet index d6a471f2..ab30e23e 160000 --- a/generators/icenet +++ b/generators/icenet @@ -1 +1 @@ -Subproject commit d6a471f2187c0671eea6567c7ba29e86e830e8d4 +Subproject commit ab30e23e8e1fdd0777a7e4eb82bb40e2657cfcd3 diff --git a/generators/rocket-chip b/generators/rocket-chip index 749a3eae..8026b6bc 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit 749a3eae9678bc70b029c5b9091fae33fad539c4 +Subproject commit 8026b6bc9abe7cbfb7d07cecb28ef909c25868c8 diff --git a/generators/rocket-chip-blocks b/generators/rocket-chip-blocks index 212c7b07..3dddfe9f 160000 --- a/generators/rocket-chip-blocks +++ b/generators/rocket-chip-blocks @@ -1 +1 @@ -Subproject commit 212c7b070bc7132f31a26deec6b2bde9e0b1b612 +Subproject commit 3dddfe9f5bcacf28aebcadb71d5b57f4f6df7e07 diff --git a/generators/testchipip b/generators/testchipip index edacb214..003c9c1e 160000 --- a/generators/testchipip +++ b/generators/testchipip @@ -1 +1 @@ -Subproject commit edacb214f081e5034f131af74efa0ac5f4452ee6 +Subproject commit 003c9c1e81c94c74f877d3883688c220dfe69d1b diff --git a/tools/rocket-dsp-utils b/tools/rocket-dsp-utils index 19445522..272cee3c 160000 --- a/tools/rocket-dsp-utils +++ b/tools/rocket-dsp-utils @@ -1 +1 @@ -Subproject commit 194455223aa75f400d2ac76bfd71e61e3c2a9533 +Subproject commit 272cee3c83a31a7496b8f2e933290798e2fb5cac From 0ccd032a734ac83affe48436c398c10ed81c4d83 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 29 Jan 2024 07:57:36 -0800 Subject: [PATCH 098/105] Remove references to legacy softcore-based bringup --- docs/Advanced-Concepts/Chip-Communication.rst | 22 -- docs/Prototyping/VCU118.rst | 14 -- fpga/Makefile | 14 -- .../scala/vcu118/bringup/BringupGPIOs.scala | 28 --- .../main/scala/vcu118/bringup/Configs.scala | 97 --------- .../scala/vcu118/bringup/CustomOverlays.scala | 204 ------------------ .../scala/vcu118/bringup/DigitalTop.scala | 26 --- .../scala/vcu118/bringup/HarnessBinders.scala | 51 ----- .../main/scala/vcu118/bringup/IOBinders.scala | 30 --- .../scala/vcu118/bringup/TestHarness.scala | 99 --------- 10 files changed, 585 deletions(-) delete mode 100644 fpga/src/main/scala/vcu118/bringup/BringupGPIOs.scala delete mode 100644 fpga/src/main/scala/vcu118/bringup/Configs.scala delete mode 100644 fpga/src/main/scala/vcu118/bringup/CustomOverlays.scala delete mode 100644 fpga/src/main/scala/vcu118/bringup/DigitalTop.scala delete mode 100644 fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala delete mode 100644 fpga/src/main/scala/vcu118/bringup/IOBinders.scala delete mode 100644 fpga/src/main/scala/vcu118/bringup/TestHarness.scala diff --git a/docs/Advanced-Concepts/Chip-Communication.rst b/docs/Advanced-Concepts/Chip-Communication.rst index 5a79e963..bc913f68 100644 --- a/docs/Advanced-Concepts/Chip-Communication.rst +++ b/docs/Advanced-Concepts/Chip-Communication.rst @@ -198,25 +198,3 @@ bringup design). :language: scala :start-after: DOC include start: TetheredChipLikeRocketConfig :end-before: DOC include end: TetheredChipLikeRocketConfig - -Softcore-driven Bringup Setup of the Example Test Chip after Tapeout -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. warning:: - Bringing up test chips with a FPGA softcore as described here is discouraged. - An alternative approach using the FPGA to "bridge" between a host computer and the test chip is the preferred approach. - -Assuming this example test chip is taped out and now ready to be tested, we can communicate with the chip using this serial-link. -For example, a common test setup used at Berkeley to evaluate Chipyard-based test-chips includes an FPGA running a RISC-V soft-core that is able to speak to the DUT (over an FMC). -This RISC-V soft-core would serve as the host of the test that will run on the DUT. -This is done by the RISC-V soft-core running FESVR, sending TSI commands to a ``TSIToTileLink`` / ``TLSerdesser`` programmed on the FPGA. -Once the commands are converted to serialized TileLink, then they can be sent over some medium to the DUT -(like an FMC cable or a set of wires connecting FPGA outputs to the DUT board). -Similar to simulation, if the chip requests offchip memory, it can then send the transaction back over the serial-link. -Then the request can be serviced by the FPGA DRAM. -The following image shows this flow: - -.. image:: ../_static/images/chip-bringup.png - -In fact, this exact type of bringup setup is what the following section discusses: -:ref:_legacy-vcu118-bringup. diff --git a/docs/Prototyping/VCU118.rst b/docs/Prototyping/VCU118.rst index 96c67f48..813179fd 100644 --- a/docs/Prototyping/VCU118.rst +++ b/docs/Prototyping/VCU118.rst @@ -47,20 +47,6 @@ After the harness is created, the ``BundleBridgeSource``'s must be connected to This is done with harness binders and io binders (see ``fpga/src/main/scala/vcu118/HarnessBinders.scala`` and ``fpga/src/main/scala/vcu118/IOBinders.scala``). For more information on harness binders and io binders, refer to :ref:`Customization/IOBinders:IOBinders and HarnessBinders`. -(Legacy) Introduction to the Legacy Bringup Design --------------------------------------------------- - -.. warning:: - The bringup VCU118 design described here is designed for old versions of Chipyard SoCs, pre-1.9.1. - The key difference is that these designs rely on a clock generated on-chip to synchronize the slow serialized-TileLink interface. - After Chipyard 1.9.1, the FPGA host is expected to pass the clock to the chip, instead of the other way around. - A new bringup solution will be developed for post-1.9.1 Chipyard designs. - -An example of a more complicated design used for Chipyard test chips can be viewed in ``fpga/src/main/scala/vcu118/bringup/``. -This example extends the default test harness and creates new ``Overlays`` to connect to a DUT (connected to the FMC port). -Extensions include another UART (connected over FMC), I2C (connected over FMC), miscellaneous GPIOS (can be connected to anything), and a TSI Host Widget. -The TSI Host Widget is used to interact with the DUT from the prototype over a SerDes link (sometimes called the Low BandWidth InterFace - LBWIF) and provide access to a channel of the FPGA's DRAM. - .. Note:: Remember that since whenever a new test harness is created (or the config changes, or the config packages changes, or...), you need to modify the make invocation. For example, ``make SUB_PROJECT=vcu118 CONFIG=MyNewVCU118Config CONFIG_PACKAGE=this.is.my.scala.package bitstream``. See :ref:`Prototyping/General:Generating a Bitstream` for information on the various make variables. diff --git a/fpga/Makefile b/fpga/Makefile index a4d3bf99..ebf55a97 100644 --- a/fpga/Makefile +++ b/fpga/Makefile @@ -44,20 +44,6 @@ ifeq ($(SUB_PROJECT),vcu118) FPGA_BRAND ?= xilinx endif -ifeq ($(SUB_PROJECT),bringup) - SBT_PROJECT ?= fpga_platforms - MODEL ?= BringupVCU118FPGATestHarness - VLOG_MODEL ?= BringupVCU118FPGATestHarness - MODEL_PACKAGE ?= chipyard.fpga.vcu118.bringup - CONFIG ?= RocketBringupConfig - CONFIG_PACKAGE ?= chipyard.fpga.vcu118.bringup - GENERATOR_PACKAGE ?= chipyard - TB ?= none # unused - TOP ?= ChipTop - BOARD ?= vcu118 - FPGA_BRAND ?= xilinx -endif - ifeq ($(SUB_PROJECT),nexysvideo) SBT_PROJECT ?= fpga_platforms MODEL ?= NexysVideoHarness diff --git a/fpga/src/main/scala/vcu118/bringup/BringupGPIOs.scala b/fpga/src/main/scala/vcu118/bringup/BringupGPIOs.scala deleted file mode 100644 index 40c33bfa..00000000 --- a/fpga/src/main/scala/vcu118/bringup/BringupGPIOs.scala +++ /dev/null @@ -1,28 +0,0 @@ -package chipyard.fpga.vcu118.bringup - -import scala.collection.mutable.{LinkedHashMap} - -object BringupGPIOs { - // map of the pin name (akin to die pin name) to (fpga package pin, IOSTANDARD, add pullup resistor?) - val pinMapping = LinkedHashMap( - // these connect to LEDs and switches on the VCU118 (and use 1.2V) - "led0" -> ("AT32", "LVCMOS12", false), // 0 - "led1" -> ("AV34", "LVCMOS12", false), // 1 - "led2" -> ("AY30", "LVCMOS12", false), // 2 - "led3" -> ("BB32", "LVCMOS12", false), // 3 - "led4" -> ("BF32", "LVCMOS12", false), // 4 - "led5" -> ("AU37", "LVCMOS12", false), // 5 - "led6" -> ("AV36", "LVCMOS12", false), // 6 - "led7" -> ("BA37", "LVCMOS12", false), // 7 - "sw0" -> ("B17", "LVCMOS12", false), // 8 - "sw1" -> ("G16", "LVCMOS12", false), // 9 - "sw2" -> ("J16", "LVCMOS12", false), // 10 - "sw3" -> ("D21", "LVCMOS12", false) // 11 - ) - - // return list of names (ordered) - def names: Seq[String] = pinMapping.keys.toSeq - - // return number of GPIOs - def width: Int = pinMapping.size -} diff --git a/fpga/src/main/scala/vcu118/bringup/Configs.scala b/fpga/src/main/scala/vcu118/bringup/Configs.scala deleted file mode 100644 index 0760fa72..00000000 --- a/fpga/src/main/scala/vcu118/bringup/Configs.scala +++ /dev/null @@ -1,97 +0,0 @@ -package chipyard.fpga.vcu118.bringup - -import math.min - -import org.chipsalliance.cde.config.{Config, Parameters} -import freechips.rocketchip.diplomacy.{DTSModel, DTSTimebase, RegionType, AddressSet, ResourceBinding, Resource, ResourceAddress} -import freechips.rocketchip.tilelink._ -import freechips.rocketchip.diplomacy._ -import freechips.rocketchip.subsystem.{MasterPortParams} - -import sifive.blocks.devices.gpio.{PeripheryGPIOKey, GPIOParams} -import sifive.blocks.devices.i2c.{PeripheryI2CKey, I2CParams} -import sifive.blocks.devices.uart.{PeripheryUARTKey, UARTParams} - -import sifive.fpgashells.shell.{DesignKey} -import sifive.fpgashells.shell.xilinx.{VCU118ShellPMOD, VCU118DDRSize} - -import testchipip.tsi.{PeripheryTSIHostKey, TSIHostParams, TSIHostSerdesParams} - -import chipyard.{BuildSystem} - -import chipyard.fpga.vcu118.{WithVCU118Tweaks, WithFPGAFrequency, VCU118DDR2Size} -import chipyard.iobinders.{WithGPIOPunchthrough} - -class WithBringupPeripherals extends Config((site, here, up) => { - case PeripheryUARTKey => up(PeripheryUARTKey, site) ++ List(UARTParams(address = BigInt(0x64003000L))) - case PeripheryI2CKey => List(I2CParams(address = BigInt(0x64005000L))) - case PeripheryGPIOKey => { - if (BringupGPIOs.width > 0) { - require(BringupGPIOs.width <= 64) // currently only support 64 GPIOs (change addrs to get more) - val gpioAddrs = Seq(BigInt(0x64002000), BigInt(0x64007000)) - val maxGPIOSupport = 32 // max gpios supported by SiFive driver (split by 32) - List.tabulate(((BringupGPIOs.width - 1)/maxGPIOSupport) + 1)(n => { - GPIOParams(address = gpioAddrs(n), width = min(BringupGPIOs.width - maxGPIOSupport*n, maxGPIOSupport)) - }) - } - else { - List.empty[GPIOParams] - } - } - case TSIClockMaxFrequencyKey => 100 - case PeripheryTSIHostKey => List( - TSIHostParams( - offchipSerialIfWidth = 4, - mmioBaseAddress = BigInt(0x64006000), - mmioSourceId = 1 << 13, // manager source - serdesParams = TSIHostSerdesParams( - clientPortParams = TLMasterPortParameters.v1( - clients = Seq(TLMasterParameters.v1( - name = "tl-tsi-host-serdes", - sourceId = IdRange(0, (1 << 13))))), - managerPortParams = TLSlavePortParameters.v1( - managers = Seq(TLSlaveParameters.v1( - address = Seq(AddressSet(0, BigInt("FFFFFFFF", 16))), // access everything on chip - regionType = RegionType.UNCACHED, - executable = true, - supportsGet = TransferSizes(1, 64), - supportsPutFull = TransferSizes(1, 64), - supportsPutPartial = TransferSizes(1, 64), - supportsAcquireT = TransferSizes(1, 64), - supportsAcquireB = TransferSizes(1, 64), - supportsArithmetic = TransferSizes(1, 64), - supportsLogical = TransferSizes(1, 64))), - endSinkId = 1 << 6, // manager sink - beatBytes = 8)), - targetMasterPortParams = MasterPortParams( - base = BigInt("80000000", 16), - size = site(VCU118DDR2Size), - beatBytes = 8, // comes from test chip - idBits = 4) // comes from VCU118 idBits in XilinxVCU118MIG - )) -}) - -class WithBringupVCU118System extends Config((site, here, up) => { - case BuildSystem => (p: Parameters) => new BringupVCU118DigitalTop()(p) // use the VCU118-extended bringup digital top -}) - -class WithBringupAdditions extends Config( - new WithBringupUART ++ - new WithBringupI2C ++ - new WithBringupGPIO ++ - new WithBringupTSIHost ++ - new WithTSITLIOPassthrough ++ - new WithGPIOPunchthrough ++ - new WithBringupPeripherals ++ - new WithBringupVCU118System) - -class RocketBringupConfig extends Config( - new WithBringupAdditions ++ - new WithVCU118Tweaks ++ - new chipyard.RocketConfig) - -class BoomBringupConfig extends Config( - new WithFPGAFrequency(50) ++ - new WithBringupAdditions ++ - new WithVCU118Tweaks ++ - new chipyard.MegaBoomConfig) diff --git a/fpga/src/main/scala/vcu118/bringup/CustomOverlays.scala b/fpga/src/main/scala/vcu118/bringup/CustomOverlays.scala deleted file mode 100644 index a52a1b5e..00000000 --- a/fpga/src/main/scala/vcu118/bringup/CustomOverlays.scala +++ /dev/null @@ -1,204 +0,0 @@ -package chipyard.fpga.vcu118.bringup - -import chisel3._ -import chisel3.experimental.{attach} - -import freechips.rocketchip.diplomacy._ -import org.chipsalliance.cde.config.{Parameters, Field} -import freechips.rocketchip.tilelink.{TLInwardNode, TLAsyncCrossingSink} - -import sifive.fpgashells.shell._ -import sifive.fpgashells.ip.xilinx._ -import sifive.fpgashells.shell.xilinx._ -import sifive.fpgashells.clocks._ -import sifive.fpgashells.devices.xilinx.xilinxvcu118mig.{XilinxVCU118MIGPads, XilinxVCU118MIGParams, XilinxVCU118MIG} - -import testchipip.tsi.{TSIHostWidgetIO} - -import chipyard.fpga.vcu118.{FMCPMap} - -/* Connect the I2C to certain FMC pins */ -class BringupI2CVCU118PlacedOverlay(val shell: VCU118ShellBasicOverlays, name: String, val designInput: I2CDesignInput, val shellInput: I2CShellInput) - extends I2CXilinxPlacedOverlay(name, designInput, shellInput) -{ - shell { InModuleBody { - require(shellInput.index == 0) // only support 1 I2C <-> FMC connection - val i2cLocations = List(List(FMCPMap("K11"), FMCPMap("E2"))) - val packagePinsWithPackageIOs = Seq((i2cLocations(shellInput.index)(0), IOPin(io.scl)), - (i2cLocations(shellInput.index)(1), IOPin(io.sda))) - - packagePinsWithPackageIOs foreach { case (pin, io) => { - shell.xdc.addPackagePin(io, pin) - shell.xdc.addIOStandard(io, "LVCMOS18") - shell.xdc.addIOB(io) - } } - } } -} - -class BringupI2CVCU118ShellPlacer(val shell: VCU118ShellBasicOverlays, val shellInput: I2CShellInput)(implicit val valName: ValName) - extends I2CShellPlacer[VCU118ShellBasicOverlays] -{ - def place(designInput: I2CDesignInput) = new BringupI2CVCU118PlacedOverlay(shell, valName.name, designInput, shellInput) -} - -/* Connect the UART to certain FMC pins */ -class BringupUARTVCU118PlacedOverlay(val shell: VCU118ShellBasicOverlays, name: String, val designInput: UARTDesignInput, val shellInput: UARTShellInput) - extends UARTXilinxPlacedOverlay(name, designInput, shellInput, true) -{ - shell { InModuleBody { - val packagePinsWithPackageIOs = Seq((FMCPMap("E9"), IOPin(io.ctsn.get)), // unused - (FMCPMap("E10"), IOPin(io.rtsn.get)), // unused - (FMCPMap("C15"), IOPin(io.rxd)), - (FMCPMap("C14"), IOPin(io.txd))) - - packagePinsWithPackageIOs foreach { case (pin, io) => { - shell.xdc.addPackagePin(io, pin) - shell.xdc.addIOStandard(io, "LVCMOS18") - shell.xdc.addIOB(io) - } } - - // add pullup on ctsn (ctsn is an input that is not used or driven) - packagePinsWithPackageIOs take 1 foreach { case (pin, io) => { - shell.xdc.addPullup(io) - } } - } } -} - -class BringupUARTVCU118ShellPlacer(shell: VCU118ShellBasicOverlays, val shellInput: UARTShellInput)(implicit val valName: ValName) - extends UARTShellPlacer[VCU118ShellBasicOverlays] { - def place(designInput: UARTDesignInput) = new BringupUARTVCU118PlacedOverlay(shell, valName.name, designInput, shellInput) -} - -/* Connect GPIOs to FPGA I/Os */ -abstract class GPIOXilinxPlacedOverlay(name: String, di: GPIODesignInput, si: GPIOShellInput) - extends GPIOPlacedOverlay(name, di, si) -{ - def shell: XilinxShell - - shell { InModuleBody { - (io.gpio zip tlgpioSink.bundle.pins).map { case (ioPin, sinkPin) => - val iobuf = Module(new IOBUF) - iobuf.suggestName(s"gpio_iobuf") - attach(ioPin, iobuf.io.IO) - sinkPin.i.ival := iobuf.io.O - iobuf.io.T := !sinkPin.o.oe - iobuf.io.I := sinkPin.o.oval - } - } } -} - -class BringupGPIOVCU118PlacedOverlay(val shell: VCU118ShellBasicOverlays, name: String, val designInput: GPIODesignInput, val shellInput: GPIOShellInput, gpioNames: Seq[String]) - extends GPIOXilinxPlacedOverlay(name, designInput, shellInput) -{ - shell { InModuleBody { - require(gpioNames.length == io.gpio.length) - - val packagePinsWithIOStdWithPackageIOs = (gpioNames zip io.gpio).map { case (name, io) => - val (pin, iostd, pullupEnable) = BringupGPIOs.pinMapping(name) - (pin, iostd, pullupEnable, IOPin(io)) - } - - packagePinsWithIOStdWithPackageIOs foreach { case (pin, iostd, pullupEnable, io) => { - shell.xdc.addPackagePin(io, pin) - shell.xdc.addIOStandard(io, iostd) - if (iostd == "LVCMOS12") { shell.xdc.addDriveStrength(io, "8") } - if (pullupEnable) { shell.xdc.addPullup(io) } - } } - } } -} - -class BringupGPIOVCU118ShellPlacer(shell: VCU118ShellBasicOverlays, val shellInput: GPIOShellInput, gpioNames: Seq[String])(implicit val valName: ValName) - extends GPIOShellPlacer[VCU118ShellBasicOverlays] { - def place(designInput: GPIODesignInput) = new BringupGPIOVCU118PlacedOverlay(shell, valName.name, designInput, shellInput, gpioNames) -} - -case class TSIHostShellInput() -case class TSIHostDesignInput( - serialIfWidth: Int, - node: BundleBridgeSource[TSIHostWidgetIO] - )( - implicit val p: Parameters) -case class TSIHostOverlayOutput() -trait TSIHostShellPlacer[Shell] extends ShellPlacer[TSIHostDesignInput, TSIHostShellInput, TSIHostOverlayOutput] - -case object TSIHostOverlayKey extends Field[Seq[DesignPlacer[TSIHostDesignInput, TSIHostShellInput, TSIHostOverlayOutput]]](Nil) - -abstract class TSIHostPlacedOverlay[IO <: Data](val name: String, val di: TSIHostDesignInput, val si: TSIHostShellInput) - extends IOPlacedOverlay[IO, TSIHostDesignInput, TSIHostShellInput, TSIHostOverlayOutput] -{ - implicit val p = di.p -} - -case object TSIHostVCU118DDRSize extends Field[BigInt](0x40000000L * 2) // 2GB -class TSIHostVCU118PlacedOverlay(val shell: BringupVCU118FPGATestHarness, name: String, val designInput: TSIHostDesignInput, val shellInput: TSIHostShellInput) - extends TSIHostPlacedOverlay[TSIHostWidgetIO](name, designInput, shellInput) -{ - val tlTsiSerialSink = di.node.makeSink() - val tsiIoNode = BundleBridgeSource(() => new TSIHostWidgetIO(di.serialIfWidth)) - val topTSIIONode = shell { tsiIoNode.makeSink() } - - def overlayOutput = TSIHostOverlayOutput() - def ioFactory = new TSIHostWidgetIO(di.serialIfWidth) - - InModuleBody { - // connect TSI serial - val tsiSourcePort = tsiIoNode.bundle - val tsiSinkPort = tlTsiSerialSink.bundle - tsiSinkPort.serial_clock := tsiSourcePort.serial_clock - tsiSourcePort.serial.out.bits := tsiSinkPort.serial.out.bits - tsiSourcePort.serial.out.valid := tsiSinkPort.serial.out.valid - tsiSinkPort.serial.out.ready := tsiSourcePort.serial.out.ready - tsiSinkPort.serial.in.bits := tsiSourcePort.serial.in.bits - tsiSinkPort.serial.in.valid := tsiSourcePort.serial.in.valid - tsiSourcePort.serial.in.ready := tsiSinkPort.serial.in.ready - } -} - -case object TSIClockMaxFrequencyKey extends Field[Int](50) // in MHz -class BringupTSIHostVCU118PlacedOverlay(override val shell: BringupVCU118FPGATestHarness, override val name: String, override val designInput: TSIHostDesignInput, override val shellInput: TSIHostShellInput) - extends TSIHostVCU118PlacedOverlay(shell, name, designInput, shellInput) -{ - // connect the TSI port - shell { InModuleBody { - // connect TSI signals - val tsiPort = topTSIIONode.bundle - io <> tsiPort - - require(di.serialIfWidth == 4) - - val clkIo = IOPin(io.serial_clock) - val packagePinsWithPackageIOs = Seq( - (FMCPMap("D8"), clkIo), - (FMCPMap("D17"), IOPin(io.serial.out.ready)), - (FMCPMap("D18"), IOPin(io.serial.out.valid)), - (FMCPMap("D11"), IOPin(io.serial.out.bits, 0)), - (FMCPMap("D12"), IOPin(io.serial.out.bits, 1)), - (FMCPMap("D14"), IOPin(io.serial.out.bits, 2)), - (FMCPMap("D15"), IOPin(io.serial.out.bits, 3)), - (FMCPMap("D26"), IOPin(io.serial.in.ready)), - (FMCPMap("D27"), IOPin(io.serial.in.valid)), - (FMCPMap("D20"), IOPin(io.serial.in.bits, 0)), - (FMCPMap("D21"), IOPin(io.serial.in.bits, 1)), - (FMCPMap("D23"), IOPin(io.serial.in.bits, 2)), - (FMCPMap("D24"), IOPin(io.serial.in.bits, 3))) - - packagePinsWithPackageIOs foreach { case (pin, io) => { - shell.xdc.addPackagePin(io, pin) - shell.xdc.addIOStandard(io, "LVCMOS18") - } } - - // Don't add an IOB to the clock - (packagePinsWithPackageIOs take 1) foreach { case (pin, io) => { - shell.xdc.addIOB(io) - } } - - shell.sdc.addClock("TSI_CLK", clkIo, p(TSIClockMaxFrequencyKey)) - shell.sdc.addGroup(pins = Seq(clkIo)) - shell.xdc.clockDedicatedRouteFalse(clkIo) - } } -} - -class BringupTSIHostVCU118ShellPlacer(shell: BringupVCU118FPGATestHarness, val shellInput: TSIHostShellInput)(implicit val valName: ValName) - extends TSIHostShellPlacer[BringupVCU118FPGATestHarness] { - def place(designInput: TSIHostDesignInput) = new BringupTSIHostVCU118PlacedOverlay(shell, valName.name, designInput, shellInput) -} diff --git a/fpga/src/main/scala/vcu118/bringup/DigitalTop.scala b/fpga/src/main/scala/vcu118/bringup/DigitalTop.scala deleted file mode 100644 index e4efbdc7..00000000 --- a/fpga/src/main/scala/vcu118/bringup/DigitalTop.scala +++ /dev/null @@ -1,26 +0,0 @@ -package chipyard.fpga.vcu118.bringup - -import chisel3._ - -import freechips.rocketchip.subsystem._ -import freechips.rocketchip.system._ -import org.chipsalliance.cde.config.Parameters -import freechips.rocketchip.devices.tilelink._ -import freechips.rocketchip.diplomacy._ -import freechips.rocketchip.tilelink._ - -import chipyard.{DigitalTop, DigitalTopModule} - -// ------------------------------------ -// Bringup VCU118 DigitalTop -// ------------------------------------ - -class BringupVCU118DigitalTop(implicit p: Parameters) extends DigitalTop - with sifive.blocks.devices.i2c.HasPeripheryI2C - with testchipip.tsi.HasPeripheryTSIHostWidget -{ - override lazy val module = new BringupVCU118DigitalTopModule(this) -} - -class BringupVCU118DigitalTopModule[+L <: BringupVCU118DigitalTop](l: L) extends DigitalTopModule(l) - with sifive.blocks.devices.i2c.HasPeripheryI2CModuleImp diff --git a/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala b/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala deleted file mode 100644 index 27933bf6..00000000 --- a/fpga/src/main/scala/vcu118/bringup/HarnessBinders.scala +++ /dev/null @@ -1,51 +0,0 @@ -package chipyard.fpga.vcu118.bringup - -import chisel3._ -import chisel3.experimental.{Analog, IO, BaseModule} - -import freechips.rocketchip.util.{HeterogeneousBag} -import freechips.rocketchip.tilelink.{TLBundle} - -import sifive.blocks.devices.uart.{HasPeripheryUARTModuleImp, UARTPortIO} -import sifive.blocks.devices.spi.{HasPeripherySPI, SPIPortIO} -import sifive.blocks.devices.i2c.{HasPeripheryI2CModuleImp, I2CPort} -import sifive.blocks.devices.gpio.{HasPeripheryGPIOModuleImp, GPIOPortIO} - -import testchipip.tsi.{HasPeripheryTSIHostWidget, TSIHostWidgetIO} - -import chipyard.harness._ -import chipyard.iobinders._ - -/*** UART ***/ -class WithBringupUART extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: UARTPort, chipId: Int) => { - th.bringupOuter.io_fmc_uart_bb.bundle <> port.io - } -}) - -/*** I2C ***/ -class WithBringupI2C extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: chipyard.iobinders.I2CPort, chipId: Int) => { - th.bringupOuter.io_i2c_bb.bundle <> port.io - } -}) - -/*** GPIO ***/ -class WithBringupGPIO extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: GPIOPort, chipId: Int) => { - th.bringupOuter.io_gpio_bb(port.pinId).bundle <> port.io - } -}) - -/*** TSI Host Widget ***/ -class WithBringupTSIHost extends HarnessBinder({ - case (th: BringupVCU118FPGATestHarnessImp, port: TLMemPort, chipId: Int) => { - val tsiBundles = th.bringupOuter.tsiDdrClient.out.map(_._1) - val tsiDdrClientBundle = Wire(new HeterogeneousBag(tsiBundles.map(_.cloneType))) - tsiBundles.zip(tsiDdrClientBundle).foreach { case (bundle, io) => bundle <> io } - tsiDdrClientBundle <> port.io - } - case (th: BringupVCU118FPGATestHarnessImp, port: TSIHostWidgetPort, chipId: Int) => { - th.bringupOuter.io_tsi_serial_bb.bundle <> port.io - } -}) diff --git a/fpga/src/main/scala/vcu118/bringup/IOBinders.scala b/fpga/src/main/scala/vcu118/bringup/IOBinders.scala deleted file mode 100644 index c80f828e..00000000 --- a/fpga/src/main/scala/vcu118/bringup/IOBinders.scala +++ /dev/null @@ -1,30 +0,0 @@ -package chipyard.fpga.vcu118.bringup - -import chisel3._ -import chisel3.reflect.DataMirror - -import freechips.rocketchip.util.{HeterogeneousBag} -import freechips.rocketchip.tilelink.{TLBundle} - -import sifive.blocks.devices.gpio.{HasPeripheryGPIOModuleImp} -import sifive.blocks.devices.i2c.{HasPeripheryI2CModuleImp} - -import testchipip.tsi.{HasPeripheryTSIHostWidget, TSIHostWidgetIO} - -import chipyard.iobinders.{OverrideIOBinder, Port, TLMemPort} - -case class TSIHostWidgetPort(val getIO: () => TSIHostWidgetIO) - extends Port[TSIHostWidgetIO] - -class WithTSITLIOPassthrough extends OverrideIOBinder({ - (system: HasPeripheryTSIHostWidget) => { - require(system.tsiTLMem.size == 1) - val io_tsi_tl_mem_pins_temp = IO(DataMirror.internal.chiselTypeClone[HeterogeneousBag[TLBundle]](system.tsiTLMem.head)).suggestName("tsi_tl_slave") - io_tsi_tl_mem_pins_temp <> system.tsiTLMem.head - - require(system.tsiSerial.size == 1) - val io_tsi_serial_pins_temp = IO(DataMirror.internal.chiselTypeClone[TSIHostWidgetIO](system.tsiSerial.head)).suggestName("tsi_serial") - io_tsi_serial_pins_temp <> system.tsiSerial.head - (Seq(TLMemPort(() => io_tsi_tl_mem_pins_temp), TSIHostWidgetPort(() => io_tsi_serial_pins_temp)), Nil) - } -}) diff --git a/fpga/src/main/scala/vcu118/bringup/TestHarness.scala b/fpga/src/main/scala/vcu118/bringup/TestHarness.scala deleted file mode 100644 index 3de1e595..00000000 --- a/fpga/src/main/scala/vcu118/bringup/TestHarness.scala +++ /dev/null @@ -1,99 +0,0 @@ -package chipyard.fpga.vcu118.bringup -import chisel3._ - -import freechips.rocketchip.diplomacy._ -import org.chipsalliance.cde.config._ -import freechips.rocketchip.subsystem._ -import freechips.rocketchip.tilelink._ -import freechips.rocketchip.prci._ -import sifive.fpgashells.shell.xilinx._ -import sifive.fpgashells.ip.xilinx._ -import sifive.fpgashells.shell._ -import sifive.fpgashells.clocks._ - -import sifive.blocks.devices.uart._ -import sifive.blocks.devices.spi._ -import sifive.blocks.devices.i2c._ -import sifive.blocks.devices.gpio._ - -import testchipip.tsi.{HasPeripheryTSIHostWidget, PeripheryTSIHostKey, TSIHostWidgetIO} -import testchipip.util.{TLSinkSetter} - -import chipyard.fpga.vcu118.{VCU118FPGATestHarness, VCU118FPGATestHarnessImp, DDR2VCU118ShellPlacer, SysClock2VCU118ShellPlacer} - -import chipyard.{ChipTop} -import chipyard.harness._ - -class BringupVCU118FPGATestHarness(override implicit val p: Parameters) extends VCU118FPGATestHarness { - - /*** UART ***/ - - require(dp(PeripheryUARTKey).size == 2) - - // 2nd UART goes to the FMC UART - - val uart_fmc = Overlay(UARTOverlayKey, new BringupUARTVCU118ShellPlacer(this, UARTShellInput())) - - val io_fmc_uart_bb = BundleBridgeSource(() => (new UARTPortIO(dp(PeripheryUARTKey).last))) - dp(UARTOverlayKey).last.place(UARTDesignInput(io_fmc_uart_bb)) - - /*** I2C ***/ - - val i2c = Overlay(I2COverlayKey, new BringupI2CVCU118ShellPlacer(this, I2CShellInput())) - - val io_i2c_bb = BundleBridgeSource(() => (new I2CPort)) - dp(I2COverlayKey).head.place(I2CDesignInput(io_i2c_bb)) - - /*** GPIO ***/ - - val gpio = Seq.tabulate(dp(PeripheryGPIOKey).size)(i => { - val maxGPIOSupport = 32 // max gpio per gpio chip - val names = BringupGPIOs.names.slice(maxGPIOSupport*i, maxGPIOSupport*(i+1)) - Overlay(GPIOOverlayKey, new BringupGPIOVCU118ShellPlacer(this, GPIOShellInput(), names)) - }) - - val io_gpio_bb = dp(PeripheryGPIOKey).map { p => BundleBridgeSource(() => (new GPIOPortIO(p))) } - (dp(GPIOOverlayKey) zip dp(PeripheryGPIOKey)).zipWithIndex.map { case ((placer, params), i) => - placer.place(GPIODesignInput(params, io_gpio_bb(i))) - } - - /*** TSI Host Widget ***/ - require(dp(PeripheryTSIHostKey).size == 1) - - // use the 2nd system clock for the 2nd DDR - val sysClk2Node = dp(ClockInputOverlayKey).last.place(ClockInputDesignInput()).overlayOutput.node - - val ddr2PLL = dp(PLLFactoryKey)() - ddr2PLL := sysClk2Node - - val ddr2Clock = ClockSinkNode(freqMHz = dp(FPGAFrequencyKey)) - val ddr2Wrangler = LazyModule(new ResetWrangler) - val ddr2Group = ClockGroup() - ddr2Clock := ddr2Wrangler.node := ddr2Group := ddr2PLL - - val tsi_host = Overlay(TSIHostOverlayKey, new BringupTSIHostVCU118ShellPlacer(this, TSIHostShellInput())) - - val ddr2Node = dp(DDROverlayKey).last.place(DDRDesignInput(dp(PeripheryTSIHostKey).head.targetMasterPortParams.base, ddr2Wrangler.node, ddr2PLL)).overlayOutput.ddr - - val io_tsi_serial_bb = BundleBridgeSource(() => (new TSIHostWidgetIO(dp(PeripheryTSIHostKey).head.offchipSerialIfWidth))) - dp(TSIHostOverlayKey).head.place(TSIHostDesignInput(dp(PeripheryTSIHostKey).head.offchipSerialIfWidth, io_tsi_serial_bb)) - - // connect 1 mem. channel to the FPGA DDR - val tsiDdrClient = TLClientNode(Seq(TLMasterPortParameters.v1(Seq(TLMasterParameters.v1( - name = "chip_ddr", - sourceId = IdRange(0, 64) - ))))) - (ddr2Node - := TLFragmenter(8,64,holdFirstDeny=true) - := TLCacheCork() - := TLAtomicAutomata(passthrough=false) - := TLSinkSetter(64) - := tsiDdrClient) - - // module implementation - override lazy val module = new BringupVCU118FPGATestHarnessImp(this) -} - -class BringupVCU118FPGATestHarnessImp(_outer: BringupVCU118FPGATestHarness) extends VCU118FPGATestHarnessImp(_outer) { - lazy val bringupOuter = _outer -} From bdf207a2897978ab32671cf843e37c215b38d68d Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Mon, 29 Jan 2024 09:37:52 -0800 Subject: [PATCH 099/105] Update dead doc links --- docs/Customization/Boot-Process.rst | 2 +- docs/Generators/Hwacha.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Customization/Boot-Process.rst b/docs/Customization/Boot-Process.rst index 52ea32c1..9f745b7d 100644 --- a/docs/Customization/Boot-Process.rst +++ b/docs/Customization/Boot-Process.rst @@ -74,6 +74,6 @@ mode, thus starting userspace execution. The easiest way to build a BBL image that boots Linux is to use the FireMarshal tool that lives in the `firesim-software `_ repository. Directions on how to use FireMarshal can be found in the -:fsim_doc:`FireSim documentation `. +:fsim_doc:`FireSim documentation `. Using FireMarshal, you can add custom kernel configurations and userspace software to your workload. diff --git a/docs/Generators/Hwacha.rst b/docs/Generators/Hwacha.rst index 1980cddf..62f4dc06 100644 --- a/docs/Generators/Hwacha.rst +++ b/docs/Generators/Hwacha.rst @@ -5,7 +5,7 @@ The Hwacha project is developing a new vector architecture for future computer s The Hwacha project is inspired by traditional vector machines from the 70s and 80s, and lessons learned from our previous vector-thread architectures such as Scale and Maven The Hwacha project includes the Hwacha microarchitecture generator, as well as the ``XHwacha`` non-standard RISC-V extension. Hwacha does not implement the RISC-V standard vector extension proposal. -For more information on the Hwacha project, please visit the `Hwacha website `__. +For more information on the Hwacha project, please visit the `Hwacha website `__ or search for "Krste Asanovic Hwacha" on Google Scholar for publications. To add the Hwacha vector unit to an SoC, you should add the ``hwacha.DefaultHwachaConfig`` config fragment to the SoC configurations. The Hwacha vector unit uses the RoCC port of a Rocket or BOOM `tile`, and by default connects to the memory system through the `System Bus` (i.e., directly to the L2 cache). From eb93102f34d27955abffc88e2578e9c70b8b2c94 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 29 Jan 2024 11:15:14 -0800 Subject: [PATCH 100/105] Support BINARIES_DIR make flag --- variables.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/variables.mk b/variables.mk index fc2fc127..63519983 100644 --- a/variables.mk +++ b/variables.mk @@ -26,6 +26,7 @@ HELP_PROJECT_VARIABLES = \ HELP_SIMULATION_VARIABLES = \ " BINARY = riscv elf binary that the simulator will run when using the run-binary* targets" \ " BINARIES = list of riscv elf binary that the simulator will run when using the run-binaries* targets" \ +" BINARIES_DIR = directory of riscv elf binaries that the simulator will run when using the run-binaries* targets" \ " LOADMEM = riscv elf binary that should be loaded directly into simulated DRAM. LOADMEM=1 will load the BINARY elf" \ " LOADARCH = path to a architectural checkpoint directory that should end in .loadarch/, for restoring from a checkpoint" \ " VERBOSE_FLAGS = flags used when doing verbose simulation [$(VERBOSE_FLAGS)]" \ @@ -288,6 +289,10 @@ override get_out_name = $(shell basename $(dir $(1))) override LOADMEM = 1 endif +ifneq ($(BINARIES_DIR),) +override BINARIES = $(shell find -L $(BINARIES_DIR) -type f -print 2> /dev/null) +endif + ######################################################################################### # build output directory for compilation ######################################################################################### From 51a67fbd8fd9b00634cb7432cee0f6b97b6eadfa Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 29 Jan 2024 13:40:23 -0800 Subject: [PATCH 101/105] Update MMIO peripheral docs --- .../Incorporating-Verilog-Blocks.rst | 14 ++++++++++---- docs/Customization/MMIO-Peripherals.rst | 11 ++++------- docs/TileLink-Diplomacy-Reference/NodeTypes.rst | 2 +- .../{Register-Router.rst => Register-Node.rst} | 15 ++++++--------- docs/TileLink-Diplomacy-Reference/index.rst | 2 +- 5 files changed, 22 insertions(+), 22 deletions(-) rename docs/TileLink-Diplomacy-Reference/{Register-Router.rst => Register-Node.rst} (91%) diff --git a/docs/Customization/Incorporating-Verilog-Blocks.rst b/docs/Customization/Incorporating-Verilog-Blocks.rst index 7724ffb2..fde44411 100644 --- a/docs/Customization/Incorporating-Verilog-Blocks.rst +++ b/docs/Customization/Incorporating-Verilog-Blocks.rst @@ -99,10 +99,16 @@ Instantiating the BlackBox and Defining MMIO Next, we must instantiate the blackbox. In order to take advantage of diplomatic memory mapping on the system bus, we still have to -integrate the peripheral at the Chisel level by mixing -peripheral-specific traits into a ``TLRegisterRouter``. The ``params`` -member and ``HasRegMap`` base trait should look familiar from the -previous memory-mapped GCD device example. +integrate the peripheral at the Chisel level by instantiating a LazyModule wrapper +that instantiates a TileLink RegisterNode. + +.. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala + :language: scala + :start-after: DOC include start: GCD router + :end-before: DOC include end: GCD router + +Within the LazyModule, the ``regmap`` function can be called to attach wires and +registers to the MMIO port. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala diff --git a/docs/Customization/MMIO-Peripherals.rst b/docs/Customization/MMIO-Peripherals.rst index 82a9f27b..51540cb4 100644 --- a/docs/Customization/MMIO-Peripherals.rst +++ b/docs/Customization/MMIO-Peripherals.rst @@ -3,9 +3,9 @@ MMIO Peripherals ================== -The easiest way to create a MMIO peripheral is to use the ``TLRegisterRouter`` or ``AXI4RegisterRouter`` widgets, which abstracts away the details of handling the interconnect protocols and provides a convenient interface for specifying memory-mapped registers. Since Chipyard and Rocket Chip SoCs primarily use Tilelink as the on-chip interconnect protocol, this section will primarily focus on designing Tilelink-based peripherals. However, see ``generators/chipyard/src/main/scala/example/GCD.scala`` for how an example AXI4 based peripheral is defined and connected to the Tilelink graph through converters. +The easiest way to create a MMIO peripheral is to follow the GCD TileLink MMIO example. Since Chipyard and Rocket Chip SoCs primarily use Tilelink as the on-chip interconnect protocol, this section will primarily focus on designing Tilelink-based peripherals. However, see ``generators/chipyard/src/main/scala/example/GCD.scala`` for how an example AXI4 based peripheral is defined and connected to the Tilelink graph through converters. -To create a RegisterRouter-based peripheral, you will need to specify a parameter case class for the configuration settings, a bundle trait with the extra top-level ports, and a module implementation containing the actual RTL. +To create a MMIO-mapped peripheral, you will need to specify a ``LazyModule`` wrapper containing the TileLink port as a Diplomacy Node, as well as an internal ``LazyModuleImp`` class that defines the MMIO's implementation and any non-TileLink I/O. For this example, we will show how to connect a MMIO peripheral which computes the GCD. The full code can be found in ``generators/chipyard/src/main/scala/example/GCD.scala``. @@ -70,17 +70,14 @@ Top-level Traits ---------------- After creating the module, we need to hook it up to our SoC. -The ``LazyModule`` trait runs setup code that must execute before all the hardware gets elaborated. -For a simple memory-mapped peripheral, this just involves connecting the peripheral's TileLink node to the relevant bus. +The ``LazyModule`` abstract class containst the TileLink node representing the peripheral's I/O. +For a simple memory-mapped peripheral, connecting the peripheral's TileLink node must be connected to the relevant bu. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/GCD.scala :language: scala :start-after: DOC include start: GCD lazy trait :end-before: DOC include end: GCD lazy trait -Note that the ``GCDTL`` class we created from the register router is itself a ``LazyModule``. -Register routers have a TileLink node simply named "node", which we can hook up to the Rocket Chip bus. -This will automatically add address map and device tree entries for the peripheral. Also observe how we have to place additional AXI4 buffers and converters for the AXI4 version of this peripheral. Peripherals which expose I/O can use `InModuleBody` to punch their I/O to the `DigitalTop` module. diff --git a/docs/TileLink-Diplomacy-Reference/NodeTypes.rst b/docs/TileLink-Diplomacy-Reference/NodeTypes.rst index c31aafba..7c03e5e7 100644 --- a/docs/TileLink-Diplomacy-Reference/NodeTypes.rst +++ b/docs/TileLink-Diplomacy-Reference/NodeTypes.rst @@ -134,7 +134,7 @@ to handle TileLink requests, it is usually much easier to use a register node. This type of node provides a ``regmap`` method that allows you to specify control/status registers and automatically generates the logic to handle the TileLink protocol. More information about how to use register nodes can be -found in :ref:`TileLink-Diplomacy-Reference/Register-Router:Register Router`. +found in :ref:`TileLink-Diplomacy-Reference/Register-Node:Register Node`. Identity Node ------------- diff --git a/docs/TileLink-Diplomacy-Reference/Register-Router.rst b/docs/TileLink-Diplomacy-Reference/Register-Node.rst similarity index 91% rename from docs/TileLink-Diplomacy-Reference/Register-Router.rst rename to docs/TileLink-Diplomacy-Reference/Register-Node.rst index 0a677a0d..2bccce62 100644 --- a/docs/TileLink-Diplomacy-Reference/Register-Router.rst +++ b/docs/TileLink-Diplomacy-Reference/Register-Node.rst @@ -1,4 +1,4 @@ -Register Router +Register Node =============== Memory-mapped devices generally follow a common pattern. They expose a set @@ -10,10 +10,7 @@ While designers can manually instantiate a manager node and write the logic for exposing registers themselves, it's much easier to use RocketChip's ``regmap`` interface, which can generate most of the glue logic. -For TileLink devices, you can use the ``regmap`` interface by extending -the ``TLRegisterRouter`` class, as shown in :ref:`mmio-accelerators`, -or you can create a regular LazyModule and instantiate a ``TLRegisterNode``. -This section will focus on the second method. +For TileLink devices, you can use the ``regmap`` interface of the ``TLRegisterNode``. Basic Usage ----------- @@ -32,7 +29,7 @@ The default value is 4 bytes. The ``concurrency`` argument is the size of the internal queue for TileLink requests. By default, this value is 0, which means there will be no queue. This value must be greater than 0 if you wish to decoupled requests and responses for register accesses. This is discussed -in :ref:`TileLink-Diplomacy-Reference/Register-Router:Using Functions`. +in :ref:`TileLink-Diplomacy-Reference/Register-Node:Using Functions`. The main way to interact with the node is to call the ``regmap`` method, which takes a sequence of pairs. The first element of the pair is an offset from the @@ -123,12 +120,12 @@ output for write. In order to use this variant, you need to set ``concurrency`` to a value larger than 0. -Register Routers for Other Protocols +Register Nodes for Other Protocols ------------------------------------ -One useful feature of the register router interface is that you can easily +One useful feature of the register node interface is that you can easily change the protocol being used. For instance, in the first example in -:ref:`TileLink-Diplomacy-Reference/Register-Router:Basic Usage`, you could simply change the ``TLRegisterNode`` to +:ref:`TileLink-Diplomacy-Reference/Register-Node:Basic Usage`, you could simply change the ``TLRegisterNode`` to and ``AXI4RegisterNode``. .. literalinclude:: ../../generators/chipyard/src/main/scala/example/RegisterNodeExample.scala diff --git a/docs/TileLink-Diplomacy-Reference/index.rst b/docs/TileLink-Diplomacy-Reference/index.rst index 9c70287d..92895e08 100644 --- a/docs/TileLink-Diplomacy-Reference/index.rst +++ b/docs/TileLink-Diplomacy-Reference/index.rst @@ -28,5 +28,5 @@ A detailed specification of the TileLink 1.7 protocol can be found on the NodeTypes Diplomacy-Connectors EdgeFunctions - Register-Router + Register-Node Widgets From 99d82673d24c41854b28c7c2af06a440e956d659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Thu, 1 Feb 2024 07:33:37 +0100 Subject: [PATCH 102/105] vlsi/Makefile: truncate file SRAM_GENERATOR_CONF previously the target would append, not truncate the file, which could lead to duplicate yaml entries in that file when the target was re-run. --- vlsi/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vlsi/Makefile b/vlsi/Makefile index 074ec66a..14feb6fb 100644 --- a/vlsi/Makefile +++ b/vlsi/Makefile @@ -100,8 +100,8 @@ $(SMEMS_HAMMER): $(TOP_SMEMS_FILE) $(SRAM_GENERATOR_CONF): $(SMEMS_HAMMER) mkdir -p $(dir $@) - echo "vlsi.inputs.sram_parameters: '$(SMEMS_HAMMER)'" >> $@ - echo "vlsi.inputs.sram_parameters_meta: [\"transclude\", \"json2list\"]">> $@ + echo "vlsi.inputs.sram_parameters: '$(SMEMS_HAMMER)'" > $@ + echo "vlsi.inputs.sram_parameters_meta: [\"transclude\", \"json2list\"]" >> $@ $(SRAM_CONF): $(SRAM_GENERATOR_CONF) cd $(vlsi_dir) && $(HAMMER_EXEC) -e $(ENV_YML) $(foreach x,$(INPUT_CONFS) $(SRAM_GENERATOR_CONF), -p $(x)) --obj_dir $(build_dir) sram_generator From 54323592652b2efd9f413c635a548e91b73d4c40 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Thu, 1 Feb 2024 10:36:23 -0800 Subject: [PATCH 103/105] Add note on deprecating TLRegisterRouter --- docs/Customization/MMIO-Peripherals.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/Customization/MMIO-Peripherals.rst b/docs/Customization/MMIO-Peripherals.rst index 51540cb4..105d3f70 100644 --- a/docs/Customization/MMIO-Peripherals.rst +++ b/docs/Customization/MMIO-Peripherals.rst @@ -48,6 +48,16 @@ triggering write to ``y``. Polling can be used for status checks. :start-after: DOC include start: GCD instance regmap :end-before: DOC include end: GCD instance regmap +.. note:: + In older versions of Chipyard and Rocket-Chip, a ``TLRegisterRouter`` abstrat + class was used to abstract away the construction of the ``TLRegisterNode`` and + ``LazyModule`` classes necessary to construct MMIO peripherals. This was removed, + in favor of requiring users to explicitly construct the necessary classes. + + This matches more closely how standard ``Modules`` and ``LazyModules`` are + constructed, making it clearer how a MMIO peripheral fits into the ``Module`` + and ``LazyModule`` design patterns. + Connecting by TileLink ---------------------- From 74998229fbc12f79dbf878f5eeabe7fddd422ae1 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Mon, 5 Feb 2024 23:17:26 -0800 Subject: [PATCH 104/105] Add large boom cospike config --- generators/firechip/src/main/scala/TargetConfigs.scala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/generators/firechip/src/main/scala/TargetConfigs.scala b/generators/firechip/src/main/scala/TargetConfigs.scala index 04bb26a4..6b41733d 100644 --- a/generators/firechip/src/main/scala/TargetConfigs.scala +++ b/generators/firechip/src/main/scala/TargetConfigs.scala @@ -360,3 +360,10 @@ class FireSimLeanGemminiRocketMMIOOnlyConfig extends Config( new WithDefaultMemModel ++ new WithFireSimConfigTweaks ++ new chipyard.LeanGemminiRocketConfig) + +class FireSimLargeBoomCospikeConfig extends Config( + new firesim.firesim.WithCospikeBridge ++ + new WithDefaultFireSimBridges ++ + new WithDefaultMemModel ++ + new WithFireSimConfigTweaks++ + new chipyard.LargeBoomConfig) From e33f9d8c5b115014b33a1c065ec53a416fd03fdc Mon Sep 17 00:00:00 2001 From: Schuyler Eldridge Date: Wed, 7 Feb 2024 01:27:04 -0500 Subject: [PATCH 105/105] Switch update-circt action to v1 Change the version of the update-circt action from v1.0.0 to v1. This pulls in a change from v1.0.1 which fixes a bug where the staging branch was not updated. (I have no idea if this is being used.) However, this generally future-proofs the action by having it pull from v1 which is manually updated to match the latest v1 release (pulling in minor and patch changes). Signed-off-by: Schuyler Eldridge --- .github/workflows/update-circt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-circt.yml b/.github/workflows/update-circt.yml index 2d52a155..f0c3158b 100644 --- a/.github/workflows/update-circt.yml +++ b/.github/workflows/update-circt.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Update CIRCT - uses: circt/update-circt@v1.0.0 + uses: circt/update-circt@v1 with: user: 'bartender' email: 'firesimchipyard@gmail.com'