The intent of Patina is to replace blinky in amaranth. Given (most; LUT > 0x1000), drop a riscv32i control plane CPU. This means that we can put a software state machine upon it.
The base is minimual rust but if you insist on writing C++ or C that will work aswell.
There appears to be a lot of stuff to do. My brain has stalled, so I should probably write a list.
- fix print! and println! , rework.
- Rewrite the simple fabric to a multiplexer
- write an amaranth_soc <-> hapenny bus bridge.
- look into the svd exporter (for embeded-hal)
- auto generate bootloader
- move the command line into patina/cli.py
- move the logging builder into patina/logging.py
- clean up the flash lib
- add u32 reader and iterator
- add byte array loader
- write unlock
- address start offset and size guardrails
- reset on spi boot broken
- rework the bootloader to timeout on serial and load from flash
These are not TODO these are TODONE.
- Write the flash image generator [working]
- a page of config (256 bytes)
- 1st word length of program. ( after this page)
- second word is address of the data block...