Alternatively, you can use the Expansion Bus Manager routines described in this section. They provide byte swapping, enforce in-order execution, and a node-based interface. These extra services add overhead; therefore, for transfer-intensive accesses, such as accessing FIFOs located in I/O space, it is better to use the logical address from the AAPL,address property.
The rest of this section describes six routines that let you read and write data to specific I/O addresses, using the base address found in the assigned-addresses property (not AAPL,address ).