I/O instructions (privileged)
This page is barely started. Implementation of these instructions started 31 October 2024. Stay tuned for details as to how they work.
IOCNTR I/O set SPI pulse counter
IOCNTR gets its pulse count from bits 0–7 of n_pulses.
IODEVM I/O set SPI device and mode
IODEVM gets its SPI device and mode from bits 25–18 of dev_mode. The allocation of these bits is to be determined.
IODIVR I/O set SPI clock divisor
IODIVR gets its clock divisor from bits 8–15 of divisor.
IOLAST I/O get last input bits
IOLAST will return up to 36 bits depending on the pulse counter setting. Bit placement specifics are to be determined.
IOXFER I/O transfer bits
IOXFER will move up to 36 bits depending on the pulse counter setting. Bit placement specifics are to be determined. Because SPI transfers one bit at a time, this instruction only begins a transfer that the pulse counter must complete. This means that in_bits will contain the bits shifted in during the previous IOXFER instruction. Bits shifted in when out_bits are sent can be read on either the next IOXFER (if there is more to transmit) or IOLAST (if nothing remains to transmit).
Without secure hardware, there is no secure software.