Commit graph

17 commits

Author SHA1 Message Date
bunnie
01c00194f0 clean up build issues for packaging 2024-01-15 00:24:29 +08:00
bunnie
162b87b9b0 update cramium register descriptions 2023-08-08 18:18:48 +08:00
bunnie
2c53eb0508 add cramium targets to utralib 2023-07-17 18:24:10 +08:00
bunnie
069edbc255 support multi-svd file designs
This patch set goes across all the toolchains and brings
in the support for split SVD descriptions of SoCs.

This is helpful for dealing with designs that have multiple
"top" files for the same core IP set. For exmaple, you may have
a SoC that you are developing that targets silicon, but
you have a version that wraps this in additional peripherals
available only in an FPGA emulator that are used for debugging.

In this case, you can have one SVD file be the description of
the SoC itself, and another SVD file describe just the "delta"
introduced by the FPGA wrapper that emulates/controls the SoC.
2023-07-17 16:27:09 +08:00
bunnie
1300771a38 fixes to make PR work 2023-06-16 01:29:55 +08:00
bunnie
5a2df4432c technical debt: cleanup UTRA package
- make the "base" field no longer public. It is accessible, but only
through an `unsafe` method, because, it is unsafe.
- add accessors to offest/mask fields. Because, it's not at all
unsafe to access these, and it can be useful for bit-ops that are
not part of the generic set of UTRA.
- add Arc to AtomicCSR, and require `std` for AtomicCSR types.
This should not break anything, I checked inside @foundation-devices
keyOS and they don't seem to be using AtomicCSR anywhere.

The Arc makes it a bit safer to clone the AtomicCSR base pointer
and share it between threads, but it will have an impact on performance.
The USB stack (which requires AtomicCSR) was regression testing and the
impact seems minimal.

Recall that the main purpose of AtomicCSR is to provide a CSR accessor
that does not require a mutable reference to the base object. This
can make certain Rust idioms a bit cleaner. We wrap the base accessor
in Arc+Atomic to try and improve the safety of throwing the borrow
checker under the bus, but it's still not perfect because hardware
mutable state can have side-effects within hardware itself that cannot
be modeled or checked by Rust's borrow checker.
2023-05-23 18:11:24 +08:00
bunnie
5574744e14 commit lockfiles and verifiers 2023-03-14 16:46:04 +08:00
bunnie
dc5b844d02 commit lockfiles after publish bump 2023-03-08 04:09:08 +08:00
bunnie
08cf863ff5 update SoC artifacts for 0.9.11 build 2022-12-12 16:05:15 +08:00
bunnie
156e60d1dd fix regressions from litex 2022.08 2022-11-17 22:12:32 +08:00
bunnie
280d61db34 trial commit latest soc artifacts
updating Litex, seems to have broken things. trying to see
if a rebuild with new SVD file helps.
2022-11-17 19:37:17 +08:00
bunnie
87d3a32b3d commit utralib mods 2022-10-27 03:11:01 +08:00
bunnie
4b293420c3 update utralib lockfile 2022-10-02 19:03:49 +08:00
bunnie
d0dc2e2a9f add renode as a target to utralib 2022-09-27 18:09:33 +08:00
bunnie
3a6f69a4ad fix SVD spec toggle trigger
this fix makes it so that

1) you always get a correct build when the SVD spec is toggled
2) you don't always rebuild when nothing has changed

(2) is with the caveat that the no-change flag is only clean
after your second build (i.e. your third run will be fast).
I'm not quite sure why but I think it's because the "changes"
to the config file tracker are computed throughout the first
build and the second build still sees that file as recently
changed, so, it'll trigger a rebuild (could also just be
a race condition because the timestamp of the rebuild is
at the same second that the file was regenerated, so conservatively
you'd rebuild the next time).
2022-09-27 03:06:42 +08:00
bunnie
cab4c7d4a9 fix more UTRA issues; migrate to dual-UART for kernel/console messages 2020-10-13 05:22:19 +08:00
bunnie
9a50de8b4e refactor: utra -> utralib naming
this cleans up some namespace issues when including
the utra crate which also refers to utra::generated::utra,
and there are CONST at the crate-level, and also functions
at the module-level which need disambiguation. By naming
the crate utra-lib this saves a bit of syntatic wrangling
at the top of every file.
2020-10-12 03:56:10 +08:00
Renamed from utra/Cargo.lock (Browse further)