B.1.1 Allocating the Command queue

The MMU-600 uses the Command queue to receive commands. Software must allocate memory for the Command queue and configure the appropriate registers in the SMMU.

To allocate the Command queue, ensure that your software performs the following steps:


  1. Allocate memory for the Command queue.
  2. Configure the Command queue size and base address by writing to the SMMU_CMDQ_BASE register.


    The queue size can affect how many bits of the SMMU_CMDQ_CONS and SMMU_CMDQ_PROD indices are writeable. It is therefore important that you perform this step before writing to SMMU_CMDQ_CONS and SMMU_CMDQ_PROD.
  3. Set the queue read index in SMMU_CMDQ_CONS and the queue write index in SMMU_CMDQ_PROD to 0.


    Setting the queue read index and the queue write index to the same value indicates that the queue is empty.
Non-ConfidentialPDF file icon PDF version100310_0100_00_en
Copyright © 2016–2018 Arm Limited or its affiliates. All rights reserved.