UDMA Rx busy bit seems to get stuck occassionally. This seems
to be aggravated if we insert a dcache_flush in the poll loop.
The current time-out code seems to mitigate the problem, but
I have low confidencne that this is a 100% solution. I have a feeling
we'll be revisiting this again soon.
- need to be able to specify the mode that a SPIM could be in
that was set up by the bootloader
- make yield() optional - it could be useful if the API is used
in userland contexts, but in an interrupt context (e.g. swapper)
it should not be used.
if not in quad mode, command is ignored; but without this,
the command is never accepted if you are in quad mode.
the idea is you use this to reset the chip when you don't
know what mode it's in.
- improve visibility of core structures for debugging
- add qpi-mode ID readouts
- support different commands for flash/ram ID readout
- fix bit-shift bug on cmd (docus say to "align to MSB" but
I don't know what MSB they are talking about, it only works if
you align the commands to LSB).
I think I may have to be patient on waiting for docus on how to
tune the trng, so, turning off these warnings for now. trng tuning
will be "an event", I expect.
synthetic test that exercises multiple cores triggering each
other, waiting on each other to complete tasks, and waiting on
the host to meet conditions such as fifo fullness levels before
running.
this proves out the basic concept of inter-core eventing.
fifo input/output from host with back-pressure works
gpio loopback input testing works
framework for automated assertion testing is in place;
all tests from this point forward will endeavor to include
some asserts that will cause the test to fail, so we don't require
manual inspection to check test results.
This macro takes as arguments the name of the function
you want to use to retrieve the assembly code, and two labels,
one for the start and one for the end of the assembly code,
and the assembly code itself.
The labels for the start/end of assembly code are identifiers
and because of Rust's rules macros can't create identifiers out
of thin air (I wish instead of saying "partially hygienic", they
just said, "you can't create identifiers that don't exist". Yes,
I'm sure "partially hygienic" has some other meaning to computer
science people but to me it's just pretentious bullshit that
forces me to read through four blog posts and three issues to
come to the practical conclusion I really wanted to know; I
think maybe they wanted to refer to it as hygiene because the
limitation is super frustrating and hygiene sounds like a positive
way to spin something that is annoying. Sure. It's fine. You
didn't want to allow macros to make identifiers because it can lead
to surprising behavior and name space conflicts. That's your choice
as a language designer, just say it.).
Anyways. as usual, rust macro took way too long to write.
@nworbnhoj, i saw you had explicitly done a formatting pass.
However, I think maybe the +nightly flag was missing, it looks
like the formatting ignored our custom rule set, which requires
nightly?
In keeping with webpki-roots - the TrustAnchors are managed without the Der Tag::Sequence header
This in turn requires that:
- the header is removed from x509 fields before saving in the pddb, and
- the der Tag::Sequence is added to ota.subject before it can be decoded () see ota.subject()