-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement RFC 16 (CSR register API) #40
Commits on Feb 9, 2024
-
csr.bus: instantiate a Multiplexer from a MemoryMap.
Before this commit, CSR elements were added with `Multiplexer.add()`. Now, a memory map of elements is populated beforehand, then given as argument to `Multiplexer.__init__()`. This decouples the definition of a group of neighboring registers from their implementation by a CSR Multiplexer.
Configuration menu - View commit details
-
Copy full SHA for 1abb576 - Browse repository at this point
Copy the full SHA 1abb576View commit details -
Configuration menu - View commit details
-
Copy full SHA for 55d1756 - Browse repository at this point
Copy the full SHA 55d1756View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e56829 - Browse repository at this point
Copy the full SHA 9e56829View commit details -
csr.reg: migrate to lib.wiring components.
Also, fix FieldPort signature direction.
Configuration menu - View commit details
-
Copy full SHA for d3fa16a - Browse repository at this point
Copy the full SHA d3fa16aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 24953e1 - Browse repository at this point
Copy the full SHA 24953e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for cd73315 - Browse repository at this point
Copy the full SHA cd73315View commit details -
csr.reg: defer Field creation until Register.__init__().
Before this commit, a Register whose fields were variable annotations couldn't be instantiated more than once, as the latter belonged to the global scope. The Field class is now a factory for user-defined field components, instead of a base class. Every FieldMap or FieldArray sharing a Field will use a different instance of its component, obtained from Field.create(). Also: * update to follow RFCs 37 and 38 * docstring and diagnostics improvements.
Configuration menu - View commit details
-
Copy full SHA for c734b74 - Browse repository at this point
Copy the full SHA c734b74View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03728ff - Browse repository at this point
Copy the full SHA 03728ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for e39e2c7 - Browse repository at this point
Copy the full SHA e39e2c7View commit details -
csr.reg: move access= parameter to Register.__init_subclass__().
This allows csr.Register subclasses that use variable annotations to define their access mode without overriding __init__(). In addition, the default value of access= (which was "rw") is removed. The access mode of a register has an influence on the rest of the SoC and should therefore be explicitly set. As a consequence of access= being a required __init_subclass__() kwarg, the csr.Register class can no longer be directly instantiated and must be subclassed first.
Configuration menu - View commit details
-
Copy full SHA for a1b772d - Browse repository at this point
Copy the full SHA a1b772dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 921f36e - Browse repository at this point
Copy the full SHA 921f36eView commit details -
csr.reg: allow direct instantiation of Register class.
The access= parameter can now be set in either __init_subclass__() or __init__(). It has a default value of None, and __init__() will error out if set in both sites or none of them.
Configuration menu - View commit details
-
Copy full SHA for 4a74fad - Browse repository at this point
Copy the full SHA 4a74fadView commit details -
Configuration menu - View commit details
-
Copy full SHA for 03e70a1 - Browse repository at this point
Copy the full SHA 03e70a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5aad24 - Browse repository at this point
Copy the full SHA a5aad24View commit details -
memory: restrict resources to wiring.Component objects.
Also, csr.Multiplexer now requires the signature of its memory map resources to contain a csr.Element.Signature member, named "element" and oriented as output.
Configuration menu - View commit details
-
Copy full SHA for 588a403 - Browse repository at this point
Copy the full SHA 588a403View commit details -
Configuration menu - View commit details
-
Copy full SHA for d29f21b - Browse repository at this point
Copy the full SHA d29f21bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 40cf37b - Browse repository at this point
Copy the full SHA 40cf37bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a714e7 - Browse repository at this point
Copy the full SHA 4a714e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 516d787 - Browse repository at this point
Copy the full SHA 516d787View commit details