Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Processor Interface (PI)

The processor interface is responsible for connecting the CPU to the Flipper.

Flipper Interrupts

The PI receives interrupt requests from Flipper and passes them along to the CPU.

FIFO

Within the PI exists a FIFO mechanism that catches burst writes1 to 0x0C00_8000 and writes them to a ring buffer in memory. It’s controlled by three registers: FIFO Start, FIFO End and FIFO Current.

Registers

PI Interrupt Cause (0x0C00_3000, 4 bytes)

Contains which external interrupt causes are active. This register is read-only: in order to acknowledge an interrupt, you must write to the controlling status bit of the interrupt specific register.

BitsNameDescription
0GP ErrorGraphics Processor runtime error
1ResetReset switch was pressed
2DVDIDVD interface
3SISerial interface
4EXIExternal Interface
5AIAudio Interface
6DSPIDSP Interface
7MEMMemory Interface
8VIVideo Interface
9PE TokenToken assertion in command list
10PE FinishFrame ready
11CPCommand Processor FIFO
12DebugExternal Debugger
13HSPHigh Speed Port
14..16Reserved
16Reset State
17..32Reserved

PI Interrupt Mask (0x0C00_3004, 4 bytes)

Masks PI interrupts, describing which ones are allowed to be raised.

BitsNameDescription
0GP ErrorGraphics Processor runtime error
1ResetReset switch was pressed
2DVDIDVD interface
3SISerial interface
4EXIExternal Interface
5AIAudio Interface
6DSPIDSP Interface
7MEMMemory Interface
8VIVideo Interface
9PE TokenToken assertion in command list
10PE FinishFrame ready
11CPCommand Fifo
12DebugExternal Debugger
13HSPHigh Speed Port

PI FIFO Start (0x0C00_300C, 4 bytes)

BitsNameDescription
0..5Zeroed
5..27StartThe start address of the ring buffer
27..32Unknown

PI FIFO End (0x0C00_3010, 4 bytes)

BitsNameDescription
0..5Zeroed
5..27EndThe end address of the ring buffer (exclusive)
27..32Unknown

PI FIFO Current (0x0C00_3014, 4 bytes)

BitsNameDescription
0..5Zeroed
5..27CurrentThe current address for writing the next 32 bytes of data
27WrappedWhether the current address reached the end and wrapped around to the start
28..32Unknown

Wrapped is cleared only on CPU writes to the register.


  1. These burst writes are executed by the Write Gather Pipe.