3.1.1. DynaBus general control
A set of registers allow the IOBus processor to perform all the DynaBus actions available to a regular processor by exercising the cache's PBus interface. The IOBus has access to a PBus address register, a PBus data register, a PBus command register and a PBus fault register:
- PBusData: 32 bits register, read/write. Contains data to be sent over the DynaBus or data received from the DynaBus. Byte order is swapped: byte 0 of the register is mapped to byte 3 on the DynaBus. This means that access to 32-bit integers is consistent, but that byte-stream access needs swapping.
- PBusAddr: 32 bits register, read/write. Contains address to be sent over the DynaBus.
- PBusCmd: 8 bits register, read/write. Writing into this register initiates the cache transaction exactly as a Dragon processor would in Kernel mode. For a write PBusCmd, the contents of PBusData are sent to the cache. For a read PBusCmd, the value returned by the cache will be stored upon completion into PBusData. The IOBus write to PBusCmd will be completed only when the cache has finished its processing. Reading PBusCmd will return the last command completed. The reader is referred to DOCUMENTATION for exact PBusCmd values.
- PBusFault: 8 bits register, read/write. The low-order bit is set to 1 when a PBus fault is detected, and is cleared by writing any value into this register. When a fault occurs, an interrupt is reflected on the IOBus, and the request that resuklted in a fault is recorded in the PBusErrData, PBusErrAddr and PBusErrCmd registers. The processor should clear the fault bit to remove the interrupt condition. All other bits of the register return 0 on a read.
- PBusErrData: 32-bit register, contains the data emitted by the IOBridge during the last PBus operation that resulted in a fault (not significant if operation was a read), whether through explicit write into PBusCmd or by memory-mapped access.
- PBusErrAddr: 32-bit register, contains the address emitted by the IOBridge during the last PBus operation that resulted in a fault, whether through explicit write into PBusCmd or by memory-mapped access.
- PBusErrCmd: 8-bit register, contains the command emitted by the IOBridge during the last PBus operation that resulted in a fault, whether through explicit write into PBusCmd or by memory-mapped access. The format is the same as for PBusCmd.