# IOP Contract Status: `Draft` ## Purpose Define the separate I/O Processor subsystem as an explicit peer block, not an afterthought. ## Owns - IOP CPU execution, - IOP-local RAM/I/O decode, - IOP interrupt intake, - IOP DMAC channels and their peripheral-facing coordination points, - BIOS-side IOP boot sequencing behavior, including `IOPBOOT`, `IOPBTCONF`-driven module loading, and early module-init-visible progress as seen from the IOP side. ## Inputs - clocks/resets, - BIOS/boot vectors, - SIF signaling, - IOP DMA/peripheral responses, - interrupt sources from IOP-side peripherals. ## Outputs - IOP memory/I/O requests, - DMA requests, - SIF activity, - debug trace events. ## Questions to lock - How early do we expect a real IOP boot path versus a stubbed acknowledgement model? - Which IOP peripherals must exist before the BIOS path becomes meaningful? - Will PS1-compatibility-only behavior be ignored initially? - Which IOP DMAC channels must exist for the first BIOS-progress milestone? ## Allowed early stubs - minimal boot-progress IOP stub, - fake module-load acknowledgements for ultra-early scaffolding, - reduced DMA interaction for trace-first bring-up. ## Required debug visibility - PC stream, - interrupt events, - IOP DMAC channel activity, - SIF mailbox/flag transitions, - module-load progress markers if detectable. ## Clarification - BIOS/firmware storage and address visibility belong to the memory contract. - BIOS-driven IOP boot behavior belongs here.