diff --git a/Virtualization/ch_virtual_io.xml b/Virtualization/ch_virtual_io.xml index d4f6370..0073faf 100644 --- a/Virtualization/ch_virtual_io.xml +++ b/Virtualization/ch_virtual_io.xml @@ -18686,6 +18686,54 @@ hcall ( const uint64 H_VASI_STATE, /* Return the state of the VASI service */ Complete” message is sent, and if that message is sent successfully, then the communication path can be deemed to be open. + + For a partition booted on P9 Firmware or newer, the client partition uses + the hcall()s associated with the Subordinate CRQ Transport facility to register + and deregister any sub-CRQs necessary for the operations of the VFC. Once the + main CRQ connection is complete between the client and the server, the client + receives from the server the number of sub-CRQs that can be supported on the + client side. The client allocates memory for the first sub-CRQ (an array, large + enough for all possible responses, of 32 byte elements), pins the queue and + maps it into the I/O space of the RTCE window specified in the + “ibm,my-dma-window” + property using the standard kernel mapping services that subsequently use the + H_PUT_TCE hcall(). The queue is then registered using the H_REG_SUB_CRQ hcall(). + This process continues until all desired sub-CRQs are registered or until the + H_REG_SUB_CRQ hcall() indicates that the resources allocated to the client for + sub-CRQs for the virtual IOA have already been allocated (H_Resource returned). + Interrupt numbers for the Sub-CRQs that have been registered, are returned by + the H_REG_SUB_CRQ hcall() (See + ). + + Once all the CRQs and Sub-CRQs are setup, the communications between the + client and server device drivers may commence for purposes of further setup + operations, and then normal I/O requests, error communications, etc. The + protocol for this communication is beyond the scope of this architecture. + When a partition calls H_FREE_CRQ or crashes, the Hypervisor notifies the + partner partition by placing a Transport Event in the partner’s main CRQ. + Following the main CRQ, a 32-byte transport event will also be sequentially + placed on active partner Subordinate queues. For Partition Mobility, in the + event of an active migration, VFC client and server will receive a 32-byte Partner + Partition Suspended transport event on the main CRQ and sequentially on any + active Subordinate queues. The 32-byte Subordinate CRQ transport event uses + the same Format byte (second byte) and is as defined in + ). + For Partition Mobility, if the partition is not booted in at least P9 Base + Compatibility mode, the Sub-CRQs will not be migrated to the target, however, + all associated RTCE mapped memory will be migrated. Upon Partition Mobility abort, + the Sub-CRQs will remain intact on the source. + + For a platform that does not support the Subordinate CRQ Transport + facility or is not booted on P9 Firmware or newer, the partition should + expect H_Parameter from H_REG_SUB_CRQ. + + Implementation Note: On some earlier levels + of P9 Firmware, the partition may need to be booted in P9 Base Compatibility + mode or newer, else the partition should expect H_Parameter from H_REG_SUB_CRQ. + In later levels of P9 Firmware (FW930 and later), the partition may be able to + successfully H_REG_SUB_CRQ in older compatibility modes; however, all Sub-CRQs + will not be migrated to the target to maintain compatibility. + When the VFC Adapter device driver receives an I/O request from one of the FC device head drivers, it executes the following sequence. First an I/O request control block is allocated. Then it builds the FC @@ -19189,6 +19237,18 @@ hcall ( const uint64 H_VASI_STATE, /* Return the state of the VASI service */ ). + + + R1--4. + + + For the VFC option: On P9 Firmware + and newer, the platform must implement the Subordinate CRQ + Transport option as defined in + . + +
@@ -19509,6 +19569,22 @@ hcall ( const uint64 H_VASI_STATE, /* Return the state of the VASI service */ client-server communications protocol. + + + + “interrupt-ranges” + + + + See Definition Column + + + Standard property name that defines the interrupt number(s) + and range(s) handled by this device. Subordinate CRQs + associated with this VFC use interrupt numbers from these + ranges. Only present on P9 Firmware and newer. + + @@ -19824,6 +19900,22 @@ hcall ( const uint64 H_VASI_STATE, /* Return the state of the VASI service */ . + + + + “interrupt-ranges” + + + + See Definition Column + + + Standard property name that defines the interrupt number(s) + and range(s) handled by this device. Subordinate CRQs + associated with this VFC use interrupt numbers from these + ranges. Only present on P9 Firmware and newer. + +