Commit graph

58 commits

Author SHA1 Message Date
bunnie
5370ce396d bump all revs due to SoC artifact update 2022-12-12 16:07:20 +08:00
bunnie
08cf863ff5 update SoC artifacts for 0.9.11 build 2022-12-12 16:05:15 +08:00
bunnie
1d1b3a35b7 commit version bump 2022-11-26 10:00:44 +08:00
bunnie
aa9977cc58 bump all the things because we changed utralib again 2022-11-17 22:13:40 +08:00
bunnie
156e60d1dd fix regressions from litex 2022.08 2022-11-17 22:12:32 +08:00
bunnie
dabbfd6c35 bump all the things to absorb the SoC change 2022-11-17 19:39:18 +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
ba28dd8795 bump to absorb utralib straggler configs 2022-10-28 15:11:17 +08:00
bunnie
b5f4814bb4 cleanup some stragglers in utralib push 2022-10-28 15:10:00 +08:00
bunnie
a8fde09229 adjust build states to match 2022-10-27 03:30:11 +08:00
bunnie
7d80fb7598 rebuild and commit all the prebuild utralib artifacts 2022-10-27 03:27:39 +08:00
bunnie
87d3a32b3d commit utralib mods 2022-10-27 03:11:01 +08:00
bunnie
475e464efe bump versions due to svd2utra change 2022-10-27 03:04:22 +08:00
bunnie
d331d405ee bump version numbers for publication 2022-10-25 17:23:40 +08:00
bunnie
67fc21fbdd harmonize hosted mode selection, but retain an explicit hosted flag
In general, hosted mode is assumed "by default" if the target
is not Xous. This allows packages to be built cleanly on command
lines that don't know to pass a --feature flag to specify a target.

However, an explicit "hosted" flag is still retained so that we
can confirm the build system intent. This saves us from the failure
mode that we thought we were building for target A, but accidentally
ommitted the flag, and instead we've been silently building for
"hosted" mode without any warning. The main consumer of the "hosted"
flag is now just the build.rs script inside of the utralib.
2022-10-25 17:21:02 +08:00
bunnie
eb7796b275 move the precursor binary artifacts out of the package
there is a limit on the size of a package that can be sent up
to crates.io and this doesn't scale
2022-10-20 17:07:53 +08:00
bunnie
805a7d528c flip back to using remote references 2022-10-20 16:30:06 +08:00
bunnie
8fc79674dc
leave maintainer hints
cargo debugging is so hard. If you're OK with it, I really would like gems like how to debug this code to be included as a comment in the source where you might look to fix such problems. Google turns up crap results when you try to search for these hints, and the results have been really unstable as well. I know such comments pollute the source code but it'll save a lot of time in the future trying to remember the trick to debug a tricky thing later on, I think.
2022-10-20 15:55:24 +08:00
Sean Cross
37cbf2b598 utralib: don't unconditionally regenerate files
Generate files in-memory (which is a cheap operation) and only write the
file to disk if it is different from the existing file.

This prevents rebuilds in the following circumstances:

1. When changing utralibs, an extra rebuild is always generated due to
   the file being updated mid-build. This will no longer happen.
2. When switching targets, there will no longer be an unconditional
   rebuild. This is because the feature flags are mixed in with the
   package hash, and different builds use different feature flags.
3. When one svd file is updated, other variants of that feature flag are
   no longer rebuilt. For example, when updating the Renode SVD,
   Precursor DVT1 will not need to be rebuilt, since that has not
   changed.

Changing a given SVD file will cause that target's version of utralib to
be rebuilt, and only that target's version.

Signed-off-by: Sean Cross <sean@xobs.io>
2022-10-20 15:03:38 +08:00
bunnie
820f2d6180 ...and commit the artifacts referenced in the previous commit :P 2022-10-20 04:59:17 +08:00
bunnie
dcbf028c5c bump soc rev
minor rev to fix a dangling git reference
2022-10-20 04:58:48 +08:00
bunnie
77e1379fc0 add SoC with new Vex core
updated codebase, hopefully pulls in fixes for cache clear
2022-10-20 04:24:00 +08:00
bunnie
74fe8c989c add dvt target
resurrecting some old hardware as an efuse testing target;
new hardware is too precious at the moment given the ridiculous
shortage of FPGAs on the market.
2022-10-18 21:47:16 +08:00
bunnie
8e05925cfa somehow the transition to local paths got missed in the merge 2022-10-18 00:39:01 +08:00
bunnie
0584ad2f2c switch to local paths to see if this helps the build 2022-10-18 00:26:56 +08:00
bunnie
4b368d71db bump versions of crates 2022-10-15 01:31:54 +08:00
bunnie
d88f9cf685 absorb regenerated utralib files from previous patch 2022-10-15 01:29:49 +08:00
bunnie
63a87ca1bc bump all the versions 2022-10-14 16:54:43 +08:00
bunnie
4d52bb40f0 update artifacts from svd patch 2022-10-14 16:22:24 +08:00
eupn
e616f5348e
utralib: employ macros to simplify features check
Use declarative macros and compile-time computations to make feature flags checks more cleaner and future-proof at the cost of introducing some macros
2022-10-12 16:32:16 +04:00
bunnie
d048372d46 absorb v0.9.10 soc artifacts 2022-10-09 17:53:12 +08:00
bunnie
4b293420c3 update utralib lockfile 2022-10-02 19:03:49 +08:00
bunnie
3ff1b66d2f absorb svd2utra rev 2022-09-29 22:16:24 +08:00
bunnie
8e86b58f06 add renode artifacts 2022-09-27 18:31:28 +08:00
bunnie
d0dc2e2a9f add renode as a target to utralib 2022-09-27 18:09:33 +08:00
bunnie
4f7f5855ec add the generated.rs top file which routes to specific configs with feature flags 2022-09-27 16:32:40 +08:00
bunnie
0cfc09f523 stop ignoring the generated files
generated files are now committed to tracked repo history
2022-09-27 16:32:15 +08:00
bunnie
b97a2f7042 bump rev and update readme 2022-09-27 16:30:57 +08:00
bunnie
fad43a1e0f add target routing to build.rs 2022-09-27 16:30:45 +08:00
bunnie
e35dc90ce5 add specific targets so we can pass crates.io guidelines 2022-09-27 16:30:09 +08:00
bunnie
895957e53a pass the SVD config back to xtask
this is necessary because we need the full SVD path to generate
the whitelist of physical pages that can be addressed. Since the
SVD path is now domiciled in utralib, a file called "SVD_PATH"
is created in the target/ directory which contains the resolved
path to the SVD file given the abstract target/rev feature pair.
2022-09-27 15:12:28 +08:00
bunnie
a4c9dabd0f add description 2022-09-27 03:14:45 +08:00
bunnie
2f016c3876 handle case of a "clean" build without failure 2022-09-27 03:12:08 +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
09842006f5 std should not be a default feauter 2022-09-27 01:15:55 +08:00
bunnie
ecd4aa2631 derp helps to name the default feature correctly 2022-09-26 23:25:58 +08:00
bunnie
17248fdbf1 revise utralib to use features to select the SVD file 2022-09-26 23:24:22 +08:00
bunnie
19c90c1cc7 move precursors to the utralib
this will allow us to package up utralib for generation of soc
dependencies
2022-09-26 16:49:49 +08:00
bunnie
f53bac3389 prep a version of utralib for push to crates.io 2022-09-26 14:23:10 +08:00
bunnie
e32ea4d3f5 fix #174 2022-06-10 21:36:53 +08:00