The owner of a SPI block is defined by the GICD_CHIPn registers.
You can remove SPI blocks from a chip and add them to another chip by reprogramming the relevant GICD_CHIPn registers during operation. As with all Routing table operations, GICD_DCHIPR.PUP must be polled to check completion of the operation.
Before you change the owner of a SPI block, you must ensure that the GICD_CTLR group enables have cleared, GICD_CTLR.RWP has returned to 0, and that the SPI blocks are removed from a chip before they are added to another chip.
When a SPI block is removed from, or added to, a chip, all programming that is associated with the SPI block returns to the reset state.
NoteYou must not alter the SPI_BLOCK_MIN of an online chip because the results are unpredictable. To change SPI_BLOCK_MIN:
- Move the chip offline by setting GICD_CHIPRn.SocketState = 0.
- Alter SPI_BLOCK_MIN when the chip is brought back online.