Skip to content

Latest commit

 

History

History
executable file
·
451 lines (409 loc) · 42 KB

CHANGELOG.md

File metadata and controls

executable file
·
451 lines (409 loc) · 42 KB

Changelog

Future Release

Some highlights to be included in the next release:

Version 1.6.0

10 Oct 2022

Added

Changed

Fixed

Removed

Version 1.5.0

18 Jan 2022

Added

  • Chisel 3.5 support
  • Hypervisor extension (chipsalliance#2841):
    • Introduce virtualization of hart id for virtualized supervior OSs and virtualized user modes
    • More work to be done on interrupt controllers, IOMMUs, etc.
  • Fault if reserved bits D/A/U of page table entry are set to 1 (chipsalliance#2895)
  • mnie bit added to mnstatus (chipsalliance#2904)
  • WithCoherentBusTopology added to BaseFPGAConfig (chipsalliance#2787)
  • Add support for timebase-frequency in the cpus node of the Device Tree (chipsalliance#2782)
  • Support incoherent access to ExtMem Bus through SBus (chipsalliance#2978)

Changed

  • TLToAXI4: b-channel acks are now stalled for if blocked for 7 consecutive cycles (chipsalliance#2805)
  • Cacheable ROMs: treat acquire-able read-only memory as cacheable (chipsalliance#2808)
  • Modularly wrap the value of nextSelectEnc in the ReadyValidCancelRRArbiter when Round-Robin parameters are rr=true && !isPow2(n) (chipsalliance#2798)
  • Changed TLMonitor to check the correct opcode for a (so far unused) B channel Get message (chipsalliance#2788)
  • D$: drive Tilelink C-Channel AMBA_PROT bits last (chipsalliance#2770)

Fixed

  • PTW and TLB fault prioritization:
    • Misaligned faults (chipsalliance#2926):
      • We cannot check if the memory address has side effects to take a misaligned exception if a PTW doesn't finish within a valid PTE.
      • Therefore, misaligned faults are now given lowest priority.
    • Access exceptions (chipsalliance#2916):
      • Separate access faults into faults for accessing Page Table Entries and faults for bad Physical Page Numbers.
  • Hoist r_valid_vec onto a register before L2TLB refill wmask (chipsalliance#2868 chipsalliance#2856)
  • Dedpulicate to one OptimizationBarrier per TLBEntry (chipsalliance#2833)
  • D$: block until ReleaseAck from slave acknowledging completion of writeback (chipsalliance#2832)
  • dtim: convert PutPartials to PutFulls when mask is full to avoid RMW (chipsalliance#2822)
  • dtim: don't let dmem.req.bits.cmd become X which causes X-prop (chipsalliance#2818)
  • Jam WidthWidget until write to prevent leaking of X output (chipsalliance#2815)
  • Don't cover non-existent U-mode counters (chipsalliance#2817)
  • Supress SCIE assertion when instruction not valid (chipsalliance#2816)
  • Fixed an issue where store fails to take effect if it is immediately followed by a load to the same address under an ECC error condition (chipsalliance#2804)
  • ReadyValidCancelRRArbiter: fixed an issue where round-robin select rotated incorrectly when rr=true (chipsalliance#2771)
  • TraceGen: now observes dmem.ordered when attempting a fence (chipsalliance#2779)

Removed

Additional Notes

  • regmapper: update all regmap tests
  • tilelink: buswrapper leave fromPort

Version 1.4.0

19 Dec 2020

RC has undergone two years of development since the last version update. The changelog for this version of RC is non-extensive. The changelog for this version is merely illustrative of the features added since the 1.2~1.3 releases. No API compatibility is guaranteed between minor version releases of RC. Future versions of the changelog should follow the format here https://keepachangelog.com/en/1.0.0/

PR Release Notes

Rocket

Devices

  • [PLIC] add support for PLIC elaboration even when nDevices == 0 (chipsalliance#2351)
  • [PLIC] fix off-by-one for priority register description (chipsalliance#2718)
  • [BuildInDevices] introduce case class parameters to Zero and Error device (chipsalliance#2684)
    • make instantiation of buffers optional
    • allow for optional instantiation of CacheCork
  • [BasicBusBlocker] convert to chisel3, add scala-doc, add factory companion object (chipsalliance#2630)
  • [PhysicalFilter] added scaladoc and RegFieldDesc (chipsalliance#2685)
  • [BEU]

PRCI

  • [ResetSynchronizer][ClockGroupResetSynchronizer] add a pair of diplomatic reset synchronizers (chipsalliance#2666)
  • wrap Tiles in PRCI Domains (chipsalliance#2550)
    • contains logic related to power, reset, clock, and interrupt
  • define ResetCrossingType and use with BlockDuringReset in TilePRCIDomain (chipsalliance#2641)
    • analogous to ClockCrossingType. Currently, there are two crossing types: NoResetCrossing and StretchedResetCrossing(cycles: Int)
    • introduces Blockable util
  • Synchronizer primitive changes (chipsalliance#2212)
    • introduction of ClockCrossingReg
    • _SynchronizerShiftReg requires synchronizer depth > 1
    • deprecate IntXing and IntSyncCrossingSink
    • deprecate SyncResetSynchronizerShiftReg
  • [SynchronizerPrimitiveShiftReg] correct the dedup behavior for the *ResetSynchronizerPrimitiveShiftReg so you only end up with one copy (chipsalliance#2547)
  • add partial multiple reset scheme support (chipsalliance#2375)
  • AsyncResetReg: use chisel3 async resets (chipsalliance#2397)
  • Async Reset support for Atomics, FPU, and TLBroadcast (chipsalliance#2362)
  • [ResetStretcher][PRCI] add reset stretcher for Async Reset systems (chipsalliance#2566)
  • ClockGroupDriverParameters: allow for a configurable drive function for driving asynchronous clock groups with IO other than the implicit clock (chipsalliance#2319)
  • [ClockDivider] fixed bug where clock divider's source and sink functions always divided by two (chipsalliance#2610)
  • [InterruptBusWrapper] update synchronizer API (chipsalliance#2640)
    • replaces using IntXing in a synchronize method with to and from methods
    • this is to ensure synchronized registers are always put in the destination clock domain

Tile

Subsystem

  • [HasTiles] add seipNode (chipsalliance#2665)
  • Topology changed from static traits to CDE-based configurable runtime (chipsalliance#2327)
    • HasHierachicalBusTopology trait replaced with two config options:
      • WithCoherentBusTopology
      • WithIncoherentBusTopology
  • renamed attachment API to location API (chipsalliance#2330)
  • [BundleBridge] to propagate [TileInputConstants]. ROM attachment changes (chipsalliance#2521 merged as chipsalliance#2531)
    • HasPeripheryBootROM and HasPeripheryBootROMModuleImp are removed and replaced by a call to BootROM.attach
    • BootROMParams Field is removed and replaced with BootROMLocated Field
    • MaskROMLocated Field is added
    • SubsystemExternalResetVectorKey, SubsystemExternalHartIdWidthKey and InsertTimingClosureRegistersOnHartIds Fields are added
    • Unused ResetVectorBits Field is removed
    • HasExternallyDrivenTileConstants bundle mixin is removed
    • HasResetVectorWire subsystem trait is removed
    • HasTileInputConstants and InstantiatesTiles subsystem traits are added
    • BaseTile exposes val hartIdNode: BundleBridgeNode[UInt] and resetVectorNode: BundleBridgeNode[UInt] and these are automatically connected to in HasTiles.
    • rocket.Frontend, rocket.ICache, rocket.DCache, rocket.NDCache now have BundleBridgeSink[UInt] for their reset vector or hartid wire inputs.
      • If you instantiate them manually, i.e. not using the traits e.g. rocket.HasHellaCache, you will have to manually connect up those nodes to the aforementioned BaseTile nodes.
    • follow up PR - bug fix for HartID and ResetVector width calcluation (chipsalliance#2543)
  • add HierarchicalLocation to LocationAPI (chipsalliance#2346)
  • [RocketCrossingParams] relax type of master param to TilePortParamsLike (chipsalliance#2634)
  • [Subsystem] Miscellaenous subsystem bus crossing changes (chipsalliance#2724)
    • introduce keys for bus crossings
    • allow for disabling of DriveClockFromMaster behavior
    • introduce MBus crossing to CoherentBusTopology
  • [Subsystem][PLIC] avoid using implicit clock (chipsalliance#2719)
  • Add an optional TileInputConstant as an MMIO Address Prefix used in ITIM and DTIM hit calculations (chipsalliance#2533)

stage, linting, transforms

  • [stage] Fix a bug where unserializable RocketTestSuiteAnnotations were being serialized (chipsalliance#2424)
  • [stage] Fix a bug where the desired output file name was being superseded by another phase (chipsalliance#2424)
  • [RocketChipStage] Remove emitVerilog, emitFirrtl, and emitChirrtl methods from RocketChipStage (chipsalliance#2481)
  • [stage] expose Stage's --target-dir to Config (chipsalliance#2725)
  • [Transforms][Lint] add RenameDesiredNames transform and LintConflictingModuleNames Lint rule (chipsalliance#2452)
    • also adds RenameModulesAspect that can be used to emit name overrides and a LintConflictingModuleNamesAspect to collect DesiredNameAnnotations to be checked by the lint pass.
  • [ElaborationArtefactAnnotation] add ElaborationArtefactAnnotation - an API similar to ElaborationArtefacts (chipsalliance#2727)
    • this API is for assuring metadata has correct instance paths and signal names
    • allow renames to multiple targets for MemoryPathToken (chipsalliance#2729)

Debug

AMBA, Tilelink

Diplomacy

Object Model

Utilities, QoL, Other

Version 1.3.0

This version exists as a branch, but seems to be largely synonymous with 1.2. There are no release notes or maintenance for this version.

Version 1.2.0

There are no existing release notes for this and previous versions.