Commit graph

679 commits

Author SHA1 Message Date
bunnie
1a9b4e48ef leave bread crumb about the upgrade to HS usb 2025-08-10 16:08:44 +08:00
bunnie
7dd0ffaadd update board definition to NTO/baosec production pinouts 2025-08-10 01:50:26 +08:00
bunnie
38bd899c9f prep table for changing h/v flip 2025-08-10 01:50:02 +08:00
bunnie
b2ec951774 add SOF_SYNC feature to camera driver - new in NTO 2025-08-10 01:49:18 +08:00
bunnie
a22cf7f58c add more debug feedback in tests 2025-08-08 03:37:43 +08:00
bunnie
ca105f4be8 cleanup some more cache_flush refs 2025-08-05 23:02:54 +08:00
bunnie
4fbae4969b add baremetal RRAM API
this works in baremetal environment. Needs to be modified/augmented
for xous...
2025-08-05 23:00:28 +08:00
bunnie
da623ccd01 harmonize cache_flush in hal and also add rram module 2025-08-05 23:00:09 +08:00
bunnie
77d7094d3b reduce the pddb size for the vexii-test target 2025-07-21 19:03:24 +08:00
bunnie
51c5fc75be add artybio target, remove debug prints that don't map to the target 2025-06-15 01:03:01 +08:00
Sam Chin
04bf756b8e theoretically clean version which has been tested with and without the feature 2025-06-11 15:05:59 +08:00
Sam Chin
0412a401d8 no more deadcode 2025-06-10 21:51:55 +08:00
Sam Chin
2659fc0894 wip'
'
2025-06-10 21:51:55 +08:00
bunnie
1abf043005 check NACK status in i2c_await routine; update bare metal API
NACK bit is now checked after running the transaction, and if
it is set an appropriate error code is returned.

The trait implementation for i2c baremetal calls is also
updated in this commit
2025-06-07 22:54:52 +08:00
bunnie
09644f435a add CSR bank for I2C error signals 2025-06-07 22:54:10 +08:00
bunnie
34ae2011b2 sidequest - add some accessors to axp2101 object 2025-06-07 22:47:16 +08:00
bunnie
73a1714772 Modify I2C API to accommodate Nack responses specifically 2025-06-07 22:46:14 +08:00
bunnie
2c99b32e5a add an API opcode for messaging the cramium_hal_service
in the Xous context, because the IRQ banks are owned by a global
object, not every server can simply refer to the IRQ bits by just
dereferencing a pointer. Instead, it needs to send a message to
the cram_hal_service with an API number which then catches this
and does the dereference on behalf of the caller.
2025-06-07 02:46:42 +08:00
bunnie
c48c97ebdd add the hal-side implementation
this call works either on bare iron or in a xous context
2025-06-07 02:45:59 +08:00
bunnie
c24bb3a450 add irq_status_bits() trait and enum for selecting Irq bank
multiple IRQs related to the UDMA will eventually get mapped into
the global IRQ handler for UDMA. Create an enum type that will
help us differentiate this and add a trait that returns the raw bits
for a given IRQ type.

Probably a fancier wrapper should be made to interptet the IRQ
bits but unfortunately there isn't a uniform pattern to the IRQ
mappings, it's pretty much whatever fit into the IRQ space based
on the underlying function. At the moment not even sure if this
is the right register to be chasing, so we'll use this for probing
that aspect and then get fancy later, maybe.
2025-06-07 02:42:25 +08:00
bunnie
cfe9b3c845 modify base API for GlobalConfig to auto-infer the API address
the switch based on target is now absorbed into the new() function.
This paves the way for us to add more CSR ranges into the global
configuration object, i.e. IRQ csrs for I2C.
2025-06-07 01:52:25 +08:00
bunnie
6e0f6e23a1 fix warning from latest rust version 2025-05-25 14:07:58 +08:00
bunnie
0b07c58336 compactify the slider layout
this saves some empty vertical space allowing for more info
on the screen while sliders happen
2025-05-23 12:56:32 +08:00
bunnie
f8bbf97724 clean up draw list handling
our implementantation of Buffer can't (currently) dynamically grow
the size of the object to serialize things that are bigger than
a page, so we have to enforce Vec-like objects to have a serialized
size of less than the page limit.

This is a bit of a moving target because it depends on implementation
specific details. A conservative bodge was put in to try and
work around this problem for now.
2025-05-23 12:34:55 +08:00
bunnie
4c1933414c fix off-by-one error in clip rect definition 2025-05-23 10:54:55 +08:00
bunnie
0f7ad13c08 only set dirty bits for precursor-like targets
This was introducing a mysterious "line" artifact on text rendering
in new systems.

Probably need to do some real on-device testing of this change
because the automated tests won't catch a dirty bit error on
the LCD.
2025-05-23 10:52:55 +08:00
bunnie
29017766f4 handle no domain separator case in keystore 2025-05-21 18:02:43 +08:00
bunnie
70975fbff3 cleanup dependencies 2025-05-21 10:20:59 +08:00
bunnie
fa3ab1dea1 cleanup dependencies a bit
cramium-soc i think should be deprecated everywhere because
it is redundant with the board targets: anywhere you see a board
target that includes the crossbar soc it should also transitively
pull in the cramium-soc dependency equivalents.

we'll chase this out more later, but for now we're just trying
to get the PDDB to compile
2025-05-20 14:35:42 +08:00
bunnie
7947949589 add constant to precursor board file
this helps with cross-target builds...
2025-05-18 09:24:33 +08:00
bunnie
dff4dded64 remove yield_slice() in std target
This is a bad idea because yield_slice() causes the active
process to hand off to a new one (without an IRQ). However,
the idea of most flash operations is we really want them
atomic - we can't have something else decide to go and muck
with flash while say, we are waiting for a page erase to
complete. So, implement spin locking to block the CPU
during phases where the hardware operation is non-interruptable.
2025-05-18 04:25:37 +08:00
bunnie
3872ae2a1c fix comment typo 2025-05-16 19:03:56 +08:00
bunnie
450c9153f2 fix usage comments on ifram allocation for flash 2025-05-16 19:03:28 +08:00
bunnie
e2379821e6 republish xous-rs to fix cargo test 2025-05-11 15:36:17 +08:00
bunnie
8a4959056b bump version for xous crate update - commit so we can publish crates 2025-05-11 14:45:24 +08:00
bunnie
ad3e4616dd incorporate xous-rs to hal migration into keystore-api 2025-05-11 12:40:56 +08:00
bunnie
f27c78c918 add BOOKEND constants to the hal layer; add MMAP_VIRT range
BOOKEND test sentinels are moved out of xous-rs, and into the
board definitions allowing us more flexibility on configuration
board-specific test configs (before it was a xous-wide constant,
which seems a bad idea because it makes migrating test infra
hard as the manufacturing infra updates)

MMAP_VIRT as a range is also added is this commit
2025-05-11 12:34:48 +08:00
bunnie
d4f2951af5 add a HAL layer for Precursor
this allows us move board-specific parameters out of xous-rs
and into a board library that is consistent with the new board
libraries, reducing special case code for Precursor
2025-05-11 12:32:45 +08:00
bunnie
645846e32e move pddb, spinor params into the board section of the HAL for hosted
this makes code a little cleaner when porting to new targets
2025-05-08 15:59:31 +08:00
bunnie
a399702403 add proposed values for TG28 fusing & testing
include some readback testing and make addresses pub so they
don't throw warnings when not referenced in the crate
2025-05-06 19:06:44 +08:00
bunnie
3faad803d3 add catch-all operand for keystore 2025-05-06 01:47:30 +08:00
bunnie
868a1f280b move SPINOR params into board definition
this makes a lot more sense that defining it at the chip level
2025-05-05 01:47:50 +08:00
bunnie
05720032cf flesh out keystore api 2025-05-05 01:47:17 +08:00
bunnie
87140a2024 cleanup the api a bit more
realized it was dumb to have separate file paths for the
orthogonal implementations
2025-05-04 19:12:51 +08:00
bunnie
c8db01c563 re-org rootkeys-api into common and generation-specific libraries 2025-05-04 19:05:58 +08:00
bunnie
f3fa5f6c68 migrate rootkeys API to a neutral third party crate
this will allow for bridging APIs between generations
2025-05-04 18:30:39 +08:00
bunnie
d985491c7f add block erase routines 2025-05-04 03:32:52 +08:00
bunnie
7ee15b874d cleanup on the gc2145 driver 2025-05-01 16:40:46 +08:00
bunnie
6fdf868b44 make camera pins generic 2025-05-01 04:09:36 +08:00
bunnie
6d1a362735 add gc2145 to cargo file 2025-05-01 04:09:17 +08:00