QP1 is a special QP in the ERNIC IP. This QP is designated for exchanging the MAD packets with remote hosts for establishing the connection for RC QPs. QP1 must be configured first before creation of any other RC QP. See the InfiniBand Architecture Specification Volume 1, Annex A16 RoCE and Annex 17 RoCE V2 [Ref 1] for more information on QP1. The following steps are required to configure and enable QP1:
1. Allocate memory for queues (RQ, SQ, CQ), and program the respective base address registers.
° RQ base address is written to RQBAi register. SQ base address is written to SQBAi register and queue depths to QDEPTHi.
° CQ base address is written to CQBAi register.
° Configures each RQ buffer size by writing to QPCONFi.
2. Pick up memory for both SQ completion doorbell and RQ write pointers from the pre-allocated doorbell memory pool as part of ERNIC initialization (see ERNIC Global Configuration )
° SQ completion doorbell address to CQDBADDi register.
° RQ write pointer doorbell address to RQWPTRDBADDi register.